Merge branch 'current' into next

This commit is contained in:
Franck Nijhof 2024-10-28 02:08:34 +01:00
commit 828a66bd80
No known key found for this signature in database
GPG Key ID: D62583BA8AB11CA3
45 changed files with 996 additions and 355 deletions

View File

@ -8,9 +8,9 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Check out files from GitHub
uses: actions/checkout@v4.2.1
uses: actions/checkout@v4.2.2
- name: Setting up Node.js
uses: actions/setup-node@v4.0.4
uses: actions/setup-node@v4.1.0
with:
node-version: 20
cache: "npm"
@ -25,9 +25,9 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Check out files from GitHub
uses: actions/checkout@v4.2.1
uses: actions/checkout@v4.2.2
- name: Setting up Node.js
uses: actions/setup-node@v4.0.4
uses: actions/setup-node@v4.1.0
with:
node-version: 20
cache: "npm"

View File

@ -29,10 +29,10 @@ GEM
ffi (1.17.0-arm64-darwin)
ffi (1.17.0-x86_64-linux-gnu)
forwardable-extended (2.6.0)
google-protobuf (4.28.2-arm64-darwin)
google-protobuf (4.28.3-arm64-darwin)
bigdecimal
rake (>= 13)
google-protobuf (4.28.2-x86_64-linux)
google-protobuf (4.28.3-x86_64-linux)
bigdecimal
rake (>= 13)
http_parser.rb (0.8.0)
@ -66,7 +66,7 @@ GEM
nokogiri (~> 1.12)
jekyll-watch (2.2.1)
listen (~> 3.0)
json (2.7.2)
json (2.7.3)
kramdown (2.4.0)
rexml
kramdown-parser-gfm (1.1.0)
@ -111,7 +111,7 @@ GEM
rbs (3.6.1)
logger
regexp_parser (2.9.2)
rexml (3.3.8)
rexml (3.3.9)
rouge (4.4.0)
rubocop (1.67.0)
json (~> 2.3)
@ -134,9 +134,9 @@ GEM
ruby2_keywords (0.0.5)
safe_yaml (1.0.5)
sass (3.4.25)
sass-embedded (1.80.2-arm64-darwin)
sass-embedded (1.80.4-arm64-darwin)
google-protobuf (~> 4.28)
sass-embedded (1.80.2-x86_64-linux-gnu)
sass-embedded (1.80.4-x86_64-linux-gnu)
google-protobuf (~> 4.28)
sass-globbing (1.1.5)
sass (>= 3.1)
@ -150,7 +150,7 @@ GEM
rack-protection (= 4.0.0)
rack-session (>= 2.0.0, < 3)
tilt (~> 2.0)
sorbet-runtime (0.5.11608)
sorbet-runtime (0.5.11615)
stringex (2.8.6)
terminal-table (3.0.2)
unicode-display_width (>= 1.1.1, < 3)

View File

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

243
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.2.1",
"textlint": "^14.3.0",
"textlint-filter-rule-comments": "^1.2.2",
"textlint-rule-common-misspellings": "^1.0.1",
"textlint-rule-terminology": "^5.0.13"
@ -416,108 +416,109 @@
"dev": true
},
"node_modules/@textlint/ast-tester": {
"version": "14.2.1",
"resolved": "https://registry.npmjs.org/@textlint/ast-tester/-/ast-tester-14.2.1.tgz",
"integrity": "sha512-JQhZQToHYfHy/w/AyRg+03uxG53yp6OSbq7mpRhvgpwMk/N5GAtF+vLhfMAUAStJLXpq5xfFEvDNROZsgn2x7Q==",
"version": "14.3.0",
"resolved": "https://registry.npmjs.org/@textlint/ast-tester/-/ast-tester-14.3.0.tgz",
"integrity": "sha512-K1TbF1Kko1XAKCWuFY/TkZO521ZWv2DAHu4JYsqqY/PnqqySHZorjSG78EfYBhkVq1E3ktprlAJmp8GNmpoYWQ==",
"dev": true,
"dependencies": {
"@textlint/ast-node-types": "^14.2.1",
"@textlint/ast-node-types": "^14.3.0",
"debug": "^4.3.4"
}
},
"node_modules/@textlint/ast-tester/node_modules/@textlint/ast-node-types": {
"version": "14.2.1",
"resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.2.1.tgz",
"integrity": "sha512-UuYY1ADfU6Nvo3l9JQoJ6XWt1lohSyyvbFE96FVjkJDIwLxEyF8nPeoTNa/gJTmLCzimQfY0C+4jAYrPxVjt/A==",
"version": "14.3.0",
"resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.3.0.tgz",
"integrity": "sha512-baDgKcA8MeO55I2+LNc9FTAJ/aUKlxN6DgM5B511tT9kDwECXRk+iYi/H+oaP25z5Zq3FqrL6n7mmyfFWDUWkQ==",
"dev": true
},
"node_modules/@textlint/ast-traverse": {
"version": "14.2.1",
"resolved": "https://registry.npmjs.org/@textlint/ast-traverse/-/ast-traverse-14.2.1.tgz",
"integrity": "sha512-MmYIRE3myWPgswJlq1Iu42o/Z9aKQkeHF7SS/toySc1iDpjS4lKTYcbzRoq+RD8Tjp35RCcxBIpufrrZrT7V0Q==",
"version": "14.3.0",
"resolved": "https://registry.npmjs.org/@textlint/ast-traverse/-/ast-traverse-14.3.0.tgz",
"integrity": "sha512-1YA5M2T+KeIHC0br5FwhkTwuLEUxkf5K5QtXJmXSF0Mf06ZlLfZ44RMlKYD3ElmzG+TmpmFdKIs4FzFSJRtslw==",
"dev": true,
"dependencies": {
"@textlint/ast-node-types": "^14.2.1"
"@textlint/ast-node-types": "^14.3.0"
}
},
"node_modules/@textlint/ast-traverse/node_modules/@textlint/ast-node-types": {
"version": "14.2.1",
"resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.2.1.tgz",
"integrity": "sha512-UuYY1ADfU6Nvo3l9JQoJ6XWt1lohSyyvbFE96FVjkJDIwLxEyF8nPeoTNa/gJTmLCzimQfY0C+4jAYrPxVjt/A==",
"version": "14.3.0",
"resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.3.0.tgz",
"integrity": "sha512-baDgKcA8MeO55I2+LNc9FTAJ/aUKlxN6DgM5B511tT9kDwECXRk+iYi/H+oaP25z5Zq3FqrL6n7mmyfFWDUWkQ==",
"dev": true
},
"node_modules/@textlint/config-loader": {
"version": "14.2.1",
"resolved": "https://registry.npmjs.org/@textlint/config-loader/-/config-loader-14.2.1.tgz",
"integrity": "sha512-QfrALRn6ObeuTuwAl/bEtI9ScU2dTYDd+w3lB6JAQL+baAk8vclXnzbzI9L3p+YhmhGxOSNohZV09qSkhDYHZg==",
"version": "14.3.0",
"resolved": "https://registry.npmjs.org/@textlint/config-loader/-/config-loader-14.3.0.tgz",
"integrity": "sha512-z7g3dArU7EhWHHy0lvMDQF+6TWDppvqkXh7J6YRTXnq00ftEC1MbHGfrsZNJF1av6rBJ8r8nquKyCoeYZBz7cw==",
"dev": true,
"dependencies": {
"@textlint/kernel": "^14.2.1",
"@textlint/module-interop": "^14.2.1",
"@textlint/types": "^14.2.1",
"@textlint/utils": "^14.2.1",
"@textlint/kernel": "^14.3.0",
"@textlint/module-interop": "^14.3.0",
"@textlint/resolver": "^14.3.0",
"@textlint/types": "^14.3.0",
"@textlint/utils": "^14.3.0",
"debug": "^4.3.4",
"rc-config-loader": "^4.1.3",
"try-resolve": "^1.0.1"
"rc-config-loader": "^4.1.3"
}
},
"node_modules/@textlint/feature-flag": {
"version": "14.2.1",
"resolved": "https://registry.npmjs.org/@textlint/feature-flag/-/feature-flag-14.2.1.tgz",
"integrity": "sha512-7fXZWh3UUH0LwPu2CWJOaSnYHVQojgQ/ulXQayMXf50x3/CGY/dqaBKpB+I/PW+60/pnKgUwJm9E/eHzwhVAqQ==",
"version": "14.3.0",
"resolved": "https://registry.npmjs.org/@textlint/feature-flag/-/feature-flag-14.3.0.tgz",
"integrity": "sha512-wWKbyHpmwxEEcyoBMd2u6GB5bw7vJ2a68HmBRknUABFL7vvp8JAzf4D/I2cLXgV06OoMbWE+hnV2CInayJiCpA==",
"dev": true
},
"node_modules/@textlint/fixer-formatter": {
"version": "14.2.1",
"resolved": "https://registry.npmjs.org/@textlint/fixer-formatter/-/fixer-formatter-14.2.1.tgz",
"integrity": "sha512-AquSEaP0m0ZGlCzOHwRiAmnruFAngjLL5g/ZzE2REQ2qwSnUuxEII5SsucqTgT37LXOKBXNpU1OSPlKwtF2aJw==",
"version": "14.3.0",
"resolved": "https://registry.npmjs.org/@textlint/fixer-formatter/-/fixer-formatter-14.3.0.tgz",
"integrity": "sha512-xbSH4vb1wdjJngHxpfBu65Y+uTZdU/w0b7Hd6TJ7Q5FaZD1pftyUHGisLMN+xX3V56t28e+qAkSBTQ4Mq4UdYQ==",
"dev": true,
"dependencies": {
"@textlint/module-interop": "^14.2.1",
"@textlint/types": "^14.2.1",
"@textlint/module-interop": "^14.3.0",
"@textlint/resolver": "^14.3.0",
"@textlint/types": "^14.3.0",
"chalk": "^4.1.2",
"debug": "^4.3.4",
"diff": "^5.2.0",
"string-width": "^4.2.3",
"strip-ansi": "^6.0.1",
"text-table": "^0.2.0",
"try-resolve": "^1.0.1"
"text-table": "^0.2.0"
}
},
"node_modules/@textlint/kernel": {
"version": "14.2.1",
"resolved": "https://registry.npmjs.org/@textlint/kernel/-/kernel-14.2.1.tgz",
"integrity": "sha512-PkCagYKlVLQvw9CBijJJ30Hmp9rk9oJJt9danoMhdR+v91SMQ7eeWk7HG8CqGbEnL0NehoOqgZV+O5Tfr8x38A==",
"version": "14.3.0",
"resolved": "https://registry.npmjs.org/@textlint/kernel/-/kernel-14.3.0.tgz",
"integrity": "sha512-RLkIJjP+GtrLmjLtAYSCORKF55z5wtw2E9Vb4h3RSQLjzYopQ3s9N1LbUwLJDr8tz0AphtOb6t1efF3d+NIemw==",
"dev": true,
"dependencies": {
"@textlint/ast-node-types": "^14.2.1",
"@textlint/ast-tester": "^14.2.1",
"@textlint/ast-traverse": "^14.2.1",
"@textlint/feature-flag": "^14.2.1",
"@textlint/source-code-fixer": "^14.2.1",
"@textlint/types": "^14.2.1",
"@textlint/utils": "^14.2.1",
"@textlint/ast-node-types": "^14.3.0",
"@textlint/ast-tester": "^14.3.0",
"@textlint/ast-traverse": "^14.3.0",
"@textlint/feature-flag": "^14.3.0",
"@textlint/source-code-fixer": "^14.3.0",
"@textlint/types": "^14.3.0",
"@textlint/utils": "^14.3.0",
"debug": "^4.3.4",
"fast-equals": "^4.0.3",
"structured-source": "^4.0.0"
}
},
"node_modules/@textlint/kernel/node_modules/@textlint/ast-node-types": {
"version": "14.2.1",
"resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.2.1.tgz",
"integrity": "sha512-UuYY1ADfU6Nvo3l9JQoJ6XWt1lohSyyvbFE96FVjkJDIwLxEyF8nPeoTNa/gJTmLCzimQfY0C+4jAYrPxVjt/A==",
"version": "14.3.0",
"resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.3.0.tgz",
"integrity": "sha512-baDgKcA8MeO55I2+LNc9FTAJ/aUKlxN6DgM5B511tT9kDwECXRk+iYi/H+oaP25z5Zq3FqrL6n7mmyfFWDUWkQ==",
"dev": true
},
"node_modules/@textlint/linter-formatter": {
"version": "14.2.1",
"resolved": "https://registry.npmjs.org/@textlint/linter-formatter/-/linter-formatter-14.2.1.tgz",
"integrity": "sha512-GHgNuQQAA/YyYeYcfF0JbFZZomrC0VtfldjKqCmTmPy7c89MTZPZFgyRbTKm1G8tUmxh4RuT1rkgwvX3IgT2VQ==",
"version": "14.3.0",
"resolved": "https://registry.npmjs.org/@textlint/linter-formatter/-/linter-formatter-14.3.0.tgz",
"integrity": "sha512-9Rzq0y9Qi6L43To9GIUd1kh/7Pq202qU9nQ15atyK5BlvPFlzJnc98X/hCE1tN+uDriZnxu4v4Vs7+mHFT9VPw==",
"dev": true,
"dependencies": {
"@azu/format-text": "^1.0.2",
"@azu/style-format": "^1.0.1",
"@textlint/module-interop": "^14.2.1",
"@textlint/types": "^14.2.1",
"@textlint/module-interop": "^14.3.0",
"@textlint/resolver": "^14.3.0",
"@textlint/types": "^14.3.0",
"chalk": "^4.1.2",
"debug": "^4.3.4",
"js-yaml": "^3.14.1",
@ -526,17 +527,16 @@
"string-width": "^4.2.3",
"strip-ansi": "^6.0.1",
"table": "^6.8.1",
"text-table": "^0.2.0",
"try-resolve": "^1.0.1"
"text-table": "^0.2.0"
}
},
"node_modules/@textlint/markdown-to-ast": {
"version": "14.2.1",
"resolved": "https://registry.npmjs.org/@textlint/markdown-to-ast/-/markdown-to-ast-14.2.1.tgz",
"integrity": "sha512-IbxuCiGg2dQMg+PlLrSIvryEAngdvydF1MztRII9AjJNOMKomzYmZaNVRaANlhuFLnOwJbunNg0MV1q7oXz+iw==",
"version": "14.3.0",
"resolved": "https://registry.npmjs.org/@textlint/markdown-to-ast/-/markdown-to-ast-14.3.0.tgz",
"integrity": "sha512-z4UMKFh3r5KtylPt5OO6su7DScU+fMZ7Qv5LTrJNaOqcmOzFho64Y1I26BJv86f8BC+MUYP0kza5MZGaR2LYQA==",
"dev": true,
"dependencies": {
"@textlint/ast-node-types": "^14.2.1",
"@textlint/ast-node-types": "^14.3.0",
"debug": "^4.3.4",
"mdast-util-gfm-autolink-literal": "^0.1.3",
"neotraverse": "^0.6.15",
@ -548,9 +548,9 @@
}
},
"node_modules/@textlint/markdown-to-ast/node_modules/@textlint/ast-node-types": {
"version": "14.2.1",
"resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.2.1.tgz",
"integrity": "sha512-UuYY1ADfU6Nvo3l9JQoJ6XWt1lohSyyvbFE96FVjkJDIwLxEyF8nPeoTNa/gJTmLCzimQfY0C+4jAYrPxVjt/A==",
"version": "14.3.0",
"resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.3.0.tgz",
"integrity": "sha512-baDgKcA8MeO55I2+LNc9FTAJ/aUKlxN6DgM5B511tT9kDwECXRk+iYi/H+oaP25z5Zq3FqrL6n7mmyfFWDUWkQ==",
"dev": true
},
"node_modules/@textlint/markdown-to-ast/node_modules/bail": {
@ -780,73 +780,79 @@
}
},
"node_modules/@textlint/module-interop": {
"version": "14.2.1",
"resolved": "https://registry.npmjs.org/@textlint/module-interop/-/module-interop-14.2.1.tgz",
"integrity": "sha512-xMkUYUDnP6le/s3oHyoAX6pvIESDlz7l+vUyDwQjKxnZwawdaO3K8aZIXkXDh4VNiBx9erFhsFoePm714VsPtA==",
"version": "14.3.0",
"resolved": "https://registry.npmjs.org/@textlint/module-interop/-/module-interop-14.3.0.tgz",
"integrity": "sha512-Adxkx8GSFVPhCZiveTD/u66f5T3W6yIlPUsKi7ZLar7ahYI/D4P/XfA0RNhgMF3xM4uw+vNrer2LcY4KY7cUfw==",
"dev": true
},
"node_modules/@textlint/resolver": {
"version": "14.3.0",
"resolved": "https://registry.npmjs.org/@textlint/resolver/-/resolver-14.3.0.tgz",
"integrity": "sha512-v17n8eUJPNaE9SblemmEnAeIcGHBfn/hEMuZe0iSl3hLyJueDM7zP3GP54FoWyuTIMyQqPt21l6+48+BjJ9tfQ==",
"dev": true
},
"node_modules/@textlint/source-code-fixer": {
"version": "14.2.1",
"resolved": "https://registry.npmjs.org/@textlint/source-code-fixer/-/source-code-fixer-14.2.1.tgz",
"integrity": "sha512-5VI+BLieZOrXVrqCkEIbvGu73gkKw52Ns8J1OPNqaCpbnmiKmKcRzBsbMxzwD4Pa7M0l4yhUzyd15/7i7hzmAg==",
"version": "14.3.0",
"resolved": "https://registry.npmjs.org/@textlint/source-code-fixer/-/source-code-fixer-14.3.0.tgz",
"integrity": "sha512-KJJoiN1Ha9R6tJrg3KHnYkq0s86D53PUjYxxCYJxo9Q8yTcXx+aXPspvgW+qGD+qcQxjarqbLl6m8uRlbyrg3Q==",
"dev": true,
"dependencies": {
"@textlint/types": "^14.2.1",
"@textlint/types": "^14.3.0",
"debug": "^4.3.4"
}
},
"node_modules/@textlint/text-to-ast": {
"version": "14.2.1",
"resolved": "https://registry.npmjs.org/@textlint/text-to-ast/-/text-to-ast-14.2.1.tgz",
"integrity": "sha512-SHZIroDA1Gabhfj/GEatuP3x7CeD0I2xqWaJTaXkmuAgj6ckrjF9130zTgRCmOgm174FDr//H1MO6nc30ly2sA==",
"version": "14.3.0",
"resolved": "https://registry.npmjs.org/@textlint/text-to-ast/-/text-to-ast-14.3.0.tgz",
"integrity": "sha512-wCjJmpwlff/wPsGaECBbNn0hPfiCnbr4mPJKFE59M3aeISoH3zqITCx9RCVPBYbYHzqTWmHPNLYI7egVIbZgrA==",
"dev": true,
"dependencies": {
"@textlint/ast-node-types": "^14.2.1"
"@textlint/ast-node-types": "^14.3.0"
}
},
"node_modules/@textlint/text-to-ast/node_modules/@textlint/ast-node-types": {
"version": "14.2.1",
"resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.2.1.tgz",
"integrity": "sha512-UuYY1ADfU6Nvo3l9JQoJ6XWt1lohSyyvbFE96FVjkJDIwLxEyF8nPeoTNa/gJTmLCzimQfY0C+4jAYrPxVjt/A==",
"version": "14.3.0",
"resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.3.0.tgz",
"integrity": "sha512-baDgKcA8MeO55I2+LNc9FTAJ/aUKlxN6DgM5B511tT9kDwECXRk+iYi/H+oaP25z5Zq3FqrL6n7mmyfFWDUWkQ==",
"dev": true
},
"node_modules/@textlint/textlint-plugin-markdown": {
"version": "14.2.1",
"resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-markdown/-/textlint-plugin-markdown-14.2.1.tgz",
"integrity": "sha512-14ZKJ9xsmTM9fr7S+ybisnhfNwL9CH/qcIU4/yjoP73RL1MMX4ddb/THGDBVt5O/wm4kzSUFP0CiNtDVxFfskQ==",
"version": "14.3.0",
"resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-markdown/-/textlint-plugin-markdown-14.3.0.tgz",
"integrity": "sha512-0lyYK/SUOgww+sxBtvjjsinHKMvFZUpLKvxCepymGlTyuOTYo7QmjmfhLc5G97PChOpUG41dpQoZt9miohQT1A==",
"dev": true,
"dependencies": {
"@textlint/markdown-to-ast": "^14.2.1"
"@textlint/markdown-to-ast": "^14.3.0"
}
},
"node_modules/@textlint/textlint-plugin-text": {
"version": "14.2.1",
"resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-text/-/textlint-plugin-text-14.2.1.tgz",
"integrity": "sha512-9rKR6zFfcO80cOhgUbWtcGTETe35osoyxdV5wuwf2xQLy4KTr9p1X9Jox6NjfLq6OSnOKAsiM/s31QlT6Mczlg==",
"version": "14.3.0",
"resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-text/-/textlint-plugin-text-14.3.0.tgz",
"integrity": "sha512-XpgyWTy2CqoKGuBrEsBJOVJqoXREAB6RFjPaa5bHvdvjwzU+EFqCNR9RXXs3Iov1ip/AaXDz/JeB4IYk6zj8GQ==",
"dev": true,
"dependencies": {
"@textlint/text-to-ast": "^14.2.1"
"@textlint/text-to-ast": "^14.3.0"
}
},
"node_modules/@textlint/types": {
"version": "14.2.1",
"resolved": "https://registry.npmjs.org/@textlint/types/-/types-14.2.1.tgz",
"integrity": "sha512-SaJsPYn7mXbInU77wbvsW277hLwmyijCS6Gld3VjBxXBYpJb9fzDliKHt1GYTYNRMtI/jQudwl13Clyt3nju5w==",
"version": "14.3.0",
"resolved": "https://registry.npmjs.org/@textlint/types/-/types-14.3.0.tgz",
"integrity": "sha512-zvPCQUpK1hOQA6Bg4XLYvKbOvFcQT65Nm25wsDdOGRgOvZbUzA+DJkiaH9Z8DAaJx83tTknIeLl4qwu97Hw1Ew==",
"dev": true,
"dependencies": {
"@textlint/ast-node-types": "^14.2.1"
"@textlint/ast-node-types": "^14.3.0"
}
},
"node_modules/@textlint/types/node_modules/@textlint/ast-node-types": {
"version": "14.2.1",
"resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.2.1.tgz",
"integrity": "sha512-UuYY1ADfU6Nvo3l9JQoJ6XWt1lohSyyvbFE96FVjkJDIwLxEyF8nPeoTNa/gJTmLCzimQfY0C+4jAYrPxVjt/A==",
"version": "14.3.0",
"resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.3.0.tgz",
"integrity": "sha512-baDgKcA8MeO55I2+LNc9FTAJ/aUKlxN6DgM5B511tT9kDwECXRk+iYi/H+oaP25z5Zq3FqrL6n7mmyfFWDUWkQ==",
"dev": true
},
"node_modules/@textlint/utils": {
"version": "14.2.1",
"resolved": "https://registry.npmjs.org/@textlint/utils/-/utils-14.2.1.tgz",
"integrity": "sha512-I8rV2jJfiVSP8EtpVSXCqISqyRPwx3GdZIIXehWn5k86cnBMt5RkPI4lvxZEbLECHsUkhQx11rC2tkOpabgUTA==",
"version": "14.3.0",
"resolved": "https://registry.npmjs.org/@textlint/utils/-/utils-14.3.0.tgz",
"integrity": "sha512-Q7bKiPobKCDXM5z+xByLZzSjcOBhvlDufQGHNgHR8EFie2/AFc68cN8RYCY0MmwCMBMuHuYaOzfIOpQpK9oTcQ==",
"dev": true
},
"node_modules/@types/concat-stream": {
@ -1418,9 +1424,9 @@
"dev": true
},
"node_modules/fast-uri": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.2.tgz",
"integrity": "sha512-GR6f0hD7XXyNJa25Tb9BuIdN0tdr+0BMi6/CJPH3wJO1JjNG3n/VsSw38AwRdKZABm8lGbPfakLRkYzx2V9row==",
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.3.tgz",
"integrity": "sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==",
"dev": true
},
"node_modules/fault": {
@ -6030,23 +6036,24 @@
"dev": true
},
"node_modules/textlint": {
"version": "14.2.1",
"resolved": "https://registry.npmjs.org/textlint/-/textlint-14.2.1.tgz",
"integrity": "sha512-dqzQ/VKQeofwCbVgpzoE1sRUQkIU4zquNFbvtBQpUbS121w8hB51BtomCKbB42V86kDHONQYlPz4nocdaZh7ww==",
"version": "14.3.0",
"resolved": "https://registry.npmjs.org/textlint/-/textlint-14.3.0.tgz",
"integrity": "sha512-oarGVGz7KwRd08QOvNDSffzjEyfS5mnGp7ZAxr799QC0HDBp0VM358WGyxdaboDXav1RlkQ3TWkvOvHBBMXCXw==",
"dev": true,
"dependencies": {
"@textlint/ast-node-types": "^14.2.1",
"@textlint/ast-traverse": "^14.2.1",
"@textlint/config-loader": "^14.2.1",
"@textlint/feature-flag": "^14.2.1",
"@textlint/fixer-formatter": "^14.2.1",
"@textlint/kernel": "^14.2.1",
"@textlint/linter-formatter": "^14.2.1",
"@textlint/module-interop": "^14.2.1",
"@textlint/textlint-plugin-markdown": "^14.2.1",
"@textlint/textlint-plugin-text": "^14.2.1",
"@textlint/types": "^14.2.1",
"@textlint/utils": "^14.2.1",
"@textlint/ast-node-types": "^14.3.0",
"@textlint/ast-traverse": "^14.3.0",
"@textlint/config-loader": "^14.3.0",
"@textlint/feature-flag": "^14.3.0",
"@textlint/fixer-formatter": "^14.3.0",
"@textlint/kernel": "^14.3.0",
"@textlint/linter-formatter": "^14.3.0",
"@textlint/module-interop": "^14.3.0",
"@textlint/resolver": "^14.3.0",
"@textlint/textlint-plugin-markdown": "^14.3.0",
"@textlint/textlint-plugin-text": "^14.3.0",
"@textlint/types": "^14.3.0",
"@textlint/utils": "^14.3.0",
"debug": "^4.3.4",
"file-entry-cache": "^5.0.1",
"get-stdin": "^5.0.1",
@ -6059,7 +6066,6 @@
"read-pkg": "^1.1.0",
"read-pkg-up": "^3.0.0",
"structured-source": "^4.0.0",
"try-resolve": "^1.0.1",
"unique-concat": "^0.2.2"
},
"bin": {
@ -6172,9 +6178,9 @@
}
},
"node_modules/textlint/node_modules/@textlint/ast-node-types": {
"version": "14.2.1",
"resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.2.1.tgz",
"integrity": "sha512-UuYY1ADfU6Nvo3l9JQoJ6XWt1lohSyyvbFE96FVjkJDIwLxEyF8nPeoTNa/gJTmLCzimQfY0C+4jAYrPxVjt/A==",
"version": "14.3.0",
"resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.3.0.tgz",
"integrity": "sha512-baDgKcA8MeO55I2+LNc9FTAJ/aUKlxN6DgM5B511tT9kDwECXRk+iYi/H+oaP25z5Zq3FqrL6n7mmyfFWDUWkQ==",
"dev": true
},
"node_modules/textlint/node_modules/brace-expansion": {
@ -6258,13 +6264,6 @@
"url": "https://github.com/sponsors/wooorm"
}
},
"node_modules/try-resolve": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/try-resolve/-/try-resolve-1.0.1.tgz",
"integrity": "sha512-yHeaPjCBzVaXwWl5IMUapTaTC2rn/eBYg2fsG2L+CvJd+ttFbk0ylDnpTO3wVhosmE1tQEvcebbBeKLCwScQSQ==",
"deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.",
"dev": true
},
"node_modules/type-check": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.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.2.1",
"textlint": "^14.3.0",
"textlint-filter-rule-comments": "^1.2.2",
"textlint-rule-common-misspellings": "^1.0.1",
"textlint-rule-terminology": "^5.0.13"

View File

@ -87,6 +87,9 @@
A binary sensor returns information about things that only have two states -
such as on or off.
link: /integrations/binary_sensor
aliases:
- binary_sensor
- binary_sensors
- term: Blueprint
definition: >-
A blueprint is a script, automation or template entity configuration with certain parts
@ -104,6 +107,13 @@
configuration-specific settings.
aliases:
- blueprints
- term: Button
definition: >-
A button entity can fire an event, or trigger an action towards a device or
service. It can be compared to a physical push button. The button entity does not have a state like `on` or `off`, but keeps the timestamp of when it was last pressed in the Home Assistant UI or via an action.
link: /integrations/button
aliases:
- buttons
- term: Category
definition: >-
A category is an organization tool that allows grouping items in a table.
@ -114,6 +124,13 @@
have different categories than the scene, scripts, or helpers settings page.
aliases:
- categories
- term: Climate
definition: >-
The Climate entity allows you to control and monitor HVAC (heating,
ventilating, and air conditioning) devices and thermostats.
link: /integrations/climate
aliases:
- climates
- term: Commissioning
definition: >-
In the context of Matter devices, *commissioning* is the process of adding a
@ -155,6 +172,8 @@
Covers are devices such as blinds, garage doors, etc that can be opened and
closed and optionally set to a specific position.
link: /integrations/cover
aliases:
- covers
- term: Custom integration
definition: >-
A custom integration is an integration that has been created by someone from the Home Assistant community and has been published for others to use at their own risk. Custom integrations are not supported by the Home Assistant project. They are not reviewed or tested by the Home Assistant development team and thus may negatively impact the stability of your Home Assistant instance. An example of a custom integration is the [Spook](https://spook.boo/) integration.
@ -399,6 +418,8 @@
A light has a brightness you can control, and optionally color temperature
or RGB color control.
link: /integrations/light
aliases:
- lights
- term: Matter
definition: >-
Matter is an open-source standard that defines how to control smart home
@ -438,6 +459,12 @@
link: /docs/configuration/platform_options/
aliases:
- platforms
- term: Polling
definition: >-
Data polling is the process of querying a device or service at regular intervals to check for updates or retrieve data. By defining a custom polling interval, you can control how frequently your system checks for new data, which can help optimize performance and reduce unnecessary network traffic.
link: /common-tasks/general/#defining-a-custom-polling-interval
aliases:
- data polling
- term: Reload
definition: >-
Applies the changes made to the Home Assistant configuration files. Changes

View File

@ -24,7 +24,6 @@ scene:
media_player.sony_bravia_tv:
state: "on"
source: HDMI 1
state: "on"
```
## How to configure your scene

View File

@ -62,7 +62,6 @@ There are multiple ways to store the backup on another device:
- **Option 4**: Or even better, create an automation to handle that, using one of the [backup actions](/integrations/hassio/#action-hassiobackup_full).
- **Option 5**: Make use of a third-party add-on:
- [Google Drive Backup](https://github.com/sabeechen/hassio-google-drive-backup)
- [Dropbox Sync](https://github.com/danielwelch/hassio-dropbox-sync)
- [OneDrive Backup](https://github.com/lavinir/hassio-onedrive-backup)
- [Nextcloud Backup](https://github.com/Sebclem/hassio-nextcloud-backup)
- [Remote Backup (scp/rsync/rclone)](https://github.com/ikifar2012/remote-backup-addon)

View File

@ -18,7 +18,7 @@ ha_integration_type: integration
[Agent DVR](https://www.ispyconnect.com/download.aspx/) is a free* software DVR solution for Windows 10, Mac and Linux. Agent DVR runs as a service or console application and can access and control a huge range of third party cameras with advanced motion detection, including DeepStack integration for object recognition. The iSpyConnect website provides secured (SSL) remote access without port forwarding needed.
You can add Agent DVR via integrations using the IP address and port of the server, e.g.,: `http://192.168.1.3:8090/`.
You can add Agent DVR via integrations using the IP address and port of the server, like: `http://192.168.1.3:8090/`. If you have "Protect API" turned on in your Agent DVR server configuration, you can supply the username and password as part of the URL, for example, `http://username:password@192.168.1.3:8090`.
{% include integrations/config_flow.md %}

View File

@ -219,7 +219,11 @@ This integration adds the Blebox device as a light entity to Home Assistant.
### wLightBox
This integration adds the Blebox device as a light entity to Home Assistant.
This integration adds the Blebox device to Home Assistant as:
- multiple MONO lights entities,
- 1 or 2 lights CCT entities,
- 1 light RGB or RGBW or RGBCCT entity.
#### Key supported features
@ -227,15 +231,24 @@ This integration adds the Blebox device as a light entity to Home Assistant.
- Off
- Effects
- Brightness
- Color
- Color (RGB, RGBW, RGBCCT mode only)
- White temperature control (RGBCCT & CCT mode only)
- Effects
#### Additional features
- Changing color mode available from direct device access or wBox app. Device needs to be reloaded from Home Assistant.
- Option to change control mode (linear / gamma correction) is available in wBox app.
- Option to change color mode (MONO/CCT) is available in wBox app.
- You can create your own effects. Creator of effects is available in wBox app.
- After a settings change, the device needs to be reloaded.
### wLightBox PRO
This integration adds the Blebox device as a light entity to Home Assistant.
This integration adds the Blebox device to Home Assistant as:
- multiple MONO lights entities,
- 1 or 2 lights CCT entities,
- 1 light RGB or RGBW or RGBCCT entity.
#### Key supported features
@ -243,11 +256,16 @@ This integration adds the Blebox device as a light entity to Home Assistant.
- Off
- Effects
- Brightness
- Color
- Color (RGB, RGBW, RGBCCT mode only)
- White temperature control (RGBCCT & CCT mode only)
- Effects
#### Additional features
- Changing color mode available from direct device access or wBox app. Device needs to be reloaded from Home Assistant.
- Option to change control mode (linear / gamma correction) is available in wBox app.
- Option to change color mode (MONO/CCT) is available in wBox app.
- You can create your own effects. Creator of effects is available in wBox app.
- After a settings change, the device needs to be reloaded.
### wLightBoxS
@ -260,6 +278,25 @@ This integration adds the Blebox device as a light entity to Home Assistant.
- Effects
- Brightness
### dacBoxD DC
This integration adds the Blebox device as 2 lights MONO or 1 light CCT entity to Home Assistant.
#### Key supported features
- On
- Off
- Brightness / linear percentage control (depends on device's settings)
- White temperature control (CCT mode only)
- Effects
#### Additional features
- Option to change control mode (linear / gamma correction) is available in wBox app.
- Option to change color mode (MONO/CCT) is available in wBox app.
- Own effects are possible to create. Creator of effects is available in wBox app.
- After settings change, device needs to be reloaded.
### wLightBoxS PRO
This integration adds the Blebox device as a light entity to Home Assistant.
@ -307,6 +344,14 @@ This integration adds the Blebox device as a sensor entity to Home Assistant.
- Periodic read of temperature for all probes
### floodSensor
This integration adds the Blebox device as a moisture binary sensor entity to Home Assistant.
#### Key supported features
- Periodic read of moisture as either "detected" or "cleared".
### humiditySensor
This integration adds the Blebox device as a sensor entity to Home Assistant.

View File

@ -541,6 +541,8 @@ mqtt:
### Full configuration using advanced templating
The `position_template` can accept JSON, where `position` and `tilt_position` is provided at the same time.
The example below shows a full example of how to set up a venetian blind which has a combined position and tilt topic. The blind in the example has moveable slats which tilt with a position change. In the example, it takes the blind 6% of the movement for a full rotation of the slats.
Following variable might be used in `position_template`, `set_position_template`, `tilt_command_template` and `tilt_status_template`, `json_attributes_template` (only `entity_id`).
@ -581,24 +583,20 @@ mqtt:
position_template: |-
{% if not state_attr(entity_id, "current_position") %}
{
"position" : value,
"tilt_value" : 0
"position" : {{ value }},
"tilt_position" : 0
}
{% else %}
{% set position = state_attr(entity_id, "current_position") %}
{% set tilt_percent = (state_attr(entity_id, "current_tilt_position")) %}
{% set old_position = state_attr(entity_id, "current_position") %}
{% set old_tilt_percent = (state_attr(entity_id, "current_tilt_position")) %}
{% set movement = value | int - position %}
{% set tilt = (tilt_percent / 100 * (tilt_max - tilt_min)) %}
{% set tilt_value = min(max((tilt + movement), tilt_min), max) %}
{% set movement = value | int - old_position %}
{% set old_tilt_position = (old_tilt_percent / 100 * (tilt_max - tilt_min)) %}
{% set new_tilt_position = min(max((old_tilt_position + movement), tilt_min), tilt_max) %}
{
"position": value,
"pos": position,
"tilt": tilt,
"tilt_value": tilt_value,
"tilt_percent" : tilt_percent,
"mov" : movement
"position": {{ value }},
"tilt_position": {{ new_tilt_position }}
}
{% endif %}
tilt_command_template: >-

View File

@ -65,6 +65,7 @@ Known supported devices:
- Denon AVR-3313CI
- Denon AVR-4810
- Denon AVR-S650H
- Denon AVC-S660H
- Denon AVR-S710W
- Denon AVR-S720W
- Denon AVR-S740H

View File

@ -28,6 +28,13 @@ To write information from Home Assistant to Emoncms, you can use the [`emoncms_h
{% include integrations/config_flow.md %}
{% configuration_basic %}
URL:
description: The URL of the Emoncms server starting with the protocol (`http` or `https`). For cloud installations, use <https://emoncms.org> (trailing slash optional). For local installations, use your local server address (e.g., `http://localhost:8080`). Ensure the server is accessible from your Home Assistant instance.
API key:
description: The 32-character read-only API key needed for authentication is found under "My Account > Read Only API Key" in Emoncms. The key should be a hexadecimal string. The read-and-write API key is not needed as this integration reads data from Emoncms. If you receive authentication errors, verify that you've copied the entire key correctly.
{% endconfiguration_basic %}
## Sensors
- **energy** in Wh, kWh

View File

@ -1,6 +1,6 @@
---
title: AVM FRITZ!SmartHome
description: Instructions on how to integrate AVM Fritz!DECT components into Home Assistant.
description: Instructions on how to integrate AVM Smart Home (former AVM FRITZ!DECT) components into Home Assistant.
ha_category:
- Binary sensor
- Button
@ -29,103 +29,117 @@ ha_integration_type: hub
ha_quality_scale: gold
---
The AVM FRITZ!SmartHome integration for Home Assistant allows you to integrate [FRITZ!DECT](https://en.avm.de/products/smart-home/) devices like switches, sensors and thermostats.
There is currently support for the following device types within Home Assistant:
- Binary sensor
- Climate
- Cover
- Light
- Sensor
- Switch
Additionally, we also support to trigger smarthome templates.
The AVM FRITZ!SmartHome integration for Home Assistant allows you to integrate [AVM Smart Home](https://en.avm.de/products/smart-home/) (_former AVM FRITZ!DECT_) devices like plugs, thermostats or shutter drivers as also trigger so called smart home templates (_contains settings for Smart Home devices of the same type_).
#### Tested devices
- [FRITZ!Box 5590 Fiber](https://en.avm.de/products/fritzbox/fritzbox-5590-fiber/)
- [FRITZ!Box 5590 Fiber][fritzbox_5590_fiber]
- FRITZ!Box 6490 Cable
- [FRITZ!Box 6591 Cable](https://en.avm.de/products/fritzbox/fritzbox-6591-cable/)
- [FRITZ!Box 7590](https://en.avm.de/products/fritzbox/fritzbox-7590/)
- [FRITZ!Box 7590 AX](https://en.avm.de/products/fritzbox/fritzbox-7590-ax/)
- [FRITZ!Box 6591 Cable][fritzbox_6591_cable]
- [FRITZ!Box 7590][fritzbox_7590]
- [FRITZ!Box 7590 AX][fritzbox_7590_ax]
- [FRITZ!Box 7530 AX][fritzbox_7530_ax]
- FRITZ!Box 7490
- FRITZ!Box 7430
- [FRITZ!DECT 200](https://en.avm.de/products/fritzdect/fritzdect-200/)
- [FRITZ!DECT 210](https://en.avm.de/products/fritzdect/fritzdect-210/)
- [FRITZ!DECT 301](https://en.avm.de/products/fritzdect/fritzdect-301/)
- [FRITZ!DECT 302](https://en.avm.de/products/fritzdect/fritzdect-302/)
- [FRITZ!DECT 500](https://en.avm.de/products/fritzdect/fritzdect-500/)
- [Eurotronic Comet DECT](https://eurotronic.org/produkte/dect-ule-heizkoerperthermostat/comet-dect/)
- [Magenta SmartHome LED E27 Color](https://www.smarthome.de/geraete/smarthome-led-lampe-e27-farbig-weiss)
- [FRITZ!DECT 200][fritzdect_200]
- [FRITZ!DECT 210][fritzdect_210]
- [FRITZ!DECT 301][fritzdect_301]
- [FRITZ!DECT 302][fritzdect_302]
- [FRITZ!DECT 500][fritzdect_500]
- [Eurotronic Comet DECT][eurotronic_comet_dect]
- [Magenta SmartHome LED E27 Color][magenta_led_e27_color]
- Magenta SmartHome LED E27 warmwhite
- [Rademacher RolloTron DECT 1213](https://www.rademacher.de/shop/rollladen-sonnenschutz/elektrischer-gurtwickler/rollotron-dect-1213)
- [Rademacher RolloTron DECT 1213][rademacher_rollotron_dect_1213]
{% include integrations/config_flow.md %}
{% note %}
The configuration in the UI asks for a username. Starting from FRITZ!OS 7.24 the FRITZ!Box creates a random username for the admin user if you didn't set one yourself. This can be found after logging into the FRITZ!Box and visiting System -> FRITZ!Box Users -> Users. The username starts with "fritz" followed by four random numbers. Under properties on the right it says "created automatically". Prior to FRITZ!OS 7.24 the default username was "admin".
The configuration asks for a username. Starting from FRITZ!OS 7.24 the FRITZ!Box creates a random username for the admin user if you didn't set one yourself. This can be found after logging into the FRITZ!Box and visiting **System** > **FRITZ!Box Users** > **Users**. The username starts with `fritz` followed by four random numbers. Under **Properties** on the right, it says **created automatically**. Prior to FRITZ!OS 7.24, the default username was `admin`.
{% endnote %}
## Switches & thermostats
### Light bulbs
To get AVM FRITZ!DECT switches (e.g. FRITZ!DECT 400/440) or thermostats (e.g. FRITZ!DECT 301) follow the [configuration instructions](#configuration) above.
Light bulbs like the [FRITZ!DECT 500][fritzdect_500] or [Magenta SmartHome LED E27 Color][magenta_led_e27_color] will be integrated as {% term light %} entities.
### Attributes
{% note %}
The [FRITZ!DECT 500][fritzdect_500] light bulb supports only 36 colors. When a color is picked in Home Assistant that is not supported by the device, a color that comes close will be activated.
{% endnote %}
There are several attributes that can be useful for automations and templates.
### Plugs
| Attribute | Description |
| --------- | ----------- |
| `device_locked` | The state of the key lock at the device.
| `locked` | The state of the lock for configuring the device via the app or the FRITZ!Box web interface.
| `low_battery` | The low battery state indication.
| `battery_level` | The battery level (only available since Fritz!OS 7).
| `holiday_mode` | The state of the holiday mode (only available since Fritz!OS 7).
| `summer_mode` | The state of the summer mode (only available since Fritz!OS 7).
| `window_open` | The state of the window open detection (only available since Fritz!OS 7).
Plugs like the [FRITZ!DECT 200][fritzdect_200] or [FRITZ!DECT 210][fritzdect_210] will be integrated as {% term switch %} entities.
## Sensors
Further there are additional {% term sensor %} and {% term binary_sensor "binary sensor" %} entities created for each device, based on its capabilities:
To get AVM FRITZ!DECT sensors (e.g., FRITZ!DECT Repeater 100) follow the [configuration instructions](#configuration) above.
There are multiple sensors defined, the availability depends on the features of the connected FRITZ!DECT devices
- Battery
- Comfort Temperature
- Current Scheduled Preset
- Eco Temperature
- Button lock via UI
- Button lock on device
- Electric Current
- Humidity
- Next Scheduled Change Time
- Next Scheduled Preset
- Next Scheduled Temperature
- Power Consumption
- Temperature
- Total Energy
- Voltage
### Attributes
### Shutter drivers
There are several attributes that can be useful for automations and templates.
Shutter drivers like the [Rademacher RolloTron DECT 1213][rademacher_rollotron_dect_1213] will be integrated as {% term cover %} entities.
### Templates
Self defined templates within the FRITZ!Box smart home configuration menu, will be integrated as {% term button %} entities and those can be triggered from within Home Assistant.
### Thermostats
Thermostats like the [FRITZ!DECT 301][fritzdect_301], [FRITZ!DECT 302][fritzdect_302] or [Eurotronic Comet DECT][eurotronic_comet_dect] will be integrated as {% term climate %} entities.
These entities can have several attributes that can be useful for {% term automations %} and {% term templates %}:
| Attribute | Description |
| --------- | ----------- |
| `device_locked` | The state of the key lock at the device.
| `locked` | The state of the lock for configuring the device via the app or the FRITZ!Box web interface.
| `battery_low` | The low battery state indication. |
| `battery_level` | The battery level (only available since Fritz!OS 7). |
| `holiday_mode` | The state of the holiday mode (only available since Fritz!OS 7). |
| `summer_mode` | The state of the summer mode (only available since Fritz!OS 7). |
| `window_open` | The state of the window open detection (only available since Fritz!OS 7). |
## Light
Further there are additional {% term sensor %} and {% term binary_sensor "binary sensor" %} entities created for each device, based on its capabilities:
To get AVM FRITZ!DECT lightbulbs (e.g., FRITZ!DECT 500) follow the [configuration instructions](#configuration) above.
- Battery
- Button lock via UI
- Button lock on device
- Comfort Temperature
- Current Scheduled Preset
- Eco Temperature
- Next Scheduled Change Time
- Next Scheduled Preset
- Next Scheduled Temperature
{% note %}
The FRITZ!DECT 500 lightbulb supports only 36 colors. When a color is picked in Home Assistant that is not supported by the device, a color that comes close will be activated.
{% endnote %}
### Other devices
## Cover
Some devices like the [FRITZ!DECT 440][fritzdect_440] can't be controlled via this integration, but its sensors can still be integrated.
To get AVM FRITZ!DECT compatible covers (e.g., Rademacher RolloTron DECT 1213) follow the [configuration instructions](#configuration) above.
The availability of these {% term sensor %} and {% term binary_sensor "binary sensor" %} entities depends on the features and capabilities of the connected device and can be one or multiple of:
## Template
- Battery
- Button lock via UI
- Button lock on device
- Humidity
- Temperature
To get AVM FRITZ! Templates (e.g., for your heating schedule) follow the [configuration instructions](#configuration) above.
[fritzbox_5590_fiber]: https://en.avm.de/products/fritzbox/fritzbox-5590-fiber
[fritzbox_6591_cable]: https://en.avm.de/products/fritzbox/fritzbox-6591-cable
[fritzbox_7590]: https://en.avm.de/products/fritzbox/fritzbox-7590
[fritzbox_7590_ax]: https://en.avm.de/products/fritzbox/fritzbox-7590-ax
[fritzbox_7530_ax]: https://en.avm.de/products/fritzbox/fritzbox-7530-ax
[fritzdect_200]: https://en.avm.de/products/smart-home/fritzdect-200
[fritzdect_210]: https://en.avm.de/products/smart-home/fritzdect-210
[fritzdect_301]: https://en.avm.de/products/smart-home/fritzdect-301
[fritzdect_302]: https://en.avm.de/products/smart-home/fritzdect-302
[fritzdect_440]: https://en.avm.de/products/smart-home/fritzdect-440
[fritzdect_500]: https://en.avm.de/products/smart-home/fritzdect-500
[eurotronic_comet_dect]: https://eurotronic.org/produkte/dect-ule-heizkoerperthermostat/comet-dect
[magenta_led_e27_color]: https://www.smarthome.de/geraete/smarthome-led-lampe-e27-farbig-weiss
[rademacher_rollotron_dect_1213]: https://www.rademacher.de/shop/rollladen-sonnenschutz/elektrischer-gurtwickler/rollotron-dect-1213
## Troubleshooting
In any case, when reporting an issue, please enable [debug logging](/docs/configuration/troubleshooting/#debug-logs-and-diagnostics), restart the integration, and as soon as the issue re-occurs stop the debug logging again (_download of debug log file will start automatically_). Further _if still possible_, please also download the [diagnostics](/integrations/diagnostics) data. If you have collected the debug log and the diagnostics data, provide them with the issue report.

View File

@ -150,14 +150,14 @@ On the configure page, you can set the language code of the interactions with Go
## Actions
### Action `google_assistant_sdk.send_text_command`
### Send text command
You can use the `google_assistant_sdk.send_text_command` action to send commands to Google Assistant.
| Data attribute | Optional | Description | Example |
| ---------------------- | -------- | ----------- | --------|
| `command` | no | Command(s) to send to Google Assistant. | turn off kitchen TV |
| `media_player` | yes | Name(s) of media player entities to play response on | media_player.living_room_speaker |
| Data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
| `command` | no | Command(s) to send to Google Assistant. |
| `media_player` | yes | Name(s) of media player entities to play response on |
Examples:

View File

@ -110,7 +110,11 @@ text_type:
default: "text"
{% endconfiguration %}
### Full example
### Action speak
The `tts.speak` action is the modern way to use Google Cloud TTS action. Add the `speak` action, select the entity for your Google Cloud TTS, select the media player entity or group to send the TTS audio to, and enter the message to speak.
For more options about `speak`, see the Speak section on the main [TTS](/integrations/tts/#action-speak) building block page.
A `tts.speak` service call can look like:
@ -136,6 +140,10 @@ data:
- wearable-class-device
```
## Action say (legacy)
The `tts.google_cloud_say` action can be used when configuring the legacy `google_cloud` text-to-speech platform in `configuration.yaml`. We recommend new users to instead set up the integration in the UI and use the `tts.speak` action with the corresponding Google Cloud text-to-speech entity as target. If you are an existing user of `tts.google_cloud_say`, you can still use it but don't remove the legacy `google_cloud` text-to-speech platform in `configuration.yaml`. If you remove it, you will have to manually migrate to `tts.speak`.
## Google Cloud speech-to-text
[Google Cloud speech-to-text](https://cloud.google.com/speech-to-text) converts audio into text transcriptions for [125 languages and variants](https://cloud.google.com/speech-to-text/docs/speech-to-text-supported-languages).

View File

@ -90,7 +90,7 @@ The tutorial is using OpenAI, but this could also be done with the Google Genera
## Actions
### Action `google_generative_ai_conversation.generate_content`
### Generate content
{% tip %}
This action isn't tied to any integration entry, so it won't use the model, prompt, or any of the other settings in your options. If you only want to pass text, you should use the `conversation.process` action.

View File

@ -123,6 +123,86 @@ Use a skill or spell from your Habitica character on a specific task to affect i
To use task aliases, make sure **Developer Mode** is enabled under [**Settings -> Site Data**](https://habitica.com/user/settings/siteData). Task aliases can only be edited via the **Habitica** web client.
## Automations
Get started with these automation examples for Habitica, each featuring ready-to-use blueprints!
### Create "Empty the dishwasher" to-do
Automatically create a Habitica to-do when the dishwasher finishes its cycle.
{% my blueprint_import badge blueprint_url="https://community.home-assistant.io/t/habitica-create-to-do-when-dishwasher-finishes-its-cycle/786625" %}
{% details "Example YAML configuration" %}
{% raw %}
```yaml
triggers:
- trigger: state
entity_id: sensor.dishwasher
from: "on"
to: "off"
actions:
- action: todo.add_item
data:
item: "Empty the dishwasher 🥣🍽️"
due_date: "{{now().date()}}"
description: "Empty the clean dishes from the dishwasher and load any dirty dishes that are waiting."
target:
entity_id: todo.habitica_to_dos
```
{% endraw %}
{% enddetails %}
### Complete toothbrushing tasks on your Habitica Dailies list
Automatically mark your morning and evening toothbrushing dailies as complete when your toothbrush usage is detected.
{% my blueprint_import badge blueprint_url="https://community.home-assistant.io/t/habitica-complete-toothbrushing-tasks-on-your-habitica-dailies-list/786631" %}
{% details "Example YAML configuration" %}
```yaml
triggers:
- trigger: state
entity_id: sensor.oralb_toothbrush_state
to: "running"
for:
hours: 0
minutes: 0
seconds: 10 # Time delay for debouncing to avoid false triggers
actions:
- choose:
- conditions:
- condition: time
after: "05:00:00"
before: "12:00:00"
sequence:
- action: todo.update_item
data:
item: "Brush your teeth in the morning 🪥"
status: completed
target:
entity_id: todo.habitica_dailies
- conditions:
- condition: time
after: "18:00:00"
before: "23:59:00"
sequence:
- action: todo.update_item
data:
item: "Brush your teeth before bed 🪥"
status: completed
target:
entity_id: todo.habitica_dailies
```
{% enddetails %}
## API Service
At runtime, you will be able to use the API for each respective user by their Habitica's username.

View File

@ -102,14 +102,7 @@ Resume suspended integration.
## Tested devices
Devices we know to be working with this integration based on the [documentation of used libraries](https://github.com/Salamek/huawei-lte-api/#huawei-lte-api) and reports by users:
It is the intention and highly likely that this integration works with all devices
[reported working with the underlying huawei-lte-api library](https://github.com/Salamek/huawei-lte-api#tested-on).
- Huawei B310s-22
- Huawei B315s-936
- Huawei B525s-23a
- Huawei E5186s-22a
- Huawei B618
- Huawei B529s-23a
- Huawei B535s
This is not a complete list. The integration can probably connect to other Huawei LTE devices running similar firmware.
It will not work on ones noted as not working in that list.

View File

@ -3,6 +3,11 @@ title: La Marzocco
description: Instructions on how to integrate your La Marzocco coffee machine with Home Assistant.
ha_release: 2024.2
ha_category:
- Binary sensor
- Calendar
- Number
- Select
- Sensor
- Switch
- Update
ha_iot_class: Cloud Polling
@ -24,12 +29,15 @@ ha_codeowners:
ha_integration_type: device
---
This integration interacts with [La Marzocco coffee machines](https://lamarzocco.com/it/en/) through calls to the LaMarzocco cloud API. Optionally, local API calls, which include a WebSocket connection for (near) real-time updates and a Bluetooth connection, can be utilized for local connections.
To be able to configure your machine in Home Assistant, your machine needs to be added to your account using the official La Marzocco app first. Currently, only login with username & password is supported. If you are currently using a social login, you need to create a new LaMarzocco account and transfer your machine to it to be able to use this integration.
This integration interacts with [La Marzocco](https://lamarzocco.com/it/en/) coffee machines through calls to the La Marzocco cloud API. Optionally, local API calls, which include a WebSocket connection for (near) real-time updates and a Bluetooth connection, can be utilized for local connections.
If your machine is in Bluetooth range to your Home Assistant host and the [Bluetooth](/integrations/bluetooth) integration is fully loaded, the machine will be discovered automatically.
## Prerequisites
- To be able to configure your machine in Home Assistant, your machine needs to be added to your account using the official La Marzocco app first.
- Only login with username & password is supported. If you are currently using a social login, you need to create a new La Marzocco account and transfer your machine to it to be able to use this integration.
{% include integrations/config_flow.md %}
@ -48,6 +56,7 @@ Host:
type: boolean
{% endconfiguration_basic %}
# Available platforms & entities
## Buttons
@ -88,7 +97,7 @@ Host:
| Sensor name | Description | Available for machines | Remarks |
|-------------|-------------| ---------------------- | ------- |
| Current coffee temperature | Current temperature of the coffee boiler | all | - |
| Current coffee temperature | Current temperature of the coffee boiler | all | When the machine reaches temperature, this will be approximately 3 degrees higher than the `Coffee target temperature`, due to different measurement points. |
| Current steam temperature| Current temperature of the steam boiler | Linea Micra, GS3 AV, GS3 MP | - |
| Total coffees made | Counter for total coffees made| all | - |
| Total flushes made | Counter for total flushes done | all | - |
@ -107,3 +116,73 @@ Host:
|-------------|-------------| ------------------------| ---------------------- |
| Prebrew/-infusion mode | Whether to use prebrew, preinfusion, or neither | Disabled, Prebrew, Preinfusion | Linea Micra, Linea Mini, GS3 AV |
| Steam level | The level your steam boiler should run at | 1,2,3 | Linea Micra |
## Supported devices
Currently, only devices from the **"Home"** range are supported:
- Linea Mini
- Linea Mini R
- Linea Micra
- GS3 AV
- GS3 MP
## Possible use-cases
- Control your machine through voice, allowing you to change boiler temperatures quickly without opening the app.
- Control your smart coffee scales (tare/timer start) when a brew starts.
- Turn on lights next to the machine while a brew is running.
## Automations
Get started with these automation examples.
### Turn steamboiler on when machine is turned on
I often drink milk beverages in the morning and espresso in the afternoon, but forget to re-enable the steamboiler again, so this automation ensures that the steam boiler is always turned on, when the machine is turned on.
{% details "Example YAML configuration" %}
{% raw %}
```yaml
alias: Turn steamboiler on when machine is turned on
description: Ensure the steamboiler is on, when the machine gets turned on
triggers:
- trigger: state
entity_id:
- switch.mr000000
from: "off"
to: "on"
conditions:
- condition: state
entity_id: switch.mr000000_steam_boiler
state: "off"
actions:
- action: switch.turn_on
target:
entity_id: switch.mr000000_steam_boiler
data: {}
mode: single
```
{% endraw %}
{% enddetails %}
## Known Limitations
- Only La Marzocco native app accounts are supported, social logins (Google, Apple & WeChat) are not supported
- Currently it is only possible to view the schedules configured in the La Marzocco Home app, but not to edit the schedules from Home Assistant. You can, of course, build Home Assistant native automations to reflect the same functionality in Home Assistant.
## Troubleshooting
{% details "Problem: Connection to machine is not possible" %}
Check the La Marzocco Home app to see if you can connect to your machine there. If not, remove the machine and add it again (follow the instructions in the La Marzocco App).
{% enddetails %}
{% details "Real time updates are not available" %}
Check the La Marzocco Home app to see if your machine is connected to Wi-Fi. Ensure Home Assistant can reach the machine. Ensure you configured the host option in the integration options.
{% enddetails %}

View File

@ -38,7 +38,7 @@ This will download the file from the given URL.
### Extract media URL action
There is also a action that will directly return the URL in the response of the action.
There is also an action that will directly return the URL in the response of the action.
| Data attribute | Optional | Description |
| ---------------------- | -------- | ------------------------------------------------------ |

View File

@ -36,6 +36,7 @@ Supported devices:
- F730
- S735
- F750
- S1255
- SMO40
- SMOS40
- VVM225

View File

@ -49,9 +49,9 @@ The `persistent_notification.create` action takes in `message`, `title`, and `no
| Data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
| `message` | no | Body of the notification. Accepts [templates](/docs/configuration/templating/).
| `title` | yes | Title of the notification. Accepts [templates](/docs/configuration/templating/).
| `notification_id` | yes | If `notification_id` is given, it will overwrite the notification if there already was a notification with that ID.
| `message` | no | Body of the notification. |
| `title` | yes | Title of the notification. |
| `notification_id` | yes | If `notification_id` is given, it will overwrite the notification if there already was a notification with that ID. |
Here is how an [action](/docs/automation/action) of your [automation setup](/getting-started/automation/) with static content could look like.

View File

@ -93,6 +93,13 @@ data:
When the Home Assistant Roku integration is enabled and a Roku device has been configured, in the Home Assistant UI the Roku media player will show a listing of the installed channels, or apps, under “source”. Select one and it will attempt to launch the channel on your Roku device.
{% include integrations/option_flow.md %}
{% configuration_basic %}
Play Media Application ID:
description: The application ID to use when launching media playback. This application must support the PlayOnRoku API.
{% endconfiguration_basic %}
## Source Automation
The `media_player.select_source` action may be used to launch specific applications/streaming channels on your Roku device.
@ -152,6 +159,54 @@ actions:
media_content_type: channel
```
## Play on Roku
The `media_player.play_media` action may be used to send media URLs (primarily videos) for direct playback on your device.
This feature makes use of the PlayOnRoku API. If you are using an older Roku OS (pre-11.5), the defaults of this integration should just work. Alternatively, you can configure a third-party application that supports the PlayOnRoku API via the `Play Media Roku Application ID` option.
The following third-party applications have been tested with this integration:
- [Media Assistant](https://channelstore.roku.com/details/625f8ef7740dff93df7d85fc510303b4/media-assistant) (ID: 782875)
| Service data attribute | Optional | Description | Example |
| ---------------------- | -------- | ----------- | ------- |
| `entity_id` | no | Target a specific media player. |
| `media_content_id` | no | A media URL. | `http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4`
| `media_content_type` | no | A media type. | `url`
| `extra.format` | no | A media format. It should be one of `mp4` (supports mov and m4v), `mp3`, `hls`, `ism` (smooth streaming), `dash` (MPEG-DASH), `mkv`, `mka`, `mks` | `mp4`
| `extra.name` | yes | A name for the media. | Big Buck Bunny
| `extra.thumbnail` | yes | A thumbnail URL for the media. |
| `extra.artist_name` | yes | The name of the media artist. | Blender
### Example
```yaml
actions:
- action: media_player.play_media
target:
entity_id: media_player.roku
data:
media_content_id: "http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4"
media_content_type: url
extra:
format: "mp4"
name: "Big Buck Bunny"
```
## Camera Stream Integration
The `camera.play_stream` action may be used to send camera streams (HLS) directly to your device. This feature requires the [`stream` integration](/integrations/stream) and makes use of the PlayOnRoku API.
### Example
```yaml
actions:
- action: camera.play_stream
target:
entity_id: camera.camera
data:
media_player: media_player.roku
```
## Content Deeplinking
The `media_player.play_media` action may be used to deep-link to content within an application.

View File

@ -23,13 +23,13 @@ ha_quality_scale: platinum
This integration interacts with your [Tedee](https://tedee.com) locks by communicating with the Tedee bridge through HTTP. The integration will communicate with your lock locally.
## Pre-requisites
## Prerequisites
- You will need the bridge to add your locks using this integration.
- You need to have the local API enabled.
- The bridge firmware needs to be at least version `2.2.18086` for push updates to work without errors.
If you do not own the bridge, you can still add your locks to Home Assistant through the [HomeKit device integration](/integrations/homekit_controller/). Communication will happen over Bluetooth in that case, and features will be limited.
If you do not own the bridge, you can still add your locks to Home Assistant through the [HomeKit device integration](/integrations/homekit_controller/) (only for PRO model). Communication will happen over Bluetooth in that case, and features will be limited.
{% note %}
The integration will try to configure callbacks to receive near-real-time push updates from your bridge about your lock state changes. For this to work properly, the bridge must be able to reach your Home Assistant instance. It will prefer the configured `internal_url`, so ensure this address is reachable from your bridge on your network.
@ -48,10 +48,74 @@ Local Access Token:
type: string
{% endconfiguration_basic %}
## Supported devices
This integration supports
- Tedee PRO
- Tedee GO
## Binary sensors
We have three binary sensors: One that indicates whether the battery is currently charging, one indicating if the pull spring is enabled, and one indicating whether the lock is in a "semi-locked" position, meaning the lock has been turned manually and between its normal end positions.
- **Charging**: indicates whether the battery is currently charging.
- **Pullspring enabled**: indicates whether the pull spring setting is enabled.
- **Semi locked**: indicates whether the lock is in a "semi-locked" position. "Semi-locked" means the lock has been turned manually and is between its normal end positions. The lock itself will be unavailable in this position.
- **Lock uncalibrated** (disabled by default): Shows when the lock is in an "uncalibrated state".
## Sensors
The integration currently offers two sensors: A battery sensor, indicating the charge of your lock, and a "pull spring duration" sensor, indicating how long (in seconds) your latch will stay pulled after a pull operation (if supported).
The integration currently offers two sensors: A **battery** sensor, indicating the charge of your lock, and a **"pull spring duration"** sensor, indicating how long (in seconds) your latch will stay pulled after a pull operation (if supported).
## Possible use-cases
- Auto lock/unlock the door based on presence
- Control your lock from smart home panels
- Get alerts when battery is low
## Automations
Get started quickly with these automation examples.
### Automatically lock the door when the last person leaves home
{% details "Example YAML configuration" %}
{% raw %}
```yaml
alias: Lock door when last person leaves
description: Lock the door when last person leaves the home
mode: single
triggers:
- trigger: state
entity_id:
- zone.home
to: "0"
conditions: []
actions:
- action: lock.lock
metadata: {}
data: {}
target:
entity_id: lock.lock_a1b2
```
{% endraw %} {% enddetails %}
## Known Limitations
This integration only supports functionality that is available locally. This means that the following elements are not supported:
- Activity logs
- Updates
- Key pads
## Troubleshooting
{% details "Lock state is not updated in real-time" %}
Make sure your bridge can reach your Home Assistant instance. This means that if you use separate VLANs, you need to configure your Firewall appropriately. Additionally, if you have configured an SSL-enabled endpoint for your Internal URL ({% my network title="Settings > System > Network" %}> Home Assistant URL), try setting it back to the IP address of your instance (or a non-HTTPS URL), as HTTPS sometimes leads to problems with the push updates.
{% enddetails %}
{% details "Authentication failures when trying to use the integration" %}
The token that is used to talk to your lock is time limited. Sometimes there were issues when the clock of the Home Assistant host was slightly out of sync, so try to sync your host's clock.
{% enddetails %}

View File

@ -29,6 +29,38 @@ ha_integration_type: hub
[UniFi Network](https://www.ui.com/download-software/) by [Ubiquiti Networks, inc.](https://www.ui.com/) is a software that binds gateways, switches and wireless access points together with one graphical front end.
## Prerequisites
### Hardware support
This integration supports all UniFi OS Consoles that run UniFi Network. It also supports self hosted versions of UniFi Network.
### Software support
It is recommended to run latest stable versions of UniFi Network and UniFi OS.
{% important %}
**Early Access and Release Candidate versions are not supported by Home Assistant.**
Using Early Access Release Candidate versions of UniFi Network or UniFi OS can bring unexpected changes. If you choose to opt into either the Early Access or the Release Candidate release channel and anything breaks in Home Assistant, you will need to wait until that version goes to the official Stable Release channel before it is expected to work.
{% endimportant %}
### Local user
You will need a local user created in your UniFi OS Console to log in with. Ubiquiti SSO Cloud Users will **not** work.
It is recommended you use the Administrator or a user with full read/write access to get the most out of the integration,
but it is not required. The entities that are created will automatically adjust based on the permissions of the user you
use has.
1. Login to your _Local Portal_ on your UniFi OS device, and select **Users**.
- **Note**: This **must** be done from the UniFi OS by accessing it directly by IP address (i.e. _Local Portal_), not via `unifi.ui.com` or within the UniFi Network app.
2. Go to **Admins & Users** from the left hand side menu or [IP address]/admins/users e.g. 192.168.1.1/admins/users.
3. Select **Add New Admin**.
4. Check **Restrict to local access only** and fill out the fields for your user. Select **Full Management** for **Network**. **OS Settings** are not used, so they can be set to **None**.
5. In the bottom right, select **Add**.
![UniFi OS User Creation](/images/integrations/unifi/user.png)
There is currently support for the following device types within Home Assistant:
- [Button](#button)
@ -41,28 +73,16 @@ There is currently support for the following device types within Home Assistant:
{% include integrations/config_flow.md %}
The user needs administrator privileges in order to control switches.
{% note %}
**Permissions**: The below sections on the features available to your Home Assistant instance assume you have full
write access to each device. If the user you are using has limited access to some devices, you will get fewer entities
and in many cases, get a read-only sensor instead of an editable switch {% term entity %}.
{% endnote %}
### Extra configuration of the integration
All configuration options are offered from the front end. Enter what UniFi Network {% term integration %} you want to change options on and press the cog wheel. Some advanced options are available when "Advanced Mode" is enabled on your user profile page.
### Configuring Users
The UniFi Network application allows you to create multiple users on it besides the main administrator. If all you want to use is the device tracker then it is recommended that you create a limited user that has `read-only` permissions for the UniFi Network device tracker. If you want blocking of network access, POE control, or firmware upgrades as well you would need to have 'admin' permissions.
If you want to create a local-only user, you need to switch to the classic UniFi interface for the option to become available.
### UniFi OS
For UniFi OS a local-only user needs to be created. A user who uses the Ubiquiti cloud will not work. You can do this in the manage users section on the UniFi OS dashboard. Make sure to give it the right permissions for the functions you want to use. Note the Dream Machine Pro and Cloud Key Gen2 plus updated to UniFi OS needs the port to be 443. For some self hosted servers the port will be 8443.
### Conflicts with MQTT
The UniFi Network application can either be a UniFi OS console device (like the Cloud Key), or as software on any Linux system. If you run the UniFi Network application on the same operating system as Home Assistant there may be conflicts in ports if you have the MQTT {% term integration %} as well.
It is recommended that you run the UniFi Network application in a dedicated virtual machine to avoid that situation.
## Button
The Button entities will only be available and usable if the integration has a UniFi Network account with administrator privileges.
@ -200,12 +220,4 @@ logger:
logs:
aiounifi: debug
homeassistant.components.unifi: debug
homeassistant.components.device_tracker.unifi: debug
homeassistant.components.switch.unifi: debug
```
## FAQ
### Understanding UniFi Naming (UniFi Network application is the UniFi Controller)
Network management has always been Ubiquiti's main product and so UniFi for a while was always synonymous with their "UniFi Controller" application. However, UniFi has started branching and releasing other apps, like Protect, Talk and Access. As a result, Ubiquiti has started rebranding "UniFi Controller" as the "UniFi Network" application. [This post on the UniFi community](https://community.ui.com/questions/Clarifying-UniFi-Hardware-and-Software-Terminology/2557963a-e79d-4157-a78c-36d3f7b383fb) explains it pretty well. **This main UniFi Integration is _only_ for the UniFi Network application.**

View File

@ -29,21 +29,21 @@ A weather {% term entity %}'s state is used to indicate the current overall cond
The `weather` {% term entity %} can provide the conditions listed below as its state:
- **Clear-night**: The sky is clear during the night.
- **Cloudy**: There are many clouds in the sky.
- **Fog**: There is a thick mist or fog reducing visibility.
- **Hail**: Hailstones are falling.
- **Lightning**: Lightning/thunderstorms are occurring.
- **Lightning-rainy**: Lightning/thunderstorm is occurring along with rain.
- **Partly cloudy**: The sky is partially covered with clouds.
- **Pouring**: It is raining heavily.
- **Rainy**: It is raining.
- **Snowy**: It is snowing.
- **Snowy-rainy**: It is snowing and raining at the same time.
- **Sunny**: The sky is clear and the sun is shining.
- **Windy**: It is windy.
- **Windy-variant**: It is windy and cloudy.
- **Exceptional**: Exceptional weather conditions are occurring.
- **Clear, night**: The sky is clear during the night. `clear-night`.
- **Cloudy**: There are many clouds in the sky. `cloudy`.
- **Fog**: There is a thick mist or fog reducing visibility. `fog`.
- **Hail**: Hailstones are falling. `hail`.
- **Lightning**: Lightning/thunderstorms are occurring. `lighting`.
- **Lightning, rainy**: Lightning/thunderstorm is occurring along with rain. `lightning-rainy`.
- **Partly cloudy**: The sky is partially covered with clouds. `partlycloudy`.
- **Pouring**: It is raining heavily. `pouring`.
- **Rainy**: It is raining. `rainy`.
- **Snowy**: It is snowing. `snowy`.
- **Snowy, rainy**: It is snowing and raining at the same time. `snowy-rainy`.
- **Sunny**: The sky is clear and the sun is shining. `sunny`.
- **Windy**: It is windy. `windy`.
- **Windy, cloudy**: It is windy and cloudy. `windy-variant`.
- **Exceptional**: Exceptional weather conditions are occurring. `exceptional`.
### State attributes
@ -73,9 +73,9 @@ wind_speed_unit: km/h
This action populates [response data](/docs/scripts/perform-actions#use-templates-to-handle-response-data)
with a mapping of weather services and their associated forecasts.
| Data attribute | Optional | Description | Example |
| ---------------------- | -------- | ----------- | --------|
| `type` | no | The type of forecast, must be one of `daily`, `twice_daily`, or `hourly`. The default is `daily`. | daily
| Data attribute | Optional | Description | Example |
| -------------- | -------- | ------------------------------------------------------------------------------------------------- | ------- |
| `type` | no | The type of forecast, must be one of `daily`, `twice_daily`, or `hourly`. The default is `daily`. | daily |
```yaml
action: weather.get_forecasts
@ -91,24 +91,24 @@ response_variable: weather_forecast
The response data field is a mapping of called target entities, each containing the `forecast` field.
`forecast` is a list of forecasted conditions at a given point in time:
| Response data | Description | Example |
| ---------------------- | ----------- | -------- |
| `datetime` | The time of the forecasted conditions. | 2023-02-17T14:00:00+00:00
| `is_daytime` | Only set for `twice_daily` forecasts. | False
| `apparent_temperature` | The apparent (feels-like) temperature in the unit indicated by the `temperature_unit` state attribute. | 10.2
| `cloud_coverage` | The cloud coverage in %. | 15
| `condition` | The weather condition. | Sunny
| `dew_point` | The dew point temperature in the unit indicated by the `temperature_unit` state attribute. | 6.0
| `humidity` | The relative humidity in %. | 82
| `precipitation_probability` | The probability of precipitation in %. | 0
| `precipitation` | The precipitation amount in the unit indicated by the `precipitation_unit` state attribute. | 0
| `pressure` | The air pressure in the unit indicated by the `pressure_unit` state attribute. | 1019
| `temperature` | The temperature in the unit indicated by the `temperature_unit` state attribute. If `templow` is also provided, this is the higher temperature. | 14.2
| `templow` | The lower temperature in the unit indicated by the `temperature_unit` state attribute. | 5.0
| `uv_index` | The UV index. | 3
| `wind_bearing` | The wind bearing in azimuth angle (degrees) or 1-3 letter cardinal direction. | 268
| `wind_gust_speed` | The wind gust speed in the unit indicated by the `wind_speed_unit` state attribute. | 34.41
| `wind_speed` | The wind speed in the unit indicated by the `wind_speed_unit` state attribute. | 24.41
| Response data | Description | Example |
| --------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------- |
| `datetime` | The time of the forecasted conditions. | 2023-02-17T14:00:00+00:00 |
| `is_daytime` | Only set for `twice_daily` forecasts. | False |
| `apparent_temperature` | The apparent (feels-like) temperature in the unit indicated by the `temperature_unit` state attribute. | 10.2 |
| `cloud_coverage` | The cloud coverage in %. | 15 |
| `condition` | The weather condition. | Sunny |
| `dew_point` | The dew point temperature in the unit indicated by the `temperature_unit` state attribute. | 6.0 |
| `humidity` | The relative humidity in %. | 82 |
| `precipitation_probability` | The probability of precipitation in %. | 0 |
| `precipitation` | The precipitation amount in the unit indicated by the `precipitation_unit` state attribute. | 0 |
| `pressure` | The air pressure in the unit indicated by the `pressure_unit` state attribute. | 1019 |
| `temperature` | The temperature in the unit indicated by the `temperature_unit` state attribute. If `templow` is also provided, this is the higher temperature. | 14.2 |
| `templow` | The lower temperature in the unit indicated by the `temperature_unit` state attribute. | 5.0 |
| `uv_index` | The UV index. | 3 |
| `wind_bearing` | The wind bearing in azimuth angle (degrees) or 1-3 letter cardinal direction. | 268 |
| `wind_gust_speed` | The wind gust speed in the unit indicated by the `wind_speed_unit` state attribute. | 34.41 |
| `wind_speed` | The wind speed in the unit indicated by the `wind_speed_unit` state attribute. | 24.41 |
## Examples

View File

@ -113,7 +113,7 @@ Can be configured on the WLED itself under
Toggles the synchronization between multiple WLED devices.
Can be configured on the WLED itself under
**Ssettings** > **Sync Interfaces** > **WLED Broadcast**.
**Settings** > **Sync Interfaces** > **WLED Broadcast**.
[WLED Sync documentation](https://kno.wled.ge/interfaces/udp-realtime/)

View File

@ -101,7 +101,6 @@ Some other Zigbee coordinator hardware may not support a firmware that is capabl
- Texas Instruments based radios (via the [zigpy-znp](https://github.com/zigpy/zigpy-znp) library for zigpy)
- [CC2652P/CC2652R/CC2652RB USB stick, module, or dev board hardware flashed with Z-Stack coordinator firmware](https://www.zigbee2mqtt.io/guide/adapters/)
- [CC1352P/CC1352R USB stick, module, or dev board hardware flashed with Z-Stack coordinator firmware](https://www.zigbee2mqtt.io/guide/adapters/)
- [XZG - Universal Firmware for Zigbee Gateway](https://xzg.xyzroe.cc/)
- dresden elektronik deCONZ based Zigbee radios (via the [zigpy-deconz](https://github.com/zigpy/zigpy-deconz) library for zigpy)
- [ConBee III (a.k.a. ConBee 3) USB adapter from dresden elektronik](https://phoscon.de/conbee3)

View File

@ -56,6 +56,7 @@ Enjoy the release!
- [2024.10.1 - October 4](#2024101---october-4)
- [2024.10.2 - October 11](#2024102---october-11)
- [2024.10.3 - October 18](#2024103---october-18)
- [2024.10.4 - October 25](#2024104---october-25)
- [Need help? Join the community!](#need-help-join-the-community)
- [Backward-incompatible changes](#backward-incompatible-changes)
- [All changes](#all-changes)
@ -738,6 +739,81 @@ every Friday.
[@puddly]: https://github.com/puddly
[@silamon]: https://github.com/silamon
### 2024.10.4 - October 25
- Fix evohome regression preventing helpful messages when setup fails ([@zxdavb] - [#126441])
- Handle temprorary hold in Honeywell ([@mkmer] - [#128460])
- Bump ring-doorbell to 0.9.7 ([@sdb9696] - [#127554])
- Bump ring-doorbell library to 0.9.8 ([@sdb9696] - [#128662])
- Add diagnostics to Comelit SimpleHome ([@chemelli74] - [#128794])
- Bump pyTibber to 0.30.3 ([@Danielhiversen] - [#128860])
- Add diagnostics to Vodafone Station ([@chemelli74] - [#128923])
- Bump pyduotecno to 2024.10.1 ([@cereal2nd] - [#128968])
- Fix uptime floating values for Vodafone Station ([@chemelli74] - [#128974])
- Fix cancellation leaking upward from the timeout util ([@bdraco] - [#129003])
- Fix devolo_home_network devices not reporting a MAC address ([@Shutgun] - [#129021])
- Bump yt-dlp to 2024.10.22 ([@joostlek] - [#129034])
- Remove DHCP match from awair ([@AlD] - [#129047])
- Update frontend to 20241002.4 ([@bramkragten] - [#129049])
- Partially revert "LLM Tool parameters check (#123621)" ([@tronikos] - [#129064])
- Fix adding multiple devices simultaneously to devolo Home Network's device tracker ([@Shutgun] - [#129082])
- Fix NYT Games connection max streak ([@joostlek] - [#129149])
- Bump nyt_games to 0.4.4 ([@joostlek] - [#129152])
[#126441]: https://github.com/home-assistant/core/pull/126441
[#126782]: https://github.com/home-assistant/core/pull/126782
[#127554]: https://github.com/home-assistant/core/pull/127554
[#127566]: https://github.com/home-assistant/core/pull/127566
[#128176]: https://github.com/home-assistant/core/pull/128176
[#128460]: https://github.com/home-assistant/core/pull/128460
[#128654]: https://github.com/home-assistant/core/pull/128654
[#128662]: https://github.com/home-assistant/core/pull/128662
[#128794]: https://github.com/home-assistant/core/pull/128794
[#128860]: https://github.com/home-assistant/core/pull/128860
[#128923]: https://github.com/home-assistant/core/pull/128923
[#128968]: https://github.com/home-assistant/core/pull/128968
[#128974]: https://github.com/home-assistant/core/pull/128974
[#129003]: https://github.com/home-assistant/core/pull/129003
[#129021]: https://github.com/home-assistant/core/pull/129021
[#129034]: https://github.com/home-assistant/core/pull/129034
[#129047]: https://github.com/home-assistant/core/pull/129047
[#129049]: https://github.com/home-assistant/core/pull/129049
[#129064]: https://github.com/home-assistant/core/pull/129064
[#129082]: https://github.com/home-assistant/core/pull/129082
[#129149]: https://github.com/home-assistant/core/pull/129149
[#129152]: https://github.com/home-assistant/core/pull/129152
[@AlD]: https://github.com/AlD
[@Danielhiversen]: https://github.com/Danielhiversen
[@Shutgun]: https://github.com/Shutgun
[@bdraco]: https://github.com/bdraco
[@bramkragten]: https://github.com/bramkragten
[@cereal2nd]: https://github.com/cereal2nd
[@chemelli74]: https://github.com/chemelli74
[@frenck]: https://github.com/frenck
[@joostlek]: https://github.com/joostlek
[@mkmer]: https://github.com/mkmer
[@sdb9696]: https://github.com/sdb9696
[@tronikos]: https://github.com/tronikos
[@zxdavb]: https://github.com/zxdavb
[abode docs]: /integrations/abode/
[accuweather docs]: /integrations/accuweather/
[acmeda docs]: /integrations/acmeda/
[actiontec docs]: /integrations/actiontec/
[adax docs]: /integrations/adax/
[ads docs]: /integrations/ads/
[awair docs]: /integrations/awair/
[comelit docs]: /integrations/comelit/
[devolo_home_network docs]: /integrations/devolo_home_network/
[duotecno docs]: /integrations/duotecno/
[evohome docs]: /integrations/evohome/
[frontend docs]: /integrations/frontend/
[honeywell docs]: /integrations/honeywell/
[media_extractor docs]: /integrations/media_extractor/
[nyt_games docs]: /integrations/nyt_games/
[ring docs]: /integrations/ring/
[tibber docs]: /integrations/tibber/
[vodafone_station docs]: /integrations/vodafone_station/
## Need help? Join the community!
Home Assistant has a great community of users who are all more than willing

View File

@ -0,0 +1,48 @@
---
layout: post
title: "Help us make voice better in under a minute"
description: "Weve built a tool to allow you to help us make local and private voice better for all languages."
date: 2024-10-24 00:00:01
date_formatted: "October 24, 2024"
author: Mike Hansen
comments: true
categories: Assist
og_image: /images/blog/2024-10-wake-word-collective/art.jpg
---
<img src='/images/blog/2024-10-wake-word-collective/art.jpg' alt="Help us improve voice">
Give us a minute of your time and [lend your voice](https://ohf-voice.github.io/wake-word-collective/) to improve our community-driven, privacy-focused voice assistant, and together we'll break big tech's stranglehold on home voice control.
When you use Home Assistant Assist we'll never take your data unwillingly to improve its functionality; that's why we're asking for your help today (more on that below).
Specifically, we're trying to improve our wake word engine, which "wakes" the device to listen for more commands. Our open source [microWakeWord](https://github.com/kahrendt/microWakeWord) engine is an incredible, lightweight bit of code but requires training with real voices to improve. Everyone's voice is unique, and we need recordings of people of all genders, ages, and accents from around the world saying this wake word. So get the whole home involved, along with friends and family.
[**Help us today**](https://ohf-voice.github.io/wake-word-collective/)
<!--more-->
## Your voice, your choice
Privacy is at the core of everything we do, and that's what's driving us to build an open, local, and private voice assistant. Years ago a voice assistant arms race began between a couple of big tech companies, where they sold very cheap voice hardware, all because they wanted your data. They used that voice data to rapidly improve their voice capabilities (and who knows what else) at [the expense of your privacy](https://www.bbc.co.uk/news/technology-47893082).
We will never use those tactics to improve Home Assistant. We do something novel and bewildering to the smart home industry - we explicitly ask for your help. For instance, Home Assistant has [opt-in statistics](https://analytics.home-assistant.io/); these really help us focus on what people are using and put resources into making the biggest impact. When you [opt-in it really helps](/integrations/analytics/), but we totally understand if you don't - it's your home and your data. We're doing the same with voice, explicitly asking for help, and would love your help to improve its wake word capability.
What big tech might consider a weakness is actually our greatest strength - privacy empowers our users, allowing them to not worry about being tracked or classified by an algorithm.
## microWakeWord goes global
microWakeWord is a very lightweight wake word engine that can run on ESP32-class devices. This allows the voice assistant to listen for a specific phrase, for instance "Okay Nabu", and ignore all other noise and speech until it hears that. Running it on-device speeds everything up significantly, cutting out the lag from streaming audio continuously to a more powerful device running wake word software. The downside to running it on-device is the amount of training required to get good results.
A few months ago, we promoted an early version of this Wake Word Collective tool in the Open Home Foundation newsletter ([subscribe if you haven't already](https://newsletter.openhomefoundation.org/)). From that one email alone, we received over 5,800 samples covering 30 different languages. While microWakeWord used to only excel at picking up the English pronunciation of "Okay Nabu", it's now many times more effective at picking up different accents. Our testing shows our model trained on this data falsely rejects 5% of samples, while previous models rejected 18%, which shows your samples are making a difference!
We still need more different types of voices from different parts of the world. If you or your family use Assist and find it still struggling to wake up to hear your commands, this is the perfect opportunity to lend your voice to the project.
## How it works
Before you start recording you will fill in what language you're most comfortable speaking, allowing us to train language-specific wake word models that are better at detecting subtle differences in pronunciation. You must also read and agree to the [Wake Word Collective terms](https://ohf-voice.github.io/wake-word-collective/terms.html). This explains, among other things, that these recordings will be made available publicly under a Creative Commons CC0 public domain dedication. We operate our research openly for the benefit of all, and that is why these will be available to the public.
<img src='/images/blog/2024-10-wake-word-collective/demo.gif' alt="Animation showing how to use the wake word collective tool">
Next, it explains that you only need you to say two words,  "Okay, Nabu", a couple of times.  You'll need to set down your phone, tablet, or laptop, and walk around the room, saying the wake word whenever the circle on the screen turns green. Taking samples from all around the room better reflects the real-world use of a voice assistant. Don't worry about background noise; it's useful for training.
I said this would only take a minute, but you've probably been reading this for longer, so go on and [get recording](https://ohf-voice.github.io/wake-word-collective/).

View File

@ -1428,6 +1428,81 @@ For a summary in a more readable format:
[@puddly]: https://github.com/puddly
[@silamon]: https://github.com/silamon
## Release 2024.10.4 - October 25
- Fix evohome regression preventing helpful messages when setup fails ([@zxdavb] - [#126441])
- Handle temprorary hold in Honeywell ([@mkmer] - [#128460])
- Bump ring-doorbell to 0.9.7 ([@sdb9696] - [#127554])
- Bump ring-doorbell library to 0.9.8 ([@sdb9696] - [#128662])
- Add diagnostics to Comelit SimpleHome ([@chemelli74] - [#128794])
- Bump pyTibber to 0.30.3 ([@Danielhiversen] - [#128860])
- Add diagnostics to Vodafone Station ([@chemelli74] - [#128923])
- Bump pyduotecno to 2024.10.1 ([@cereal2nd] - [#128968])
- Fix uptime floating values for Vodafone Station ([@chemelli74] - [#128974])
- Fix cancellation leaking upward from the timeout util ([@bdraco] - [#129003])
- Fix devolo_home_network devices not reporting a MAC address ([@Shutgun] - [#129021])
- Bump yt-dlp to 2024.10.22 ([@joostlek] - [#129034])
- Remove DHCP match from awair ([@AlD] - [#129047])
- Update frontend to 20241002.4 ([@bramkragten] - [#129049])
- Partially revert "LLM Tool parameters check (#123621)" ([@tronikos] - [#129064])
- Fix adding multiple devices simultaneously to devolo Home Network's device tracker ([@Shutgun] - [#129082])
- Fix NYT Games connection max streak ([@joostlek] - [#129149])
- Bump nyt_games to 0.4.4 ([@joostlek] - [#129152])
[#126441]: https://github.com/home-assistant/core/pull/126441
[#126782]: https://github.com/home-assistant/core/pull/126782
[#127554]: https://github.com/home-assistant/core/pull/127554
[#127566]: https://github.com/home-assistant/core/pull/127566
[#128176]: https://github.com/home-assistant/core/pull/128176
[#128460]: https://github.com/home-assistant/core/pull/128460
[#128654]: https://github.com/home-assistant/core/pull/128654
[#128662]: https://github.com/home-assistant/core/pull/128662
[#128794]: https://github.com/home-assistant/core/pull/128794
[#128860]: https://github.com/home-assistant/core/pull/128860
[#128923]: https://github.com/home-assistant/core/pull/128923
[#128968]: https://github.com/home-assistant/core/pull/128968
[#128974]: https://github.com/home-assistant/core/pull/128974
[#129003]: https://github.com/home-assistant/core/pull/129003
[#129021]: https://github.com/home-assistant/core/pull/129021
[#129034]: https://github.com/home-assistant/core/pull/129034
[#129047]: https://github.com/home-assistant/core/pull/129047
[#129049]: https://github.com/home-assistant/core/pull/129049
[#129064]: https://github.com/home-assistant/core/pull/129064
[#129082]: https://github.com/home-assistant/core/pull/129082
[#129149]: https://github.com/home-assistant/core/pull/129149
[#129152]: https://github.com/home-assistant/core/pull/129152
[@AlD]: https://github.com/AlD
[@Danielhiversen]: https://github.com/Danielhiversen
[@Shutgun]: https://github.com/Shutgun
[@bdraco]: https://github.com/bdraco
[@bramkragten]: https://github.com/bramkragten
[@cereal2nd]: https://github.com/cereal2nd
[@chemelli74]: https://github.com/chemelli74
[@frenck]: https://github.com/frenck
[@joostlek]: https://github.com/joostlek
[@mkmer]: https://github.com/mkmer
[@sdb9696]: https://github.com/sdb9696
[@tronikos]: https://github.com/tronikos
[@zxdavb]: https://github.com/zxdavb
[abode docs]: /integrations/abode/
[accuweather docs]: /integrations/accuweather/
[acmeda docs]: /integrations/acmeda/
[actiontec docs]: /integrations/actiontec/
[adax docs]: /integrations/adax/
[ads docs]: /integrations/ads/
[awair docs]: /integrations/awair/
[comelit docs]: /integrations/comelit/
[devolo_home_network docs]: /integrations/devolo_home_network/
[duotecno docs]: /integrations/duotecno/
[evohome docs]: /integrations/evohome/
[frontend docs]: /integrations/frontend/
[honeywell docs]: /integrations/honeywell/
[media_extractor docs]: /integrations/media_extractor/
[nyt_games docs]: /integrations/nyt_games/
[ring docs]: /integrations/ring/
[tibber docs]: /integrations/tibber/
[vodafone_station docs]: /integrations/vodafone_station/
[#102371]: https://github.com/home-assistant/core/pull/102371
[#106570]: https://github.com/home-assistant/core/pull/106570
[#112806]: https://github.com/home-assistant/core/pull/112806

View File

@ -9,11 +9,17 @@ This section provides tasks that do not depend on a specific Home Assistant inst
## Defining a custom polling interval
Creating an automation for polling gives you more flexibility on when to poll.
If you want to define a specific interval at which your device is being polled for data, you can disable the default polling interval and create your own polling automation.
Why use an automation instead of changing the integration's configuration for polling?
## What is data polling?
1. Not all integrations have a configurable polling interval. The homassistant.update_entity service on the other hand works with most of the integrations, no code changes required.
Data polling is the process of querying a device or service at regular intervals to check for updates or retrieve data. By defining a custom polling interval, you can control how frequently your system checks for new data, which can help optimize performance and reduce unnecessary network traffic.
## Why use an automation instead of changing the integration's polling configuration?
Creating an automation for polling gives you more flexibility on when to poll:
1. Not all integrations have a configurable polling interval. The homeassistant.update_entity service, on the other hand, works with most of the integrations; no code changes are required.
2. An automation allows you to poll whenever you want. For example, if you have a rate-limited solar panel provider with a maximum number of requests per day, you may want to lower/stop the polling at night but poll more frequently during the day.
{% include common-tasks/define_custom_polling.md %}

View File

@ -17,13 +17,16 @@ After Home Assistant has been [installed](/installation/) on your device, there
- **Option 1: new installation**: If this is your initial installation, we will now create the owner's account of Home Assistant.
- {% icon "mdi:information-outline" %} This account is an administrator account. It will always be able to change everything.
- Select **Create my smart home**.
![Home Assistant preparation](/images/getting-started/onboarding_preparing_02.png)
- Enter a name, username, and password.
- Make sure the username is lowercase and contains no whitespace.
- {% icon "mdi:info" %} **Info**: The **Name** is the name of the person the is shown in the UI. The username is used for login.
![Set your username and password.](/images/getting-started/onboarding_username.png)
- Store the name, username, and password somewhere safe. There is no way to recover the owner credentials.
- Select **Create account**.
![Set your username and password.](/images/getting-started/username.png)
- **Option 2: restore from backup**: If you want to restore a backup of a previous installation, select **Restore from backup**.
- Ignore the rest of this procedure and continue with the procedure on [restoring from backup](/common-tasks/os/#restoring-a-backup).
- If you have a Home Assistant Yellow, start with the [Yellow documentation on restoring from backup](https://yellow.home-assistant.io/guides/restore-backup/).

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 120 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 462 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 55 KiB

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 104 KiB

View File

@ -22,6 +22,10 @@ homeassistant:
recording: /mnt/recordings
```
The above example adds two media folders to Home Assistant. They will
show up as "media" and "recording" in the media browser. You can add
as many media folders as you like, using any name you want.
## Home Assistant Container
If you run the Home Assistant Container you'll need to

View File

@ -2,30 +2,80 @@
title: "Assist on Apple devices"
---
Assist is integrated via [Home Assistant Companion](https://apps.apple.com/us/app/home-assistant/id1099568401) into Apple devices using the [Shortcuts app](https://support.apple.com/guide/shortcuts/welcome/ios). Assist can be used in the following ways on Apple devices:
Assist can be used on Apple devices via [Home Assistant Companion App](https://apps.apple.com/us/app/home-assistant/id1099568401).
- Activated by Siri by saying the shortcut name "Hey Siri, Assist"
- Added to your iPhone home screen
- Pinned to your Mac menu bar
- Activated via a keyboard shortcut on your Mac
- Added as an Apple Watch complication
## Assist on iPhones
<lite-youtube videoid="sQ7X7jz1SrA" videotitle="Assist on Apple HomePod"></lite-youtube>
Assist is available on iPhones, iPads, and Macbooks.
## Installation
Demo showing Assist being triggered from the iPhone 15 Pro action button and from the lock screen widget.
To get started make sure you're running the latest version of the [Home Assistant Companion app](https://apps.apple.com/us/app/home-assistant/id1099568401?itsct=apps_box_badge&itscg=30200) and have updated your Apple devices. Then download the two shortcuts and open them to import them:
<lite-youtube videoid="AW_eslcO6AU" videotitle="Assist in Companion App for iOS"></lite-youtube>
- [Assist shortcut](https://www.icloud.com/shortcuts/4172210db1d74599bf9ae4f9e1e3d6ed)
- [Assist Button shortcut](https://www.icloud.com/shortcuts/73ebb68ca1a24ae1811b7d6971203334)
### Prerequisites
![Expanded Shortcuts Action](/images/assist/ios-expanded-shortcut-action.jpeg)
- [Home Assistant Companion App](https://companion.home-assistant.io/docs/getting_started/) installed
- Have an Assistant set up: either [cloud](https://www.home-assistant.io/voice_control/voice_remote_cloud_assistant/) (recommended, more performant) or [local](https://www.home-assistant.io/voice_control/voice_remote_local_assistant/).
- The devices you want to control with Assist are [exposed to Assist](/voice_control/voice_remote_expose_devices/)
There are two versions of the shortcut. The normal shortcut works better with Siri while the Button shortcut has the ability to use speech-to-text when triggered outside of Siri and can customize the input language (instead of relying on the OS language)
### Starting Assist in Home Assistant
[_Last updated: Jan 26, 2023_](#changelog)
1. On your phone, open Home Assistant.
2. In the top-right corner, select the three-dots menu and select **Assist**.
3. [Give a command](/voice_control/custom_sentences/).
### Adjusting the language
### Starting Assist on your iPhone using a shortcut
This section was written using an iOS 18. Depending on your model and version, the exact steps may vary.
To use Home Assistant Assist as your voice assistant, follow these steps:
1. Create a shortcut to **Assist in app**
2. Choose one of following options to activate Assist:
- [Start Assist using a back tap](#to-start-assist-using-a-back-tap).
- [Start Assist using the action button](#to-start-assist-using-the-action-button).
- [Start Assist using control center](#to-start-assist-using-control-center).
- [Start Assist from Lock Screen](#to-start-assist-from-lock-screen).
3. [Give a command](/voice_control/custom_sentences/).
#### To create a shortcut to Assist in App
1. On the phone, open the **Shortcuts** app, and select **New**.
2. Type `Home Assistant` and select **Assist in app**.
3. **Choose** the pipeline.
4. Select **Done**. You now have a shortcut to **Assist in app**.
#### To start Assist using a back tap
1. Follow the Apple documentation on [Running shortcuts by tapping the back of your iPhone](https://support.apple.com/en-gb/guide/shortcuts/apd897693606/ios) and select the shortcut to **Assist in app**.
2. Start Assist by tapping the back of your phone.
#### To start Assist using the Action button
1. Go to **Settings** > **Action Button**, and scroll until you see **Controls**.
2. Under **Home Assistant**, select **Assist**.
3. Select your preferred pipeline.
4. Start the Assist by holding the action button.
For control center and lock screen:
#### To start Assist using control center
1. Open control center.
2. Press and hold an empty space and look for **Home Assistant**.
3. Select **Assist**.
4. After you see the icon in control center, tap on it again to choose which pipeline you want to use.
#### To start Assist from Lock Screen
1. Tap and hold an empty space in Lock Screen.
2. Choose one of the two bottom items where you want to replace using Assist.
3. Remove the item.
4. Tap on it to add a new item and find **Home Assistant Assist** in the list.
5. After you see the icon in lock screen, tap once more to choose which pipeline you want to use.
6. Alternatively you can execute the same steps but add a widget below the lock screen clock.
## Adjusting the language
Shortcuts triggered via Siri will always use the same language as Siri is set to. The Assist Button shortcut is meant to be manually triggered and can be configured for any language.
@ -45,23 +95,3 @@ The Assist shortcut works also if you have configured multiple Home Assistant se
Open the shortcuts app and edit each Assist shortcut. The text in quotes will be shown in the language of your device.
- Use the arrow to expand the _"Assist with `Provided Input`"_ action, and select your Home Assistant server.
## Customizing the Siri experience
Siri allows activating shortcuts by their name. If you change the name of the "Assist" shortcut, you will also have to refer to it by its new name: "Hey Siri, my new name". Be aware that Siri can get confused and might not work if your shortcut name overlaps with actual Siri commands.
It is possible to change the text that Siri says when activating the Assist shortcut. Open the shortcuts app and edit each your Assist shortcut. The text in quotes will be shown in the language of your device.
- Find _"Ask for `Text`"_ and tap on _`How can I assist?`_ and change it to your desired prompt.
You can also use the share action to [add a Shortcut to your Home Screen](https://support.apple.com/guide/shortcuts/apd735880972/ios) or set an [Accessibility Shortcut](https://support.apple.com/en-gb/HT204390) to run this Shortcut when you triple-click the Side button.
## Troubleshooting
The latest version of Siri on the Apple Watch contains an annoying bug where it will not remember that the shortcut is allowed to talk to Home Assistant. This requires the user to tap or say "Allow" for every invocation of the Assist shortcut. The workaround is to remove the Home Assistant application from your watch, which will have the shortcut execute on your phone which does not have this problem. Removing the app prevents you from triggering actions via the Home Assistant interface for Apple Watch. It does not prevent you from adding shortcuts to trigger assist from a complication.
## Changelog
### Version 1 - Jan 26, 2023
Initial release

View File

@ -87,6 +87,25 @@ The example below shows common pitfalls when enquiring about the weather. While
![Create alias for entity name](/images/assist/assist_create_alias.png)
5. If you just ask "What is the weather" when you have forecast entities for multiple entities, Assist always returns the data for the place that was first added. Currently, there is no way to change that.
## I don't get a voice response
My voice assistant understands me and processes the command, but I don't get a voice response.
The voice response is generated in Home Assistant by one of our supported text-to-speech (or {% term TTS %}) engines.
The voice assistant device then fetches the audio file from Home Assistant and plays it back.
For this fetching process to work, Home Assistant must communicate its own URL to the device.
If you have a complex network setup, or if you changed this setting in the past, the URL communicated could be wrong.
To fix the URL, follow these steps:
1. In {% my profile title="your user profile" %}, enable **Advanced Mode**.
2. Go to {% my network title="**Settings** > **System** > **Network**" %}.
3. Change your Local Network Home Assistant URL to a URL that can be reached locally and that points to Home Assistant
- For most users, the **Automatic** option works and is recommended.
![Create alias for entity name](/images/assist/local_url.png)
## Tweaking the Assist audio configuration for your device
You think there is an issue with background noise or speaker volume? In some cases, it can help to tweak settings such as noise suppression and gain of your voice assistant device (such as the S32-S3-BOX-3).