mirror of
https://github.com/home-assistant/home-assistant.io.git
synced 2025-07-24 17:57:14 +00:00
Merge branch 'current' into next
This commit is contained in:
commit
23c87cc35e
@ -66,7 +66,7 @@ GEM
|
|||||||
kramdown-parser-gfm (1.1.0)
|
kramdown-parser-gfm (1.1.0)
|
||||||
kramdown (~> 2.0)
|
kramdown (~> 2.0)
|
||||||
liquid (4.0.3)
|
liquid (4.0.3)
|
||||||
listen (3.4.1)
|
listen (3.5.0)
|
||||||
rb-fsevent (~> 0.10, >= 0.10.3)
|
rb-fsevent (~> 0.10, >= 0.10.3)
|
||||||
rb-inotify (~> 0.9, >= 0.9.10)
|
rb-inotify (~> 0.9, >= 0.9.10)
|
||||||
mercenary (0.4.0)
|
mercenary (0.4.0)
|
||||||
|
160
package-lock.json
generated
160
package-lock.json
generated
@ -104,9 +104,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"@textlint/ast-tester": {
|
"@textlint/ast-tester": {
|
||||||
"version": "2.3.3",
|
"version": "2.3.4",
|
||||||
"resolved": "https://registry.npmjs.org/@textlint/ast-tester/-/ast-tester-2.3.3.tgz",
|
"resolved": "https://registry.npmjs.org/@textlint/ast-tester/-/ast-tester-2.3.4.tgz",
|
||||||
"integrity": "sha512-FNV4B0+kbvVuxvKEEf3NdPtArile940wtJeQx6flw6SLabEYDP+ZVwg7FVO17zopyIsOPmT4yPOJbt93BnDHng==",
|
"integrity": "sha512-2gIsnJ1Dmr5jjF+u/vusNRqk2bJi0WwwbjP9WV/op51DhDTi7BUNjVSiZtcP9NVxidvs51XNEg+EMTRoKP3Msg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@textlint/ast-node-types": "^4.4.2"
|
"@textlint/ast-node-types": "^4.4.2"
|
||||||
@ -121,9 +121,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@textlint/ast-traverse": {
|
"@textlint/ast-traverse": {
|
||||||
"version": "2.3.3",
|
"version": "2.3.4",
|
||||||
"resolved": "https://registry.npmjs.org/@textlint/ast-traverse/-/ast-traverse-2.3.3.tgz",
|
"resolved": "https://registry.npmjs.org/@textlint/ast-traverse/-/ast-traverse-2.3.4.tgz",
|
||||||
"integrity": "sha512-L+iVejKaethlUKvFyQtBs373GAA5LJCkraAdbL6F6cOiCviKqpFf9HQmdCQAyYOGrjs30LgpsOLsZACgBJ7uOg==",
|
"integrity": "sha512-NcjPXCvP8r4D2/azeQhwjPvh2+099I9RRBUrg6IpMfTW4IUUJb4BwZOPgjW+XRIVc71Dhgm82VSIagDL90FYcg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@textlint/ast-node-types": "^4.4.2"
|
"@textlint/ast-node-types": "^4.4.2"
|
||||||
@ -138,22 +138,22 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@textlint/feature-flag": {
|
"@textlint/feature-flag": {
|
||||||
"version": "3.3.3",
|
"version": "3.3.4",
|
||||||
"resolved": "https://registry.npmjs.org/@textlint/feature-flag/-/feature-flag-3.3.3.tgz",
|
"resolved": "https://registry.npmjs.org/@textlint/feature-flag/-/feature-flag-3.3.4.tgz",
|
||||||
"integrity": "sha512-YLbKeckvIu4a+IZv/nHW+BGyYZBdCSJxtKyEp8HTfKam8AC26bdU0ryzO7xmmHN0FdPNwAn67AfZTWssKcWUVg==",
|
"integrity": "sha512-ULAqdD2y1sPAhbkaMjS2fltrZYCNQGsNDv/NQWFsCmDpQ1R8kxoUaTiXpebTM+nVuyvU5GfdkxhHyMarPIjmYw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"map-like": "^2.0.0"
|
"map-like": "^2.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@textlint/fixer-formatter": {
|
"@textlint/fixer-formatter": {
|
||||||
"version": "3.3.3",
|
"version": "3.3.4",
|
||||||
"resolved": "https://registry.npmjs.org/@textlint/fixer-formatter/-/fixer-formatter-3.3.3.tgz",
|
"resolved": "https://registry.npmjs.org/@textlint/fixer-formatter/-/fixer-formatter-3.3.4.tgz",
|
||||||
"integrity": "sha512-4UF1mNFQHB5iDFNFBSK3ss8c5NiAgGxLXijATXJ3SSjhiTb3sQSX3RcB1wMwI0/gcizRm3r5j16Kelv8IOrbzA==",
|
"integrity": "sha512-H4i+N+uN7EiI5vRnfRIccFc5yekNHnO8795fiOK2TZPb6SzY3iwLOGZ2rDKvgu7ZKdyGW945w3T0elUF3Fkr5A==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@textlint/module-interop": "^1.2.3",
|
"@textlint/module-interop": "^1.2.4",
|
||||||
"@textlint/types": "^1.5.3",
|
"@textlint/types": "^1.5.4",
|
||||||
"chalk": "^1.1.3",
|
"chalk": "^1.1.3",
|
||||||
"debug": "^4.3.1",
|
"debug": "^4.3.1",
|
||||||
"diff": "^4.0.2",
|
"diff": "^4.0.2",
|
||||||
@ -171,9 +171,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"@textlint/types": {
|
"@textlint/types": {
|
||||||
"version": "1.5.3",
|
"version": "1.5.4",
|
||||||
"resolved": "https://registry.npmjs.org/@textlint/types/-/types-1.5.3.tgz",
|
"resolved": "https://registry.npmjs.org/@textlint/types/-/types-1.5.4.tgz",
|
||||||
"integrity": "sha512-xWyqdZrBUs66f8hKm3QZO2NEa6mqZAL0nTSBKu2U2Ob9R5r81N/WPvvz5mEqPVPRZrf0hi/lNerFzEIZH4YgnQ==",
|
"integrity": "sha512-bhSrOjW8AFSa/xf6lYZ2akE0j+4O/WEAA2S/R8RrjNMkA5Az2j57mxPNpqMhEeyHDkpzN/coIlqUwgYvcJHv1A==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@textlint/ast-node-types": "^4.4.2"
|
"@textlint/ast-node-types": "^4.4.2"
|
||||||
@ -264,18 +264,18 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@textlint/kernel": {
|
"@textlint/kernel": {
|
||||||
"version": "3.4.3",
|
"version": "3.4.4",
|
||||||
"resolved": "https://registry.npmjs.org/@textlint/kernel/-/kernel-3.4.3.tgz",
|
"resolved": "https://registry.npmjs.org/@textlint/kernel/-/kernel-3.4.4.tgz",
|
||||||
"integrity": "sha512-kQUjkVC6kXVuTxVqhPuxgjEaONDH1hliRgi5tMyxGDD3c3IOJVeatutL9vqpbAMgJL7blyTaWSdOJdsqZfCW3g==",
|
"integrity": "sha512-ro9TPnE16C6gtKkY3aOjTs8ZfzAxdXLCV9JD4BuV5P+xBiiu9NdiE2Hwm3LyEGQjMxaKnXjbm/DTCAxA4gz0Dg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@textlint/ast-node-types": "^4.4.2",
|
"@textlint/ast-node-types": "^4.4.2",
|
||||||
"@textlint/ast-tester": "^2.3.3",
|
"@textlint/ast-tester": "^2.3.4",
|
||||||
"@textlint/ast-traverse": "^2.3.3",
|
"@textlint/ast-traverse": "^2.3.4",
|
||||||
"@textlint/feature-flag": "^3.3.3",
|
"@textlint/feature-flag": "^3.3.4",
|
||||||
"@textlint/source-code-fixer": "^3.4.3",
|
"@textlint/source-code-fixer": "^3.4.4",
|
||||||
"@textlint/types": "^1.5.3",
|
"@textlint/types": "^1.5.4",
|
||||||
"@textlint/utils": "^1.2.3",
|
"@textlint/utils": "^1.2.4",
|
||||||
"debug": "^4.3.1",
|
"debug": "^4.3.1",
|
||||||
"deep-equal": "^1.1.1",
|
"deep-equal": "^1.1.1",
|
||||||
"map-like": "^2.0.0",
|
"map-like": "^2.0.0",
|
||||||
@ -289,9 +289,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"@textlint/types": {
|
"@textlint/types": {
|
||||||
"version": "1.5.3",
|
"version": "1.5.4",
|
||||||
"resolved": "https://registry.npmjs.org/@textlint/types/-/types-1.5.3.tgz",
|
"resolved": "https://registry.npmjs.org/@textlint/types/-/types-1.5.4.tgz",
|
||||||
"integrity": "sha512-xWyqdZrBUs66f8hKm3QZO2NEa6mqZAL0nTSBKu2U2Ob9R5r81N/WPvvz5mEqPVPRZrf0hi/lNerFzEIZH4YgnQ==",
|
"integrity": "sha512-bhSrOjW8AFSa/xf6lYZ2akE0j+4O/WEAA2S/R8RrjNMkA5Az2j57mxPNpqMhEeyHDkpzN/coIlqUwgYvcJHv1A==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@textlint/ast-node-types": "^4.4.2"
|
"@textlint/ast-node-types": "^4.4.2"
|
||||||
@ -309,15 +309,15 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@textlint/linter-formatter": {
|
"@textlint/linter-formatter": {
|
||||||
"version": "3.3.3",
|
"version": "3.3.4",
|
||||||
"resolved": "https://registry.npmjs.org/@textlint/linter-formatter/-/linter-formatter-3.3.3.tgz",
|
"resolved": "https://registry.npmjs.org/@textlint/linter-formatter/-/linter-formatter-3.3.4.tgz",
|
||||||
"integrity": "sha512-njm1VwfG1lVuc9TnzSecNaghRtIAdQVXULc1wHlBoingT/w+bz/SgPvw3eec/rUfzde6ms3O4dFAG3zPNdRoIQ==",
|
"integrity": "sha512-k1lyvR+w7ctwr5dWhMVRTKk19GH99BAO2dLk8ZS0ZcYyKqKAKu6Iyb1cWEg/u3dT3KFbWwoegnAelfz5828SHQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@azu/format-text": "^1.0.1",
|
"@azu/format-text": "^1.0.1",
|
||||||
"@azu/style-format": "^1.0.0",
|
"@azu/style-format": "^1.0.0",
|
||||||
"@textlint/module-interop": "^1.2.3",
|
"@textlint/module-interop": "^1.2.4",
|
||||||
"@textlint/types": "^1.5.3",
|
"@textlint/types": "^1.5.4",
|
||||||
"chalk": "^1.1.3",
|
"chalk": "^1.1.3",
|
||||||
"concat-stream": "^1.6.2",
|
"concat-stream": "^1.6.2",
|
||||||
"debug": "^4.3.1",
|
"debug": "^4.3.1",
|
||||||
@ -340,9 +340,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"@textlint/types": {
|
"@textlint/types": {
|
||||||
"version": "1.5.3",
|
"version": "1.5.4",
|
||||||
"resolved": "https://registry.npmjs.org/@textlint/types/-/types-1.5.3.tgz",
|
"resolved": "https://registry.npmjs.org/@textlint/types/-/types-1.5.4.tgz",
|
||||||
"integrity": "sha512-xWyqdZrBUs66f8hKm3QZO2NEa6mqZAL0nTSBKu2U2Ob9R5r81N/WPvvz5mEqPVPRZrf0hi/lNerFzEIZH4YgnQ==",
|
"integrity": "sha512-bhSrOjW8AFSa/xf6lYZ2akE0j+4O/WEAA2S/R8RrjNMkA5Az2j57mxPNpqMhEeyHDkpzN/coIlqUwgYvcJHv1A==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@textlint/ast-node-types": "^4.4.2"
|
"@textlint/ast-node-types": "^4.4.2"
|
||||||
@ -479,9 +479,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@textlint/markdown-to-ast": {
|
"@textlint/markdown-to-ast": {
|
||||||
"version": "6.3.3",
|
"version": "6.3.4",
|
||||||
"resolved": "https://registry.npmjs.org/@textlint/markdown-to-ast/-/markdown-to-ast-6.3.3.tgz",
|
"resolved": "https://registry.npmjs.org/@textlint/markdown-to-ast/-/markdown-to-ast-6.3.4.tgz",
|
||||||
"integrity": "sha512-CG8igvwlmcHb/d2zXDXchXgqofnDsxQDYOMpsk4zv1EN8PL5ycijQgmKJ0yB0ZxFduv0AR22rnJvPtB4ymzCyQ==",
|
"integrity": "sha512-LLScbDRXov1l4U4OCLJ5clu9eWNonBG+rhuArwYAHpf0hwIoNoETfAQvrNtXZG/NZ96fdWv4PLtaN6dA4ldRdQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@textlint/ast-node-types": "^4.4.2",
|
"@textlint/ast-node-types": "^4.4.2",
|
||||||
@ -597,18 +597,18 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@textlint/module-interop": {
|
"@textlint/module-interop": {
|
||||||
"version": "1.2.3",
|
"version": "1.2.4",
|
||||||
"resolved": "https://registry.npmjs.org/@textlint/module-interop/-/module-interop-1.2.3.tgz",
|
"resolved": "https://registry.npmjs.org/@textlint/module-interop/-/module-interop-1.2.4.tgz",
|
||||||
"integrity": "sha512-BHpF/NSOWZIBJVvwe1Aww9k7lh04lr8xrFpoDfmdp3QolrAakdd5xTso2U1kJpWeZatQgh4naSI2X7IUEM2b2Q==",
|
"integrity": "sha512-/wUKvDbBEujrhpcuD7Et4Mcicm3SG2oAe/tyMruLxSJ86umGxd34dEcHRON8fJzou9qyt0gFoczcypd4k3hJow==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"@textlint/source-code-fixer": {
|
"@textlint/source-code-fixer": {
|
||||||
"version": "3.4.3",
|
"version": "3.4.4",
|
||||||
"resolved": "https://registry.npmjs.org/@textlint/source-code-fixer/-/source-code-fixer-3.4.3.tgz",
|
"resolved": "https://registry.npmjs.org/@textlint/source-code-fixer/-/source-code-fixer-3.4.4.tgz",
|
||||||
"integrity": "sha512-jXuVMICfnTkg8GKPpuL2gLgUt2IicgKIOAQHw8BN9vGRstdPDth37Qc9iIjM6b68TPbRnDLb7GCENdXYEQKpcg==",
|
"integrity": "sha512-GDHVin2EJ9PGJ33VMGlqtPcvUlY+pkTbaWs4jWv8oBaEK8UUBzS5ZpEc4xi7Xp5vIXnVsCSLKNC6bgvR9X/AoQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@textlint/types": "^1.5.3",
|
"@textlint/types": "^1.5.4",
|
||||||
"debug": "^4.3.1"
|
"debug": "^4.3.1"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
@ -619,9 +619,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"@textlint/types": {
|
"@textlint/types": {
|
||||||
"version": "1.5.3",
|
"version": "1.5.4",
|
||||||
"resolved": "https://registry.npmjs.org/@textlint/types/-/types-1.5.3.tgz",
|
"resolved": "https://registry.npmjs.org/@textlint/types/-/types-1.5.4.tgz",
|
||||||
"integrity": "sha512-xWyqdZrBUs66f8hKm3QZO2NEa6mqZAL0nTSBKu2U2Ob9R5r81N/WPvvz5mEqPVPRZrf0hi/lNerFzEIZH4YgnQ==",
|
"integrity": "sha512-bhSrOjW8AFSa/xf6lYZ2akE0j+4O/WEAA2S/R8RrjNMkA5Az2j57mxPNpqMhEeyHDkpzN/coIlqUwgYvcJHv1A==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@textlint/ast-node-types": "^4.4.2"
|
"@textlint/ast-node-types": "^4.4.2"
|
||||||
@ -639,9 +639,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@textlint/text-to-ast": {
|
"@textlint/text-to-ast": {
|
||||||
"version": "3.3.3",
|
"version": "3.3.4",
|
||||||
"resolved": "https://registry.npmjs.org/@textlint/text-to-ast/-/text-to-ast-3.3.3.tgz",
|
"resolved": "https://registry.npmjs.org/@textlint/text-to-ast/-/text-to-ast-3.3.4.tgz",
|
||||||
"integrity": "sha512-Y1hRnI+PoCbomQZtnog31DCUgz/diW4X72F7x/bn/VkUg6xq55GAsn2OB4qWvduQMrA+71lOfBMK3tcGJ8Q4Mg==",
|
"integrity": "sha512-oDwGNQCAo7ROnHqaksPEogf8fxXGU3Z61C6NEv0n9vEWEkUX9oUVX4c9kh5UieZL5nN/xIdzVc3TrXywkkOK3g==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@textlint/ast-node-types": "^4.4.2"
|
"@textlint/ast-node-types": "^4.4.2"
|
||||||
@ -656,21 +656,21 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@textlint/textlint-plugin-markdown": {
|
"@textlint/textlint-plugin-markdown": {
|
||||||
"version": "5.3.3",
|
"version": "5.3.4",
|
||||||
"resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-markdown/-/textlint-plugin-markdown-5.3.3.tgz",
|
"resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-markdown/-/textlint-plugin-markdown-5.3.4.tgz",
|
||||||
"integrity": "sha512-AnScn1Qt7NMw3K0wNUtJYyGYr6DLe/wsnQbtLd3xjS+6Ky8C+6Ohd+ms1DKH0vRztc8huM/wmV7n5Bx+1qBevA==",
|
"integrity": "sha512-g8KKuwhzzlRjvKrpq3SbGc+JJMAJoy5Xp0Ibvq7QKgNVxwN/f5WtmrJc8CdgFG7++jgtkDPlofz0c9xG63xKwQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@textlint/markdown-to-ast": "^6.3.3"
|
"@textlint/markdown-to-ast": "^6.3.4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@textlint/textlint-plugin-text": {
|
"@textlint/textlint-plugin-text": {
|
||||||
"version": "4.3.3",
|
"version": "4.3.4",
|
||||||
"resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-text/-/textlint-plugin-text-4.3.3.tgz",
|
"resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-text/-/textlint-plugin-text-4.3.4.tgz",
|
||||||
"integrity": "sha512-NKbCbiSYA8mdg74HR+GQDO9q7RRHimnQ88YL0vBtP2oq2x1HZccq0mHlw6dlL775YardBAoHu/qxyJbkxSXBgw==",
|
"integrity": "sha512-ZtctKFR8V9mIZAMibS97xPWlt2lViizIRAy4oDaKCnxAwJ0uAjxm/OlHHdaFwNydGaEDtN60mcmarDqOOAZIiA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@textlint/text-to-ast": "^3.3.3"
|
"@textlint/text-to-ast": "^3.3.4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@textlint/types": {
|
"@textlint/types": {
|
||||||
@ -683,9 +683,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@textlint/utils": {
|
"@textlint/utils": {
|
||||||
"version": "1.2.3",
|
"version": "1.2.4",
|
||||||
"resolved": "https://registry.npmjs.org/@textlint/utils/-/utils-1.2.3.tgz",
|
"resolved": "https://registry.npmjs.org/@textlint/utils/-/utils-1.2.4.tgz",
|
||||||
"integrity": "sha512-jN0pbdOJkIAuqyBqsDvk3FYP6BF+YLMlVzE8xbjDhpw7dpr36iEGKGIuRQJZ0+8nq3CPY7W0EcK6o63QoPuPvQ==",
|
"integrity": "sha512-FREWc8n6bJFsKehtUlHPtbqnXULWhdnlazqWiHMjiBtcxUfD+1kY3P7PNGbChdzeZGmwBkgFQyGkok8bAGnZOw==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"@types/mdast": {
|
"@types/mdast": {
|
||||||
@ -2534,22 +2534,22 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"textlint": {
|
"textlint": {
|
||||||
"version": "11.8.3",
|
"version": "11.9.0",
|
||||||
"resolved": "https://registry.npmjs.org/textlint/-/textlint-11.8.3.tgz",
|
"resolved": "https://registry.npmjs.org/textlint/-/textlint-11.9.0.tgz",
|
||||||
"integrity": "sha512-UrknrF3Sgkksq9aI3Y0gs4FBRgAy2oaonAhLOufWs7kA0ulmj3FVYGPA5UPVEKQHUWbnuOaqDteLDs+/9hRc9g==",
|
"integrity": "sha512-a9ZCfCOcOTNxEQsRbYBDFNu8m5cjJC+znnXCBommGSdP0W+9QmwZnkralwpxrVhRgWvLz+QyuDXtLBZcqfDmHg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@textlint/ast-node-types": "^4.4.2",
|
"@textlint/ast-node-types": "^4.4.2",
|
||||||
"@textlint/ast-traverse": "^2.3.3",
|
"@textlint/ast-traverse": "^2.3.4",
|
||||||
"@textlint/feature-flag": "^3.3.3",
|
"@textlint/feature-flag": "^3.3.4",
|
||||||
"@textlint/fixer-formatter": "^3.3.3",
|
"@textlint/fixer-formatter": "^3.3.4",
|
||||||
"@textlint/kernel": "^3.4.3",
|
"@textlint/kernel": "^3.4.4",
|
||||||
"@textlint/linter-formatter": "^3.3.3",
|
"@textlint/linter-formatter": "^3.3.4",
|
||||||
"@textlint/module-interop": "^1.2.3",
|
"@textlint/module-interop": "^1.2.4",
|
||||||
"@textlint/textlint-plugin-markdown": "^5.3.3",
|
"@textlint/textlint-plugin-markdown": "^5.3.4",
|
||||||
"@textlint/textlint-plugin-text": "^4.3.3",
|
"@textlint/textlint-plugin-text": "^4.3.4",
|
||||||
"@textlint/types": "^1.5.3",
|
"@textlint/types": "^1.5.4",
|
||||||
"@textlint/utils": "^1.2.3",
|
"@textlint/utils": "^1.2.4",
|
||||||
"debug": "^4.3.1",
|
"debug": "^4.3.1",
|
||||||
"deep-equal": "^1.1.1",
|
"deep-equal": "^1.1.1",
|
||||||
"file-entry-cache": "^5.0.1",
|
"file-entry-cache": "^5.0.1",
|
||||||
@ -2577,9 +2577,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"@textlint/types": {
|
"@textlint/types": {
|
||||||
"version": "1.5.3",
|
"version": "1.5.4",
|
||||||
"resolved": "https://registry.npmjs.org/@textlint/types/-/types-1.5.3.tgz",
|
"resolved": "https://registry.npmjs.org/@textlint/types/-/types-1.5.4.tgz",
|
||||||
"integrity": "sha512-xWyqdZrBUs66f8hKm3QZO2NEa6mqZAL0nTSBKu2U2Ob9R5r81N/WPvvz5mEqPVPRZrf0hi/lNerFzEIZH4YgnQ==",
|
"integrity": "sha512-bhSrOjW8AFSa/xf6lYZ2akE0j+4O/WEAA2S/R8RrjNMkA5Az2j57mxPNpqMhEeyHDkpzN/coIlqUwgYvcJHv1A==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@textlint/ast-node-types": "^4.4.2"
|
"@textlint/ast-node-types": "^4.4.2"
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
"remark-lint-fenced-code-flag": "^2.0.1",
|
"remark-lint-fenced-code-flag": "^2.0.1",
|
||||||
"remark-lint-no-shell-dollars": "^2.0.2",
|
"remark-lint-no-shell-dollars": "^2.0.2",
|
||||||
"remark-stringify": "^9.0.1",
|
"remark-stringify": "^9.0.1",
|
||||||
"textlint": "^11.8.3",
|
"textlint": "^11.9.0",
|
||||||
"textlint-rule-common-misspellings": "^1.0.1",
|
"textlint-rule-common-misspellings": "^1.0.1",
|
||||||
"textlint-rule-terminology": "^2.1.5"
|
"textlint-rule-terminology": "^2.1.5"
|
||||||
},
|
},
|
||||||
|
@ -31,3 +31,7 @@ message: Sensor value greater than 10
|
|||||||
|
|
||||||
Automation created or edited via the user interface, are activated immediately
|
Automation created or edited via the user interface, are activated immediately
|
||||||
after save the automation.
|
after save the automation.
|
||||||
|
|
||||||
|
## Troubleshooting missing automations
|
||||||
|
|
||||||
|
When you're creating automations using the GUI and they don't appear in the UI, make sure that you add back `automation: !include automations.yaml` from the default configuration to your `configuration.yaml`.
|
||||||
|
@ -1,23 +1,24 @@
|
|||||||
## Enable I2C
|
## Enable I2C
|
||||||
|
|
||||||
Home Assistant using the Home Assistant Operating System is a managed environment, which means you can't use existing methods to enable the I2C bus on a Raspberry Pi.
|
Home Assistant using the Home Assistant Operating System which is a managed environment, which means you can't use existing methods to enable the I2C bus on a Raspberry Pi. In order to use I2C devices you will have to
|
||||||
|
- Enable I2C for the Home Assistant Operating System
|
||||||
|
- Setup I2C devices e.g. sensors
|
||||||
|
|
||||||
### Step by step instructions
|
### Enable I2C with an SD card reader
|
||||||
|
|
||||||
|
#### Access the boot partition
|
||||||
|
|
||||||
You will need:
|
You will need:
|
||||||
|
|
||||||
- SD card reader
|
- SD card reader
|
||||||
- SD card with Home Assistant Operating System flashed on it
|
- SD card with Home Assistant Operating System flashed on it
|
||||||
|
|
||||||
#### Step 1 - Access the Home Assistant Operating System boot partition
|
|
||||||
|
|
||||||
Shutdown/turn-off your Home Assistant installation and unplug the SD card.
|
Shutdown/turn-off your Home Assistant installation and unplug the SD card.
|
||||||
Plug the SD card into an SD card reader and find a drive/file system named
|
Plug the SD card into an SD card reader and find a drive/file system named
|
||||||
`hassos-boot`. The file system might be shown/mounted automatically. If not,
|
`hassos-boot`. The file system might be shown/mounted automatically. If not,
|
||||||
use your operating systems disk management utility to find the SD card reader
|
use your operating systems disk management utility to find the SD card reader
|
||||||
and make sure the first partition is available.
|
and make sure the first partition is available.
|
||||||
|
|
||||||
#### Step 2 - Add files to enable I2C
|
#### Add files to enable I2C
|
||||||
|
|
||||||
- In the root of the `hassos-boot` partition, add a new folder called `CONFIG`.
|
- In the root of the `hassos-boot` partition, add a new folder called `CONFIG`.
|
||||||
- In the `CONFIG` folder, add another new folder called `modules`.
|
- In the `CONFIG` folder, add another new folder called `modules`.
|
||||||
@ -32,7 +33,7 @@ and make sure the first partition is available.
|
|||||||
dtparam=i2c_arm=on
|
dtparam=i2c_arm=on
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Step 3 - Start with the new configuration
|
#### Start with the new OS configuration
|
||||||
|
|
||||||
- Insert the SD card back into your Raspberry Pi.
|
- Insert the SD card back into your Raspberry Pi.
|
||||||
- On startup, the `hassos-config.service` will automatically pickup the new
|
- On startup, the `hassos-config.service` will automatically pickup the new
|
||||||
@ -40,9 +41,7 @@ and make sure the first partition is available.
|
|||||||
- Another reboot might be necessary to make sure the just imported `rpi-i2c.conf` is
|
- Another reboot might be necessary to make sure the just imported `rpi-i2c.conf` is
|
||||||
present at boot time.
|
present at boot time.
|
||||||
|
|
||||||
The I2C devices should now be present under /dev.
|
### Enable I2C via Home Assistant Operating System Terminal
|
||||||
|
|
||||||
### From Home Assistant Operating System Terminal
|
|
||||||
|
|
||||||
Alternatively, by attaching a keyboard and screen to your device, you can access the physical terminal to the Home Assistant Operating System.
|
Alternatively, by attaching a keyboard and screen to your device, you can access the physical terminal to the Home Assistant Operating System.
|
||||||
|
|
||||||
@ -62,3 +61,9 @@ You can enable i2c via this terminal:
|
|||||||
sync
|
sync
|
||||||
reboot
|
reboot
|
||||||
```
|
```
|
||||||
|
### Troubleshooting
|
||||||
|
|
||||||
|
After rebooting the host there should be `i2c-0` and similar device files in `/dev`. If such device files are missing, enabling I2C failed for some reason. You can check the status of I2C kernel modules by using `lsmod | grep i2c` in the terminal. If they are loaded, you should find at least the entry `i2c_dev`. Active usage of the modules is indicated by a number, e.g. `i2c_dev 20480 2` would indicate two active I2C device files.
|
||||||
|
|
||||||
|
An active I2C can also be check with a multi meter showing 3.3 V on the I2C pins GPIO2 and GPIO3.
|
||||||
|
|
||||||
|
@ -80,7 +80,7 @@ The next time you run or restart Home Assistant, you should find a new notificat
|
|||||||
|
|
||||||
## Calendar Configuration
|
## Calendar Configuration
|
||||||
|
|
||||||
Editing the `google_calendars.yaml` file.
|
With every restart all calendars of the configured Google account will get pulled and added to the `google_calendars.yaml` and preconfigured as a single entity. By setting the 'track' variable to `true` the calendar will get monitored for new events which can be used for automations and its content is shown on the 'Calendar' dashboard (mind 'max_results' is set to 5 by default).
|
||||||
|
|
||||||
A basic entry for a single calendar looks like:
|
A basic entry for a single calendar looks like:
|
||||||
|
|
||||||
@ -90,19 +90,38 @@ A basic entry for a single calendar looks like:
|
|||||||
- device_id: test_everything
|
- device_id: test_everything
|
||||||
name: Give me everything
|
name: Give me everything
|
||||||
track: true
|
track: true
|
||||||
|
max_results: 10
|
||||||
|
```
|
||||||
|
|
||||||
|
From this, we will get a binary sensor `calendar.test_everything` triggered by any event on the calendar and will show the next 10 events on the 'Calendar' dashboard.
|
||||||
|
|
||||||
|
A bit more elaborate configuration:
|
||||||
|
|
||||||
|
```yaml
|
||||||
- cal_id: "*****@group.calendar.google.com"
|
- cal_id: "*****@group.calendar.google.com"
|
||||||
entities:
|
entities:
|
||||||
|
- device_id: test_unimportant
|
||||||
|
name: UnImportant Stuff
|
||||||
|
track: true
|
||||||
|
search: "#UnImportant"
|
||||||
- device_id: test_important
|
- device_id: test_important
|
||||||
name: Important Stuff
|
name: Important Stuff
|
||||||
track: true
|
track: true
|
||||||
search: "#Important"
|
search: "#Important"
|
||||||
offset: "!!"
|
offset: "!!"
|
||||||
- device_id: test_unimportant
|
|
||||||
name: UnImportant Stuff
|
|
||||||
track: true
|
|
||||||
search: "#UnImportant"
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
From this we will end up with the binary sensors `calendar.test_unimportant` and `calendar.test_important` which will toggle themselves on/off based on events on the same calendar that match the search value set for each.
|
||||||
|
`calendar.test_unimportant` will toggle for events whose title contain '#UnImportant'
|
||||||
|
`calendar.test_important` will toggle for events whose title contain '#Important'. By using the offset variable an event title containing "#Important !!-10" will toggle the sensor 10 minutes before the event starts.
|
||||||
|
|
||||||
|
<div class='note warning'>
|
||||||
|
|
||||||
|
If you use a `#` sign for `search` then wrap the whole search term in quotes.
|
||||||
|
Otherwise everything following the hash sign would be considered a YAML comment.
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
{% configuration %}
|
{% configuration %}
|
||||||
cal_id:
|
cal_id:
|
||||||
description: The Google *generated* unique id for this calendar.
|
description: The Google *generated* unique id for this calendar.
|
||||||
@ -153,21 +172,7 @@ entities:
|
|||||||
default: 5
|
default: 5
|
||||||
{% endconfiguration %}
|
{% endconfiguration %}
|
||||||
|
|
||||||
From this we will end up with the binary sensors `calendar.test_unimportant` and
|
|
||||||
`calendar.test_important` which will toggle themselves on/off based on events on
|
|
||||||
the same calendar that match the search value set for each.
|
|
||||||
You'll also have a sensor `calendar.test_everything` that will
|
|
||||||
not filter events out and always show the next event available.
|
|
||||||
|
|
||||||
But what if you only wanted it to toggle based on all events?
|
|
||||||
Just leave out the *search* parameter.
|
|
||||||
|
|
||||||
<div class='note warning'>
|
|
||||||
|
|
||||||
If you use a `#` sign for `search` then wrap the whole search term in quotes.
|
|
||||||
Otherwise everything following the hash sign would be considered a YAML comment.
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
### Sensor attributes
|
### Sensor attributes
|
||||||
|
|
||||||
|
@ -180,6 +180,18 @@ Here, last Monday is _today_ as a timestamp, minus 86400 times the current weekd
|
|||||||
|
|
||||||
{% endraw %}
|
{% endraw %}
|
||||||
|
|
||||||
|
**Next 4 pm**: 24 hours, from the last 4 pm till the next 4 pm. If it hasn't been 4 pm today, that would be 4 pm yesterday until 4 pm today. If it is already past 4 pm today, it will be 4 pm today until 4 pm tomorrow. When changing the start time, then add or subtract to the 8-hour buffer to match the next midnight.
|
||||||
|
|
||||||
|
{% raw %}
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
end: "{{ (now().replace(minute=0,second=0) + timedelta(hours=8)).replace(hour=16) }}"
|
||||||
|
duration:
|
||||||
|
hours: 24
|
||||||
|
```
|
||||||
|
|
||||||
|
{% endraw %}
|
||||||
|
|
||||||
**Last 30 days**: ends today at 00:00, lasts 30 days. Easy one.
|
**Last 30 days**: ends today at 00:00, lasts 30 days. Easy one.
|
||||||
|
|
||||||
{% raw %}
|
{% raw %}
|
||||||
|
@ -516,8 +516,7 @@ The example configuration entry below create two request to your local InfluxDB
|
|||||||
sensor:
|
sensor:
|
||||||
platform: influxdb
|
platform: influxdb
|
||||||
host: localhost
|
host: localhost
|
||||||
|
username: home-assistant
|
||||||
username: home-assistant
|
|
||||||
password: password
|
password: password
|
||||||
queries:
|
queries:
|
||||||
- name: last value of foo
|
- name: last value of foo
|
||||||
|
@ -68,14 +68,13 @@ In order to make use of the various platforms that KNX offers you will need to a
|
|||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
knx:
|
knx:
|
||||||
binary_sensor: !include knx_binary_sensor.yaml
|
# configure platforms directly in configuration.yaml
|
||||||
switch: !include knx_switch.yaml
|
binary_sensor:
|
||||||
|
- name: "My first binary sensor"
|
||||||
|
state_address: "1/2/3"
|
||||||
|
# etc...
|
||||||
|
# or outsource platform configuration to separate files
|
||||||
sensor: !include knx_sensor.yaml
|
sensor: !include knx_sensor.yaml
|
||||||
cover: !include knx_cover.yaml
|
|
||||||
light: !include knx_light.yaml
|
|
||||||
climate: !include knx_climate.yaml
|
|
||||||
notify: !include knx_notify.yaml
|
|
||||||
scene: !include knx_scene.yaml
|
|
||||||
```
|
```
|
||||||
|
|
||||||
Please see the dedicated platform sections below about how to configure them correctly.
|
Please see the dedicated platform sections below about how to configure them correctly.
|
||||||
@ -143,6 +142,7 @@ Explicit connection via KNX/IP routing. This requires multicast communication to
|
|||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
knx:
|
knx:
|
||||||
|
routing:
|
||||||
```
|
```
|
||||||
|
|
||||||
{% configuration %}
|
{% configuration %}
|
||||||
@ -284,27 +284,27 @@ KNX integration is able to expose entity states or attributes to KNX bus. The in
|
|||||||
# Example configuration.yaml entry
|
# Example configuration.yaml entry
|
||||||
knx:
|
knx:
|
||||||
expose:
|
expose:
|
||||||
- type: "temperature"
|
- type: temperature
|
||||||
entity_id: "sensor.owm_temperature"
|
entity_id: sensor.owm_temperature
|
||||||
address: "0/0/2"
|
address: "0/0/2"
|
||||||
- type: "string"
|
- type: string
|
||||||
address: "0/6/4"
|
address: "0/6/4"
|
||||||
entity_id: "sensor.owm_weather"
|
entity_id: sensor.owm_weather
|
||||||
- type: "binary"
|
- type: binary
|
||||||
entity_id: "binary_sensor.kitchen_window"
|
entity_id: binary_sensor.kitchen_window
|
||||||
address: "0/6/5"
|
address: "0/6/5"
|
||||||
- type: "binary"
|
- type: binary
|
||||||
entity_id: "light.office"
|
entity_id: light.office
|
||||||
address: "0/3/0"
|
address: "0/3/0"
|
||||||
default: false
|
default: false
|
||||||
- type: "percentU8"
|
- type: percentU8
|
||||||
entity_id: "light.office"
|
entity_id: light.office
|
||||||
attribute: "brightness"
|
attribute: brightness
|
||||||
default: 0
|
default: 0
|
||||||
address: "0/3/1"
|
address: "0/3/1"
|
||||||
- type: "time"
|
- type: time
|
||||||
address: "0/0/1"
|
address: "0/0/1"
|
||||||
- type: "datetime"
|
- type: datetime
|
||||||
address: "0/0/23"
|
address: "0/0/23"
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -344,7 +344,7 @@ Binary sensors are read-only. To write to the KNX bus configure an exposure [KNX
|
|||||||
```yaml
|
```yaml
|
||||||
knx:
|
knx:
|
||||||
binary_sensor:
|
binary_sensor:
|
||||||
- name: sensor1
|
- name: "Sensor 1"
|
||||||
state_address: "6/0/2"
|
state_address: "6/0/2"
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -398,7 +398,7 @@ Let's pretend you have a binary sensor with the name `Livingroom.Switch` and you
|
|||||||
automation:
|
automation:
|
||||||
- trigger:
|
- trigger:
|
||||||
platform: numeric_state
|
platform: numeric_state
|
||||||
entity_id: binary_sensor.Livingroom_Switch
|
entity_id: binary_sensor.livingroom_switch
|
||||||
attribute: counter
|
attribute: counter
|
||||||
above: 0
|
above: 0
|
||||||
below: 2
|
below: 2
|
||||||
@ -411,7 +411,7 @@ automation:
|
|||||||
service: light.turn_on
|
service: light.turn_on
|
||||||
- trigger:
|
- trigger:
|
||||||
platform: numeric_state
|
platform: numeric_state
|
||||||
entity_id: binary_sensor.Livingroom_Switch
|
entity_id: binary_sensor.livingroom_switch
|
||||||
attribute: counter
|
attribute: counter
|
||||||
above: 1
|
above: 1
|
||||||
below: 3
|
below: 3
|
||||||
@ -457,7 +457,7 @@ To use your KNX thermostats in your installation, add the following lines to you
|
|||||||
# Example configuration.yaml entry
|
# Example configuration.yaml entry
|
||||||
knx:
|
knx:
|
||||||
climate:
|
climate:
|
||||||
- name: HASS-Kitchen.Temperature
|
- name: "Kitchen"
|
||||||
temperature_address: "5/1/1"
|
temperature_address: "5/1/1"
|
||||||
setpoint_shift_address: "5/1/2"
|
setpoint_shift_address: "5/1/2"
|
||||||
setpoint_shift_state_address: "5/1/3"
|
setpoint_shift_state_address: "5/1/3"
|
||||||
@ -472,7 +472,7 @@ Alternatively, if your device has dedicated binary group addresses for frost/nig
|
|||||||
# Example configuration.yaml entry
|
# Example configuration.yaml entry
|
||||||
knx:
|
knx:
|
||||||
climate:
|
climate:
|
||||||
- name: HASS-Kitchen.Temperature
|
- name: "Kitchen"
|
||||||
temperature_address: "5/1/1"
|
temperature_address: "5/1/1"
|
||||||
setpoint_shift_address: "5/1/2"
|
setpoint_shift_address: "5/1/2"
|
||||||
setpoint_shift_state_address: "5/1/3"
|
setpoint_shift_state_address: "5/1/3"
|
||||||
@ -490,7 +490,7 @@ attributes of the climate device to avoid issues with exceeding valid temperatur
|
|||||||
# Example configuration.yaml entry
|
# Example configuration.yaml entry
|
||||||
knx:
|
knx:
|
||||||
climate:
|
climate:
|
||||||
- name: HASS-Kitchen.Temperature
|
- name: "Kitchen"
|
||||||
temperature_address: "5/1/2"
|
temperature_address: "5/1/2"
|
||||||
target_temperature_address: "5/1/4"
|
target_temperature_address: "5/1/4"
|
||||||
target_temperature_state_address: "5/1/1"
|
target_temperature_state_address: "5/1/1"
|
||||||
@ -514,7 +514,7 @@ Example:
|
|||||||
# Example configuration.yaml entry
|
# Example configuration.yaml entry
|
||||||
knx:
|
knx:
|
||||||
climate:
|
climate:
|
||||||
- name: HASS-Kitchen.Temperature
|
- name: "Kitchen"
|
||||||
temperature_address: "5/1/1"
|
temperature_address: "5/1/1"
|
||||||
setpoint_shift_address: "5/1/2"
|
setpoint_shift_address: "5/1/2"
|
||||||
setpoint_shift_state_address: "5/1/3"
|
setpoint_shift_state_address: "5/1/3"
|
||||||
@ -689,7 +689,7 @@ To use your KNX covers in your installation, add the following lines to your top
|
|||||||
# Example configuration.yaml entry
|
# Example configuration.yaml entry
|
||||||
knx:
|
knx:
|
||||||
cover:
|
cover:
|
||||||
- name: "Kitchen.Shutter"
|
- name: "Kitchen shutter"
|
||||||
move_long_address: "3/0/0"
|
move_long_address: "3/0/0"
|
||||||
move_short_address: "3/0/1"
|
move_short_address: "3/0/1"
|
||||||
stop_address: "3/0/4"
|
stop_address: "3/0/4"
|
||||||
@ -772,7 +772,7 @@ To use your KNX fan in your installation, add the following lines to your top le
|
|||||||
# Example configuration.yaml entry
|
# Example configuration.yaml entry
|
||||||
knx:
|
knx:
|
||||||
fan:
|
fan:
|
||||||
- name: "ceiling fan"
|
- name: "Ceiling fan"
|
||||||
address: "9/0/1"
|
address: "9/0/1"
|
||||||
state_address: "9/0/2"
|
state_address: "9/0/2"
|
||||||
```
|
```
|
||||||
@ -819,7 +819,7 @@ To use your KNX light in your installation, add the following lines to your top
|
|||||||
# Example configuration.yaml entry
|
# Example configuration.yaml entry
|
||||||
knx:
|
knx:
|
||||||
light:
|
light:
|
||||||
- name: "kitchen"
|
- name: "Kitchen"
|
||||||
address: "1/0/9"
|
address: "1/0/9"
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -937,14 +937,14 @@ For switching/light actuators that are only controlled by a single group address
|
|||||||
knx:
|
knx:
|
||||||
light:
|
light:
|
||||||
# dimmable light
|
# dimmable light
|
||||||
- name: Bedroom-Light-1
|
- name: "Bedroom Light 1"
|
||||||
address: "1/0/9"
|
address: "1/0/9"
|
||||||
state_address: "1/1/9"
|
state_address: "1/1/9"
|
||||||
brightness_address: "1/2/9"
|
brightness_address: "1/2/9"
|
||||||
brightness_state_address: "1/3/9"
|
brightness_state_address: "1/3/9"
|
||||||
#
|
#
|
||||||
# RGB light
|
# RGB light
|
||||||
- name: Bathroom-Light-1
|
- name: "Bathroom Light 1"
|
||||||
address: "1/0/9"
|
address: "1/0/9"
|
||||||
state_address: "1/1/9"
|
state_address: "1/1/9"
|
||||||
brightness_address: "1/2/9"
|
brightness_address: "1/2/9"
|
||||||
@ -953,7 +953,7 @@ knx:
|
|||||||
color_state_address: "1/5/9"
|
color_state_address: "1/5/9"
|
||||||
#
|
#
|
||||||
# tunable white light
|
# tunable white light
|
||||||
- name: Office-Light-1
|
- name: "Office Light 1"
|
||||||
address: "1/0/21"
|
address: "1/0/21"
|
||||||
state_address: "1/1/21"
|
state_address: "1/1/21"
|
||||||
brightness_address: "1/2/21"
|
brightness_address: "1/2/21"
|
||||||
@ -965,7 +965,7 @@ knx:
|
|||||||
max_kelvin: 6200
|
max_kelvin: 6200
|
||||||
#
|
#
|
||||||
# actuator without dedicated state communication object
|
# actuator without dedicated state communication object
|
||||||
- name: Cellar-Light-1
|
- name: "Cellar Light 1"
|
||||||
address: "1/0/5"
|
address: "1/0/5"
|
||||||
state_address: "1/0/5"
|
state_address: "1/0/5"
|
||||||
```
|
```
|
||||||
@ -977,7 +977,7 @@ The KNX notify platform allows you to send notifications to [KNX](https://www.kn
|
|||||||
```yaml
|
```yaml
|
||||||
knx:
|
knx:
|
||||||
notify:
|
notify:
|
||||||
- name: Alarm
|
- name: "Alarm"
|
||||||
address: "5/1/10"
|
address: "5/1/10"
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -1000,7 +1000,7 @@ The KNX scenes platform allows you to trigger [KNX](https://www.knx.org/) scenes
|
|||||||
# Example configuration.yaml entry
|
# Example configuration.yaml entry
|
||||||
knx:
|
knx:
|
||||||
scene:
|
scene:
|
||||||
- name: Romantic
|
- name: "Romantic"
|
||||||
address: 8/8/8
|
address: 8/8/8
|
||||||
scene_number: 23
|
scene_number: 23
|
||||||
```
|
```
|
||||||
@ -1030,9 +1030,9 @@ Sensors are read-only. To write to the KNX bus configure an exposure [KNX Integr
|
|||||||
# Example configuration.yaml entry
|
# Example configuration.yaml entry
|
||||||
knx:
|
knx:
|
||||||
sensor:
|
sensor:
|
||||||
- name: Heating.Valve1
|
- name: "Heating Valve 1"
|
||||||
state_address: "2/0/0"
|
state_address: "2/0/0"
|
||||||
type: "percent"
|
type: percent
|
||||||
```
|
```
|
||||||
|
|
||||||
In order to actively read the sensor data from the bus every 30 minutes you can add the following lines to your `configuration.yaml`:
|
In order to actively read the sensor data from the bus every 30 minutes you can add the following lines to your `configuration.yaml`:
|
||||||
@ -1041,9 +1041,9 @@ In order to actively read the sensor data from the bus every 30 minutes you can
|
|||||||
# Example configuration.yaml entry
|
# Example configuration.yaml entry
|
||||||
knx:
|
knx:
|
||||||
sensor:
|
sensor:
|
||||||
- name: Heating.Valve1
|
- name: "Heating Valve 1"
|
||||||
state_address: "2/0/0"
|
state_address: "2/0/0"
|
||||||
type: "percent"
|
type: percent
|
||||||
sync_state: every 30
|
sync_state: every 30
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -1076,14 +1076,18 @@ always_callback:
|
|||||||
|
|
||||||
| KNX DPT | type | size in byte | range | unit |
|
| KNX DPT | type | size in byte | range | unit |
|
||||||
|--------:|-------------------------------|-------------:|:--------------------------:|----------------|
|
|--------:|-------------------------------|-------------:|:--------------------------:|----------------|
|
||||||
|
| 5 | 1byte_unsigned | 1 | 0 ... 255 | |
|
||||||
| 5.001 | percent | 1 | 0 ... 100 | % |
|
| 5.001 | percent | 1 | 0 ... 100 | % |
|
||||||
| 5.003 | angle | 1 | 0 ... 360 | ° |
|
| 5.003 | angle | 1 | 0 ... 360 | ° |
|
||||||
| 5.004 | percentU8 | 1 | 0 ... 255 | % |
|
| 5.004 | percentU8 | 1 | 0 ... 255 | % |
|
||||||
| 5.010 | pulse | 1 | 0 ... 255 | |
|
| 5.005 | decimal_factor | 1 | 0 ... 255 | |
|
||||||
| 5.010 | 1byte_unsigned | 1 | 0 ... 255 | |
|
| 5.006 | tariff | 1 | 0 ... 254 | |
|
||||||
|
| 5.010 | pulse | 1 | 0 ... 255 | counter pulses |
|
||||||
|
| 6 | 1byte_signed | 1 | -128 ... 127 | |
|
||||||
| 6.001 | percentV8 | 1 | -128 ... 127 | % |
|
| 6.001 | percentV8 | 1 | -128 ... 127 | % |
|
||||||
| 6.010 | counter_pulses | 1 | -128 ... 127 | counter pulses |
|
| 6.010 | counter_pulses | 1 | -128 ... 127 | counter pulses |
|
||||||
| 7.001 | 2byte_unsigned | 2 | 0 ... 65535 | pulses |
|
| 7 | 2byte_unsigned | 2 | 0 ... 65535 | |
|
||||||
|
| 7.001 | pulse_2byte | 2 | 0 ... 65535 | pulses |
|
||||||
| 7.002 | time_period_msec | 2 | 0 ... 65535 | ms |
|
| 7.002 | time_period_msec | 2 | 0 ... 65535 | ms |
|
||||||
| 7.003 | time_period_10msec | 2 | 0 ... 65535 | ms |
|
| 7.003 | time_period_10msec | 2 | 0 ... 65535 | ms |
|
||||||
| 7.004 | time_period_100msec | 2 | 0 ... 65535 | ms |
|
| 7.004 | time_period_100msec | 2 | 0 ... 65535 | ms |
|
||||||
@ -1094,14 +1098,17 @@ always_callback:
|
|||||||
| 7.012 | current | 2 | 0 ... 65535 | mA |
|
| 7.012 | current | 2 | 0 ... 65535 | mA |
|
||||||
| 7.013 | brightness | 2 | 0 ... 65535 | lx |
|
| 7.013 | brightness | 2 | 0 ... 65535 | lx |
|
||||||
| 7.600 | color_temperature | 2 | 0 ... 65535 | K |
|
| 7.600 | color_temperature | 2 | 0 ... 65535 | K |
|
||||||
| 8.001 | 2byte_signed | 2 | -32768 ... 32767 | pulses |
|
| 8 | 2byte_signed | 2 | -32768 ... 32767 | |
|
||||||
|
| 8.001 | pulse_2byte_signed | 2 | -32768 ... 32767 | pulses |
|
||||||
| 8.002 | delta_time_ms | 2 | -32768 ... 32767 | ms |
|
| 8.002 | delta_time_ms | 2 | -32768 ... 32767 | ms |
|
||||||
|
| 8.003 | delta_time_10ms | 2 | -32768 ... 32767 | ms |
|
||||||
|
| 8.004 | delta_time_100ms | 2 | -32768 ... 32767 | ms |
|
||||||
| 8.005 | delta_time_sec | 2 | -32768 ... 32767 | s |
|
| 8.005 | delta_time_sec | 2 | -32768 ... 32767 | s |
|
||||||
| 8.006 | delta_time_min | 2 | -32768 ... 32767 | min |
|
| 8.006 | delta_time_min | 2 | -32768 ... 32767 | min |
|
||||||
| 8.007 | delta_time_hrs | 2 | -32768 ... 32767 | h |
|
| 8.007 | delta_time_hrs | 2 | -32768 ... 32767 | h |
|
||||||
| 8.010 | percentV16 | 2 | -32768 ... 32767 | % |
|
| 8.010 | percentV16 | 2 | -32768 ... 32767 | % |
|
||||||
| 8.011 | rotation_angle | 2 | -32768 ... 32767 | ° |
|
| 8.011 | rotation_angle | 2 | -32768 ... 32767 | ° |
|
||||||
| 9.* | enthalpy | 2 | -671088.64 ... 670760.96 | H |
|
| 9 | 2byte_float | 2 | -671088.64 ... 670760.96 | |
|
||||||
| 9.001 | temperature | 2 | -273 ... 670760 | °C |
|
| 9.001 | temperature | 2 | -273 ... 670760 | °C |
|
||||||
| 9.002 | temperature_difference_2byte | 2 | -670760 ... 670760 | K |
|
| 9.002 | temperature_difference_2byte | 2 | -670760 ... 670760 | K |
|
||||||
| 9.003 | temperature_a | 2 | -670760 ... 670760 | K/h |
|
| 9.003 | temperature_a | 2 | -670760 ... 670760 | K/h |
|
||||||
@ -1113,6 +1120,7 @@ always_callback:
|
|||||||
| 9.010 | time_1 | 2 | -670760 ... 670760 | s |
|
| 9.010 | time_1 | 2 | -670760 ... 670760 | s |
|
||||||
| 9.011 | time_2 | 2 | -670760 ... 670760 | ms |
|
| 9.011 | time_2 | 2 | -670760 ... 670760 | ms |
|
||||||
| 9.020 | voltage | 2 | -671088.64 ... 670760.96 | mV |
|
| 9.020 | voltage | 2 | -671088.64 ... 670760.96 | mV |
|
||||||
|
| 9.021 | curr | 2 | -671088.64 ... 670760.96 | mA |
|
||||||
| 9.022 | power_density | 2 | -671088.64 ... 670760.96 | W/m² |
|
| 9.022 | power_density | 2 | -671088.64 ... 670760.96 | W/m² |
|
||||||
| 9.023 | kelvin_per_percent | 2 | -671088.64 ... 670760.96 | K/% |
|
| 9.023 | kelvin_per_percent | 2 | -671088.64 ... 670760.96 | K/% |
|
||||||
| 9.024 | power_2byte | 2 | -671088.64 ... 670760.96 | kW |
|
| 9.024 | power_2byte | 2 | -671088.64 ... 670760.96 | kW |
|
||||||
@ -1120,8 +1128,12 @@ always_callback:
|
|||||||
| 9.026 | rain_amount | 2 | -671088.64 ... 670760.96 | l/m² |
|
| 9.026 | rain_amount | 2 | -671088.64 ... 670760.96 | l/m² |
|
||||||
| 9.027 | temperature_f | 2 | -459.6 ... 670760 | °F |
|
| 9.027 | temperature_f | 2 | -459.6 ... 670760 | °F |
|
||||||
| 9.028 | wind_speed_kmh | 2 | 0 ... 670760 | km/h |
|
| 9.028 | wind_speed_kmh | 2 | 0 ... 670760 | km/h |
|
||||||
| 12.*** | 4byte_unsigned | 4 | 0 ... 4294967295 | |
|
| 9.? | enthalpy | 2 | -671088.64 ... 670760.96 | H |
|
||||||
| 13.*** | 4byte_signed | 4 | -2147483648 ... 2147483647 | |
|
| 12 | 4byte_unsigned | 4 | 0 ... 4294967295 | |
|
||||||
|
| 12.1200 | volume_liquid_litre | 4 | 0 ... 4294967295 | l |
|
||||||
|
| 12.1201 | volume_m3 | 4 | 0 ... 4294967295 | m³ |
|
||||||
|
| 13 | 4byte_signed | 4 | -2147483648 ... 2147483647 | |
|
||||||
|
| 13.001 | pulse_4byte | 4 | -2147483648 ... 2147483647 | pulses |
|
||||||
| 13.002 | flow_rate_m3h | 4 | -2147483648 ... 2147483647 | m³/h |
|
| 13.002 | flow_rate_m3h | 4 | -2147483648 ... 2147483647 | m³/h |
|
||||||
| 13.010 | active_energy | 4 | -2147483648 ... 2147483647 | Wh |
|
| 13.010 | active_energy | 4 | -2147483648 ... 2147483647 | Wh |
|
||||||
| 13.011 | apparant_energy | 4 | -2147483648 ... 2147483647 | VAh |
|
| 13.011 | apparant_energy | 4 | -2147483648 ... 2147483647 | VAh |
|
||||||
@ -1130,8 +1142,8 @@ always_callback:
|
|||||||
| 13.014 | apparant_energy_kvah | 4 | -2147483648 ... 2147483647 | kVAh |
|
| 13.014 | apparant_energy_kvah | 4 | -2147483648 ... 2147483647 | kVAh |
|
||||||
| 13.015 | reactive_energy_kvarh | 4 | -2147483648 ... 2147483647 | kVARh |
|
| 13.015 | reactive_energy_kvarh | 4 | -2147483648 ... 2147483647 | kVARh |
|
||||||
| 13.100 | long_delta_timesec | 4 | -2147483648 ... 2147483647 | s |
|
| 13.100 | long_delta_timesec | 4 | -2147483648 ... 2147483647 | s |
|
||||||
|
| 14 | 4byte_float | 4 | | |
|
||||||
| 14.000 | acceleration | 4 | | m/s² |
|
| 14.000 | acceleration | 4 | | m/s² |
|
||||||
| 14.*** | 4byte_float | 4 | | |
|
|
||||||
| 14.001 | acceleration_angular | 4 | | rad/s² |
|
| 14.001 | acceleration_angular | 4 | | rad/s² |
|
||||||
| 14.002 | activation_energy | 4 | | J/mol |
|
| 14.002 | activation_energy | 4 | | J/mol |
|
||||||
| 14.003 | activity | 4 | | s⁻¹ |
|
| 14.003 | activity | 4 | | s⁻¹ |
|
||||||
@ -1220,14 +1232,14 @@ always_callback:
|
|||||||
# Example configuration.yaml entry
|
# Example configuration.yaml entry
|
||||||
knx:
|
knx:
|
||||||
sensor:
|
sensor:
|
||||||
- name: Heating.Valve1
|
- name: "Heating Valve 1"
|
||||||
state_address: "2/0/0"
|
state_address: "2/0/0"
|
||||||
sync_state: init
|
sync_state: init
|
||||||
type: "percent"
|
type: percent
|
||||||
- name: Kitchen.Temperature
|
- name: "Kitchen Temperature"
|
||||||
state_address: "6/2/1"
|
state_address: "6/2/1"
|
||||||
sync_state: every 60
|
sync_state: every 60
|
||||||
type: "temperature"
|
type: temperature
|
||||||
```
|
```
|
||||||
|
|
||||||
## Switch
|
## Switch
|
||||||
@ -1237,7 +1249,7 @@ The KNX switch platform is used as an interface to switching actuators.
|
|||||||
```yaml
|
```yaml
|
||||||
knx:
|
knx:
|
||||||
switch:
|
switch:
|
||||||
- name: Kitchen.Coffee
|
- name: "Kitchen coffee maker"
|
||||||
address: "1/1/6"
|
address: "1/1/6"
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -1275,7 +1287,7 @@ To use your KNX weather station in your installation, add the following lines to
|
|||||||
# Example configuration.yaml entry
|
# Example configuration.yaml entry
|
||||||
knx:
|
knx:
|
||||||
weather:
|
weather:
|
||||||
- name: "home"
|
- name: "Home"
|
||||||
address_temperature: "7/0/0"
|
address_temperature: "7/0/0"
|
||||||
address_brightness_south: "7/0/1"
|
address_brightness_south: "7/0/1"
|
||||||
address_brightness_west: "7/0/2"
|
address_brightness_west: "7/0/2"
|
||||||
|
@ -178,7 +178,7 @@ switch:
|
|||||||
|
|
||||||
{% configuration %}
|
{% configuration %}
|
||||||
host:
|
host:
|
||||||
description: "The IP address of your myStrom switch, e.g., `http://192.168.1.32`."
|
description: "The IP address of your myStrom switch, e.g., `192.168.1.32`."
|
||||||
required: true
|
required: true
|
||||||
type: string
|
type: string
|
||||||
name:
|
name:
|
||||||
|
@ -39,7 +39,7 @@ hass.bus.fire(name, {"wow": "from a Python script!"})
|
|||||||
```
|
```
|
||||||
|
|
||||||
- Start Home Assistant
|
- Start Home Assistant
|
||||||
- Call service `python_script.hello_world` with parameters
|
- Call your new {% my developer_call_service service="python_script.hello_world" %} service (with parameters) from the {% my developer_services %}.
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
name: you
|
name: you
|
||||||
|
@ -26,7 +26,9 @@ The `roomba` integration allows you to control your [iRobot Roomba](https://www.
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
<div class='note'>
|
<div class='note'>
|
||||||
This platform has been tested and is confirmed to be working with the iRobot Roomba s9+, Roomba 980, Roomba 960, Roomba 890, and Braava jet m6 models, but should also work fine with any Wi-Fi enabled Roomba or Braava like the 690.
|
|
||||||
|
This integration has been tested and confirmed to be working with the iRobot Roomba s9+, Roomba 980, Roomba 960, Roomba 890, and Braava jet m6 models, but should also work fine with any Wi-Fi enabled Roomba or Braava like the 690. For auto-discovery, you will need to initiate a Roomba reboot. For example, by holding the clean button for up to 20 seconds on an i7 or 980. [More information about rebooting your robot](https://homesupport.irobot.com/app/answers/detail/a_id/9087/~/rebooting-or-resetting-your-robot).
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{% include integrations/config_flow.md %}
|
{% include integrations/config_flow.md %}
|
||||||
|
@ -9,13 +9,13 @@ ha_domain: sensor
|
|||||||
ha_iot_class:
|
ha_iot_class:
|
||||||
---
|
---
|
||||||
|
|
||||||
Sensors are gathering information about states and conditions.
|
Sensors are a basic platform component in Home Assistant. They monitor the states and conditions of a variety of entities. An entity can be many things. This can include a physical device like a motion sensor that reports the battery level, a web service that retrieves the weather temperature, a built-in function that calculates the sun's elevation relative to your GPS position, or even a custom sensor you may have created to report the free space on your laptop. These are all *things* reporting different types of information.
|
||||||
|
|
||||||
Home Assistant currently supports a wide range of sensors. They are able to display information which are provides by Home Assistant directly, are gathered from web services, and, of course, physical devices.
|
Some of these sensors are built-in to Home Assistant, some are created automatically when you add an integration (see this [list](/integrations/#sensor)), and some can be created manually. The [Statistics](/integrations/statistics) and [Template](/integrations/template) sensors are two examples of the last case.
|
||||||
|
|
||||||
## Device Class
|
## Device Class
|
||||||
|
|
||||||
The way these sensors are displayed in the frontend can be modified in the [customize section](/docs/configuration/customizing-devices/). The following device classes are supported for sensors:
|
The type of data a sensor returns impacts how it is displayed in the frontend. This is controlled by the sensor's device class designation. Built-in sensors and many created from an integration will have this designation predefined. Those can be modified in the [customize section](/docs/configuration/customizing-devices/). When manually creating a new sensor the device class may be optionally assigned. A full list of available sensor device classes is below:
|
||||||
|
|
||||||
- **None**: Generic sensor. This is the default and doesn't need to be set.
|
- **None**: Generic sensor. This is the default and doesn't need to be set.
|
||||||
- **battery**: Percentage of battery that is left.
|
- **battery**: Percentage of battery that is left.
|
||||||
|
@ -1,29 +0,0 @@
|
|||||||
---
|
|
||||||
title: "Websocket Connections Sensor"
|
|
||||||
description: "Instructions on how to count connected clients within Home Assistant."
|
|
||||||
logo: home-assistant.png
|
|
||||||
ha_category:
|
|
||||||
- Utility
|
|
||||||
- Sensor
|
|
||||||
ha_release: 0.33
|
|
||||||
ha_iot_class: Local Push
|
|
||||||
ha_quality_scale: internal
|
|
||||||
ha_domain: websocket_api
|
|
||||||
---
|
|
||||||
|
|
||||||
The `websocket_api` sensor platform shows how many clients are connected to the stream API.
|
|
||||||
|
|
||||||
## Configuration
|
|
||||||
|
|
||||||
To add the connected clients to your installation, add the following to your `configuration.yaml` file:
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
# Example configuration.yaml entry
|
|
||||||
sensor:
|
|
||||||
- platform: websocket_api
|
|
||||||
```
|
|
||||||
|
|
||||||
### Note
|
|
||||||
|
|
||||||
This replaces the previous `api_streams` sensor.
|
|
||||||
The default sensor name is `connected_clients`.
|
|
@ -28,6 +28,12 @@ ha_platforms:
|
|||||||
|
|
||||||
Integrate [Shelly devices](https://shelly.cloud) into Home Assistant.
|
Integrate [Shelly devices](https://shelly.cloud) into Home Assistant.
|
||||||
|
|
||||||
|
## Shelly device configuration
|
||||||
|
|
||||||
|
Shelly devices use the `CoIoT` protocol to communicate with integration. For Shelly firmware 1.10.0 or newer, `CoIoT` must be enabled in the device settings. Navigate to the local IP address of your Shelly device, **Internet & Security** >> **ADVANCED - DEVELOPER SETTINGS** and check the box **Enable CoIoT**.
|
||||||
|
|
||||||
|
We recommend using `unicast` for communication. To enable this, enter the local IP address of the Home Assistant server and port `5683` into the **CoIoT peer** field and push **SAVE** button. This is mandatory for Shelly Motion with firmware 1.1.0 or newer. After changing the **CoIoT peer**, the Shelly device needs to be manually restarted.
|
||||||
|
|
||||||
<div class="note">
|
<div class="note">
|
||||||
Integration is communicating directly with the device; cloud connection is not needed.
|
Integration is communicating directly with the device; cloud connection is not needed.
|
||||||
</div>
|
</div>
|
||||||
|
@ -139,6 +139,38 @@ switch:
|
|||||||
|
|
||||||
{% endraw %}
|
{% endraw %}
|
||||||
|
|
||||||
|
### Multiple actions for turn_on or turn_off
|
||||||
|
|
||||||
|
This example shows multiple service calls for turn_on and turn_off.
|
||||||
|
|
||||||
|
{% raw %}
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
switch:
|
||||||
|
- platform: template
|
||||||
|
switches:
|
||||||
|
copy:
|
||||||
|
value_template: "{{ is_state('switch.source', 'on') }}"
|
||||||
|
turn_on:
|
||||||
|
- service: switch.turn_on
|
||||||
|
target:
|
||||||
|
entity_id: switch.target
|
||||||
|
- service: light.turn_on
|
||||||
|
target:
|
||||||
|
entity_id: light.target
|
||||||
|
data:
|
||||||
|
brightness_pct: 40
|
||||||
|
turn_off:
|
||||||
|
- service: switch.turn_off
|
||||||
|
target:
|
||||||
|
entity_id: switch.target
|
||||||
|
- service: light.turn_off
|
||||||
|
target:
|
||||||
|
entity_id: light.target
|
||||||
|
```
|
||||||
|
|
||||||
|
{% endraw %}
|
||||||
|
|
||||||
### Sensor and Two Switches
|
### Sensor and Two Switches
|
||||||
|
|
||||||
This example shows a switch that takes its state from a sensor, and uses two
|
This example shows a switch that takes its state from a sensor, and uses two
|
||||||
|
@ -23,7 +23,7 @@ sensor:
|
|||||||
- platform: systemmonitor
|
- platform: systemmonitor
|
||||||
resources:
|
resources:
|
||||||
- type: disk_use_percent
|
- type: disk_use_percent
|
||||||
arg: /home
|
arg: /config
|
||||||
- type: memory_free
|
- type: memory_free
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -69,7 +69,3 @@ forecast_template:
|
|||||||
required: false
|
required: false
|
||||||
type: template
|
type: template
|
||||||
{% endconfiguration %}
|
{% endconfiguration %}
|
||||||
|
|
||||||
## Considerations
|
|
||||||
|
|
||||||
If you are using the state of a integration that takes extra time to load, the Template Weather may get an `unknown` state during startup. This results in error messages in your log file until that integration has completed loading. If you use `is_state()` function in your template, you can avoid this situation.
|
|
||||||
|
@ -26,10 +26,12 @@ For details to use the WebSocket API, please refer to the [WebSocket API documen
|
|||||||
|
|
||||||
## Track current connections
|
## Track current connections
|
||||||
|
|
||||||
The websocket API provides a sensor that will keep track of the number of current connected clients. You can add it by adding the following to your configuration:
|
The WebSocket API provides a sensor that will keep track of the number of currently connected clients. You can add it by adding the following to your configuration:
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
# Example configuration.yaml entry
|
# Example configuration.yaml entry
|
||||||
sensor:
|
sensor:
|
||||||
platform: websocket_api
|
- platform: websocket_api
|
||||||
```
|
```
|
||||||
|
|
||||||
|
This will create a sensor called `sensor.connected_clients` whose value is the total number of connected clients.
|
||||||
|
@ -77,6 +77,7 @@ Some other Zigbee coordinator hardware may not support a firmware that is capabl
|
|||||||
- Texas Instruments based radios with Z-Stack 3.x.x (via the [zigpy-znp](https://github.com/zha-ng/zigpy-znp) library for zigpy)
|
- Texas Instruments based radios with Z-Stack 3.x.x (via the [zigpy-znp](https://github.com/zha-ng/zigpy-znp) library for zigpy)
|
||||||
- [CC2652P/CC2652R/CC2652RB USB stick or dev board hardware flashed with Z-Stack 3.x.x coordinator firmware](https://www.zigbee2mqtt.io/information/supported_adapters)
|
- [CC2652P/CC2652R/CC2652RB USB stick or dev board hardware flashed with Z-Stack 3.x.x coordinator firmware](https://www.zigbee2mqtt.io/information/supported_adapters)
|
||||||
- [CC1352P/CC1352R USB stick or dev board hardware flashed with Z-Stack 3.x.x coordinator firmware](https://www.zigbee2mqtt.io/information/supported_adapters)
|
- [CC1352P/CC1352R USB stick or dev board hardware flashed with Z-Stack 3.x.x coordinator firmware](https://www.zigbee2mqtt.io/information/supported_adapters)
|
||||||
|
- [CC2538 USB stick or dev board hardware flashed with Z-Stack 3.x.x coordinator firmware](https://www.zigbee2mqtt.io/information/supported_adapters)
|
||||||
- Digi XBee Zigbee based radios (via the [zigpy-xbee](https://github.com/zigpy/zigpy-xbee) library for zigpy)
|
- Digi XBee Zigbee based radios (via the [zigpy-xbee](https://github.com/zigpy/zigpy-xbee) library for zigpy)
|
||||||
- [Digi XBee Series 3 (xbee3-24)](https://www.digi.com/products/embedded-systems/digi-xbee/rf-modules/2-4-ghz-rf-modules/xbee3-zigbee-3) and [Digi XBee Series S2C](https://www.digi.com/products/embedded-systems/digi-xbee/rf-modules/2-4-ghz-rf-modules/xbee-zigbee) modules
|
- [Digi XBee Series 3 (xbee3-24)](https://www.digi.com/products/embedded-systems/digi-xbee/rf-modules/2-4-ghz-rf-modules/xbee3-zigbee-3) and [Digi XBee Series S2C](https://www.digi.com/products/embedded-systems/digi-xbee/rf-modules/2-4-ghz-rf-modules/xbee-zigbee) modules
|
||||||
- Note! While not a must, [it is recommend to upgrade XBee Series 3 and S2C to newest firmware firmware using XCTU](https://www.digi.com/resources/documentation/Digidocs/90002002/Default.htm#Tasks/t_load_zb_firmware.htm)
|
- Note! While not a must, [it is recommend to upgrade XBee Series 3 and S2C to newest firmware firmware using XCTU](https://www.digi.com/resources/documentation/Digidocs/90002002/Default.htm#Tasks/t_load_zb_firmware.htm)
|
||||||
@ -87,6 +88,8 @@ Some other Zigbee coordinator hardware may not support a firmware that is capabl
|
|||||||
- [PiZiGate](https://zigate.fr/produit/pizigate-v1-0/)
|
- [PiZiGate](https://zigate.fr/produit/pizigate-v1-0/)
|
||||||
- [Wifi ZiGate](https://zigate.fr/produit/zigate-pack-wifi-v1-3/)
|
- [Wifi ZiGate](https://zigate.fr/produit/zigate-pack-wifi-v1-3/)
|
||||||
|
|
||||||
|
#### Warning about Wi-Fi-based Zigbee-to-Serial bridges/gateways
|
||||||
|
|
||||||
<div class="note warning">
|
<div class="note warning">
|
||||||
|
|
||||||
The **EZSP** protocol requires a stable connection to the serial port. With _ITEAD Sonoff ZBBridge_ connecting over the WiFi network
|
The **EZSP** protocol requires a stable connection to the serial port. With _ITEAD Sonoff ZBBridge_ connecting over the WiFi network
|
||||||
|
@ -635,8 +635,8 @@
|
|||||||
/components/sensor.amcrest /integrations/amcrest
|
/components/sensor.amcrest /integrations/amcrest
|
||||||
/components/sensor.android_ip_webcam /integrations/android_ip_webcam#sensor
|
/components/sensor.android_ip_webcam /integrations/android_ip_webcam#sensor
|
||||||
/components/sensor.apcupsd /integrations/apcupsd#sensor
|
/components/sensor.apcupsd /integrations/apcupsd#sensor
|
||||||
/components/sensor.api_stream /integrations/sensor.websocket_api
|
/components/sensor.api_stream /integrations/websocket_api
|
||||||
/components/sensor.api_streams /integrations/sensor.websocket_api
|
/components/sensor.api_streams /integrations/websocket_api
|
||||||
/components/sensor.aqualogic /integrations/aqualogic#sensor
|
/components/sensor.aqualogic /integrations/aqualogic#sensor
|
||||||
/components/sensor.arduino /integrations/arduino#sensor
|
/components/sensor.arduino /integrations/arduino#sensor
|
||||||
/components/sensor.arest /integrations/arest#sensor
|
/components/sensor.arest /integrations/arest#sensor
|
||||||
@ -1076,6 +1076,7 @@
|
|||||||
/integrations/fan.xiaomi_miio /integrations/xiaomi_miio
|
/integrations/fan.xiaomi_miio /integrations/xiaomi_miio
|
||||||
/integrations/light.xiaomi_miio /integrations/xiaomi_miio
|
/integrations/light.xiaomi_miio /integrations/xiaomi_miio
|
||||||
/integrations/remote.xiaomi_miio /integrations/xiaomi_miio
|
/integrations/remote.xiaomi_miio /integrations/xiaomi_miio
|
||||||
|
/integrations/sensor.websocket_api /integrations/websocket_api
|
||||||
/integrations/sensor.xiaomi_miio /integrations/xiaomi_miio
|
/integrations/sensor.xiaomi_miio /integrations/xiaomi_miio
|
||||||
/integrations/switch.xiaomi_miio /integrations/xiaomi_miio
|
/integrations/switch.xiaomi_miio /integrations/xiaomi_miio
|
||||||
/integrations/vacuum.xiaomi_miio /integrations/xiaomi_miio
|
/integrations/vacuum.xiaomi_miio /integrations/xiaomi_miio
|
||||||
|
Loading…
x
Reference in New Issue
Block a user