Merge branch 'current' into next

This commit is contained in:
Franck Nijhof 2023-07-25 17:13:38 +02:00
commit 3a0c577b55
No known key found for this signature in database
GPG Key ID: D62583BA8AB11CA3
324 changed files with 6630 additions and 3380 deletions

View File

@ -10,7 +10,7 @@ jobs:
- name: Check out files from GitHub
uses: actions/checkout@v3.5.3
- name: Setting up Node.js
uses: actions/setup-node@v3.6.0
uses: actions/setup-node@v3.7.0
with:
node-version: 16.x
cache: "npm"
@ -27,7 +27,7 @@ jobs:
- name: Check out files from GitHub
uses: actions/checkout@v3.5.3
- name: Setting up Node.js
uses: actions/setup-node@v3.6.0
uses: actions/setup-node@v3.7.0
with:
node-version: 16.x
cache: "npm"

View File

@ -2,4 +2,12 @@
_source/developers/credits.markdown
# Third party
sass/inuitcss/*
sass/inuitcss/*
LICENSE.md
# Changelogs are made out of commit messages
# We don't want to correct them
source/changelogs
# Lots of older changelogs we don't want to change/update
source/_posts

View File

@ -1,18 +1,38 @@
var remarkrc = {
settings: {
bullet: '-',
commonmark: true,
emphasis: '_',
fence: '`',
incrementListMarker: true,
listItemIndent: 1,
strong: '*'
},
plugins: [
["frontmatter"],
["lint-fenced-code-flag"],
["lint-no-shell-dollars"]
]
settings: {
bullet: "-",
commonmark: true,
emphasis: "_",
fence: "`",
incrementListMarker: true,
listItemIndent: 1,
strong: "*",
},
plugins: [
["frontmatter"],
["lint-fenced-code-flag"],
["lint-no-shell-dollars"],
["remark-lint-heading-increment"],
["remark-lint-heading-style", "atx"],
["remark-lint-unordered-list-marker-style", "-"],
["remark-lint-ordered-list-marker-style", "."],
["remark-lint-ordered-list-marker-value"],
[
"remark-lint-prohibited-strings",
[
{ no: "[Hh]ome [Aa]ss?s?istant", yes: "Home Assistant" },
{ no: "[Ww]eb[Ss]ocket", yes: "WebSocket" },
{ no: "Github", yes: "GitHub" },
{
no: "https://www.home-assistant.io/",
yes: "/",
ignoreNextTo: ['"', '"'],
},
{ no: "Speech-[Tt]o-Text", yes: "Speech-to-text" },
{ no: "Text-[Tt]o-Speech", yes: "Text-to-speech" },
],
],
],
};
module.exports = remarkrc;
module.exports = remarkrc;

View File

@ -159,6 +159,7 @@ source/_integrations/digital_loggers.markdown @esev
source/_integrations/digital_ocean.markdown @fabaff
source/_integrations/discogs.markdown @thibmaek
source/_integrations/discord.markdown @tkdrob
source/_integrations/discovergy.markdown @jpbede
source/_integrations/discovery.markdown @home-assistant/core
source/_integrations/dlink.markdown @tkdrob
source/_integrations/dlna_dmr.markdown @StevenLooman @chishm
@ -167,6 +168,7 @@ source/_integrations/dnsip.markdown @gjohansson-ST
source/_integrations/doorbird.markdown @oblogic7 @bdraco @flacjacket
source/_integrations/dooya.markdown @starkillerOG
source/_integrations/dormakaba_dkey.markdown @emontnemery
source/_integrations/dremel_3d_printer.markdown @tkdrob
source/_integrations/dsmr.markdown @Robbie1221 @frenck
source/_integrations/dsmr_reader.markdown @depl0y @glodenox
source/_integrations/dunehd.markdown @bieniu
@ -205,7 +207,7 @@ source/_integrations/epsonworkforce.markdown @ThaStealth
source/_integrations/eq3btsmart.markdown @rytilahti
source/_integrations/escea.markdown @lazdavila
source/_integrations/esera_onewire.markdown @garbled1 @epenet
source/_integrations/esphome.markdown @OttoWinter @jesserockz
source/_integrations/esphome.markdown @OttoWinter @jesserockz @bdraco
source/_integrations/eufylife_ble.markdown @bdr99
source/_integrations/evil_genius_labs.markdown @balloob
source/_integrations/evohome.markdown @zxdavb
@ -258,7 +260,7 @@ source/_integrations/gios.markdown @bieniu
source/_integrations/github.markdown @timmo001 @ludeeus
source/_integrations/glances.markdown @engrbm87
source/_integrations/goalzero.markdown @tkdrob
source/_integrations/gogogate2.markdown @vangorra @bdraco
source/_integrations/gogogate2.markdown @vangorra
source/_integrations/goodwe.markdown @mletenay @starkillerOG
source/_integrations/google.markdown @allenporter
source/_integrations/google_assistant.markdown @home-assistant/cloud
@ -319,6 +321,7 @@ source/_integrations/iaqualink.markdown @flz
source/_integrations/ibeacon.markdown @bdraco
source/_integrations/icloud.markdown @Quentame @nzapponi
source/_integrations/ign_sismologia.markdown @exxamalte
source/_integrations/image.markdown @home-assistant/core
source/_integrations/image_processing.markdown @home-assistant/core
source/_integrations/image_upload.markdown @home-assistant/core
source/_integrations/imap.markdown @jbouwh
@ -395,6 +398,7 @@ source/_integrations/logbook.markdown @home-assistant/core
source/_integrations/logger.markdown @home-assistant/core
source/_integrations/logi_circle.markdown @evanjd
source/_integrations/lookin.markdown @ANMalko @bdraco
source/_integrations/loqed.markdown @mikewoudenberg
source/_integrations/luci.markdown @mzdrale
source/_integrations/luftdaten.markdown @fabaff @frenck
source/_integrations/lupusec.markdown @majuss
@ -443,7 +447,7 @@ source/_integrations/msteams.markdown @peroyvind
source/_integrations/mullvad.markdown @meichthys
source/_integrations/mutesync.markdown @currentoor
source/_integrations/my.markdown @home-assistant/core
source/_integrations/myq.markdown @bdraco @ehendrix23
source/_integrations/myq.markdown @ehendrix23
source/_integrations/mysensors.markdown @MartinHjelmare @functionpointer
source/_integrations/mystrom.markdown @fabaff
source/_integrations/nam.markdown @bieniu
@ -545,6 +549,7 @@ source/_integrations/pvpc_hourly_pricing.markdown @azogue
source/_integrations/qbittorrent.markdown @geoffreylagaisse
source/_integrations/qingping.markdown @bdraco @skgsergio
source/_integrations/qld_bushfire.markdown @exxamalte
source/_integrations/qnap.markdown @disforw
source/_integrations/qnap_qsw.markdown @Noltari
source/_integrations/quadrafire.markdown @jeeftor
source/_integrations/quantum_gateway.markdown @cisasteelersfan
@ -567,6 +572,7 @@ source/_integrations/recorder.markdown @home-assistant/core
source/_integrations/rejseplanen.markdown @DarkFox
source/_integrations/remote.markdown @home-assistant/core
source/_integrations/renault.markdown @epenet
source/_integrations/renson.markdown @jimmyd-be
source/_integrations/reolink.markdown @starkillerOG
source/_integrations/repairs.markdown @home-assistant/core
source/_integrations/repetier.markdown @MTrab @ShadowBr0ther
@ -605,7 +611,6 @@ source/_integrations/search.markdown @home-assistant/core
source/_integrations/season.markdown @frenck
source/_integrations/select.markdown @home-assistant/core
source/_integrations/sense.markdown @kbickar
source/_integrations/senseme.markdown @mikelawrence @bdraco
source/_integrations/sensibo.markdown @andrey-git @gjohansson-ST
source/_integrations/sensirion_ble.markdown @akx
source/_integrations/sensor.markdown @home-assistant/core
@ -736,6 +741,7 @@ source/_integrations/tts.markdown @home-assistant/core @pvizeli
source/_integrations/tuya.markdown @Tuya @zlinoliver @frenck
source/_integrations/twentemilieu.markdown @frenck
source/_integrations/twinkly.markdown @dr1rrb @Robbie1221
source/_integrations/twitch.markdown @joostlek
source/_integrations/ubiwizz.markdown @imicknl @vlebourl @tetienne @nyroDev
source/_integrations/ukraine_alarm.markdown @PaulAnnekov
source/_integrations/unifi.markdown @Kane610

View File

@ -17,23 +17,23 @@ diverse, inclusive, and healthy community.
Examples of behavior that contributes to a positive environment for our
community include:
* Demonstrating empathy and kindness toward other people
* Being respectful of differing opinions, viewpoints, and experiences
* Giving and gracefully accepting constructive feedback
* Accepting responsibility and apologizing to those affected by our mistakes,
- Demonstrating empathy and kindness toward other people
- Being respectful of differing opinions, viewpoints, and experiences
- Giving and gracefully accepting constructive feedback
- Accepting responsibility and apologizing to those affected by our mistakes,
and learning from the experience
* Focusing on what is best not just for us as individuals, but for the
- Focusing on what is best not just for us as individuals, but for the
overall community
Examples of unacceptable behavior include:
* The use of sexualized language or imagery, and sexual attention or
- The use of sexualized language or imagery, and sexual attention or
advances of any kind
* Trolling, insulting or derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or email
- Trolling, insulting or derogatory comments, and personal or political attacks
- Public or private harassment
- Publishing others' private information, such as a physical or email
address, without their explicit permission
* Other conduct which could reasonably be considered inappropriate in a
- Other conduct which could reasonably be considered inappropriate in a
professional setting
## Enforcement Responsibilities

View File

@ -20,7 +20,7 @@ group :jekyll_plugins do
end
gem 'sinatra', '3.0.6'
gem 'nokogiri', '1.15.2'
gem 'nokogiri', '1.15.3'
# Windows and JRuby does not include zoneinfo files, so bundle the tzinfo-data gem
# and associated library

View File

@ -27,7 +27,7 @@ GEM
ffi (1.15.5)
ffi (1.15.5-x64-mingw32)
forwardable-extended (2.6.0)
google-protobuf (3.23.3)
google-protobuf (3.23.4)
http_parser.rb (0.8.0)
i18n (1.14.1)
concurrent-ruby (~> 1.0)
@ -68,16 +68,16 @@ GEM
rb-fsevent (~> 0.10, >= 0.10.3)
rb-inotify (~> 0.9, >= 0.9.10)
mercenary (0.4.0)
mini_portile2 (2.8.2)
mini_portile2 (2.8.4)
multi_json (1.15.0)
mustermann (3.0.0)
ruby2_keywords (~> 0.0.1)
nokogiri (1.15.2)
nokogiri (1.15.3)
mini_portile2 (~> 2.8.2)
racc (~> 1.4)
pathutil (0.16.2)
forwardable-extended (~> 2.6)
public_suffix (5.0.1)
public_suffix (5.0.3)
racc (1.7.1)
rack (2.2.7)
rack-protection (3.0.6)
@ -129,7 +129,7 @@ DEPENDENCIES
jekyll-paginate (= 1.1.0)
jekyll-sitemap (= 1.4.0)
jekyll-toc (= 0.18.0)
nokogiri (= 1.15.2)
nokogiri (= 1.15.3)
rake (= 13.0.6)
sass-globbing (= 1.1.5)
sassc (= 2.1.0)

View File

@ -109,9 +109,9 @@ social:
# Home Assistant release details
current_major_version: 2023
current_minor_version: 6
current_minor_version: 7
current_patch_version: 3
date_released: 2023-06-23
date_released: 2023-07-21
# Either # or the anchor link to latest release notes in the blog post.
# Must be prefixed with a # and have double quotes around it.

346
package-lock.json generated
View File

@ -12,14 +12,29 @@
"remark-frontmatter": "^4.0.1",
"remark-lint": "^9.1.2",
"remark-lint-fenced-code-flag": "^3.1.2",
"remark-lint-heading-increment": "^3.1.2",
"remark-lint-heading-style": "^3.1.2",
"remark-lint-no-shell-dollars": "^3.1.2",
"remark-lint-ordered-list-marker-style": "^3.1.2",
"remark-lint-ordered-list-marker-value": "^3.1.2",
"remark-lint-prohibited-strings": "^3.1.0",
"remark-lint-unordered-list-marker-style": "^3.1.2",
"remark-stringify": "^10.0.3",
"textlint": "^13.3.2",
"textlint": "^13.3.3",
"textlint-filter-rule-comments": "^1.2.2",
"textlint-rule-common-misspellings": "^1.0.1",
"textlint-rule-terminology": "^3.0.5"
}
},
"node_modules/@aashutoshrathi/word-wrap": {
"version": "1.2.6",
"resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz",
"integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==",
"dev": true,
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/@azu/format-text": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/@azu/format-text/-/format-text-1.0.2.tgz",
@ -241,59 +256,59 @@
}
},
"node_modules/@textlint/ast-node-types": {
"version": "13.3.2",
"resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-13.3.2.tgz",
"integrity": "sha512-d9WXBahsAgRDWcfUE7pQs8E9SNbF0nxrEaYE2g01tLgQ/dYdlOLngNPXi0Lk+C+yU58kvmFSdO6nicIAe3WIiw==",
"version": "13.3.3",
"resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-13.3.3.tgz",
"integrity": "sha512-KCpJppfX3Km69twa6SmVEJ8mkyAZSrxw3XaaLQSlpc7PWnLUJSCHGPVECI1nSUDhiTd1r6zlRvWuyIAZJiov+A==",
"dev": true
},
"node_modules/@textlint/ast-tester": {
"version": "13.3.2",
"resolved": "https://registry.npmjs.org/@textlint/ast-tester/-/ast-tester-13.3.2.tgz",
"integrity": "sha512-qbpmJS7mEZcTrcKuppPQ8o2VJFUvHJ4+/l5iNEc2JRtMqpoNP6JAIKwIuDcEsMxedClExVTPmNctUlteglpD2A==",
"version": "13.3.3",
"resolved": "https://registry.npmjs.org/@textlint/ast-tester/-/ast-tester-13.3.3.tgz",
"integrity": "sha512-vIIEJ0vDJb3Pr4kseOH9yzUCxx1EbX6PQDg/DgQj9sMAnwVG2sZvy2Uiga4+hj8SphdzaKia9Z+156UZzs+mzA==",
"dev": true,
"dependencies": {
"@textlint/ast-node-types": "^13.3.2",
"@textlint/ast-node-types": "^13.3.3",
"debug": "^4.3.4"
}
},
"node_modules/@textlint/ast-traverse": {
"version": "13.3.2",
"resolved": "https://registry.npmjs.org/@textlint/ast-traverse/-/ast-traverse-13.3.2.tgz",
"integrity": "sha512-c+SI7SAWH1S+q5iok0Q/jrprG1BctstTF4A8msi/1bioKtn/PrD01w/MDsPkDT+K15RrWYUSjG8FLuGPnEN78Q==",
"version": "13.3.3",
"resolved": "https://registry.npmjs.org/@textlint/ast-traverse/-/ast-traverse-13.3.3.tgz",
"integrity": "sha512-tZ25emmWf3mJ4+vM8CO6D7F8l00WXD6MJgnnlY9BHI/HbOlngBfmKhTVizQEwrWfYF80sQO5R9a+N4UEk67Wcg==",
"dev": true,
"dependencies": {
"@textlint/ast-node-types": "^13.3.2"
"@textlint/ast-node-types": "^13.3.3"
}
},
"node_modules/@textlint/config-loader": {
"version": "13.3.2",
"resolved": "https://registry.npmjs.org/@textlint/config-loader/-/config-loader-13.3.2.tgz",
"integrity": "sha512-P8DESsBh3JBRMujbyV3WjVlhbDVaGBIRtEL0AveNSSe6+X0ef7OtesxGJhD8p/DIyA9X+69bqpg7mcV7DTuO9w==",
"version": "13.3.3",
"resolved": "https://registry.npmjs.org/@textlint/config-loader/-/config-loader-13.3.3.tgz",
"integrity": "sha512-DQA/7dYu3VDHP9Idd0Sn7HzwiFuNdKUXfA79pUGmJzNQUYaW0qADzyQCwfh7LlvhCcBmnLgX+8wb13o6OaHX5g==",
"dev": true,
"dependencies": {
"@textlint/kernel": "^13.3.2",
"@textlint/module-interop": "^13.3.2",
"@textlint/types": "^13.3.2",
"@textlint/utils": "^13.3.2",
"@textlint/kernel": "^13.3.3",
"@textlint/module-interop": "^13.3.3",
"@textlint/types": "^13.3.3",
"@textlint/utils": "^13.3.3",
"debug": "^4.3.4",
"rc-config-loader": "^4.1.2",
"rc-config-loader": "^4.1.3",
"try-resolve": "^1.0.1"
}
},
"node_modules/@textlint/feature-flag": {
"version": "13.3.2",
"resolved": "https://registry.npmjs.org/@textlint/feature-flag/-/feature-flag-13.3.2.tgz",
"integrity": "sha512-ewW8dlhcFf19QuqlycQHqySQB/VhKQ7opYjvsJvUr2GP7/nY1Wq4vMWEhCtCOVg7Khumw1JtoS7+DaQGiFzuaQ==",
"version": "13.3.3",
"resolved": "https://registry.npmjs.org/@textlint/feature-flag/-/feature-flag-13.3.3.tgz",
"integrity": "sha512-ltdwKQTvs9f/TgQ3asBx2EXmsSSsvxa7ySnTXSTZBkbVxqmrGY4zehDRiDCmuFZGVGCvCddY1QzCXy16ybk9Fg==",
"dev": true
},
"node_modules/@textlint/fixer-formatter": {
"version": "13.3.2",
"resolved": "https://registry.npmjs.org/@textlint/fixer-formatter/-/fixer-formatter-13.3.2.tgz",
"integrity": "sha512-Szvb6OGx/+PkiqDUMVyXD5WDaraoU64VNWZhUm96wEjGxt7seMecRgYiKc7LkQllcStJ2lP8Dgju1phGaD5hbQ==",
"version": "13.3.3",
"resolved": "https://registry.npmjs.org/@textlint/fixer-formatter/-/fixer-formatter-13.3.3.tgz",
"integrity": "sha512-iCMFS8GrmUetXMIT4/jFxoL5v1QN5ODj1190Lb6D+EdTxsrAWssHOb6m7MOEhfOGYEArAkb3PjSxu7DPLrb50g==",
"dev": true,
"dependencies": {
"@textlint/module-interop": "^13.3.2",
"@textlint/types": "^13.3.2",
"@textlint/module-interop": "^13.3.3",
"@textlint/types": "^13.3.3",
"chalk": "^4.1.2",
"debug": "^4.3.4",
"diff": "^4.0.2",
@ -305,39 +320,38 @@
}
},
"node_modules/@textlint/kernel": {
"version": "13.3.2",
"resolved": "https://registry.npmjs.org/@textlint/kernel/-/kernel-13.3.2.tgz",
"integrity": "sha512-KZX87i4xVqLXdb8Cl4y0Y56jIHQIwg+YPrLz/kBz2TQDl8vYeGLII4QHwT1l0BjZ2JHawm1pmyQZml3hCnieOQ==",
"version": "13.3.3",
"resolved": "https://registry.npmjs.org/@textlint/kernel/-/kernel-13.3.3.tgz",
"integrity": "sha512-HewzuuX2c2nlR+e8dREWrAYrOiyWb78eeObuW95miMjX/F6TjWmha4qrnrMCWbYbKDwC4en8dNGS4mm0vSdi4A==",
"dev": true,
"dependencies": {
"@textlint/ast-node-types": "^13.3.2",
"@textlint/ast-tester": "^13.3.2",
"@textlint/ast-traverse": "^13.3.2",
"@textlint/feature-flag": "^13.3.2",
"@textlint/source-code-fixer": "^13.3.2",
"@textlint/types": "^13.3.2",
"@textlint/utils": "^13.3.2",
"@textlint/ast-node-types": "^13.3.3",
"@textlint/ast-tester": "^13.3.3",
"@textlint/ast-traverse": "^13.3.3",
"@textlint/feature-flag": "^13.3.3",
"@textlint/source-code-fixer": "^13.3.3",
"@textlint/types": "^13.3.3",
"@textlint/utils": "^13.3.3",
"debug": "^4.3.4",
"fast-equals": "^4.0.3",
"structured-source": "^4.0.0"
}
},
"node_modules/@textlint/linter-formatter": {
"version": "13.3.2",
"resolved": "https://registry.npmjs.org/@textlint/linter-formatter/-/linter-formatter-13.3.2.tgz",
"integrity": "sha512-QpHI7bzDMaetmrnMhA2+z1ExneFCdJVZHUFyzdfSv5JC4VNXmW9UDb7F7vsP+M+1jzIvF75mwvRLvmA82MJvBA==",
"version": "13.3.3",
"resolved": "https://registry.npmjs.org/@textlint/linter-formatter/-/linter-formatter-13.3.3.tgz",
"integrity": "sha512-z8xsk1bo9r8v6Ph76WLTBrfj+0+eyEfRlbTGBs+ie6YAGItBqkLYmDrD26DDfVjIZcXWdCXVX1Et6MOWomb//g==",
"dev": true,
"dependencies": {
"@azu/format-text": "^1.0.2",
"@azu/style-format": "^1.0.1",
"@textlint/module-interop": "^13.3.2",
"@textlint/types": "^13.3.2",
"@textlint/module-interop": "^13.3.3",
"@textlint/types": "^13.3.3",
"chalk": "^4.1.2",
"debug": "^4.3.4",
"is-file": "^1.0.0",
"js-yaml": "^3.14.1",
"lodash": "^4.17.21",
"optionator": "^0.9.1",
"pluralize": "^2.0.0",
"string-width": "^4.2.3",
"strip-ansi": "^6.0.1",
@ -347,12 +361,12 @@
}
},
"node_modules/@textlint/markdown-to-ast": {
"version": "13.3.2",
"resolved": "https://registry.npmjs.org/@textlint/markdown-to-ast/-/markdown-to-ast-13.3.2.tgz",
"integrity": "sha512-tnXk7YO8rIPbnd6rDi6LwhxoExdg6ge8v5ggiun76qLfX2uKR0ExhJEL2K+zziATi1AqalBva3WD3exU1sfjeg==",
"version": "13.3.3",
"resolved": "https://registry.npmjs.org/@textlint/markdown-to-ast/-/markdown-to-ast-13.3.3.tgz",
"integrity": "sha512-jeqWyChTtJHWxEnH46V6qjr+OCTh6evm45aDqMzdg+b8ocXY+NhudiCMeHcVGoz042UEwc6w4reLn8+Is+SZ+A==",
"dev": true,
"dependencies": {
"@textlint/ast-node-types": "^13.3.2",
"@textlint/ast-node-types": "^13.3.3",
"debug": "^4.3.4",
"mdast-util-gfm-autolink-literal": "^0.1.3",
"remark-footnotes": "^3.0.0",
@ -590,61 +604,61 @@
}
},
"node_modules/@textlint/module-interop": {
"version": "13.3.2",
"resolved": "https://registry.npmjs.org/@textlint/module-interop/-/module-interop-13.3.2.tgz",
"integrity": "sha512-JPHAZlWXgedDCoaTT21dln8u+sPVJUGPw283Oxz1k24x2MWaFZO7EReu/K4QepdxNKOpdllp2DqvnWgnvZoPOg==",
"version": "13.3.3",
"resolved": "https://registry.npmjs.org/@textlint/module-interop/-/module-interop-13.3.3.tgz",
"integrity": "sha512-CwfVpRGAxbkhGY9vLLU06Q/dy/RMNnyzbmt6IS2WIyxqxvGaF7QZtFYpKEEm63aemVyUvzQ7WM3yVOoUg6P92w==",
"dev": true
},
"node_modules/@textlint/source-code-fixer": {
"version": "13.3.2",
"resolved": "https://registry.npmjs.org/@textlint/source-code-fixer/-/source-code-fixer-13.3.2.tgz",
"integrity": "sha512-7b+7zDUnEILcaYvJDLz+6Uu8YHn85xm6Lof/0Azn1/5zcDsz5qDjgJ21u+kuS+1kQBSpWV8dmCT3sTZoS0uExg==",
"version": "13.3.3",
"resolved": "https://registry.npmjs.org/@textlint/source-code-fixer/-/source-code-fixer-13.3.3.tgz",
"integrity": "sha512-h4jxWSetmcVuGwl71ai72784aneBQ0MkE5Mc3avl8PKIOIOyz0A1D7i9VQENWWIiqU8zyzmHwKGNSGyqWaqE2Q==",
"dev": true,
"dependencies": {
"@textlint/types": "^13.3.2",
"@textlint/types": "^13.3.3",
"debug": "^4.3.4"
}
},
"node_modules/@textlint/text-to-ast": {
"version": "13.3.2",
"resolved": "https://registry.npmjs.org/@textlint/text-to-ast/-/text-to-ast-13.3.2.tgz",
"integrity": "sha512-6E2sFTukn5XygCWE1W6jU1rlQKO268tS5Qe8oHBdxp0tohFXMRzVM5r1MKgjjmuUpHxjwIcq75x+dWAYwX5wLQ==",
"version": "13.3.3",
"resolved": "https://registry.npmjs.org/@textlint/text-to-ast/-/text-to-ast-13.3.3.tgz",
"integrity": "sha512-iQdiHAiUfB9XruuYWCb4fY/gD/Q5/MkH1xwUTpS8UJowNgwpTldagUJX1JbZQ2UHux+yRe9JFA+JKm3rrxgQFw==",
"dev": true,
"dependencies": {
"@textlint/ast-node-types": "^13.3.2"
"@textlint/ast-node-types": "^13.3.3"
}
},
"node_modules/@textlint/textlint-plugin-markdown": {
"version": "13.3.2",
"resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-markdown/-/textlint-plugin-markdown-13.3.2.tgz",
"integrity": "sha512-iI/UuzUz4k5qnrPnm7U7d8oC/Hwj41MtllusBSArG3mimn5gHsS+Etzm5Zs3oxXMINdzvWNNEFJ/xbs1bZvEJg==",
"version": "13.3.3",
"resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-markdown/-/textlint-plugin-markdown-13.3.3.tgz",
"integrity": "sha512-EhBZ/Q6ZXMVRPDeQbFdFbtc0wE7SC0DWy9lkjKXfcbLKW0ZPTvtjH3JqJtCPBZAYcexB8wKOiHImfwVfQJhJhg==",
"dev": true,
"dependencies": {
"@textlint/markdown-to-ast": "^13.3.2"
"@textlint/markdown-to-ast": "^13.3.3"
}
},
"node_modules/@textlint/textlint-plugin-text": {
"version": "13.3.2",
"resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-text/-/textlint-plugin-text-13.3.2.tgz",
"integrity": "sha512-pJrb4OYZ3TB6eKxvxPYARwoHb5vaXoKakCrmsyXtwbRjylJWCRVRh/u8UTRTyFRotASawEY/VfxKXwYepHP91Q==",
"version": "13.3.3",
"resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-text/-/textlint-plugin-text-13.3.3.tgz",
"integrity": "sha512-MN/JMGLanqj8CJGuit8DDiyrO0yf1vxFMLWTDeMIXwSoe8VToHCt2j20zg8XNHGNrUbKj+wuhzhrkrKEI7uWxg==",
"dev": true,
"dependencies": {
"@textlint/text-to-ast": "^13.3.2"
"@textlint/text-to-ast": "^13.3.3"
}
},
"node_modules/@textlint/types": {
"version": "13.3.2",
"resolved": "https://registry.npmjs.org/@textlint/types/-/types-13.3.2.tgz",
"integrity": "sha512-N1Xb4kltBwBwAF3wAwKi3sJA0hWVjraWqIpjuHOplul/O8Qu78domGedktQJ4n2aVN1ucBuFjpZNsQfkfxJI+Q==",
"version": "13.3.3",
"resolved": "https://registry.npmjs.org/@textlint/types/-/types-13.3.3.tgz",
"integrity": "sha512-i2B7uRh+Iv8ZBKPJ3n4I6uSrTUQq5LdEkhFYNUwnDYxmhudz1o79xm906kri2eM8lxThX/UYYgVuJWpEwS0b+g==",
"dev": true,
"dependencies": {
"@textlint/ast-node-types": "^13.3.2"
"@textlint/ast-node-types": "^13.3.3"
}
},
"node_modules/@textlint/utils": {
"version": "13.3.2",
"resolved": "https://registry.npmjs.org/@textlint/utils/-/utils-13.3.2.tgz",
"integrity": "sha512-eEi4j5vyQ0WRkfkBS+Sa2q1YQVo0B6cFXde2+TVpoDp7f8yPAb4wMv9jgQ23N+DpiafJVOhRQLyJdrITFwnmFw==",
"version": "13.3.3",
"resolved": "https://registry.npmjs.org/@textlint/utils/-/utils-13.3.3.tgz",
"integrity": "sha512-roN+K3a36RxGc0tV+8HXVXpoPomEr3LCjNI8+hFmVjOu3RsUdLTyraNBqqaghaE0KgwCPODF0seuG1hteNI8LQ==",
"dev": true
},
"node_modules/@types/concat-stream": {
@ -2148,6 +2162,19 @@
"url": "https://github.com/sponsors/wooorm"
}
},
"node_modules/mdast-util-heading-style": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/mdast-util-heading-style/-/mdast-util-heading-style-2.0.1.tgz",
"integrity": "sha512-0L5rthU4xKDVbw+UQ7D8Y8xOEsX4JXZvemWoEAsL+WAaeSH+TvVVwFnTb3G/OrjyP4VYQULoNWU+PdZfkmNu4A==",
"dev": true,
"dependencies": {
"@types/mdast": "^3.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
"node_modules/mdast-util-mdx-expression": {
"version": "1.3.2",
"resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-1.3.2.tgz",
@ -3002,17 +3029,17 @@
}
},
"node_modules/optionator": {
"version": "0.9.1",
"resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz",
"integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==",
"version": "0.9.3",
"resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz",
"integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==",
"dev": true,
"dependencies": {
"@aashutoshrathi/word-wrap": "^1.2.3",
"deep-is": "^0.1.3",
"fast-levenshtein": "^2.0.6",
"levn": "^0.4.1",
"prelude-ls": "^1.2.1",
"type-check": "^0.4.0",
"word-wrap": "^1.2.3"
"type-check": "^0.4.0"
},
"engines": {
"node": ">= 0.8.0"
@ -3236,9 +3263,9 @@
}
},
"node_modules/rc-config-loader": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/rc-config-loader/-/rc-config-loader-4.1.2.tgz",
"integrity": "sha512-qKTnVWFl9OQYKATPzdfaZIbTxcHziQl92zYSxYC6umhOqyAsoj8H8Gq/+aFjAso68sBdjTz3A7omqeAkkF1MWg==",
"version": "4.1.3",
"resolved": "https://registry.npmjs.org/rc-config-loader/-/rc-config-loader-4.1.3.tgz",
"integrity": "sha512-kD7FqML7l800i6pS6pvLyIE2ncbk9Du8Q0gp/4hMPhJU6ZxApkoLcGD8ZeqgiAlfwZ6BlETq6qqe+12DUL207w==",
"dev": true,
"dependencies": {
"debug": "^4.3.4",
@ -3513,6 +3540,41 @@
"url": "https://opencollective.com/unified"
}
},
"node_modules/remark-lint-heading-increment": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/remark-lint-heading-increment/-/remark-lint-heading-increment-3.1.2.tgz",
"integrity": "sha512-+fMfZmFh6ie6MmbRCVW77Rha15zDmnHWKiA0Do08OTrfngPTv8ZKXYLmxhUpL+xV9ts9q+9Kz5rv0L4QD4sEwQ==",
"dev": true,
"dependencies": {
"@types/mdast": "^3.0.0",
"unified": "^10.0.0",
"unified-lint-rule": "^2.0.0",
"unist-util-generated": "^2.0.0",
"unist-util-visit": "^4.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
"node_modules/remark-lint-heading-style": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/remark-lint-heading-style/-/remark-lint-heading-style-3.1.2.tgz",
"integrity": "sha512-0RkcRPV/H2bPFgeInzBkK1cWUwtFTm83I+Db/Z5tDY02GzKOosHLvxtJyj/1391/opAH1LYbHtHWffir99IUgw==",
"dev": true,
"dependencies": {
"@types/mdast": "^3.0.0",
"mdast-util-heading-style": "^2.0.0",
"unified": "^10.0.0",
"unified-lint-rule": "^2.0.0",
"unist-util-generated": "^2.0.0",
"unist-util-visit": "^4.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
"node_modules/remark-lint-no-shell-dollars": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/remark-lint-no-shell-dollars/-/remark-lint-no-shell-dollars-3.1.2.tgz",
@ -3530,6 +3592,85 @@
"url": "https://opencollective.com/unified"
}
},
"node_modules/remark-lint-ordered-list-marker-style": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/remark-lint-ordered-list-marker-style/-/remark-lint-ordered-list-marker-style-3.1.2.tgz",
"integrity": "sha512-62iVE/YQsA0Azaqt8yAJWPplWLS47kDLjXeC2PlRIAzCqbNt9qH3HId8vZ15QTSrp8rHmJwrCMdcqV6AZUi7gQ==",
"dev": true,
"dependencies": {
"@types/mdast": "^3.0.0",
"unified": "^10.0.0",
"unified-lint-rule": "^2.0.0",
"unist-util-generated": "^2.0.0",
"unist-util-position": "^4.0.0",
"unist-util-visit": "^4.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
"node_modules/remark-lint-ordered-list-marker-value": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/remark-lint-ordered-list-marker-value/-/remark-lint-ordered-list-marker-value-3.1.2.tgz",
"integrity": "sha512-kG08nhsFk8rhoXK5EeDN/wN28CxefraDud/MaZnji8LEyxF3HAkzFuETr9laOn8Ey+n8h/C0mpqAwUf4thyJ5g==",
"dev": true,
"dependencies": {
"@types/mdast": "^3.0.0",
"unified": "^10.0.0",
"unified-lint-rule": "^2.0.0",
"unist-util-generated": "^2.0.0",
"unist-util-position": "^4.0.0",
"unist-util-visit": "^4.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
"node_modules/remark-lint-prohibited-strings": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/remark-lint-prohibited-strings/-/remark-lint-prohibited-strings-3.1.0.tgz",
"integrity": "sha512-zwfDDdYl7ye0gEHcwhdkv1ZGXj1ibw4gnLLZkkvySnDdTz2tshY3fOJLY5NikbVseaIRVGOr5qa+8J9WNQT/fA==",
"dev": true,
"dependencies": {
"escape-string-regexp": "^5.0.0",
"unified-lint-rule": "^2.0.0",
"unist-util-position": "^4.0.1",
"unist-util-visit": "^4.0.0",
"vfile-location": "^4.0.1"
}
},
"node_modules/remark-lint-prohibited-strings/node_modules/escape-string-regexp": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz",
"integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==",
"dev": true,
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/remark-lint-unordered-list-marker-style": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/remark-lint-unordered-list-marker-style/-/remark-lint-unordered-list-marker-style-3.1.2.tgz",
"integrity": "sha512-JFiyB4ZprJGGndCaFB8FssXd48m4Kh+CUqzNgu3lBLEiW8dEAGRlD9M2AzyyA+Q29WJP/FntDCbP22DeON91UA==",
"dev": true,
"dependencies": {
"@types/mdast": "^3.0.0",
"unified": "^10.0.0",
"unified-lint-rule": "^2.0.0",
"unist-util-generated": "^2.0.0",
"unist-util-position": "^4.0.0",
"unist-util-visit": "^4.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/unified"
}
},
"node_modules/remark-message-control": {
"version": "7.1.1",
"resolved": "https://registry.npmjs.org/remark-message-control/-/remark-message-control-7.1.1.tgz",
@ -3835,23 +3976,23 @@
"dev": true
},
"node_modules/textlint": {
"version": "13.3.2",
"resolved": "https://registry.npmjs.org/textlint/-/textlint-13.3.2.tgz",
"integrity": "sha512-i14ug8jyC1iNko16dpzp/blSLbvXTONiZbvkNT30N3VzDPCtNn2yV4qSZhiRWFi1hHfgOdG3n/u0DZvllZCHXQ==",
"version": "13.3.3",
"resolved": "https://registry.npmjs.org/textlint/-/textlint-13.3.3.tgz",
"integrity": "sha512-1LhJTNBFVNYtl4C6IJXt1XwAJANvquyDuP4NrhcG+1DwT3S7kiUR9vLo5yo046X83VT7ownzS97Q/yC6A7bZXg==",
"dev": true,
"dependencies": {
"@textlint/ast-node-types": "^13.3.2",
"@textlint/ast-traverse": "^13.3.2",
"@textlint/config-loader": "^13.3.2",
"@textlint/feature-flag": "^13.3.2",
"@textlint/fixer-formatter": "^13.3.2",
"@textlint/kernel": "^13.3.2",
"@textlint/linter-formatter": "^13.3.2",
"@textlint/module-interop": "^13.3.2",
"@textlint/textlint-plugin-markdown": "^13.3.2",
"@textlint/textlint-plugin-text": "^13.3.2",
"@textlint/types": "^13.3.2",
"@textlint/utils": "^13.3.2",
"@textlint/ast-node-types": "^13.3.3",
"@textlint/ast-traverse": "^13.3.3",
"@textlint/config-loader": "^13.3.3",
"@textlint/feature-flag": "^13.3.3",
"@textlint/fixer-formatter": "^13.3.3",
"@textlint/kernel": "^13.3.3",
"@textlint/linter-formatter": "^13.3.3",
"@textlint/module-interop": "^13.3.3",
"@textlint/textlint-plugin-markdown": "^13.3.3",
"@textlint/textlint-plugin-text": "^13.3.3",
"@textlint/types": "^13.3.3",
"@textlint/utils": "^13.3.3",
"debug": "^4.3.4",
"file-entry-cache": "^5.0.1",
"get-stdin": "^5.0.1",
@ -3861,7 +4002,7 @@
"mkdirp": "^0.5.6",
"optionator": "^0.9.1",
"path-to-glob-pattern": "^1.0.2",
"rc-config-loader": "^4.1.2",
"rc-config-loader": "^4.1.3",
"read-pkg": "^1.1.0",
"read-pkg-up": "^3.0.0",
"structured-source": "^4.0.0",
@ -4684,15 +4825,6 @@
"integrity": "sha512-hwj/qMDUEjCU5h0xr90KGCf0tg0/LgJbmOWgrWKYlcJZM7XvquvUJZ0G/HMGr7F7OQMOUuPHWP9JpriinkAlkg==",
"dev": true
},
"node_modules/word-wrap": {
"version": "1.2.3",
"resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
"integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
"dev": true,
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/wrappy": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",

View File

@ -7,9 +7,15 @@
"remark-frontmatter": "^4.0.1",
"remark-lint": "^9.1.2",
"remark-lint-fenced-code-flag": "^3.1.2",
"remark-lint-heading-increment": "^3.1.2",
"remark-lint-heading-style": "^3.1.2",
"remark-lint-no-shell-dollars": "^3.1.2",
"remark-lint-ordered-list-marker-style": "^3.1.2",
"remark-lint-ordered-list-marker-value": "^3.1.2",
"remark-lint-prohibited-strings": "^3.1.0",
"remark-lint-unordered-list-marker-style": "^3.1.2",
"remark-stringify": "^10.0.3",
"textlint": "^13.3.2",
"textlint": "^13.3.3",
"textlint-filter-rule-comments": "^1.2.2",
"textlint-rule-common-misspellings": "^1.0.1",
"textlint-rule-terminology": "^3.0.5"

View File

@ -18,7 +18,7 @@ At the moment there are no configuration options available for these cards, you
This card will allow you to pick what data to show. Changing it in this card will influence the data in all other cards.
#### Example
### Example
```yaml
type: energy-date-selection
```
@ -33,7 +33,7 @@ type: energy-date-selection
The energy usage graph card shows the amount of energy your house has consumed, and from what source this energy came.
It will also show the amount of energy your have returned to the grid.
#### Example
### Example
```yaml
type: energy-usage-graph
```
@ -47,7 +47,7 @@ type: energy-usage-graph
The solar production graph card shows the amount of energy your solar panels have produced per source, and if setup and available the forecast of the solar production.
#### Example
### Example
```yaml
type: energy-solar-graph
```
@ -61,7 +61,7 @@ type: energy-solar-graph
The gas consumption graph card shows the amount of gas consumed per source.
#### Example
### Example
```yaml
type: energy-gas-graph
@ -76,7 +76,7 @@ type: energy-gas-graph
The water consumption graph card shows the amount of water consumed per source.
#### Example
### Example
```yaml
type: energy-water-graph
@ -95,7 +95,7 @@ If setup, it will also tell you how many kWh of the energy you got from the grid
If you set `link_dashboard` to `true`, the card will include a link to the energy dashboard.
#### Example
### Example
```yaml
type: energy-distribution
link_dashboard: true
@ -111,7 +111,7 @@ link_dashboard: true
The energy sources table card shows all your energy sources, and the corresponding amount of energy.
If setup, it will also show the costs and compensation per source and the total.
#### Example
### Example
```yaml
type: energy-sources-table
```
@ -125,7 +125,7 @@ type: energy-sources-table
The grid neutrality gauge card represents your energy dependency. If the needle is in the purple, you returned more energy to the grid than you consumed from it. If it's in the blue, you consumed more energy from the grid than you returned.
#### Example
### Example
```yaml
type: energy-grid-neutrality-gauge
```
@ -137,9 +137,9 @@ type: energy-grid-neutrality-gauge
Screenshot of the Solar consumed gauge card.
</p>
The solar consumed gauge represents how much of the solar energy was not used by your home and was returned to the grid. If you frequently return a lot, try to conserve this energy by installing a battery or buying an electric car to charge.
The solar consumed gauge represents how much of the solar energy was used by your home and was not returned to the grid. If you frequently return a lot, try to conserve this energy by installing a battery or buying an electric car to charge.
#### Example
### Example
```yaml
type: energy-solar-consumed-gauge
```
@ -153,7 +153,7 @@ type: energy-solar-consumed-gauge
The carbon consumed gauge card represents how much of the energy consumed by your home was generated using non-fossil fuels like solar, wind and nuclear. It includes the solar energy you generated your self.
#### Example
### Example
```yaml
type: energy-carbon-consumed-gauge
```
@ -167,7 +167,7 @@ type: energy-carbon-consumed-gauge
The self-sufficiency gauge represents how self-sufficient your home is. If you rely on grid imports, this value decreases. You can increase this value by adding more solar capacity or battery storage.
#### Example
### Example
```yaml
type: energy-self-sufficiency-gauge
```
@ -181,7 +181,7 @@ type: energy-self-sufficiency-gauge
The devices energy graph show the energy usage per device, it is sorted by usage.
#### Example
### Example
```yaml
type: energy-devices-graph
```

View File

@ -25,7 +25,7 @@ type:
type: string
{% endconfiguration %}
#### Example
### Example
Alternatively, the position of the card can be configured using YAML with the `view_layout` option:

View File

@ -93,9 +93,9 @@ type: tile
entity: vacuum.ground_floor
features:
- type: vacuum-commands
commands:
- start_pause
- return_home
commands:
- start_pause
- return_home
```
## Available color tokens
@ -251,4 +251,4 @@ commands:
required: true
description: List of commands to show on the card. The list can contain `start_pause`, `stop`, `clean_spot`, `locate` and `return_home`.
type: list
{% endconfiguration %}
{% endconfiguration %}

View File

@ -374,7 +374,7 @@
State changes can be used as the source of triggers. The current state can be used in conditions.
link: /docs/scripts/configuration/state_object/
link: /docs/configuration/state_object/
excerpt: >
The state holds the information of interest of an entity, for example, if a light is on or off. Each entity has exactly one state and the state only holds one value at a time. However, entities can store attributes related to that state such as brightness, color, or a unit of measurement.

View File

@ -7,8 +7,8 @@ The Multi-factor Authentication (MFA) modules require you to solve a second chal
A password can be compromised in a number of ways, for example, it can be guessed if it is a simple password. MFA provides a second level of defense by requiring:
* something you know, like your username and password, and
* something you have, like a one-time password sent to your phone.
- something you know, like your username and password, and
- something you have, like a one-time password sent to your phone.
You can use MFA with any of the other authentication providers. If more than one MFA module is enabled, you can choose one when you log in.

View File

@ -179,7 +179,7 @@ name = John Doe
Leading and trailing whitespace, as well as lines starting with `#` are ignored. The following variables are supported. More may be added in the future.
* `name`: The real name of the user to be displayed in their profile.
- `name`: The real name of the user to be displayed in their profile.
Stderr is not read at all and just passed through to that of the Home Assistant process, hence you can use it for status messages or suchlike.

View File

@ -3,7 +3,7 @@ title: "Automation Conditions"
description: "Automations can test conditions when invoked."
---
Conditions are an optional part of an automation rule and can be used to prevent an action from happening when triggered. When a condition does not return true, the automation will stop executing. Conditions look very similar to triggers but are very different. A trigger will look at events happening in the system while a condition only looks at how the system looks right now. A trigger can observe that a switch is being turned on. A condition can only see if a switch is currently on or off.
Conditions are an optional part of an automation rule. They can be used to prevent the automation's actions from being run. After a trigger occurred, all conditions will be checked. If any of them do not return true, the automation will stop executing. Conditions look very similar to triggers, but they are very different &mdash; a trigger will look at events happening in the system, while a condition only looks at how the system looks right now. A trigger can observe that a switch is being turned on. A condition can only see if a switch is currently on or off.
The available conditions for an automation are the same as for the script syntax so see that page for a [full list of available conditions](/docs/scripts/conditions/).

View File

@ -689,11 +689,11 @@ automation:
The Entity ID of an [Input Datetime](/integrations/input_datetime/).
has_date | has_time | Description
-|-|-
`true` | `true` | Will fire at specified date & time.
`true` | `false` | Will fire at midnight on specified date.
`false` | `true` | Will fire once a day at specified time.
| has_date | has_time | Description |
| -------- | -------- | ---------------------------------------- |
| `true` | `true` | Will fire at specified date & time. |
| `true` | `false` | Will fire at midnight on specified date. |
| `false` | `true` | Will fire once a day at specified time. |
{% raw %}
@ -917,7 +917,7 @@ additional event data available for use by an automation.
## Sentence trigger
A sentence trigger fires when [Assist](/voice_control/) matches a sentence from a voice assistant using the default [conversation agent](/integrations/conversation/).
A sentence trigger fires when [Assist](/voice_control/) matches a sentence from a voice assistant using the default [conversation agent](/integrations/conversation/). Sentence triggers only work with Home Assistant Assist. External conversation agents such as OpenAI or Google Generative AI cannot be used to trigger automations.
Sentences are allowed to use some basic [template syntax](https://developers.home-assistant.io/docs/voice/intent-recognition/template-sentence-syntax/#sentence-templates-syntax) like optional and alternative words. For example, `[it's ]party time` will match both "party time" and "it's party time".
@ -941,7 +941,7 @@ Punctuation and casing are ignored, so "It's PARTY TIME!!!" will also match.
## Multiple triggers
It is possible to specify multiple triggers for the same rule. To do so just prefix the first line of each trigger with a dash (-) and indent the next lines accordingly. Whenever one of the triggers fires, [processing](#what-are-triggers) of your automation rule begins.
It is possible to specify multiple triggers for the same rule. To do so just prefix the first line of each trigger with a dash (-) and indent the next lines accordingly. Whenever one of the triggers fires, processing of your automation rule begins.
```yaml
automation:
@ -956,7 +956,7 @@ automation:
## Multiple Entity IDs for the same Trigger
It is possible to specify multiple entities for the same trigger. To do so add multiple entities using a nested list. The trigger will fire and start, [processing](#what-are-triggers) your automation each time the trigger is true for any entity listed.
It is possible to specify multiple entities for the same trigger. To do so add multiple entities using a nested list. The trigger will fire and start, processing your automation each time the trigger is true for any entity listed.
```yaml
automation:

View File

@ -15,7 +15,7 @@ The debugging screen is split into four features, the first being the Step Detai
Automations created in YAML must have an [`id`](/docs/automation/yaml/#migrating-your-yaml-automations-to-automationsyaml) assigned in order for debugging traces to be stored.
#### Traces ####
#### Traces
The last 5 traces are recorded for all automations. It is possible to change this by adding the following code to your automation.

View File

@ -14,10 +14,10 @@ Quick links:
Automations based on a blueprint need to be configured. What needs to be configured differs on each blueprint.
1. To create your first automation based on a blueprint, go to **{% my blueprints title="Settings > Automations & Scenes > Blueprints" %}**.
1. Find the blueprint that you want to use and select **Create Automation**.
2. Find the blueprint that you want to use and select **Create Automation**.
- This opens the automation editor with the blueprint selected.
1. Give it a name and configure the blueprint.
1. Select the blue **Save Automation** button in the bottom right corner.
3. Give it a name and configure the blueprint.
4. Select the blue **Save Automation** button in the bottom right corner.
Done! If you want to revisit the configuration values, go to **{% my blueprints title="Settings > Automations & Scenes > Blueprints" %}**.
@ -32,10 +32,10 @@ Home Assistant can import blueprints from the Home Assistant forums, GitHub, and
https://github.com/home-assistant/core/blob/dev/homeassistant/components/automation/blueprints/motion_light.yaml
```
1. Go to **{% my blueprints title="Settings > Automations & Scenes > Blueprints" %}**.
1. Select the blue **{% my blueprint_import blueprint="https://github.com/home-assistant/core/blob/master/homeassistant/components/automation/blueprints/motion_light.yaml" %}** button in the bottom right.
2. Go to **{% my blueprints title="Settings > Automations & Scenes > Blueprints" %}**.
3. Select the blue **{% my blueprint_import blueprint="https://github.com/home-assistant/core/blob/master/homeassistant/components/automation/blueprints/motion_light.yaml" %}** button in the bottom right.
- A new dialog will pop-up asking you for the URL.
1. Enter the URL and select **Preview**.
4. Enter the URL and select **Preview**.
- This will load the blueprint and show a preview in the import dialog.
- You can change the name and finish the import.
@ -52,13 +52,13 @@ its YAML content to keep it up to date:
1. Navigate to the blueprints directory (`blueprints/automation/`).
The location of this directory depends on the installation method. It's
similar to how you find [`configuration.yaml`](/docs/configuration/#editing-configurationyaml).
1. Next, you must find the blueprint to update. The path name of a blueprint consists of:
2. Next, you must find the blueprint to update. The path name of a blueprint consists of:
- The username of the user that created it. The name depends on the source of the blueprint:
the forum, or GitHub.
- The name of the YAML file. For the forum it's the title of the topic in the URL, for GitHub
it's the name of the YAML file.
1. Open the YAML file with your editor and update its contents.
1. Reload the automations for the changes to take effect.
3. Open the YAML file with your editor and update its contents.
4. Reload the automations for the changes to take effect.
The new changes will appear to your existing automations as well.

View File

@ -20,7 +20,7 @@ If your entity is not supported, or you cannot customize what you need via this
By default, all of your devices will be visible and have a default icon determined by their domain. You can customize the look and feel of your front page by altering some of these parameters. This can be done by overriding attributes of specific entities.
#### Possible values
### Possible values
{% configuration customize %}
friendly_name:
@ -57,7 +57,7 @@ initial_state:
default: None
{% endconfiguration %}
#### Device Class
### Device Class
Device class is currently supported by the following platforms:

View File

@ -112,3 +112,12 @@ It is possible to [customize entities](/docs/configuration/customizing-devices/)
homeassistant:
customize:
```
<div class='note warning'>
If you are moving configuration to packages, `auth_providers` must stay within configuration.yaml. See the general documentation for [Authentication Providers](/docs/authentication/providers/#configuring-auth-providers).
This is because Home Assistant processes the authentication provided early in the start-up process, even before packages are processed.
</div>

View File

@ -51,9 +51,9 @@ script:
There are a few very important rules to remember when adding templates to YAML:
1. You **must** surround single-line templates with double quotes (`"`) or single quotes (`'`).
1. It is advised that you prepare for undefined variables by using `if ... is not none` or the [`default` filter](https://jinja.palletsprojects.com/en/latest/templates/#jinja-filters.default), or both.
1. It is advised that when comparing numbers, you convert the number(s) to a [`float`](https://jinja.palletsprojects.com/en/latest/templates/#float) or an [`int`](https://jinja.palletsprojects.com/en/latest/templates/#int) by using the respective [filter](https://jinja.palletsprojects.com/en/latest/templates/#list-of-builtin-filters).
1. While the [`float`](https://jinja.palletsprojects.com/en/latest/templates/#float) and [`int`](https://jinja.palletsprojects.com/en/latest/templates/#int) filters do allow a default fallback value if the conversion is unsuccessful, they do not provide the ability to catch undefined variables.
2. It is advised that you prepare for undefined variables by using `if ... is not none` or the [`default` filter](https://jinja.palletsprojects.com/en/latest/templates/#jinja-filters.default), or both.
3. It is advised that when comparing numbers, you convert the number(s) to a [`float`](https://jinja.palletsprojects.com/en/latest/templates/#float) or an [`int`](https://jinja.palletsprojects.com/en/latest/templates/#int) by using the respective [filter](https://jinja.palletsprojects.com/en/latest/templates/#list-of-builtin-filters).
4. While the [`float`](https://jinja.palletsprojects.com/en/latest/templates/#float) and [`int`](https://jinja.palletsprojects.com/en/latest/templates/#int) filters do allow a default fallback value if the conversion is unsuccessful, they do not provide the ability to catch undefined variables.
Remembering these simple rules will help save you from many headaches and endless hours of frustration when using automation templates.
@ -70,7 +70,7 @@ extensions:
You can write reusable Jinja templates by adding them to a `custom_templates` folder under your
configuration directory. All template files must have the `.jinja` extension and be less than 5MiB.
Templates in this folder will be loaded at startup. To reload the templates without
restarting Home Assistant, invoke the `homeassistant.reload_custom_templates` service.
restarting Home Assistant, invoke the {% my developer_call_service service="homeassistant.reload_custom_templates" %} service.
Once the templates are loaded, Jinja [includes](https://jinja.palletsprojects.com/en/3.0.x/templates/#include) and [imports](https://jinja.palletsprojects.com/en/3.0.x/templates/#import) will work
using `config/custom_templates` as the base directory.
@ -110,8 +110,8 @@ Templates for some [triggers](/docs/automation/trigger/) as well as `trigger_var
Not supported in [limited templates](#limited-templates).
- Iterating `states` will yield each state sorted alphabetically by entity ID.
- Iterating `states.domain` will yield each state of that domain sorted alphabetically by entity ID.
- Iterating `states` will yield each state object.
- Iterating `states.domain` will yield each state object of that domain.
- `states.sensor.temperature` returns the state object for `sensor.temperature` (avoid when possible, see note below).
- `states` can also be used as a function, `states(entity_id, rounded=False, with_unit=False)`, which returns the state string (not the state object) of the given entity, `unknown` if it doesn't exist, and `unavailable` if the object exists but is not available.
- The optional arguments `rounded` and `with_unit` control the formatting of sensor state strings, please see the [examples](#formatting-sensor-states) below.

View File

@ -823,7 +823,8 @@ Some of the caveats of running actions in parallel:
## Stopping a script sequence
It is possible to halt a script sequence at any point. Using the `stop` action.
It is possible to halt a script sequence at any point and return script responses
using the `stop` action.
The `stop` action takes a text as input explaining the reason for halting the
sequence. This text will be logged and shows up in the automations and
@ -836,6 +837,15 @@ for example, a condition is not met.
- stop: "Stop running the rest of the sequence"
```
To return a response from a script, use the `response_variable` option. This
option expects the name of the variable that contains the data to return. The
response data must contains a mapping of key/value pairs.
```yaml
- stop: "Stop running the rest of the sequence"
response_variable: "my_response_variable"
```
There is also an `error` option, to indicate we are stopping because of
an unexpected error. It stops the sequence as well, but marks the automation
or script as failed to run.

View File

@ -3,19 +3,22 @@ title: "Developer Tools"
description: "Description of the Developer Tools."
---
The frontend contains a section called "Developer Tools".
The frontend contains a section called **Developer Tools**.
<p class='img'>
<img src='/images/screenshots/developer-tools.png' />
Screenshot of Home Assistant's Developer Tools.
</p>
| Section |Description |
| ------- |----- |
| States | Sets the representation of an entity |
| Services | Calls services from integrations |
| Events | Fires events |
| Templates | Renders templates |
| Section |Description |
| ---------- |---------------------------------------------------------------------|
| YAML | Lets you validate the configuration and trigger a reload or restart |
| States | Sets the representation of an entity |
| Services | Calls services from integrations |
| Template | Renders templates |
| Events | Fires events |
| Statistics | Shows a list of long-term statistic entities |
| Assist | Lets you see how Home Assistant Assist processes a sentence |
## What can I do with Developer Tools?
@ -114,3 +117,28 @@ Event 0 fired 9:53 AM:
}
}
```
## Statistics
The **Statistics** tab shows a list of long-term statistic entities. If the long term statistics is not working for an entity, a **Fix Issue** link is shown. Select it to view a description of the issue. There might also be an option to fix the issue.
![Statistics issue message](/images/docs/developer-tools/statistics_issue.png)
Another use of the {% my developer_statistics title="statistics developer tool" %} is to correct any measurements. Select the
<svg width="24" height="24" viewBox="0 0 24 24"><path d="M22,13V22H2V19L22,13M21.68,7.06L16.86,4.46L17.7,7.24L7.58,10.24C6.63,8.95 4.82,8.67 3.53,9.62C2.24,10.57 1.96,12.38 2.91,13.67C3.85,14.97 5.67,15.24 6.96,14.29C7.67,13.78 8.1,12.97 8.14,12.09L18.26,9.09L19.1,11.87L21.68,7.06Z" /></svg>
icon. Use date & time to search for the incorrect data point and adjust the value.
![Screenshot showing adjusting the long-term statistic history value](/images/blog/2022-04/adjust-statistics.png)
## Assist
The **Assist** tab lets you see how Home Assistant's Assist processes a sentence.
If no matching intent is found, then Assist is unable to interpret the sentence. If a matching intent was found, information is provided on the action that will be performed on which entities. The example below shows how the following sentence was parsed: *what lights are on in the office*.
- Assist found a matching intent: *HassGetState*.
- It found entities matching the domain: *lights*.
- The lights have the state *on*.
- The lights are in the area *office*.
- The targets are the narrowed-down entities in scope.
![Example use of assist developer tools](/images/docs/developer-tools/Assist.png)

View File

@ -128,13 +128,13 @@ You should also check the README for details on the overlays. You might find it
This procedure has been tested with the following modules:
* Aeotec Z-Pi 7 Raspberry Pi HAT/Shield
* Z-Wave.Me RaZberry 7
* Z-Wave.Me RaZberry 7 Pro
- Aeotec Z-Pi 7 Raspberry Pi HAT/Shield
- Z-Wave.Me RaZberry 7
- Z-Wave.Me RaZberry 7 Pro
1. Make sure the module is properly seated on the Home Assistant Yellow.
![Aeotec Z-Pi 7 on Home Assistant Yellow](/images/docs/z-wave/zpi-7-yellow.jpg).
1. Carefully [close the case](https://yellow.home-assistant.io/guides/add-ssd-existing-installation/#reassembling-top-part) and power up Home Assistant Yellow.
1. Follow the procedure on [setting up a Z-Wave JS server](/integrations/zwave_js/#setting-up-a-z-wave-js-server).
2. Carefully [close the case](https://yellow.home-assistant.io/guides/add-ssd-existing-installation/#reassembling-top-part) and power up Home Assistant Yellow.
3. Follow the procedure on [setting up a Z-Wave JS server](/integrations/zwave_js/#setting-up-a-z-wave-js-server).
1. In step 2, follow the manual setup steps to install the Z-Wave integration.
1. in Step 4, you will be prompted to choose a **Device path**. Choose **ttyAMA0**.
2. in Step 4, you will be prompted to choose a **Device path**. Choose **ttyAMA0**.

View File

@ -5,7 +5,8 @@
<li>{% active_link /common-tasks/os/ Home Assistant Operating System %}</li>
<li>{% active_link /common-tasks/container/ Home Assistant Container %}</li>
<li>{% active_link /common-tasks/core/ Home Assistant Core %}</li>
<li>{% active_link /common-tasks/supervised/ Home Assistant Supervised %}</li>
<li>{% active_link /common-tasks/supervised/ Home Assistant Supervised %}
<li>{% active_link /common-tasks/general/ Installation independent %}</li>
</ul>
</div>
</section>

View File

@ -18,6 +18,7 @@
<li>{% active_link /voice_control/builtin_sentences/ Built-in sentences %}</li>
<li>{% active_link /voice_control/custom_sentences/ Custom sentences %}</li>
<li>{% active_link /voice_control/using_tts_in_automation/ Using Piper TTS in automations %}</li>
<li>{% active_link /voice_control/start_assist_from_dashboard/ Starting Assist from your dashboard %}</li>
<li>{% active_link /voice_control/troubleshooting/ Troubleshooting Assist %}</li>
</ul>
</div>

View File

@ -4,11 +4,11 @@ Backup of your Home Assistant and add-on data and configuration. They are stored
A full backup includes the following directories:
* `config`
* `share`
* `addons` (only manually installed or created add-ons, not those installed from the store)
* `ssl`
* `media`
- `config`
- `share`
- `addons` (only manually installed or created add-ons, not those installed from the store)
- `ssl`
- `media`
A partial backup consists of any number of the above default directories and installed add-ons.

View File

@ -0,0 +1,12 @@
## Enabling entities
Some entities are disabled by default. To enable them, follow these steps:
1. Go to **{% my integrations title="Settings > Devices & Services" %}** and select the integration of interest.
2. Select **entities**.
3. From the list of entities, select the entity you want to enable.
![Select entity from list](/images/screenshots/enable_entities_01.png)
4. In the pop-up, select the cogwheel.
5. Toggle the **Enabled** button.
![Enable entities](/images/screenshots/enable_entities_03.png)
6. To save the changes, select **Update**.

View File

@ -4,7 +4,7 @@ Home Assistant can be flashed to an ODROID-N2+ by connecting the device directly
_All these instructions work the same for the ODROID-N2 (non-plus version)._
#### What you will need
### What you will need
To flash your eMMC using Petitboot and OTG-USB, you will need the following items:
@ -13,24 +13,24 @@ To flash your eMMC using Petitboot and OTG-USB, you will need the following item
- USB 2.0 to micro-USB cable
- If your board came in a Home Assistant Blue: No.2 hex key to open the case
#### Enabling SPI boot mode
### Enabling SPI boot mode
To enable the SPI boot mode:
1. Power off the ODROID-N2+ by unplugging the power cable.
1. Remove the case.
2. Remove the case.
![Photo of the removed case](/images/hassio/screenshots/case-removed.jpg)
1. Locate the toggle for boot mode and switch it from MMC to SPI.
3. Locate the toggle for boot mode and switch it from MMC to SPI.
![Photo of the SPI toggle switch](/images/hassio/screenshots/toggle_spi.jpg)
1. Connect the ODROID-N2+ directly to your computer via the USB-OTG port located on the front of the board.
1. Connect a USB keyboard and a monitor (using HDMI) to your ODROID-N2+.
1. Plug in the power cable to power on the ODROID-N2+.
4. Connect the ODROID-N2+ directly to your computer via the USB-OTG port located on the front of the board.
5. Connect a USB keyboard and a monitor (using HDMI) to your ODROID-N2+.
6. Plug in the power cable to power on the ODROID-N2+.
#### Enabling USB drive mode
### Enabling USB drive mode
After The ODROID-N2+ is set to SPI boot mode and powered on, it boots into a terminal. To enable the USB drive mode:
@ -46,34 +46,34 @@ You can safely ignore this message and proceed with the installation
</div>
1. Use the following command at the console to confirm the storage device node:
2. Use the following command at the console to confirm the storage device node:
```bash
ls /dev/mmc*
```
1. Set the storage device on the ODROID-N2+ as a mass storage device using the `ums` command (USB Mass storage mode).
3. Set the storage device on the ODROID-N2+ as a mass storage device using the `ums` command (USB Mass storage mode).
This will configure the ODROID-N2+ and OTG to act as a memory card reader:
```bash
ums /dev/mmcblk0
```
#### Flashing Home Assistant
### Flashing Home Assistant
1. Connect the ODROID-N2+ to your PC via the micro-USB port at the front of the ODROID-N2+.
1. When the ODROID-N2 is recognized as a USB connected storage device, you can flash the eMMC with [Etcher](https://www.balena.io/etcher/).
* Use the latest stable version of Home Assistant OS for the [ODROID-N2+](https://github.com/home-assistant/operating-system/releases/download/{{site.data.version_data.hassos['odroid-n2']}}/haos_odroid-n2-{{site.data.version_data.hassos['odroid-n2']}}.img.xz) (haos_odroid-n2-{{site.data.version_data.hassos['odroid-n2']}}.img.xz).
2. When the ODROID-N2 is recognized as a USB connected storage device, you can flash the eMMC with [Etcher](https://www.balena.io/etcher/).
- Use the latest stable version of Home Assistant OS for the [ODROID-N2+](https://github.com/home-assistant/operating-system/releases/download/{{site.data.version_data.hassos['odroid-n2']}}/haos_odroid-n2-{{site.data.version_data.hassos['odroid-n2']}}.img.xz) (haos_odroid-n2-{{site.data.version_data.hassos['odroid-n2']}}.img.xz).
1. When the flash process is complete, disconnect the ODROID-N2+ from your PC.
* Remove the power cable.
* Remove the USB and HDMI cables.
* Make sure to toggle the boot mode switch back to MMC.
3. When the flash process is complete, disconnect the ODROID-N2+ from your PC.
- Remove the power cable.
- Remove the USB and HDMI cables.
- Make sure to toggle the boot mode switch back to MMC.
1. Put the ODROID back in its case.
1. Connect your ODROID-N2+ to your network with an Ethernet cable and plug in power.
4. Put the ODROID back in its case.
5. Connect your ODROID-N2+ to your network with an Ethernet cable and plug in power.
1. If your router supports mDNS, you can reach your installation at `http://homeassistant.local:8123`.
* If your network doesnt support mDNS, youll have to use the IP address of your ODROID-N2+ instead of `homeassistant.local`. For example, `http://192.168.0.9:8123`.
* You should be able to find the IP address of your ODROID-N2+ from the admin interface of your router.
1. Continue with [onboarding](/getting-started/onboarding/).
6. If your router supports mDNS, you can reach your installation at `http://homeassistant.local:8123`.
- If your network doesnt support mDNS, youll have to use the IP address of your ODROID-N2+ instead of `homeassistant.local`. For example, `http://192.168.0.9:8123`.
- You should be able to find the IP address of your ODROID-N2+ from the admin interface of your router.
7. Continue with [onboarding](/getting-started/onboarding/).

View File

@ -30,9 +30,9 @@ To list all your currently connected network storages, go to **{% my storage tit
### Add a new network storage
1. Go to **{% my storage title="Settings > System > Storage" %}** in the UI.
1. Select **Add network storage**.
1. Fill out all the information for your network storage.
1. Select **Connect**.
2. Select **Add network storage**.
3. Fill out all the information for your network storage.
4. Select **Connect**.
<p class='img'>
<picture>
@ -55,7 +55,7 @@ Server:
description: The service the server is using for the network storage.
"[NFS]<sup>1</sup> Remote share path":
description: The path used to connect to the remote storage server.
"[CIFS]<sup>2</sup> Username<sup>4</sup>":
"[CIFS]<sup>2</sup> Username":
description: The username to use when connecting to the storage server.
"[CIFS]<sup>2</sup> Password":
description: The password to use when connecting to the storage server.
@ -66,7 +66,6 @@ Server:
<sup>1</sup> _Options prefixed with `[NFS]` are only available for NFS targets._<br>
<sup>2</sup> _Options prefixed with `[CIFS]` are only available for CIFS targets._<br>
<sup>3</sup> _For the `CIFS` option, only version 2.1+ is supported._<br>
<sup>4</sup> _Guest access is not supported. You need to supply a username and password to access the share._<br>
##### Usage types
@ -86,10 +85,10 @@ By default, the first network storage of type **Backup** that you add will be se
If you want to change the default backup target, you can do the following:
1. Go to **{% my backup title="Settings > System > Backups" %}** in the UI.
1. Select the menu in the top right of the screen and select the **Change default backup location** option.
1. In the dialog, there is a single option to set the default backup target.
1. Choose the one you want from the list.
1. Select **Save**.
2. Select the menu in the top right of the screen and select the **Change default backup location** option.
3. In the dialog, there is a single option to set the default backup target.
4. Choose the one you want from the list.
5. Select **Save**.
This list will contain all the network storage targets you have added of usage type **Backup**. It also contains another option to set it back to use `/backup` again.

View File

@ -3,11 +3,11 @@
Best practice for updating a Home Assistant installation:
1. Backup your installation{% if page.installation == "os" or page.installation == "supervised" %}, using the backup functionality Home Assistant offers{% endif %}.
1. Check the release notes for breaking changes on [Home Assistant release notes](/blog/categories/core/). Be sure to check all release notes between the version you are running and the one you are upgrading to. Use the search function in your browser (`CTRL + f` / `CMD + f`) and search for **Breaking Changes**.
2. Check the release notes for breaking changes on [Home Assistant release notes](/blog/categories/core/). Be sure to check all release notes between the version you are running and the one you are upgrading to. Use the search function in your browser (`CTRL + f` / `CMD + f`) and search for **Breaking Changes**.
{% if page.installation == "os" or page.installation == "supervised" %}
1. Select "Create backup before updating" in case you encounter an issue that requires a rollback.
1. Update Home Assistant.
1. Review persistent notifications and log to see if there are any issues with your configuration that need to be addressed.
3. Select "Create backup before updating" in case you encounter an issue that requires a rollback.
4. Update Home Assistant.
5. Review persistent notifications and log to see if there are any issues with your configuration that need to be addressed.
{% endif %}
{% if page.installation == "os" or page.installation == "supervised" %}

View File

@ -15,8 +15,8 @@ If you are using Docker then you need to be on at least version 19.03.9, ideally
Installation with Docker is straightforward. Adjust the following command so that:
* `/PATH_TO_YOUR_CONFIG` points at the folder where you want to store your configuration and run it.
* `MY_TIME_ZONE` is a [tz database name](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones), like `TZ=America/Los_Angeles`.
- `/PATH_TO_YOUR_CONFIG` points at the folder where you want to store your configuration and run it.
- `MY_TIME_ZONE` is a [tz database name](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones), like `TZ=America/Los_Angeles`.
{% endif %}

View File

@ -21,25 +21,25 @@ Home Assistant bundles (US market):
The bundles come with Home Assistant pre-installed.
* [ODROID N2+: 2 GB RAM / 16 GB eMMC](https://ameridroid.com/products/odroid-n2-home-assistant-blue-bundle-limited-edition?variant=44748729286935?ref=eeb6nfw07e)
* [ODROID N2+: 4 GB RAM / 64 GB eMMC](https://ameridroid.com/products/odroid-n2-home-assistant-blue-bundle-limited-edition?variant=44748729221399?ref=eeb6nfw07e)
* ODROID M1: 4 GB RAM / 256 GB NVMe / [16 GB &micro;SD](https://ameridroid.com/products/odroid-n2-home-assistant-blue-bundle-limited-edition?variant=44929573028119?ref=eeb6nfw07e) or [16 GB eMMC](https://ameridroid.com/products/odroid-n2-home-assistant-blue-bundle-limited-edition?variant=44994940567831?ref=eeb6nfw07e)
* ODROID M1: 8 GB RAM / 256 GB NVMe / [16 GB &micro;SD](https://ameridroid.com/products/odroid-n2-home-assistant-blue-bundle-limited-edition?variant=44929573093655?ref=eeb6nfw07e) or [16 GB eMMC](https://ameridroid.com/products/odroid-n2-home-assistant-blue-bundle-limited-edition?variant=44994940633367?ref=eeb6nfw07e)
* [ODROID M1: 8 GB RAM / 1 TB NVMe / 64 GB eMMC ](https://ameridroid.com/products/odroid-n2-home-assistant-blue-bundle-limited-edition?variant=44994940698903?ref=eeb6nfw07e)
* ODROID XU4: 2 GB RAM / [32 GB &micro;SD](https://ameridroid.com/products/odroid-n2-home-assistant-blue-bundle-limited-edition?variant=44748729352471?ref=eeb6nfw07e) or [16 GB eMMC](https://ameridroid.com/products/odroid-n2-home-assistant-blue-bundle-limited-edition?variant=44748782305559?ref=eeb6nfw07e)
- [ODROID N2+: 2 GB RAM / 16 GB eMMC](https://ameridroid.com/products/odroid-n2-home-assistant-blue-bundle-limited-edition?variant=44748729286935?ref=eeb6nfw07e)
- [ODROID N2+: 4 GB RAM / 64 GB eMMC](https://ameridroid.com/products/odroid-n2-home-assistant-blue-bundle-limited-edition?variant=44748729221399?ref=eeb6nfw07e)
- ODROID M1: 4 GB RAM / 256 GB NVMe / [16 GB &micro;SD](https://ameridroid.com/products/odroid-n2-home-assistant-blue-bundle-limited-edition?variant=44929573028119?ref=eeb6nfw07e) or [16 GB eMMC](https://ameridroid.com/products/odroid-n2-home-assistant-blue-bundle-limited-edition?variant=44994940567831?ref=eeb6nfw07e)
- ODROID M1: 8 GB RAM / 256 GB NVMe / [16 GB &micro;SD](https://ameridroid.com/products/odroid-n2-home-assistant-blue-bundle-limited-edition?variant=44929573093655?ref=eeb6nfw07e) or [16 GB eMMC](https://ameridroid.com/products/odroid-n2-home-assistant-blue-bundle-limited-edition?variant=44994940633367?ref=eeb6nfw07e)
- [ODROID M1: 8 GB RAM / 1 TB NVMe / 64 GB eMMC ](https://ameridroid.com/products/odroid-n2-home-assistant-blue-bundle-limited-edition?variant=44994940698903?ref=eeb6nfw07e)
- ODROID XU4: 2 GB RAM / [32 GB &micro;SD](https://ameridroid.com/products/odroid-n2-home-assistant-blue-bundle-limited-edition?variant=44748729352471?ref=eeb6nfw07e) or [16 GB eMMC](https://ameridroid.com/products/odroid-n2-home-assistant-blue-bundle-limited-edition?variant=44748782305559?ref=eeb6nfw07e)
Variants without pre-installed Home Assistant:
* ODROID N2+, [2 GB RAM](https://ameridroid.com/products/odroid-n2-plus?variant=40371828719650?ref=eeb6nfw07e) or [4 GB RAM](https://ameridroid.com/products/odroid-n2-plus?variant=40371828752418?ref=eeb6nfw07e)
* [ODROID C4](https://ameridroid.com/products/odroid-c4?ref=eeb6nfw07e)
* [ODROID M1](https://ameridroid.com/products/odroid-M1?ref=eeb6nfw07e)
- ODROID N2+, [2 GB RAM](https://ameridroid.com/products/odroid-n2-plus?variant=40371828719650?ref=eeb6nfw07e) or [4 GB RAM](https://ameridroid.com/products/odroid-n2-plus?variant=40371828752418?ref=eeb6nfw07e)
- [ODROID C4](https://ameridroid.com/products/odroid-c4?ref=eeb6nfw07e)
- [ODROID M1](https://ameridroid.com/products/odroid-M1?ref=eeb6nfw07e)
* [Power Supply](https://ameridroid.com/products/12v-2a-power-supply-plug?ref=eeb6nfw07e)
* [CR2032 Coin Cell](https://ameridroid.com/products/rtc-bios-battery?ref=eeb6nfw07e)
* [eMMC Module](https://ameridroid.com/products/emmc-module-n2-linux-red-dot?ref=eeb6nfw07e)
* [Case](https://ameridroid.com/products/odroid-n2-case?ref=eeb6nfw07e)
- [Power Supply](https://ameridroid.com/products/12v-2a-power-supply-plug?ref=eeb6nfw07e)
- [CR2032 Coin Cell](https://ameridroid.com/products/rtc-bios-battery?ref=eeb6nfw07e)
- [eMMC Module](https://ameridroid.com/products/emmc-module-n2-linux-red-dot?ref=eeb6nfw07e)
- [Case](https://ameridroid.com/products/odroid-n2-case?ref=eeb6nfw07e)
* These are affiliated links. We get commissions for purchases made through links in this post.*
*These are affiliated links. We get commissions for purchases made through links in this post.*
{% endif %}
@ -72,13 +72,13 @@ To boot Home Assistant OS, the BIOS needs to have UEFI boot mode enabled and Sec
1. To enter the BIOS, start up your x86-64 hardware and repeatedly press the `F2` key (on some systems this might be `Del`, `F1` or `F10`).
![Enter BIOS using F2, Del, F1 or F10 key](/images/installation/intel-nuc-enter-bios.jpg)
1. Make sure the UEFI Boot mode is enabled.
2. Make sure the UEFI Boot mode is enabled.
![Enable UEFI Boot mode](/images/installation/intel-nuc-uefi-boot.jpg)
1. Disable Secure Boot.
3. Disable Secure Boot.
![Disable Secure Boot mode](/images/installation/intel-nuc-disable-secure-boot.jpg)
1. Save your changes and exit.
4. Save your changes and exit.
The BIOS configuration is now complete.
@ -95,7 +95,7 @@ To write the HAOS image to the boot medium on your x86-64 hardware, there are 2
1. Write the HAOS disk image from your desktop computer directly to the boot medium (e.g. using a USB to S-ATA adapter).
If you can use this method, proceed to "[Write the image to your boot medium](#write-the-image-to-your-boot-medium)" and follow all steps. If you have non-removable internal mediums or don't have the necessary adapter, try the next method instead.
1. Create a "live operating system" on a USB device running e.g. Ubuntu ([how-to guide](https://ubuntu.com/tutorials/try-ubuntu-before-you-install)). Insert it into your system and boot the live operating system. Then follow from step 2 in "[Write the image to your boot medium](#write-the-image-to-your-boot-medium)".
2. Create a "live operating system" on a USB device running e.g. Ubuntu ([how-to guide](https://ubuntu.com/tutorials/try-ubuntu-before-you-install)). Insert it into your system and boot the live operating system. Then follow from step 2 in "[Write the image to your boot medium](#write-the-image-to-your-boot-medium)".
{% details "Ubuntu dependencies for Etcher" %}
@ -120,11 +120,11 @@ sudo apt install libfuse2
If you are using a [Home Assistant Blue](/blue) or ODROID N2+, you can [attach your device directly](/common-tasks/os/#flashing-an-odroid-n2).
{% endif %}
1. Download and start <a href="https://www.balena.io/etcher" target="_blank">Balena Etcher</a>. You may need to run it with administrator privileges on Windows.
1. Select **Flash from URL**.
2. Download and start <a href="https://www.balena.io/etcher" target="_blank">Balena Etcher</a>. You may need to run it with administrator privileges on Windows.
3. Select **Flash from URL**.
![Screenshot of the Etcher software showing flash from URL selected.](/images/installation/etcher1.png)
1. Copy the URL for the image. If there are multiple links below, make sure to select the correct link for your version of {{site.installation.types[page.installation_type].board}}:
4. Copy the URL for the image. If there are multiple links below, make sure to select the correct link for your version of {{site.installation.types[page.installation_type].board}}:
{% if site.installation.types[page.installation_type].variants.size > 1 %}
{% tabbed_block %}
{% for variant in site.installation.types[page.installation_type].variants %}
@ -157,15 +157,15 @@ _Select and copy the URL or use the "copy" button that appear when you hover it.
5. Paste the URL for the {{site.installation.types[page.installation_type].board}} image into Balena Etcher and select **OK**.
![Screenshot of the Etcher software showing the URL bar with a URL pasted in.](/images/installation/etcher2.png)
1. When Balena Etcher has downloaded the image, click **Select target**.
![Screenshot of the Etcher software showing the select target button highlighted.](/images/installation/etcher3.png)
1. Select the boot medium ({{site.installation.types[page.installation_type].installation_media}}) you want to use for your installation.
6. When Balena Etcher has downloaded the image, click **Select target**.
[Screenshot of the Etcher software showing the select target button highlighted.](/images/installation/etcher3.png)
7. Select the boot medium ({{site.installation.types[page.installation_type].installation_media}}) you want to use for your installation.
![Screenshot of the Etcher software showing teh targets available.](/images/installation/etcher4.png)
1. Select **Flash!** to start writing the image.
8. Select **Flash!** to start writing the image.
![Screenshot of the Etcher software showing the Flash button highlighted.](/images/installation/etcher5.png)
1. When Balena Etcher has finished writing the image, you will see a confirmation.
9. When Balena Etcher has finished writing the image, you will see a confirmation.
![Screenshot of the Etcher software showing that the installation has completed.](/images/installation/etcher6.png)
* If you are having issues with Balena Etcher, try version [1.10](https://github.com/balena-io/etcher/releases/tag/v1.10.4).
- If you are having issues with Balena Etcher, rather than installing from URL, download the file. Then, install from file.
### Start up your {{site.installation.types[page.installation_type].board}}
@ -176,7 +176,7 @@ _Select and copy the URL or use the "copy" button that appear when you hover it.
- If you used a live operating system (e.g. Ubuntu), shut it down and remove the live operating system USB device.
1. Plug in an Ethernet cable that is connected to the network.
1. Power the system on. If you have a screen connected to the {{site.installation.types[page.installation_type].board}} system, after a minute or so the Home Assistant welcome banner will appear in the console.
2. Power the system on. If you have a screen connected to the {{site.installation.types[page.installation_type].board}} system, after a minute or so the Home Assistant welcome banner will appear in the console.
<div class="note">
@ -217,9 +217,6 @@ If you are running an older Windows version or have a stricter network configura
### Download the appropriate image
- [VirtualBox][vdi] (.vdi)
{% if page.installation_type == 'macos' %}
- [KVM][qcow2] (.qcow2)
{% endif %}
{% if page.installation_type == 'windows' or page.installation_type == 'linux' %}
- [KVM][qcow2] (.qcow2)
- [Vmware Workstation][vmdk] (.vmdk)
@ -239,7 +236,6 @@ Follow this guide if you already are running a supported virtual machine hypervi
- If VirtualBox is not supported on your Mac, and you have experience using virtual machines, you can try running the Home Assistant Operating system on [UTM](https://mac.getutm.app/).
{% endif %}
### Create the virtual machine
Load the appliance image into your virtual machine hypervisor. (Note: You are free to assign as much resources as you wish to the VM, please assign enough based on your add-on needs).
@ -259,10 +255,10 @@ _All these can be extended if your usage calls for more resources._
- title: VirtualBox
content: |
1. Create a new virtual machine.
1. Select type **Linux** and version **Linux 2.6 / 3.x / 4.x (64-bit)**.
1. Select **Use an existing virtual hard disk file**, select the unzipped VDI file from above.
1. Edit the **Settings** of the VM and go to **System** > **Motherboard**. Select **Enable EFI**.
1. Then go to **Network** > **Adapter 1**. Choose **Bridged Adapter** and choose your network adapter.
2. Select type **Linux** and version **Linux 2.6 / 3.x / 4.x (64-bit)**.
3. Select **Use an existing virtual hard disk file**, select the unzipped VDI file from above.
4. Edit the **Settings** of the VM and go to **System** > **Motherboard**. Select **Enable EFI**.
5. Then go to **Network** > **Adapter 1**. Choose **Bridged Adapter** and choose your network adapter.
<div class="note warning">
Please keep in mind that the bridged adapter only functions over a hardwired Ethernet connection.
Using Wi-Fi on your VirtualBox host is unsupported.
@ -277,24 +273,24 @@ _All these can be extended if your usage calls for more resources._
```
</div>
{% unless page.installation_type == 'macos' %}
- title: KVM (virt-manager)
content: |
1. Create a new virtual machine in `virt-manager`.
1 Select **Import existing disk image**, provide the path to the QCOW2 image above.
1. Choose **Generic Default** for the operating system.
1. Check the box for **Customize configuration before install**.
1. Under **Network Selection**, select your bridge.
2. Select **Import existing disk image**, provide the path to the QCOW2 image above.
3. Choose **Generic Default** for the operating system.
4. Check the box for **Customize configuration before install**.
5. Under **Network Selection**, select your bridge.
6. Under customization select **Overview** > **Firmware** > **UEFI x86_64: ...**. Make sure to select a non-secureboot version of OVMF (does not contain the word `secure`, `secboot`, etc.), e.g., `/usr/share/edk2/ovmf/OVMF_CODE.fd`.
1. Click **Add Hardware** (bottom left), and select **Channel**.
1. Select device type: **unix**.
1. Select name: **org.qemu.guest_agent.0**.
1. Finally, select **Begin Installation** (upper left corner).
7. Click **Add Hardware** (bottom left), and select **Channel**.
8. Select device type: **unix**.
9. Select name: **org.qemu.guest_agent.0**.
10. Finally, select **Begin Installation** (upper left corner).
- title: KVM (virt-install)
content: |
```bash
virt-install --name hass --description "Home Assistant OS" --os-variant=generic --ram=2048 --vcpus=2 --disk <PATH TO QCOW2 FILE>,bus=sata --graphics none --boot uefi
virt-install --name hass --description "Home Assistant OS" --os-variant=generic --ram=2048 --vcpus=2 --disk <PATH TO QCOW2 FILE>,bus=sata --import --graphics none --boot uefi
```
<div class="note info">
If you have a USB dongle to attach, you need to add the option `--hostdev busID.deviceId`. You can discover these IDs via the `lsusb` command.
@ -314,21 +310,22 @@ _All these can be extended if your usage calls for more resources._
You can recognize the Sonoff dongle at `Bus 003 Device 003`. So the command to install the VM will become:
```bash
virt-install --name hass --description "Home Assistant OS" --os-variant=generic --ram=2048 --vcpus=2 --disk <PATH TO QCOW2 FILE>,bus=sata --graphics none --boot uefi --hostdev 003.003
virt-install --name hass --description "Home Assistant OS" --os-variant=generic --ram=2048 --vcpus=2 --disk <PATH TO QCOW2 FILE>,bus=sata --import --graphics none --boot uefi --hostdev 003.003
```
Note that this configuration (bus 003, device 003) is just an example, your dongle could be on another bus and/or with another device ID.
Please check the correct IDs of your USB dongle with `lsusb`.
</div>
{% endunless %}
{% if page.installation_type == 'windows' or page.installation_type == 'linux' %}
- title: Vmware Workstation
content: |
1. Create a new virtual machine.
1. Select **Custom**, make it compatible with the default of Workstation and ESX.
1. Choose **I will install the operating system later**, select **Linux** > **Other Linux 5.x or later kernel 64-bit**.
1. Select **Use Bridged Networking**.
1. Select **Use an existing virtual disk** and select the VMDK file above.
2. Select **Custom**, make it compatible with the default of Workstation and ESX.
3. Choose **I will install the operating system later**, select **Linux** > **Other Linux 5.x or later kernel 64-bit**.
4. Select **Use Bridged Networking**.
5. Select **Use an existing virtual disk** and select the VMDK file above.
After the VM has been created, go to **Settings** > **Options** > **Advanced**. Under **Firmware type** select **UEFI**.
@ -346,9 +343,9 @@ _All these can be extended if your usage calls for more resources._
</div>
1. Create a new virtual machine.
1. Select **Generation 2**.
1. Select **Connection** > **Your Virtual Switch that is bridged**.
1. Select **Use an existing virtual hard disk** and select the VHDX file from above.
2. Select **Generation 2**.
3. Select **Connection** > **Your Virtual Switch that is bridged**.
4. Select **Use an existing virtual hard disk** and select the VHDX file from above.
After creation, go to **Settings** > **Security** and deselect **Enable Secure Boot**.
{% endif %}
@ -358,8 +355,8 @@ _All these can be extended if your usage calls for more resources._
### Start up your virtual machine
1. Start the virtual machine.
1. Observe the boot process of the Home Assistant Operating System.
1. Once completed, you will be able to reach Home Assistant on <a href="http://homeassistant.local:8123" target="_blank">homeassistant.local:8123</a>. If you are running an older Windows version or have a stricter network configuration, you might need to access Home Assistant at <a href="http://homeassistant:8123" target="_blank">homeassistant:8123</a> or `http://X.X.X.X:8123` (replace X.X.X.X with your {{site.installation.types[page.installation_type].board}}s IP address).
2. Observe the boot process of the Home Assistant Operating System.
3. Once completed, you will be able to reach Home Assistant on <a href="http://homeassistant.local:8123" target="_blank">homeassistant.local:8123</a>. If you are running an older Windows version or have a stricter network configuration, you might need to access Home Assistant at <a href="http://homeassistant:8123" target="_blank">homeassistant:8123</a> or `http://X.X.X.X:8123` (replace X.X.X.X with your {{site.installation.types[page.installation_type].board}}s IP address).
{% endif %}

View File

@ -7,4 +7,4 @@ Options for {{ name }} can be set via the user interface, by taking the followin
- Browse to your Home Assistant instance.
- Go to **{% my integrations title="Settings > Devices & Services" %}**.
- If multiple instances of {{ name }} are configured, choose the instance you want to configure.
- Select the cogwheel, then select **Configure**.
- Select the integration, then select **Configure**.

View File

@ -18,7 +18,7 @@ ha_integration_type: integration
Integrates Airthings BLE sensors into Home Assistant.
[Airthings](https://www.airthings.com/) provide different sensors for measuring the air quality. The focus specially on Radon sensors.
[Airthings](https://www.airthings.com/) provide different devices for measuring the air quality. Initially focusing on radon gas sensors, each device provides a number of different sensors to monitor typical contaminants that's presence contributes to bad air quality in the home.
Requires Airthings hardware and a compatible Bluetooth dongle.

View File

@ -51,7 +51,7 @@ For example, Sao Paulo, Brazil shows a breadcrumb title of `Brazil > Sao Paulo >
When configured, the platform will create three sensors for each air quality standard:
#### Air Quality Index
### Air Quality Index
- **Description:** This sensor displays a numeric air quality index (AQI), a metric for the overall "health" of the air.
- **Example Sensor Name:** `sensor.chinese_air_quality_index`
@ -67,13 +67,13 @@ AQI | Status | Description
201 - 300 | **Very unhealthy** | Health warnings of emergency conditions. The entire population is more likely to be affected
301+ | **Hazardous** | Health alert: everyone may experience more serious health effects
#### Air Pollution Level
### Air Pollution Level
- **Description:** This sensor displays the associated `Status` (from the above table) for the current AQI.
- **Sample Sensor Name:** `sensor.us_air_pollution_level`
- **Example Sensor Value:** `Moderate`
#### Main Pollutant
### Main Pollutant
- **Description:** This sensor displays the pollutant whose value is currently highest.
- **Sample Sensor Name:** `sensor.us_main_pollutant`

View File

@ -89,11 +89,11 @@ This platform supports the services `alarm_disarm`, `alarm_arm_away`, `alarm_arm
For this system to operate correctly, the following IFTTT applets have to be setup. Obviously, if your alarm device does not support some states, no applets have to be provided for those.
* **IF** Webhook event `YOUR_DISARM_EVENT` is called, **THEN** disarm the alarm system.
* **IF** Webhook event `YOUR_ARM_HOME_EVENT` is called, **THEN** set the alarm system to armed home.
* **IF** Webhook event `YOUR_ARM_NIGHT_EVENT` is called, **THEN** set the alarm system to armed away.
* **IF** Webhook event `YOUR_DISARM_EVENT` is called, **THEN** set the alarm system to armed night.
* **IF** the alarm system was disarmed, **THEN** perform a Webhook `POST` web request to URL `https://HASS_URL/api/services/ifttt/push_alarm_state?api_password=API_PASSWORD` with content type `application/json` and body `{"entity_id": "alarm_control_panel.DEVICE_NAME", "state": "disarmed"}`.
* **IF** the alarm system state changed to armed home, **THEN** perform a Webhook `POST` web request to URL `https://HASS_URL/api/services/ifttt/push_alarm_state?api_password=API_PASSWORD` with content type `application/json` and body `{"entity_id": "alarm_control_panel.DEVICE_NAME", "state": "armed_home"}`.
* **IF** the alarm system state changed to armed away, **THEN** perform a Webhook `POST` web request to URL `https://HASS_URL/api/services/ifttt/push_alarm_state?api_password=API_PASSWORD` with content type `application/json` and body `{"entity_id": "alarm_control_panel.DEVICE_NAME", "state": "armed_away"}`.
* **IF** the alarm system state changed to armed night, **THEN** perform a Webhook `POST` web request to URL `https://HASS_URL/api/services/ifttt/push_alarm_state?api_password=API_PASSWORD` with content type `application/json` and body `{"entity_id": "alarm_control_panel.DEVICE_NAME", "state": "armed_night"}`.
- **IF** Webhook event `YOUR_DISARM_EVENT` is called, **THEN** disarm the alarm system.
- **IF** Webhook event `YOUR_ARM_HOME_EVENT` is called, **THEN** set the alarm system to armed home.
- **IF** Webhook event `YOUR_ARM_NIGHT_EVENT` is called, **THEN** set the alarm system to armed away.
- **IF** Webhook event `YOUR_DISARM_EVENT` is called, **THEN** set the alarm system to armed night.
- **IF** the alarm system was disarmed, **THEN** perform a Webhook `POST` web request to URL `https://HASS_URL/api/services/ifttt/push_alarm_state?api_password=API_PASSWORD` with content type `application/json` and body `{"entity_id": "alarm_control_panel.DEVICE_NAME", "state": "disarmed"}`.
- **IF** the alarm system state changed to armed home, **THEN** perform a Webhook `POST` web request to URL `https://HASS_URL/api/services/ifttt/push_alarm_state?api_password=API_PASSWORD` with content type `application/json` and body `{"entity_id": "alarm_control_panel.DEVICE_NAME", "state": "armed_home"}`.
- **IF** the alarm system state changed to armed away, **THEN** perform a Webhook `POST` web request to URL `https://HASS_URL/api/services/ifttt/push_alarm_state?api_password=API_PASSWORD` with content type `application/json` and body `{"entity_id": "alarm_control_panel.DEVICE_NAME", "state": "armed_away"}`.
- **IF** the alarm system state changed to armed night, **THEN** perform a Webhook `POST` web request to URL `https://HASS_URL/api/services/ifttt/push_alarm_state?api_password=API_PASSWORD` with content type `application/json` and body `{"entity_id": "alarm_control_panel.DEVICE_NAME", "state": "armed_night"}`.

View File

@ -77,7 +77,7 @@ availability_topic:
required: false
type: string
code:
description: If defined, specifies a code to enable or disable the alarm in the frontend. Note that the code is validated locally and blocks sending MQTT messages to the remote device. For remote code validation, the code can be configured to either of the special values `REMOTE_CODE` (numeric code) or `REMOTE_CODE_TEXT` (text code). In this case, local code validation is bypassed but the frontend will still show a numeric or text code dialog. Use `command_template` to send the code to the remote device. Example configurations for remote code validation [can be found here](./#configurations-with-remote-code-validation).
description: If defined, specifies a code to enable or disable the alarm in the frontend. Note that the code is validated locally and blocks sending MQTT messages to the remote device. For remote code validation, the code can be configured to either of the special values `REMOTE_CODE` (numeric code) or `REMOTE_CODE_TEXT` (text code). In this case, local code validation is bypassed but the frontend will still show a numeric or text code dialog. Use `command_template` to send the code to the remote device. Example configurations for remote code validation [can be found here](#configurations-with-remote-code-validation).
required: false
type: string
code_arm_required:

View File

@ -200,7 +200,7 @@ Available services:
`start_tour`, `stop_tour`, and
`ptz_control`
#### Service `enable_audio`/`disable_audio`
### Service `enable_audio`/`disable_audio`
These services enable or disable the camera's audio stream.
@ -208,7 +208,7 @@ Service data attribute | Optional | Description
-|-|-
`entity_id` | no | The entity ID of the camera to control. May be a list of multiple entity IDs. To target all cameras, set entity ID to `all`.
#### Service `enable_motion_recording`/`disable_motion_recording`
### Service `enable_motion_recording`/`disable_motion_recording`
These services enable or disable the camera to record a clip to its configured storage location when motion is detected.
@ -216,7 +216,7 @@ Service data attribute | Optional | Description
-|-|-
`entity_id` | no | The entity ID of the camera to control. May be a list of multiple entity IDs. To target all cameras, set entity ID to `all`.
#### Service `enable_recording`/`disable_recording`
### Service `enable_recording`/`disable_recording`
These services enable or disable the camera to continuously record to its configured storage location.
@ -224,7 +224,7 @@ Service data attribute | Optional | Description
-|-|-
`entity_id` | no | The entity ID of the camera to control. May be a list of multiple entity IDs. To target all cameras, set entity ID to `all`.
#### Service `goto_preset`
### Service `goto_preset`
This service will cause the camera to move to one of the PTZ locations configured within the camera.
@ -233,7 +233,7 @@ Service data attribute | Optional | Description
`entity_id` | no | The entity ID of the camera to control. May be a list of multiple entity IDs. To target all cameras, set entity ID to `all`.
`preset` | no | Preset number, starting from 1.
#### Service `set_color_bw`
### Service `set_color_bw`
This service will set the color mode of the camera.
@ -242,7 +242,7 @@ Service data attribute | Optional | Description
`entity_id` | no | The entity ID of the camera to control. May be a list of multiple entity IDs. To target all cameras, set entity ID to `all`.
`color_bw` | no | One of `auto`, `bw` or `color`.
#### Service `start_tour`/`stop_tour`
### Service `start_tour`/`stop_tour`
These services start or stop the camera's PTZ tour function.
@ -250,7 +250,7 @@ Service data attribute | Optional | Description
-|-|-
`entity_id` | no | The entity ID of the camera to control. May be a list of multiple entity IDs. To target all cameras, set entity ID to `all`.
#### Service `ptz_control`
### Service `ptz_control`
If your Amcrest or Dahua camera supports PTZ, you will be able to pan, tilt or zoom your camera.
@ -260,12 +260,12 @@ Service data attribute | Optional | Description
`movement` | no | Direction of the movement. Allowed values: `zoom_in`, `zoom_out`, `up`, `down`, `left`, `right`, `right_up`, `right_down`, `left_up`, `left_down`
`travel_time` | yes |Travel time in fractional seconds. Allowed values: `0` to `1`. Default: `0.2`.
#### Notes
## Notes
- PTZ zoom capability does not control VariFocal lens adjustments.
- There can be several seconds of lag before the video (snapshot or live) reflects the camera movement.
### Example card with controls
## Example card with controls
<p class='img'>
<img src='/images/integrations/amcrest/amcrest_ptz.jpg' alt='Screenshot using a picture-elements with PTZ controls.'>

View File

@ -20,18 +20,18 @@ Both [Anthem]'s current and last generation of A/V Receivers and Processors supp
### A/V Receiver
* [MRX 540](https://www.anthemav.com/products-current/type=av-receiver/model=mrx-540/page=overview), [MRX 740](https://www.anthemav.com/products-current/type=av-receiver/model=mrx-740/page=overview), [MRX 1140](https://www.anthemav.com/products-current/type=av-receiver/model=mrx-1140/page=overview)
* [MRX 520](https://www.anthemav.com/products-current/series=mrx-series-gen3/model=mrx-520/page=overview), [MRX 720](https://www.anthemav.com/products-current/collection=performance/model=mrx-720/page=overview), [MRX 1120](https://www.anthemav.com/products-current/collection=performance/model=mrx-1120/page=overview)
* [MRX 310](https://www.anthemav.com/products-archived/type=av-receiver/model=mrx-310/page=overview), [MRX 510](https://www.anthemav.com/products-archived/series=mrx-series/model=mrx-510/page=overview), [MRX 710](https://www.anthemav.com/products-archived/type=av-receiver/model=mrx-710/page=overview)
- [MRX 540](https://www.anthemav.com/products-current/type=av-receiver/model=mrx-540/page=overview), [MRX 740](https://www.anthemav.com/products-current/type=av-receiver/model=mrx-740/page=overview), [MRX 1140](https://www.anthemav.com/products-current/type=av-receiver/model=mrx-1140/page=overview)
- [MRX 520](https://www.anthemav.com/products-current/series=mrx-series-gen3/model=mrx-520/page=overview), [MRX 720](https://www.anthemav.com/products-current/collection=performance/model=mrx-720/page=overview), [MRX 1120](https://www.anthemav.com/products-current/collection=performance/model=mrx-1120/page=overview)
- [MRX 310](https://www.anthemav.com/products-archived/type=av-receiver/model=mrx-310/page=overview), [MRX 510](https://www.anthemav.com/products-archived/series=mrx-series/model=mrx-510/page=overview), [MRX 710](https://www.anthemav.com/products-archived/type=av-receiver/model=mrx-710/page=overview)
### A/V Processor
* [AVM 60](https://www.anthemav.com/products-current/model=avm-60/page=overview)
- [AVM 60](https://www.anthemav.com/products-current/model=avm-60/page=overview)
### Distribution Solution
* [MDX 8](https://www.anthemav.com/products-current/type=distribution/model=mdx-8/page=overview), [MDX 16](https://www.anthemav.com/products-current/type=distribution/model=mdx-16/page=overview)
* Martin Logan [MDA 8](https://www.martinlogan.com/en/product/mda8), [MDA 16](https://www.martinlogan.com/en/product/mda16)
- [MDX 8](https://www.anthemav.com/products-current/type=distribution/model=mdx-8/page=overview), [MDX 16](https://www.anthemav.com/products-current/type=distribution/model=mdx-16/page=overview)
- Martin Logan [MDA 8](https://www.martinlogan.com/en/product/mda8), [MDA 16](https://www.martinlogan.com/en/product/mda16)
If your model is not on the list then give it a test, if everything works correctly then add it to the list by clicking on the **Edit this page on GitHub** link above.
@ -51,8 +51,8 @@ port:
## Notes and Limitations
* The tuner is currently unsupported as are the `media_player` play, pause, prev, and next controls.
* Enabling this platform will set and enforce "Standby IP Control On" in your Anthem device. You almost certainly want this. If you disable it on the device, it will just get re-enabled by Home Assistant.
- The tuner is currently unsupported as are the `media_player` play, pause, prev, and next controls.
- Enabling this platform will set and enforce "Standby IP Control On" in your Anthem device. You almost certainly want this. If you disable it on the device, it will just get re-enabled by Home Assistant.
<div class='note warning'>

View File

@ -22,7 +22,7 @@ The Apple TV integration allows you to control an Apple TV (any generation).
There is currently support for the following entities within the Apple TV device:
- [Media Player](#media_player)
- [Media Player](#media-player)
- [Remote](#remote)
{% include integrations/config_flow.md %}
@ -43,12 +43,12 @@ launch specific content in applications.
Examples of some `Deep Links` for popular applications:
| App | URL |
|-----------| --- |
| YouTube | youtube://www.youtube.com/watch?v=dQw4w9WgXcQ
| Netflix | https://www.netflix.com/title/80234304
| Disney+ | https://www.disneyplus.com/series/the-beatles-get-back/7DcWEeWVqrkE
| Apple TV+ | https://tv.apple.com/show/severance/umc.cmc.1srk2goyh2q2zdxcx605w8vtx
| App | URL |
| --------- | --------------------------------------------------------------------- |
| YouTube | youtube://www.youtube.com/watch?v=dQw4w9WgXcQ |
| Netflix | https://www.netflix.com/title/80234304 |
| Disney+ | https://www.disneyplus.com/series/the-beatles-get-back/7DcWEeWVqrkE |
| Apple TV+ | https://tv.apple.com/show/severance/umc.cmc.1srk2goyh2q2zdxcx605w8vtx |
The simplest way to find useful `Deep Links` is to use the “Share” feature in iOS
or macOS versions of the App. Share sheets will often have a “Copy” or
@ -112,11 +112,11 @@ The following commands are currently available:
### Service `send_command`
| Service data<br>attribute | Optional | Description |
| ------------------------- | -------- | ------------ |
| `entity_id` | no | `entity_id` of the Apple TV |
| `command` | no | Command, or list of commands to be sent |
| `num_repeats` | yes | Number of times to repeat the commands |
| Service data<br>attribute | Optional | Description |
| ------------------------- | -------- | ---------------------------------------------------------------------------------------------- |
| `entity_id` | no | `entity_id` of the Apple TV |
| `command` | no | Command, or list of commands to be sent |
| `num_repeats` | yes | Number of times to repeat the commands |
| `delay_secs` | yes | Interval in seconds between one send and another <br> This is a `float` value e.g. 1, 1.2 etc. |
### Examples

View File

@ -17,8 +17,8 @@ This platform allows you to detect presence by looking at connected devices to a
This is one of the routers provided by:
* [Ziggo](https://www.ziggo.nl/), a cable operator in the Netherlands, to their customers as the Ziggo Connectbox.
* [Virgin Media](https://www.virginmedia.com/), a cable operator in the United Kingdom, to their customers as the Hub 3.
- [Ziggo](https://www.ziggo.nl/), a cable operator in the Netherlands, to their customers as the Ziggo Connectbox.
- [Virgin Media](https://www.virginmedia.com/), a cable operator in the United Kingdom, to their customers as the Hub 3.
<div class='note warning'>
The router prevents the admin user from logging in twice. This can cause problems with accessing the router's configuration pages while this platform is active.

View File

@ -19,7 +19,7 @@ In order to use it, SNMP must be enabled on your PDU. It is recommended to use S
Tested devices:
* [PE8324G](https://www.aten.com/eu/en/products/energy-intelligence-pduupsracks/rack-pdu/pe8324/)
- [PE8324G](https://www.aten.com/eu/en/products/energy-intelligence-pduupsracks/rack-pdu/pe8324/)
To set it up, add the following information to your `configuration.yaml` file:

View File

@ -37,13 +37,13 @@ This integration refreshes once every 5 minutes, based on the [default per-devic
The integration will fetch data from each device. The following sensors are supported:
* Temperature
* Humidity
* Carbon dioxide
* Total volatile organic compounds
* PM2.5 density
* PM10 density
* Sound level
* Luminescence
- Temperature
- Humidity
- Carbon dioxide
- Total volatile organic compounds
- PM2.5 density
- PM10 density
- Sound level
- Luminescence
Not all devices support all sensors; consult Awair's documentation to find out what sensors are present on your device. For first-generation Awair devices with a "dust" sensor, the integration will create identical PM2.5 and PM10 sensors (which reflects the capabilities of the sensor - it can detect dust between PM2.5 and PM10 but cannot differentiate between them).

View File

@ -9,7 +9,7 @@ ha_release: 0.81
ha_domain: rflink
---
The `rflink` integration supports devices that use [RFLink gateway firmware](https://www.rflink.nl/download.php), for example the [Nodo RFLink Gateway](https://www.nodo-shop.nl/en/21-rflink-). RFLink gateway is an Arduino firmware that allows two-way communication with a multitude of RF wireless devices using cheap hardware (Arduino + transceiver).
The `rflink` integration supports devices that use [RFLink gateway firmware](https://www.rflink.nl/download.php), for example the [Nodo RFLink Gateway](https://www.nodo-shop.nl/21-rflink-). RFLink gateway is an Arduino firmware that allows two-way communication with a multitude of RF wireless devices using cheap hardware (Arduino + transceiver).
First, you have to set up your [RFLink hub](/integrations/rflink/).

View File

@ -246,7 +246,7 @@ The following remote adapters are supported:
- [ESPHome](https://esphome.github.io/bluetooth-proxies/)
- Bluetooth advertisement listening: ESPHome ESP32 device with firmware 2022.8.2 or later
- Bluetooth advertisement bundling: ESPHome ESP32 device with firmware 2022.6.0 or later
- Bluetooth advertisement bundling: ESPHome ESP32 device with firmware 2023.6.0 or later
- Single active connection: ESPHome ESP32 device with firmware 2022.9.3 or later
- Multiple active connections: ESPHome ESP32 device with firmware 2022.11.0 or later
- [Shelly](/integrations/shelly/)

View File

@ -2,7 +2,7 @@
title: Brandt Smart Control
description: Connect and control your Brandt Smart Control devices using the Overkiz integration
ha_category:
- Alarm Control Panel
- Alarm
- Binary Sensor
- Button
- Climate

View File

@ -128,7 +128,7 @@ The commands that can be sent to the TV depends on the model of your TV. To disp
```yaml
service: remote.send_command
target:
entity_id: media_player.bravia_tv
entity_id: remote.bravia_tv
data:
command: "Down"
```

View File

@ -282,11 +282,11 @@ script:
You can use `remote.delete_command` to remove commands that you've learned with the `remote.learn_command` service.
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ------------------------------------- |
| `entity_id` | no | ID of the remote. |
| `device` | no | Name of the device. |
| `command` | no | Names of the commands to be deleted. |
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ------------------------------------ |
| `entity_id` | no | ID of the remote. |
| `device` | no | Name of the device. |
| `command` | no | Names of the commands to be deleted. |
#### Deleting a command
@ -656,9 +656,9 @@ After a success, do one of the following two options:
```
2. To learn a button hold RF code, hold the button you wish to learn for 1-2 seconds then immediately press enter.
* You will see the same prompts for a short press as shown above. You should see it return a different base64 code.
* Test the base64 code to ensure it performs the button 'hold' command as expected, rather than the button 'press' command.
* This might take some trial and error to get the hold timing right before hitting enter to scan for the code.
- You will see the same prompts for a short press as shown above. You should see it return a different base64 code.
- Test the base64 code to ensure it performs the button 'hold' command as expected, rather than the button 'press' command.
- This might take some trial and error to get the hold timing right before hitting enter to scan for the code.
### Conversion of codes from other projects

View File

@ -19,7 +19,7 @@ ha_integration_type: device
The `Brother Printer` integration allows you to read current data from your local Brother printer.
It usually provides information about the device's state, the left amount of ink or toner and the remaining life of the drum or other parts of the printer.
It usually provides information about the device's state, the left amount of ink or toner and the remaining lifetime of the drum or other parts of the printer.
The integration monitors every supported part.
{% include integrations/config_flow.md %}

View File

@ -37,7 +37,7 @@ The `buienradar` camera platform uses [buienradar.nl](https://buienradar.nl/) as
Internally, this integration uses the radar map image as [documented](https://www.buienradar.nl/overbuienradar/gratis-weerdata) on buienradar.nl.
The downloaded image is cached to prevent Home Assistant from making a new request to buienradar.nl multiple times a minute when Home Assistant checks for new stills from the camera.
The camera entity is added disabled by default and should first be enabled before it starts reading the camera images.
The camera entity is disabled by default and should be [enabled](/common-tasks/general/#enabling-entities) before it reads the camera images.
## Sensor
@ -49,24 +49,24 @@ The following entities will be created:
- **Barometer forecast**: A numeric barometric forecast (1 to 7)
- **Barometer forecast name**: A textual representation of the barometer forecast (eg: Thunderstorms, Stable, etc.)
- **Condition code**: A symbol and a unique code identifying the current weather condition
* `a`: sunny/clear
* `b`: Mix of clear and medium or low clouds
* `j`: Mix of clear and high clouds
* `o/r`: Partly cloudy (increasing character increases the condition)
* `c`: Heavily clouded
* `p`: Cloudy
* `d`: Alternating cloudy with local fog
* `n`: Clear and local mist or fog
* `f`: Alternatingly cloudy with some light rain
* `h/k/l`: rainy (increasing character increases the condition)
* `q`: Heavily clouded with rain
* `w`: Heavily clouded with rain and winter precipitation
* `m`: Heavily clouded with some light rain
* `u`: Cloudy with light snow
* `i/v`: Heavily clouded with light snowfall (increasing character increases the condition)
* `t`: (Heavy snowfall)
* `g`: (Clear with (possibly) some heavy lightning)
* `s`: (Cloudy with (possibly) some heavy (thunderstorms) showers)
- `a`: sunny/clear
- `b`: Mix of clear and medium or low clouds
- `j`: Mix of clear and high clouds
- `o/r`: Partly cloudy (increasing character increases the condition)
- `c`: Heavily clouded
- `p`: Cloudy
- `d`: Alternating cloudy with local fog
- `n`: Clear and local mist or fog
- `f`: Alternatingly cloudy with some light rain
- `h/k/l`: rainy (increasing character increases the condition)
- `q`: Heavily clouded with rain
- `w`: Heavily clouded with rain and winter precipitation
- `m`: Heavily clouded with some light rain
- `u`: Cloudy with light snow
- `i/v`: Heavily clouded with light snowfall (increasing character increases the condition)
- `t`: (Heavy snowfall)
- `g`: (Clear with (possibly) some heavy lightning)
- `s`: (Cloudy with (possibly) some heavy (thunderstorms) showers)
- **Condition**: A symbol and the current weather condition (`clear`, `cloudy`, `fog`, `rainy`, `snowy` or `lightning`)
- **Condition detailed**: A symbol and detailed current weather condition (`clear`, `partlycloudy`, `cloudy`, `partlycloudy-fog`, `partlycloudy-light-rain`, `partlycloudy-rain`, `light-rain`, `rainy`, `snowy-rainy`, `partlycloudy-light-snow`, `partlycloudy-snow`, `light-snow`, `snowy`, `partlycloudy-lightning` or `lightning`)
- **Condition exact**: A symbol with the full current weather condition (in English)
@ -102,8 +102,7 @@ The following entities will be created:
- **Condition code n days ahead**: Symbol and condition code of the expected condition n days ahead
- **Condition n days ahead**: Symbol and expected condition n days ahead
- **Detailed condition n days ahead**: Symbol and detailed expected condition n days ahead
- **Full condition (english) n days ahead**: Symbol and full expected condition n days ahead (in English)
- **Full condition (dutch) n days ahead**: Symbol and full expected condition n days ahead (in Dutch)
- **Full condition n days ahead**: Symbol and full expected condition n days ahead
{% include integrations/option_flow.md %}

View File

@ -252,4 +252,4 @@ data:
{% endfor %}
</p>
```
{% endraw %}
{% endraw %}

View File

@ -17,14 +17,14 @@ The `cisco_webex_teams` notification platform allows you to deliver rich notific
To use this notification platform you will need an app (bot) token. To obtain a token visit [Cisco Webex for Developers](https://developer.webex.com/).
* Detailed instructions can be found in the section titled **Creating a Webex Teams Bot** on the [Webex Teams bot documentation](https://developer.webex.com/docs/bots).
- Detailed instructions can be found in the section titled **Creating a Webex Teams Bot** on the [Webex Teams bot documentation](https://developer.webex.com/docs/bots).
You also need to specify the `room_id` that you wish to post messages into. The `room_id` can be found in one of two ways:
1. Logging in at [Cisco Webex for Developers](https://developer.webex.com/) and navigate to `Documentation`>`API Reference`>`Messages` and select List Messages, or
2. Log into the web client at [teams.webex.com](https://teams.webex.com/),
* select the room (or create a new room),
* then copying the room ID from the URL.
- select the room (or create a new room),
- then copying the room ID from the URL.
<div class='note'>
@ -118,23 +118,23 @@ Here are the automations for the above screenshot:
The following is a list of the allowed html tags and attributes:
Tag | More Info
--- | ---
`<@personEmail:email@examplecompany.com>` | Used to tag another Webex Team user by email address.
`<a>` | Defines a hyperlink. Allows attribute `href`.
`<blockquote>` | Defines a section that is quoted from another source. Allows attribute `class` with allowed values `danger`, `warning`, `info`, `primary`, `secondary`.
`<b>` | Defines bold text.
`<strong>` | Defines important text.
`<i>` | Defines italic text.
`<em>` | Defines emphasized text.
`<pre>` | Defines preformatted text.
`<code>` | Defines a piece of computer code.
`<br>` | Defines a single line break.
`<p>` | Defines a paragraph.
`<ul>` | Defines an unordered list.
`<ol>` | Defines an ordered list.
`<li>` | Defines a list item.
`<h1>` to `<h3>` | Defines HTML headings.
| Tag | More Info |
| ----------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `<@personEmail:email@examplecompany.com>` | Used to tag another Webex Team user by email address. |
| `<a>` | Defines a hyperlink. Allows attribute `href`. |
| `<blockquote>` | Defines a section that is quoted from another source. Allows attribute `class` with allowed values `danger`, `warning`, `info`, `primary`, `secondary`. |
| `<b>` | Defines bold text. |
| `<strong>` | Defines important text. |
| `<i>` | Defines italic text. |
| `<em>` | Defines emphasized text. |
| `<pre>` | Defines preformatted text. |
| `<code>` | Defines a piece of computer code. |
| `<br>` | Defines a single line break. |
| `<p>` | Defines a paragraph. |
| `<ul>` | Defines an unordered list. |
| `<ol>` | Defines an ordered list. |
| `<li>` | Defines a list item. |
| `<h1>` to `<h3>` | Defines HTML headings. |
{% configuration %}
name:

View File

@ -219,7 +219,7 @@ mode_command_template:
required: false
type: template
mode_command_topic:
description: The MQTT topic to publish commands to change the HVAC operation mode. Use `power_command_topic` if you only want to publish the power state.
description: The MQTT topic to publish commands to change the HVAC operation mode.
required: false
type: string
mode_state_template:
@ -274,7 +274,7 @@ power_command_template:
required: false
type: template
power_command_topic:
description: The MQTT topic to publish commands to change the HVAC power state. Sends the payload configured with `payload_on` if the climate is turned on via the `climate.turn_on`, or the payload configured with `payload_off` if the climate is turned off via the `climate.turn_off` service. The climate device reports it's state back via `mode_command_topic`. Note that when this option is used in `optimistic` mode, service `climate.turn_on` will send a the message configured with `payload_on` to the device but will not update the state of the climate.
description: The MQTT topic to publish commands to change the HVAC power state. Sends the payload configured with `payload_on` if the climate is turned on via the `climate.turn_on`, or the payload configured with `payload_off` if the climate is turned off via the `climate.turn_off` service. Note that `optimistic` mode is not supported through `climate.turn_on` and `climate.turn_off` services. When called, these services will send a power command to the device but will not optimistically update the state of the climate entity. The climate device should report its state back via `mode_state_topic`.
required: false
type: string
precision:

View File

@ -161,13 +161,13 @@ It's now possible to say "engage all lights in the bedroom", which will turn on
Send a message to a conversation agent for processing.
| Service data attribute | Optional | Description |
|------------------------|----------|------------------|
| `text` | no | Transcribed text |
| `language` | yes | Language of the text |
| `agent_id` | yes | ID of conversation agent to use |
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------- |
| `text` | no | Transcribed text input |
| `language` | yes | Language of the text |
| `agent_id` | yes | ID of conversation agent. The conversation agent is the brains of the assistant. It processes the incoming text commands. |
This service is able to return a response value. The response is the same response as for the
This service is able to return [response data](/docs/scripts/service-calls/#use-templates-to-handle-response-data). The response is the same response as for the
[`/api/conversation/process` API](https://developers.home-assistant.io/docs/intent_conversation_api#conversation-response).
## Service `conversation.reload`

View File

@ -9,7 +9,7 @@ ha_release: 0.55
ha_domain: rflink
---
The `rflink` integration supports devices that use [RFLink gateway firmware](https://www.rflink.nl/download.php), for example the [Nodo RFLink Gateway](https://www.nodo-shop.nl/en/21-rflink-). RFLink gateway is an Arduino firmware that allows two-way communication with a multitude of RF wireless devices using cheap hardware (Arduino + transceiver).
The `rflink` integration supports devices that use [RFLink gateway firmware](https://www.rflink.nl/download.php), for example the [Nodo RFLink Gateway](https://www.nodo-shop.nl/21-rflink-). RFLink gateway is an Arduino firmware that allows two-way communication with a multitude of RF wireless devices using cheap hardware (Arduino + transceiver).
First, you have to set up your [RFLink hub](/integrations/rflink/).

View File

@ -2,7 +2,7 @@
title: Atlantic Cozytouch
description: Connect and control your Atlantic Cozytouch devices using the Overkiz integration
ha_category:
- Alarm Control Panel
- Alarm
- Binary Sensor
- Button
- Climate

View File

@ -3,11 +3,11 @@ title: Date/Time
description: Instructions on how to set up date/time entities within Home Assistant.
ha_category:
- Date/Time
ha_release: "2023.6"
ha_release: '2023.6'
ha_domain: datetime
ha_quality_scale: internal
ha_codeowners:
- "@home-assistant/core"
- '@home-assistant/core'
ha_integration_type: entity
---

View File

@ -52,6 +52,7 @@ Known supported devices:
- Denon AVR-X6700H
- Denon AVR-X7200W
- Denon AVR-X8500H
- Denon AVR-1713
- Denon AVR-1912
- Denon AVR-2112CI
- Denon AVR-2312CI

View File

@ -14,9 +14,9 @@ ha_integration_type: integration
Home Assistant has a built-in integration called `device_sun_light_trigger` to help you automate your lights. The integration will:
* Fade in the lights when the sun is setting and there are people home
* Turn on the lights when people get home after the sun has set
* Turn off the lights when all people leave the house
- Fade in the lights when the sun is setting and there are people home
- Turn on the lights when people get home after the sun has set
- Turn off the lights when all people leave the house
This integration requires the integrations [sun](/integrations/sun/), [device_tracker](/integrations/device_tracker/), [person](/integrations/person/) and [light](/integrations/light/) to be enabled.

View File

@ -122,8 +122,8 @@ json_attributes_topic:
description: "The MQTT topic subscribed to receive a JSON dictionary message containing device tracker attributes.
This topic can be used to set the location of the device tracker under the following conditions:
* If the attributes in the JSON message include `longitude`, `latitude`, and `gps_accuracy` (optional).\n
* If the device tracker is within a configured [zone](/integrations/zone/).\n
- If the attributes in the JSON message include `longitude`, `latitude`, and `gps_accuracy` (optional).\n
- If the device tracker is within a configured [zone](/integrations/zone/).\n
If these conditions are met, it is not required to configure `state_topic`.\n\n
Be aware that any location message received at `state_topic` overrides the location received via `json_attributes_topic` until a message configured with `payload_reset` is received at `state_topic`. For a more generic usage example of the `json_attributes_topic`, refer to the [MQTT sensor](/integrations/sensor.mqtt/#json-attributes-topic-configuration) documentation."

View File

@ -36,61 +36,61 @@ Currently the following device types within Home Assistant are supported.
### Binary Sensors
* Device attached to the router
* Updates every 5 minutes
* Is disabled by default because it typically rarely changes
- Device attached to the router
- Updates every 5 minutes
- Is disabled by default because it typically rarely changes
### Buttons
* Identify a PLC device by making its LED blink for 2 minutes
* Start pairing on a PLC device
* Restart the device
* Start WPS
- Identify a PLC device by making its LED blink for 2 minutes
- Start pairing on a PLC device
- Restart the device
- Start WPS
### Presence Detection
* Detect presence of devices connected to the main or the guest wifi
* Updates every 10 seconds
* Automatically adds new devices as disabled entities unless disabled via system option
- Detect presence of devices connected to the main or the guest wifi
- Updates every 10 seconds
- Automatically adds new devices as disabled entities unless disabled via system option
### Sensors
* Number of connected wifi clients
* Updates every 10 seconds
* Is enabled by default
* Number of neighbored wifi networks
* Updates every 5 minutes
* Is disabled by default because it runs quite long
* Number of PLC devices in the same PLC network
* Updates every 5 minutes
* Is disabled by default because it typically rarely changes
- Number of connected wifi clients
- Updates every 10 seconds
- Is enabled by default
- Number of neighbored wifi networks
- Updates every 5 minutes
- Is disabled by default because it runs quite long
- Number of PLC devices in the same PLC network
- Updates every 5 minutes
- Is disabled by default because it typically rarely changes
### Switch
* Turn on/off guest wifi
* Is enabled by default
* Turn on/off the device LEDs
* Is enabled by default
- Turn on/off guest wifi
- Is enabled by default
- Turn on/off the device LEDs
- Is enabled by default
## Supported devolo Devices
The list of supported devolo devices depends on the device firmware and the device features. The following devices were tested running firmware 5.6.0:
* Magic 2 WiFi 6
* Magic 2 WiFi next
* Magic 2 WiFi 2-1
* Magic 1 WiFi mini
* Magic 1 WiFi 2-1
* WiFi 6 Repeater 5400
* WiFi 6 Repeater 3000
* WiFi Repeater+ ac
* dLAN 1200+ WiFi ac
* dLAN 550+ Wifi
* dLAN 550 WiFi
- Magic 2 WiFi 6
- Magic 2 WiFi next
- Magic 2 WiFi 2-1
- Magic 1 WiFi mini
- Magic 1 WiFi 2-1
- WiFi 6 Repeater 5400
- WiFi 6 Repeater 3000
- WiFi Repeater+ ac
- dLAN 1200+ WiFi ac
- dLAN 550+ Wifi
- dLAN 550 WiFi
Since firmware 7.10 also the following device without Wifi can be used as long as the corresponding entities are supported:
* Magic 2 LAN triple
* Magic 2 DinRail
* Magic 2 LAN 1-1
* Magic 1 LAN 1-1
- Magic 2 LAN triple
- Magic 2 DinRail
- Magic 2 LAN 1-1
- Magic 1 LAN 1-1

View File

@ -11,7 +11,9 @@ ha_codeowners:
ha_domain: discovergy
ha_config_flow: true
ha_platforms:
- diagnostics
- sensor
ha_integration_type: hub
---
The `discovergy` integration allows users to integrate their [Discovergy](https://discovergy.com/) smart meters into Home Assistant.

View File

@ -15,11 +15,11 @@ This is the legacy discovery integration for Home Assistant. It's use is no long
This integration is limited to detect:
* [Bluesound speakers](/integrations/bluesound)
* [Bose Soundtouch speakers](/integrations/soundtouch)
* [Enigma2 media player](/integrations/enigma2)
* [SABnzbd downloader](/integrations/sabnzbd)
* [Yamaha media player](/integrations/yamaha)
- [Bluesound speakers](/integrations/bluesound)
- [Bose Soundtouch speakers](/integrations/soundtouch)
- [Enigma2 media player](/integrations/enigma2)
- [SABnzbd downloader](/integrations/sabnzbd)
- [Yamaha media player](/integrations/yamaha)
To load this integration, add the following lines to your `configuration.yaml` file:
@ -44,12 +44,12 @@ enable:
Valid values for ignore are:
* `bluesound`: Bluesound speakers
* `bose_soundtouch`: Bose Soundtouch speakers
* `enigma2`: Enigma2 media players
* `lg_smart_device`: LG Soundbars
* `sabnzbd`: SABnzbd downloader
* `yamaha`: Yamaha media player
- `bluesound`: Bluesound speakers
- `bose_soundtouch`: Bose Soundtouch speakers
- `enigma2`: Enigma2 media players
- `lg_smart_device`: LG Soundbars
- `sabnzbd`: SABnzbd downloader
- `yamaha`: Yamaha media player
## Troubleshooting

View File

@ -41,17 +41,17 @@ Show incompatible media when browsing:
DLNA devices can support a range of features. Depending on the device itself, the following [media_player](/integrations/media_player/#services) services may be supported:
* `media_player.volume_up`, `media_player.volume_down`, and `media_player.volume_set`
* `media_player.volume_mute`
* `media_player.media_play`
* `media_player.media_pause` and `media_player.media_play_pause`
* `media_player.media_stop`
* `media_player.media_next_track`
* `media_player.media_previous_track`
* `media_player.play_media`
* `media_player.shuffle_set`
* `media_player.repeat_set`
* `media_player.select_sound_mode`
- `media_player.volume_up`, `media_player.volume_down`, and `media_player.volume_set`
- `media_player.volume_mute`
- `media_player.media_play`
- `media_player.media_pause` and `media_player.media_play_pause`
- `media_player.media_stop`
- `media_player.media_next_track`
- `media_player.media_previous_track`
- `media_player.play_media`
- `media_player.shuffle_set`
- `media_player.repeat_set`
- `media_player.select_sound_mode`
## Playing media

View File

@ -48,13 +48,13 @@ See [Schedules](#schedules) section below for details on how to configure schedu
Event names will be prefixed by `doorbird_devicename`. For example, the example event `somebody_pressed_the_button` for the device 'Driveway Gate' will be seen in Home Assistant as `doorbird_driveway_gate_somebody_pressed_the_button`. This is to prevent conflicts with other events.
See [Automation Example](#automation_example) section below for details on how to use the event names in an automation.
See [Automation Example](#automation-example) section below for details on how to use the event names in an automation.
<div class="note info">
Events will not be received in Home Assistant until a schedule is defined via the DoorBird app.
</div>
#### Clearing Registered Events
### Clearing Registered Events
Events can be cleared from DoorBird devices by visiting a special URL.
Simply open a new browser window and navigate to `{Home Assistant URL}/api/doorbird/clear?token={DEVICE_TOKEN}`. Replace `{Home Assistant URL}` with the full path to your running instance, such as `
@ -64,7 +64,7 @@ Please note that clearing device events will require configuration steps above t
<br><br>
If DoorBird was setup using UI prompts, a token can be discovered through DoorBird App by clicking settings (cog icon) -> Administration-> LOGIN (using your App Administration details). Under the "FAVORITES" section, choose "HTTP(S) Calls". This displays all events and the associated HTTP URL. In that URL field, you will be able to see the token that was auto-generated by Home Assistant.
#### Event Data
### Event Data
Each event will include live image and video URLs for the DoorBird device that triggered the event. These URLs can be found on the event data and are helpful in automation actions. For example, you could use `html5_viewer_url` on a notification to be linked directly to the live view of the device that triggered the automation.
@ -80,7 +80,7 @@ The following keys are available on `event_data`:
The URLs on the event will be based on the configuration used to connect to your DoorBird device. The ability to connect from outside your network will depend on your configuration.
</div>
#### Schedules
## Schedules
Once events have been registered on the DoorBird device, they must be attached to a schedule using the official DoorBird app on Android or iOS or the [DoorBird - WebAdmin](https://webadmin.doorbird.com) portal. Currently, there are schedules available for doorbell, motion, relay, and RFID events (on supported DoorBird devices). Essentially, you can enable an HTTP(S) call from your DoorBird device to the Home Assistant DoorBird API by configuring an action/event (by enabling a schedule).
@ -98,7 +98,7 @@ On the desired event, you should be able to specify blocks of time for when you
Note: Remember to complete the schedule assignment steps above for each event type you registered. If you are configuring HTTP Call(s) schedules for registered RFID tags, please note that you will have to enable/configure the schedule for each RFID tag.
### Automation Example
## Automation Example
The example automation below shows how to turn on a light when somebody presses the DoorBird call button:

View File

@ -12,7 +12,7 @@ ha_platforms:
- binary_sensor
- button
- camera
- Sensor
- sensor
ha_codeowners:
- '@tkdrob'
ha_integration_type: device

View File

@ -35,268 +35,13 @@ Each area can have one or more channels that correspond to the different devices
Additionally, each area can have one or more presets that determine the behavior of all the channels, and sometimes trigger additional actions. Typically, preset '1' in an area means 'on', and preset '4' means 'off'. Additional presets could be used for scenes and dimming.
## Configuration
{% include integrations/config_flow.md %}
Since Philips Dynalite has virtually no auto-discover capabilities, it needs to be configured via the `configuration.yaml` file:
## Setup
```yaml
# Example configuration.yaml entry
dynalite:
bridges:
- host: DEVICE_IP_ADDRESS
```
Since Philips Dynalite has virtually no auto-discover capabilities, once it is added via the UI, it needs to be configured via Dynalite panel. Note that the panel is only available to "admin" level users.
{% configuration %}
host:
description: The IP address of the bridge (e.g., 192.168.1.10).
required: true
type: string
port:
description: Port number of the bridge.
required: false
type: integer
default: 12345
name:
description: Name for the bridge.
required: false
type: string
default: dynalite
active:
description: "Actively query network. When starting, it will query all devices for their current status, and also will send queries when some changes are in progress (e.g., lights dimming or covers moving). Better experience but creates more load on the Dynalite network. Value can be `on`, `off`, our `init`, where `init` will only send queries during the initial init of Home Assistant."
required: false
type: [boolean, string]
default: false
polltimer:
description: "Polling interval for devices in transition. Value in seconds. When devices are in transition (e.g., a light fading), it will ask for a new state every X seconds until it is at the target level. Only relevant when active is set to `on`."
required: false
type: float
default: 1.0
autodiscover:
description: Enable auto-discover. As Dynalite does not support native autodiscovery, this tracks events on your network, so if you turn on a light, it will be added to Home Assistant.
required: false
type: boolean
default: false
default:
description: Global defaults for the system
required: false
type: map
keys:
fade:
description: Default fade
required: false
type: float
area:
description: Definition for the various Dynalite areas.
required: true
type: map
keys:
AREA_NUMBER:
description: The Dynalite area number, 1-255.
required: true
type: map
keys:
name:
description: Name of the area.
required: true
type: string
template:
description: "Type of template to use for the area. Supported values are: `room` and `time_cover`. They are described in detail below in the **template** section. If the template parameters are different than defaults, they can be overridden in this section as well."
require: false
type: string
TEMPLATE_PARAMS:
description: "This can be any of the settings of the template. For example, for template `room`: `room_on` and `room_off` are possible options."
required: false
type: [integer, float]
default: Value from **template** section or system defaults
fade:
description: Fade time for the area, in seconds.
required: false
type: float
default: 2.0
preset:
description: Specific presets for the area.
required: false
type: map
keys:
PRESET_NUMBER:
description: The Dynalite preset number in the area.
required: true
type: map
keys:
name:
description: Name of the preset.
required: false
type: string
default: AREA_NAME Preset PRESET_NUMBER
fade:
description: Fade time for the preset, in seconds.
required: false
type: float
default: 2.0
level:
description: Level of the channels when the preset is selected, between 0 and 1.
required: false
type: float
nodefault:
description: Do not use the default presets defined globally, but only the specific ones defined for this area.
required: false
type: boolean
default: false
channel:
description: Map of the channels in this area.
required: false
type: map
keys:
CHANNEL_NUMBER:
description: The Dynalite channel number in the area, 1-255.
required: true
type: map
keys:
name:
description: Name of the channel.
required: false
type: string
default: AREA_NAME Channel CHANNEL_NUMBER
type:
description: "Type of entity this channel should appear as. Can be either `light` or if this is a device that is not a light (e.g., water heater), can be `switch`."
require: false
type: string
default: light
fade:
description: Fade time for the channel, in seconds.
required: false
type: float
default: 2.0
preset:
description: "Default presets for any area without the `nodefault` option."
required: false
type: map
keys:
PRESET_NUMBER:
description: The Dynalite preset number in the area.
required: true
type: map
keys:
name:
description: "Name of the preset. When used in an area, it will be 'AREA_NAME name'. For example, if a room's name is 'Kitchen' and preset 4 is defined with the name `Off`, it will appear in HA as 'Kitchen Off'."
required: false
type: string
default: AREA_NAME Preset PRESET_NUMBER
fade:
description: Fade time for the preset, in seconds.
required: false
type: float
default: 2.0
level:
description: Level of the channels when the preset is selected, between 0 and 1.
required: false
type: float
template:
description: Set the default parameters for the templates.
required: false
type: map
keys:
room:
description: This is used to define a room that has a preset to turn on all the channels in the area and a preset to turn off.
required: false
type: map
keys:
room_on:
description: Preset to turn area on.
required: false
type: integer
default: 1
room_off:
description: Preset to turn area off.
required: false
type: integer
default: 4
time_cover:
description: "This is used to define a cover that has 3 presets: `open`, `close`, and `stop`. Potentially can also use a channel that some systems (e.g., Control4) use to also send commands to open and close the cover. It uses the duration it takes to open or close to determine position. In addition, many times, these covers include tilt by opening or closing for a short time, so this can be defined as well."
required: false
type: map
keys:
open:
description: Preset to open the cover.
required: false
type: integer
default: 1
close:
description: Preset to close the cover.
required: false
type: integer
default: 2
stop:
description: Preset to stop the cover.
required: false
type: integer
default: 4
channel_cover:
description: Channel that monitors the cover.
required: false
type: integer
duration:
description: Time in seconds it takes to open or close the cover.
required: false
type: integer
default: 60
tilt:
description: "Time in seconds it takes to open or close the cover tilt. `0` means that the cover does not support tilt."
require: false
type: integer
default: 0
class:
description: "Type of cover for Home Assistant. Any of the possible [cover classes](/integrations/cover/#device-class) (e.g. `blind`, `garage`, `shutter`) are possible."
require: false
type: string
default: shutter
{% endconfiguration %}
## Examples
```yaml
# Example configuration.yaml entry specifying optional parameters
dynalite:
bridges:
- host: DEVICE_IP_ADDRESS
port: 12345
autodiscover: true
polltimer: 1
area:
'1':
name: Office
template: room
'2':
name: Living Room
template: room
nodefault: true
room_on: 2
room_off: 5
channel:
'2':
name: Entrance Spot
fade: 10.0
'3':
name: Dining Table
preset:
'5':
name: Blinking Lights
'6':
name: All Off
fade: 3.0
'4':
name: Curtain
template: time_cover
preset:
'1':
name: "On"
'4':
name: "Off"
template:
room:
room_on: 1
room_off: 4
```
There are global setup parameters and advanced parameters that should normally be left as is. The most important part is defining the areas. Each area normally corresponds to a room or function. They have to be added manually via the UI and match the setup of the existing dynalite installation.
## Initial Configuration and Discovery

View File

@ -47,8 +47,8 @@ Log in to the regular consumer portal and click the overflow menu button in the
1. Select the **Developer** option from the hamburger menu on the top-right.
2. Select **Create New**.
3. Complete the form on the right. (Neither of the fields are referenced by Home Assistant)
* Name: Must be unique across all ecobee users.
* Summary: Does not need to be unique.
- Name: Must be unique across all ecobee users.
- Summary: Does not need to be unique.
4. Click *Authorization method* and select **ecobee PIN**.
5. Click **Create**.
@ -83,7 +83,7 @@ api_key:
<img src='/images/screenshots/ecobee-thermostat-card.png' />
</p>
You must [restart Home Assistant](/docs/configuration/#reloading-changes) for the changes to take effect. After restarting, go to {% my integrations title="**Settings** > **Devices & Services**" %} and select the cogwheel. Then, select **Configure** and continue to authorize the app according to the above **Automatic Configuration**, starting at step 2.
You must [restart Home Assistant](/docs/configuration/#reloading-changes) for the changes to take effect. After restarting, go to {% my integrations title="**Settings** > **Devices & Services**" %} and select the integration. Then, select **Configure** and continue to authorize the app according to the above **Automatic Configuration**, starting at step 2.
## Notifications
@ -126,12 +126,12 @@ When enabling the auxiliary heat toggle, the ecobee thermostat HVAC mode will be
The ecobee climate entity has some extra attributes to represent the state of the thermostat.
| Name | Description |
| ---- | ----------- |
| `fan` | If the fan is currently on or off: `on` / `off`.
| `climate_mode` | This is the climate mode that is active, or would be active if no override is active.
| `equipment_running` | This is a comma-separated list of equipment that is currently running.
| `fan_min_on_time` | The minimum amount of time (in minutes) that the fan will run per hour. This is determined by the minimum fan runtime setting which can be changed in the ecobee app or on the thermostat itself.
| Name | Description |
| ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `fan` | If the fan is currently on or off: `on` / `off`. |
| `climate_mode` | This is the climate mode that is active, or would be active if no override is active. |
| `equipment_running` | This is a comma-separated list of equipment that is currently running. |
| `fan_min_on_time` | The minimum amount of time (in minutes) that the fan will run per hour. This is determined by the minimum fan runtime setting which can be changed in the ecobee app or on the thermostat itself. |
## Ventilator
@ -141,10 +141,10 @@ The ecobee thermostat supports the addition of an accessory. If you have an air
### Number
| Name | Description |
| ---- | ----------- |
| `ventilator_min_on_time_home` | The minimum amount of time (in minutes) that the ventilator will run per hour, when you are home. This is determined by the minimum ventilator runtime setting which can be changed in the ecobee app or on the thermostat itself.
| `ventilator_min_on_time_away` | The minimum amount of time (in minutes) that the ventilator will run per hour, when you are away. This is determined by the minimum ventilator runtime setting which can be changed in the ecobee app or on the thermostat itself.
| Name | Description |
| ----------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `ventilator_min_on_time_home` | The minimum amount of time (in minutes) that the ventilator will run per hour, when you are home. This is determined by the minimum ventilator runtime setting which can be changed in the ecobee app or on the thermostat itself. |
| `ventilator_min_on_time_away` | The minimum amount of time (in minutes) that the ventilator will run per hour, when you are away. This is determined by the minimum ventilator runtime setting which can be changed in the ecobee app or on the thermostat itself. |
## Services
@ -169,9 +169,9 @@ Creates a vacation on the selected ecobee thermostat.
| `cool_temp` | no | Cooling temperature during the vacation |
| `heat_temp` | no | Heating temperature during the vacation |
| `start_date` | yes | Date the vacation starts in YYYY-MM-DD format |
| `start_time` | yes | Time the vacation starts in the local time zone. Must be in 24-hour format (HH:MM:SS) |
| `start_time` | yes | Time the vacation starts in the local time zone. Must be in 24-hour format (HH:MM:SS) |
| `end_date` | yes | Date the vacation ends in YYYY-MM-DD format (14 days from now if not provided) |
| `end_time` | yes | Time the vacation ends in the local time zone. Must be in 24-hour format (HH:MM:SS) |
| `end_time` | yes | Time the vacation ends in the local time zone. Must be in 24-hour format (HH:MM:SS) |
| `fan_mode` | yes | Fan mode of the thermostat during the vacation (auto or on) (auto if not provided) |
| `fan_min_on_time` | yes | Minimum number of minutes to run the fan each hour (0 to 60) during the vacation (0 if not provided) |
@ -188,37 +188,37 @@ Delete a vacation on the selected ecobee thermostat.
Resumes the currently active schedule.
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ------------------------------------------------------------------------------------------------------ |
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------ |
| `entity_id` | yes | String or list of strings that point at `entity_id`'s of climate devices to control. Use `entity_id: all` to target all. |
| `resume_all` | no | true or false |
| `resume_all` | no | true or false |
### Service `ecobee.set_fan_min_on_time`
Sets the minimum amount of time that the fan will run per hour.
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ------------------------------------------------------------------------------------------------------ |
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------ |
| `entity_id` | yes | String or list of strings that point at `entity_id`'s of climate devices to control. Use `entity_id: all` to target all. |
| `fan_min_on_time` | no | integer (e.g., 5) |
| `fan_min_on_time` | no | integer (e.g., 5) |
### Service `ecobee.set_dst_mode`
Enable/disable automatic daylight savings time.
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ------------------------------------------------- |
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ------------------------------------------------------------ |
| `entity_id` | yes | ecobee thermostat on which to set daylight savings time mode |
| `dst_enabled` | no | true or false |
| `dst_enabled` | no | true or false |
### Service `ecobee.set_mic_mode`
Enable/disable Alexa mic (only for ecobee 4).
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ------------------------------------------------- |
| `entity_id` | yes | ecobee thermostat on which to set the mic mode |
| `mic_enabled` | no | true or false |
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ---------------------------------------------- |
| `entity_id` | yes | ecobee thermostat on which to set the mic mode |
| `mic_enabled` | no | true or false |
### Service `ecobee.set_occupancy_modes`

View File

@ -79,6 +79,34 @@ logger:
The `ecovacs` vacuum platform allows you to monitor and control your Ecovacs Deebot vacuums.
### Vacuum services
The `ecovacs` vacuum platform does not support eithor of the services `vacuum.pause` or `vacuum.start`, it supports the following services instead.
#### Service `vacuum.turn_on`
Start a new cleaning task.
| Service data attribute | Optional | Description |
|---------------------------|----------|-------------------------------------------------------|
| `entity_id` | yes | Only act on specific vacuum. Use `entity_id: all` to target all. |
#### Service `vacuum.turn_off`
Stop the current cleaning task and return to the dock.
| Service data attribute | Optional | Description |
|---------------------------|----------|-------------------------------------------------------|
| `entity_id` | yes | Only act on specific vacuum. Use `entity_id: all` to target all. |
#### Service `vacuum.start_pause`
Start, pause or resume a cleaning task.
| Service data attribute | Optional | Description |
|---------------------------|----------|-------------------------------------------------------|
| `entity_id` | yes | Only act on specific vacuum. Use `entity_id: all` to target all. |
### Integration lifespan
The remaining lifespan of components on your Deebot vacuum will be reported as attributes on the vacuum entity. The value will be a whole number representing the percentage of life remaining.

View File

@ -79,12 +79,12 @@ After starting up, you can check if the emulated Roku is reachable at the specif
All Roku commands are sent as `roku_command` events.
Field | Description
----- | -----------
`source_name` | Name of the emulated Roku instance that sent the event. Only required when using multiple instances to filter event sources.
`type` | The type of the event that was called on the API.
`key` | the code of the pressed key when the command `type` is `keypress`, `keyup` or `keydown`.
`app_id` | the id of the app that was launched when command `type` is `launch`.
| Field | Description |
| ------------- | ---------------------------------------------------------------------------------------------------------------------------- |
| `source_name` | Name of the emulated Roku instance that sent the event. Only required when using multiple instances to filter event sources. |
| `type` | The type of the event that was called on the API. |
| `key` | the code of the pressed key when the command `type` is `keypress`, `keyup` or `keydown`. |
| `app_id` | the id of the app that was launched when command `type` is `launch`. |
Available key codes |
------------------- |
@ -131,12 +131,12 @@ When using Harmony, the app should auto-discover any changes via UPnP discovery
Alternatively, you can trigger the 'Fix' page by pressing a button on the unreachable device's remote in the app and wait ~10 seconds, then click 'Fix it'.
Known limitations:
* Some Android remotes send key up/down events instead of key presses.
* Functionality other than key presses and app launches are not implemented yet.
* App ids are limited between 1-10. (The emulated API reports 10 dummy apps)
* Harmony uses UPnP discovery (UPnP is not needed after pairing), which might not work in Docker. You can:
* Change Docker to host networking temporarily, then revert after pairing.
* Run the `advertise.py` helper script from the emulated_roku library directly somewhere else and point it to the emulated Roku API.
* Harmony cannot launch apps as it uses IR instead of the Wi-Fi API and will not display the custom dummy app list.
* Home control buttons cannot be assigned to emulated Roku on the Harmony Hub Companion remote as they are limited to Hue (and possibly other APIs) within Harmony.
* Harmony will not set the name of the added emulated Roku device to the specified `name`.
- Some Android remotes send key up/down events instead of key presses.
- Functionality other than key presses and app launches are not implemented yet.
- App ids are limited between 1-10. (The emulated API reports 10 dummy apps)
- Harmony uses UPnP discovery (UPnP is not needed after pairing), which might not work in Docker. You can:
- Change Docker to host networking temporarily, then revert after pairing.
- Run the `advertise.py` helper script from the emulated_roku library directly somewhere else and point it to the emulated Roku API.
- Harmony cannot launch apps as it uses IR instead of the Wi-Fi API and will not display the custom dummy app list.
- Home control buttons cannot be assigned to emulated Roku on the Harmony Hub Companion remote as they are limited to Hue (and possibly other APIs) within Harmony.
- Harmony will not set the name of the added emulated Roku device to the specified `name`.

View File

@ -158,10 +158,10 @@ name:
The EnOcean sensor platform currently supports the following device types:
* [power sensor](#power-sensor)
* [humidity sensor](#humidity-sensor)
* [temperature sensor](#temperature-sensor)
* [window handle](#window-handle)
- [power sensor](#power-sensor)
- [humidity sensor](#humidity-sensor)
- [temperature sensor](#temperature-sensor)
- [window handle](#window-handle)
To use your EnOcean device, you first have to set up your [EnOcean hub](#hub) and then add the following to your `configuration.yaml` file:

View File

@ -3,15 +3,16 @@ title: ESPHome
description: Support for ESPHome devices using the native ESPHome API.
featured: true
ha_category:
- Alarm
- DIY
- Update
- Alarm Control Panel
ha_release: 0.85
ha_iot_class: Local Push
ha_config_flow: true
ha_codeowners:
- '@OttoWinter'
- '@jesserockz'
- '@bdraco'
ha_domain: esphome
ha_zeroconf: true
ha_platforms:

View File

@ -45,6 +45,28 @@ Your cameras will now show under integration options as "discovered devices". Pl
You can also change the camera options should you need to access a high or low res stream. Generally, though it will just work without any modification to options.
### Integration Entity Options
`Request Timeout (seconds)`:
- This option determines the duration Home Assistant waits for data from the EZVIZ API before giving up. This timeout is specified in seconds. If the API response takes longer than the specified timeout, Home Assistant will stop waiting and assume the request has failed. Adjust this value according to your network conditions and the responsiveness of the EZVIZ API. A higher timeout may be necessary for slower connections.
- Example: If you set the **Request Timeout** to 30 seconds (default option), Home Assistant will wait up to 30 seconds for a response from the EZVIZ API before timing out.
- Please note this only works on the main EZVIZ cloud entity.
`Arguments passed to ffmpeg for cameras`:
- This option allows you to define additional parameters for capturing footage from your EZVIZ cameras. While camera resolution and codec settings are typically configured in the "Ezviz Studio" desktop application, you can use this option to select the desired stream or substream for capturing the footage.
- To choose the appropriate stream or substream, specify the corresponding channel path in the `Arguments passed to ffmpeg for cameras` field. The channel path identifies the specific stream or substream of the camera.
- Example: If you want to use the camera's substream, you can specify the channel path as `/Streaming/Channels/102`. Alternatively, if you prefer the main stream, use `/Streaming/Channels/101`. You can also configure multiple stream/substream options based on your camera's capabilities and resource requirements.
- Cameras typically default to the main stream if this is invalid or not specified.
- Please note this only works on the camera entities.
### Service `ezviz.alarm_sound`
If your EZVIZ camera supports warning sounds, you can use this service to set the intensity.

View File

@ -58,7 +58,7 @@ manual:
type: boolean
{% endconfiguration %}
#### Time period dictionary example
### Time period dictionary example
```yaml
scan_interval:
@ -70,7 +70,7 @@ scan_interval:
milliseconds: 0
```
### Service
## Service
Once loaded, the `fastdotcom` integration will expose a service (`fastdotcom.speedtest`) that can be called to run a Fast.com speed test on demand. This service takes no parameters. This can be useful if you have enabled manual mode.

View File

@ -49,36 +49,36 @@ The following entity types are created:
This is the main entity of the integration containing the incident message as its `value`, it has several attributes which are described below.
| Attribute | Description |
| --------- | ----------- |
| `trigger` | Type of trigger, `new` or `update`.|
| `state` | The state of the incident. |
| `created_at` | Date and time when incident was created.|
| `message_to_speech_url` | The URL of the mp3 file containing the spoken text of the incident.|
| `prio` | Priority of the incident, `a1`, `a2`, `b1` or `b2`.|
| `type` | Type of incident, e.g. `incident_alert`.|
| `responder_mode` | Modes of response, e.g. `available_in_schedule_is_acknowledgment`.|
| `can_respond_until` | Date and time until response is accepted.|
| `latitude` | The Latitude of the incident.|
| `longitude` | The Longitude of the incident.|
| `address_type` | Type of address, e.g. `home`.|
| `formatted_address` | Address in string format.|
| `task_ids` | ID(s) of appliance(s) or task(s).|
| Attribute | Description |
| ----------------------- | ------------------------------------------------------------------- |
| `trigger` | Type of trigger, `new` or `update`. |
| `state` | The state of the incident. |
| `created_at` | Date and time when incident was created. |
| `message_to_speech_url` | The URL of the mp3 file containing the spoken text of the incident. |
| `prio` | Priority of the incident, `a1`, `a2`, `b1` or `b2`. |
| `type` | Type of incident, e.g. `incident_alert`. |
| `responder_mode` | Modes of response, e.g. `available_in_schedule_is_acknowledgment`. |
| `can_respond_until` | Date and time until response is accepted. |
| `latitude` | The Latitude of the incident. |
| `longitude` | The Longitude of the incident. |
| `address_type` | Type of address, e.g. `home`. |
| `formatted_address` | Address in string format. |
| `task_ids` | ID(s) of appliance(s) or task(s). |
### Duty Binary Sensor
This entity reflects the duty you have scheduled, the value can be `on` = on duty, `off` = no duty. When you have no duty the response switch is disabled which means you cannot respond to a call.
| Attribute | Description |
| --------- | ----------- |
| `start_time` | Start date and time of duty schedule.|
| `end_time` | End date and time of duty schedule.|
| `available` | `true` or `false`.|
| `active` | `true` or `false`.|
| `assigned_function_ids` | Function id's, e.g. `540`.|
| `skill_ids` | Skill id's, e.g. `6, 8`.|
| `type` | Type, e.g. `standby_duty`.|
| `assigned function` | Assigned function, e.g. `Chauffeur`.|
| Attribute | Description |
| ----------------------- | ------------------------------------- |
| `start_time` | Start date and time of duty schedule. |
| `end_time` | End date and time of duty schedule. |
| `available` | `true` or `false`. |
| `active` | `true` or `false`. |
| `assigned_function_ids` | Function id's, e.g. `540`. |
| `skill_ids` | Skill id's, e.g. `6, 8`. |
| `type` | Type, e.g. `standby_duty`. |
| `assigned function` | Assigned function, e.g. `Chauffeur`. |
### Incident Response Switch
@ -87,26 +87,26 @@ It gets reset to `unknown` value with every incident received. Switching it to `
The following attributes are available:
| Attribute | Description |
| --------- | ----------- |
| `user_name` | Your username.|
| `assigned_skill_ids` | Assigned skill ID's.|
| `responded_at` | Time you responded.|
| `start_time` | Incident response start time.|
| `status` | Status of response, e.g., `pending`.|
| `reported_status` | Reported status, e.g., `shown_up`.|
| `arrived_at_station` | `true` or `false`.|
| `available_at_incident_creation` | `true` or `false`.|
| `active_duty_function_ids` | Active function ID's, e.g., `540`.|
| Attribute | Description |
| -------------------------------- | ------------------------------------ |
| `user_name` | Your username. |
| `assigned_skill_ids` | Assigned skill ID's. |
| `responded_at` | Time you responded. |
| `start_time` | Incident response start time. |
| `status` | Status of response, e.g., `pending`. |
| `reported_status` | Reported status, e.g., `shown_up`. |
| `arrived_at_station` | `true` or `false`. |
| `available_at_incident_creation` | `true` or `false`. |
| `active_duty_function_ids` | Active function ID's, e.g., `540`. |
## Advanced Configuration
With Automation you can configure one or more of the following useful actions:
1. Sound an alarm and/or switch on lights when an emergency incident is received.
1. Use text-to-speech to play incident details via a media player while getting dressed.
1. Respond with a response acknowledgment using a door-sensor when leaving the house or by pressing a button to let your teammates know you are underway.
1. Cast a FireServiceRota dashboard to a Chromecast device. (this requires a Nabu Casa subscription)
2. Use text-to-speech to play incident details via a media player while getting dressed.
3. Respond with a response acknowledgment using a door-sensor when leaving the house or by pressing a button to let your teammates know you are underway.
4. Cast a FireServiceRota dashboard to a Chromecast device. (this requires a Nabu Casa subscription)
These are documented below.

View File

@ -2,7 +2,7 @@
title: Bouygues Flexom
description: Connect and control your Bouygues Flexom devices using the Overkiz integration
ha_category:
- Alarm Control Panel
- Alarm
- Binary Sensor
- Button
- Climate

View File

@ -35,9 +35,9 @@ Flume notifications are available via binary sensors. To clear the notifications
The following notifications are supported:
* Bridge disconnected
* High flow
* Leak detected
- Bridge disconnected
- High flow
- Leak detected
## Configuration for Binary Sensor

View File

@ -12,11 +12,11 @@ ha_integration_type: integration
This integration adds [Watchdog](https://pythonhosted.org/watchdog/) file system monitoring, publishing events on the Home Assistant bus on the creation/deletion/modification of files within configured folders. The monitored `event_type` are:
* `closed`
* `created`
* `deleted`
* `modified`
* `moved`
- `closed`
- `created`
- `deleted`
- `modified`
- `moved`
Configured folders must be added to [allowlist_external_dirs](/docs/configuration/basic/). Note that by default folder monitoring is recursive, meaning that the contents of sub-folders are also monitored.

View File

@ -41,9 +41,9 @@ sensor:
Every ten minutes, it'll fetch the last ten minutes average of the following measurements:
* Temperature
* Humidity
* Co2
* VOC
* PM2.5
* [Index](https://help.foobot.io/hc/en-us/articles/204814371-What-does-central-number-mean-)
- Temperature
- Humidity
- Co2
- VOC
- PM2.5
- [Index](https://help.foobot.io/hc/en-us/articles/204814371-What-does-central-number-mean-)

View File

@ -101,7 +101,7 @@ updates (based on a higher data resolution), you could [sign up for one
of their plans](https://doc.forecast.solar/doku.php?id=account_models#compare_plans).
To enable the use of the API key with this integration, go to {% my integrations %}.
On the Forecast.Solar integration, select the cogwheel, then select **Configure**. Enter the
Select the Forecast.Solar integration, then select **Configure**. Enter the
API key for your account.
## Tweaking the estimations
@ -132,7 +132,6 @@ To adjust the configuration settings for your Forecast.Solar integration
instance:
1. Browse to your Home Assistant instance.
1. Go to **{% my integrations title="Settings > Devices & Services" %}**.
1. If multiple instances of {{ name }} are configured, choose the instance you want to configure.
1. Select the cogwheel.
1. Select **Configure**.
2. Go to **{% my integrations title="Settings > Devices & Services" %}**.
3. If multiple instances of {{ name }} are configured, choose the instance you want to configure.
4. Select **Configure**.

View File

@ -29,11 +29,11 @@ The `freebox` integration allows you to observe and control [Freebox router](htt
There is currently support for the following device types within Home Assistant:
* [Sensor](#sensor) with metrics for connection speed, internal temperature, free partition space and missed calls
* [Binary sensor](#binary-sensor) for monitoring Raid arrays health
* [Device tracker](#presence-detection) for connected devices
* [Switch](#switch) to control Wi-Fi
* [Camera](#camera)
- [Sensor](#sensor) with metrics for connection speed, internal temperature, free partition space and missed calls
- [Binary sensor](#binary-sensor) for monitoring Raid arrays health
- [Device tracker](#presence-detection) for connected devices
- [Switch](#switch) to control Wi-Fi
- [Camera](#camera)
{% include integrations/config_flow.md %}
@ -90,10 +90,10 @@ To use cameras from the Freebox Delta, you will have to add "Gestion de l'alarme
Only the routers with Freebox OS are supported:
* Freebox V8 also known as Freebox Pop
* Freebox V7 also known as Freebox Delta
* Freebox V6 also known as Freebox Revolution
* Freebox mini 4k
- Freebox V8 also known as Freebox Pop
- Freebox V7 also known as Freebox Delta
- Freebox V6 also known as Freebox Revolution
- Freebox mini 4k
## Presence Detection
@ -114,10 +114,10 @@ refreshes the devices states.
This platform offers you sensors to monitor a Freebox router.
The monitored metrics are:
* Internal temperature
* Upload and download rates (in KB/s)
* Free partition space of used disks
* Number of missed calls
- Internal temperature
- Upload and download rates (in KB/s)
- Free partition space of used disks
- Number of missed calls
## Binary sensor

View File

@ -19,12 +19,12 @@ ha_iot_class: Local Polling
ha_platforms:
- binary_sensor
- button
- image
- device_tracker
- diagnostics
- sensor
- switch
- update
- image
ha_ssdp: true
ha_integration_type: integration
---
@ -82,7 +82,7 @@ If no password is given, it will be auto-generated.
## Integration options
It is possible to change some behaviors through the integration options.
To change the settings, go to {% my integrations title="**Settings** > **Devices & Services**" %}. On the **AVM FRITZ!Box Tools** integration, select the cogwheel. Then select **Configure**.
To change the settings, go to {% my integrations title="**Settings** > **Devices & Services**" %}. Select the **AVM FRITZ!Box Tools** integration, then select **Configure**.
- **Consider home**: Number of seconds that must elapse before considering a disconnected device "not at home".
- **Enable old discovery method**: Needed on some scenarios like no mesh support (fw <= 6.x), mixed brands network devices or LAN switches.

View File

@ -23,12 +23,12 @@ Frontier Silicon is used by many different brands of radio manufacturers.
Supported devices include, but are not limited to:
* Hama: [IR50], [IR110], [DIR3110]
* Medion: [Medion Radios]
* Silvercrest: [SIRD 14 C2 (archived website)]
* Teufel: [Radio 3sixty (2019)]
* Roberts: [Roberts Stream 94i]
* Some models from: Auna, Technisat, Revo, Pinell, Como Audio
- Hama: [IR50], [IR110], [DIR3110]
- Medion: [Medion Radios]
- Silvercrest: [SIRD 14 C2 (archived website)]
- Teufel: [Radio 3sixty (2019)]
- Roberts: [Roberts Stream 94i]
- Some models from: Auna, Technisat, Revo, Pinell, Como Audio
This integration was developed and tested with a [Roberts Stream 94i].

View File

@ -12,8 +12,8 @@ ha_integration_type: integration
---
The `futurenow` light platform allows you to use [P5](https://www.p5.hu/) FutureNow relay/dimmer units as lights. Currently supported units:
* [FutureNow FNIP-6x2AD](https://www.p5.hu/index.php/products/ethernet-modules/265-fnip-6x2ad) dimmer unit (outputs only)
* [FutureNow FNIP-8x10A](https://www.p5.hu/index.php/products/ethernet-modules/263-fnip-8x10a) relay unit (outputs only)
- [FutureNow FNIP-6x2AD](https://www.p5.hu/index.php/products/ethernet-modules/265-fnip-6x2ad) dimmer unit (outputs only)
- [FutureNow FNIP-8x10A](https://www.p5.hu/index.php/products/ethernet-modules/263-fnip-8x10a) relay unit (outputs only)
### Configuration Sample

View File

@ -9,7 +9,6 @@ ha_iot_class: Local Polling
ha_domain: gogogate2
ha_codeowners:
- '@vangorra'
- '@bdraco'
ha_config_flow: true
ha_homekit: true
ha_platforms:

View File

@ -95,9 +95,9 @@ For example, your calendar named *Personal* is created as entity `calendar.perso
Individual Calendar *Events* are what powering automations such as:
* Turn on a light at the *start* of the event named *Front Yard Light*
* Send a notification *5 minutes before the start of any event*
* Stop the media player *30 minutes after* the *end* of the event named *Exercise*.
- Turn on a light at the *start* of the event named *Front Yard Light*
- Send a notification *5 minutes before the start of any event*
- Stop the media player *30 minutes after* the *end* of the event named *Exercise*.
See [Calendar Automations](/integrations/calendar#automation) for an overview, and read more about [Calendar Trigger Variables](/docs/automation/templating/#calendar) for the available information you can use in a condition or action such as the event `summary`, `description`, `location` and more.
@ -137,16 +137,16 @@ This will only be available if you have given Home Assistant `read-write` access
A calendar `target` is selected with a [Target Selector](/docs/blueprint/selectors/#target-selector) and the `data` payload supports the following fields:
| Service data attribute | Optional | Description | Example |
| ---------------------- | -------- | ----------- | --------|
| `summary` | no | Acts as the title of the event. | Bowling
| `description` | yes | The description of the event. | Birthday bowling
| `start_date_time` | yes | The date and time the event should start. | 2019-03-10 20:00:00
| `end_date_time` | yes | The date and time the event should end. | 2019-03-10 23:00:00
| `start_date` | yes | The date the whole day event should start. | 2019-03-10
| `end_date` | yes | The date the whole day event should end. | 2019-03-11
| `in` | yes | Days or weeks that you want to create the event in. | "days": 2
| `location` | yes | The location of the event. | Bowling center
| Service data attribute | Optional | Description | Example |
| ---------------------- | -------- | --------------------------------------------------- | ------------------- |
| `summary` | no | Acts as the title of the event. | Bowling |
| `description` | yes | The description of the event. | Birthday bowling |
| `start_date_time` | yes | The date and time the event should start. | 2019-03-10 20:00:00 |
| `end_date_time` | yes | The date and time the event should end. | 2019-03-10 23:00:00 |
| `start_date` | yes | The date the whole day event should start. | 2019-03-10 |
| `end_date` | yes | The date the whole day event should end. | 2019-03-11 |
| `in` | yes | Days or weeks that you want to create the event in. | "days": 2 |
| `location` | yes | The location of the event. | Bowling center |
<div class='note'>

View File

@ -83,10 +83,10 @@ To use Google Assistant, your Home Assistant configuration has to be [externally
9. This will start a download of a JSON file.
1. Rename the file to `SERVICE_ACCOUNT.JSON`.
2. Add this file to your config-folder. This will be the same folder as your `configuration.yaml`.
12. Go back to [Google Cloud Platform](https://console.cloud.google.com/) and select **Close**.
13. Then select **SAVE**.
14. Go to the **Search products and resources** and search for **Homegraph API** and select it.
15. Enable the HomeGraph API.
10. Go back to [Google Cloud Platform](https://console.cloud.google.com/) and select **Close**.
11. Then select **SAVE**.
12. Go to the **Search products and resources** and search for **Homegraph API** and select it.
13. Enable the HomeGraph API.
5. Add the `google_assistant` integration configuration to your `configuration.yaml` file and restart Home Assistant following the [configuration guide](#yaml-configuration) below.
6. Add services in the Google Home App (note that app versions may be slightly different).

View File

@ -30,9 +30,9 @@ tts:
API key obtaining process described in corresponding documentation:
* [Text-to-speech](https://cloud.google.com/text-to-speech/docs/quickstart-protocol)
* [Speech-to-text](https://cloud.google.com/speech-to-text/docs/quickstart-protocol)
* [Geocoding](https://developers.google.com/maps/documentation/geocoding/start)
- [Text-to-speech](https://cloud.google.com/text-to-speech/docs/quickstart-protocol)
- [Speech-to-text](https://cloud.google.com/speech-to-text/docs/quickstart-protocol)
- [Geocoding](https://developers.google.com/maps/documentation/geocoding/start)
Basic instruction for all APIs:
@ -43,9 +43,9 @@ Basic instruction for all APIs:
5. Enable needed Cloud API visiting one of the links below or [APIs library](https://console.cloud.google.com/apis/library), selecting your `Project` from the dropdown list and clicking the `Continue` button:
* [Text-to-speech](https://console.cloud.google.com/flows/enableapi?apiid=texttospeech.googleapis.com)
* [Speech-to-text](https://console.cloud.google.com/flows/enableapi?apiid=speech.googleapis.com)
* [Geocoding](https://console.cloud.google.com/flows/enableapi?apiid=geocoding-backend.googleapis.com)
- [Text-to-speech](https://console.cloud.google.com/flows/enableapi?apiid=texttospeech.googleapis.com)
- [Speech-to-text](https://console.cloud.google.com/flows/enableapi?apiid=speech.googleapis.com)
- [Geocoding](https://console.cloud.google.com/flows/enableapi?apiid=geocoding-backend.googleapis.com)
6. Set up authentication:
1. Visit [this link](https://console.cloud.google.com/apis/credentials/serviceaccountkey)
@ -67,7 +67,7 @@ Basic instruction for all APIs:
The Cloud text-to-speech API is priced monthly based on the amount of characters to synthesize into audio sent to the service.
| Feature | Monthly free tier | Paid usage |
|-------------------------------|---------------------------|-----------------------------------|
| ----------------------------- | ------------------------- | --------------------------------- |
| Standard (non-WaveNet) voices | 0 to 4 million characters | $4.00 USD / 1 million characters |
| WaveNet voices | 0 to 1 million characters | $16.00 USD / 1 million characters |

View File

@ -14,7 +14,7 @@ ha_integration_type: service
The Google Generative AI integration adds a conversation agent powered by [Google Generative AI](https://developers.generativeai.google/) in Home Assistant.
This conversation agent is unable to control your house. It can only query information that has been provided by Home Assistant. To be able to answer questions about your house, Home Assistant will need to provide Google Generative AI with the details of your house, which include areas, devices and their states.
This conversation agent is unable to control your house. The Google Generative AI conversation agent can be used in automations, but not as a [sentence trigger](/docs/automation/trigger/#sentence-trigger). It can only query information that has been provided by Home Assistant. To be able to answer questions about your house, Home Assistant will need to provide Google Generative AI with the details of your house, which include areas, devices and their states.
This integration requires an API key to use, [which you can generate here](https://makersuite.google.com/app/apikey).

View File

@ -71,19 +71,19 @@ url:
The API is exposed to Home Assistant as a service called `habitica.api_call`. To call it you should specify this keys in service data:
| Service data attribute | Required | Type | Description |
|----------------------|--------|--------|----------------|
| `name` | yes | string | Habitica's username as per `configuration.yaml` entry. |
| `path` | yes | [string] | Items from API URL in form of an array with method attached at the end. See the example below. |
| `args` | no | map | Any additional JSON or URL parameter arguments. See the example below and [apidoc](https://habitica.com/apidoc/). |
| Service data attribute | Required | Type | Description |
| ---------------------- | -------- | -------- | ----------------------------------------------------------------------------------------------------------------- |
| `name` | yes | string | Habitica's username as per `configuration.yaml` entry. |
| `path` | yes | [string] | Items from API URL in form of an array with method attached at the end. See the example below. |
| `args` | no | map | Any additional JSON or URL parameter arguments. See the example below and [apidoc](https://habitica.com/apidoc/). |
A successful call to this service will fire an event `habitica_api_call_success`.
| Event data attribute | Type | Description |
|----------------------|--------|----------------|
| `name` | string | Copied from service data attribute. |
| `path` | [string] | Copied from service data attribute. |
| `data` | map | Deserialized `data` field of JSON object Habitica's server returned in response to API call. For more info see the [API documentation](https://habitica.com/apidoc/). |
| Event data attribute | Type | Description |
| -------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `name` | string | Copied from service data attribute. |
| `path` | [string] | Copied from service data attribute. |
| `data` | map | Deserialized `data` field of JSON object Habitica's server returned in response to API call. For more info see the [API documentation](https://habitica.com/apidoc/). |
#### Let's consider some examples on how to call the service.
@ -92,12 +92,12 @@ Let's create a new task (a todo) for this user via Home Assistant. There is an [
To create a new task one should hit `https://habitica.com/api/v3/tasks/user` endpoint with `POST` request with a JSON object with task properties.
So let's call the API on `habitica.api_call`.
* The `name` key becomes `xxxNotAValidNickxxx`.
* The `path` key is trickier.
* Remove `https://habitica.com/api/v3/` at the beginning of the endpoint URL.
* Split the remaining on slashes (/) and **append the lowercase method** at the end.
* You should get `["tasks", "user", "post"]`. To get a better idea of the API you are recommended to try all of the API calls in IPython console [using this package](https://github.com/ASMfreaK/habitipy/blob/master/README.md).
* The `args` key is more or less described in the [API documentation](https://habitica.com/apidoc/).
- The `name` key becomes `xxxNotAValidNickxxx`.
- The `path` key is trickier.
- Remove `https://habitica.com/api/v3/` at the beginning of the endpoint URL.
- Split the remaining on slashes (/) and **append the lowercase method** at the end.
- You should get `["tasks", "user", "post"]`. To get a better idea of the API you are recommended to try all of the API calls in IPython console [using this package](https://github.com/ASMfreaK/habitipy/blob/master/README.md).
- The `args` key is more or less described in the [API documentation](https://habitica.com/apidoc/).
Combining all together:
call `habitica.api_call` with data

View File

@ -64,7 +64,7 @@ Start an activity. Will start the default `activity` from `configuration.yaml` i
| `entity_id` | no | Entity ID to target.
| `activity` | yes | Activity ID or Activity Name to start.
##### Example
#### Example
In the file 'harmony_REMOTENAME.conf' you can find the available activities, for example:

View File

@ -18,6 +18,12 @@ The `hdmi_cec` integration provides services that allow selecting the active dev
## CEC Setup
### Home Assistant OS
To test if HDMI-CEC will work on your Home Assistant OS installation, you can use the official **CEC Scanner** add-on. Run this add-on to see if your hardware has HDMI-CEC capabilities and which devices are connected. Do not have this add-on **Start on boot** as it will interfere with the integration.
Once you've run the add-on, you can use the resulting scan information to configure the integration.
### Adapter
The computer running Home Assistant must support CEC, and of course be connected via HDMI to a device also supporting CEC. You can purchase a [USB CEC adapter](https://www.pulse-eight.com/p/104/usb-hdmi-cec-adapter) to add support if necessary. Note that all Raspberry Pi models support CEC natively.
@ -56,13 +62,13 @@ If after symlinking and adding `hdmi_cec:` to your configuration you are getting
## Testing your installation
* Login to Raspberry Pi
- Login to Raspberry Pi
```bash
ssh pi@your_raspberry_pi_ip
```
* at the command line type:
- at the command line type:
```bash
echo scan | cec-client -s -d 1
@ -70,7 +76,7 @@ echo scan | cec-client -s -d 1
Note: to use this command you have to install cec-utils package. In Debian based should be: ```sudo apt install cec-utils```
* This will give you the list of devices that are on the bus
- This will give you the list of devices that are on the bus
```bash
opening a connection to the CEC adapter...
@ -252,5 +258,5 @@ value is ignored.
## Useful References
* [CEC overview](https://kwikwai.com/knowledge-base/the-hdmi-cec-bus/)
* [CEC-o-matic](https://www.cec-o-matic.com/)
- [CEC overview](https://kwikwai.com/knowledge-base/the-hdmi-cec-bus/)
- [CEC-o-matic](https://www.cec-o-matic.com/)

View File

@ -2,7 +2,7 @@
title: Hexaom Hexaconnect
description: Connect and control your Hexaom Hexaconnect devices using the Overkiz integration
ha_category:
- Alarm Control Panel
- Alarm
- Binary Sensor
- Button
- Climate

View File

@ -2,7 +2,7 @@
title: Hitachi Hi Kumo
description: Connect and control your Hitachi Hi Kumo devices using the Overkiz integration
ha_category:
- Alarm Control Panel
- Alarm
- Binary Sensor
- Button
- Climate

View File

@ -2,7 +2,7 @@
title: Hive
description: Instructions on how to integrate Hive devices with Home Assistant.
ha_category:
- Alarm Control Panel
- Alarm
- Binary Sensor
- Climate
- Hub

View File

@ -19,8 +19,8 @@ ha_iot_class: Local Push
ha_bluetooth: true
ha_config_flow: true
ha_codeowners:
- "@Jc2k"
- "@bdraco"
- '@Jc2k'
- '@bdraco'
ha_domain: homekit_controller
ha_zeroconf: true
ha_platforms:
@ -45,66 +45,77 @@ ha_integration_type: integration
The [HomeKit](https://developer.apple.com/apple-home/) Device integration allows you to connect accessories with the "Works with HomeKit" logo to Home Assistant. This integration should not be confused with the [HomeKit](/integrations/homekit/) integration, which allows you to control Home Assistant devices via HomeKit.
The integration will automatically detect HomeKit compatible devices that are ready to pair if the [`zeroconf`](/integrations/zeroconf/) integration is enabled. This is enabled by default on new installations via the [`default_config`](/integrations/default_config/) integration.
# Adding a HomeKit device
To see which devices have been discovered see the "Integrations" page in your Home Assistant dashboard. When you click on "Configure" you can enter your HomeKit PIN and the device should be added to your Home Assistant instance. If your device is currently paired with an Apple device via HomeKit, you will need to reset it in order to pair it with Home Assistant. Once Home Assistant is configured to work with the device, you can export it back to Siri and Apple Home with the [`HomeKit`](/integrations/homekit/) integration.
There are different methods to add a HomeKit device to Home Assistant:
## Supported devices
- [via Ethernet or Wi-Fi](#adding-a-homekit-device-via-ethernet-or-wi-fi)
- [via Bluetooth](#adding-a-homekit-device-through-bluetooth)
- via Thread
- [by using Home Assistants preferred Thread network](#adding-a-homekit-device-to-a-thread-network-via-home-assistant)
- [by using Apple Thread border router](#adding-a-homekit-device-via-apple-thread-border-router)
There is currently support for the following device types within Home Assistant:
## Adding a HomeKit device via Ethernet or Wi-Fi
- Alarm Control Panel (HomeKit security system)
- Climate (HomeKit thermostats and air conditioners)
- Cover (HomeKit garage door openers, windows, or window coverings)
- Light (HomeKit lights)
- Lock (HomeKit lock)
- Switch (HomeKit switches, outlets and valves)
- Binary Sensor (HomeKit motion, contact, occupancy, carbon monoxide and smoke sensors)
- Sensor (HomeKit humidity, temperature, co2 and light level sensors)
- Fan
- Air Quality
- Humidifier (HomeKit humidifiers and dehumidifiers)
- Automation Triggers (HomeKit 'stateless' accessories like buttons, remotes and doorbells)
<div class='note'>
If your device is not on this list then you may still be able to pair it, and it will be visible in the Device Registry. But Home Assistant may not create entities for it.
</div>
HomeKit IP accessories for these device types may work with some caveats:
- If the device is Wi-Fi based and has no physical controls or screen then you may need an Apple HomeKit device like an iPhone or iPad to get the accessory onto your Wi-Fi network. For example, for a Koogeek LS1 you must add the accessory to HomeKit on your iOS device, then remove it from the iOS device. This leaves the LS1 in an unpaired state but still on your Wi-Fi. Home Assistant can then find it and pair with it.
- You need to know the HomeKit PIN. There is no way to recover this if you do not have it. In this case, you will need to contact the manufacturer to see what options you have.
The integration will poll your devices, but it will also automatically enable push updates for accessories that support it.
## Adding a HomeKit device through Bluetooth
The integration will automatically discover Bluetooth devices once the [Bluetooth](/integrations/bluetooth) integration is enabled and functional. Bluetooth devices may take significantly longer to pair than IP devices. Battery-powered devices may require pressing a button on the device to wake it before pairing can be successful.
The HomeKit controller integration automatically detects HomeKit [compatible devices](#supported-devices) on your network when they are ready to pair.
### Prerequisites
- If you do not have the [`default_config`](/integrations/default_config/) integration, add [`zeroconf`](/integrations/zeroconf/) to your `configuration.yaml` file.
- Find your HomeKit pairing code. The code is on the device itself, or on the packaging. If your device has a screen, it may be shown on screen.
- There is no way to recover this if you do not have it. In this case, you will need to contact the manufacturer to see what options you have.
- Make sure your device is powered up.
- Make sure the device is on your network, but not paired with another HomeKit controller. Depending on the device, you need to follow a different set of steps:
- If your device is not already in your network: Join the device to your network:
- Follow the instructions of the manufacturer on how to join the device to the network
- If the device is HomeKit only (for example the Koogeek LS1 light strip), pair it with the Apple Home app, then follow the next step.
- If your device is in your network but is paired with an Apple device via HomeKit: **Remove** the device from the Apple Home app.
- Otherwise you won't be able to pair it with Home Assistant.
- **Explanation:** Adding the device to the Home app and then removing it again has two effects:
- It adds the device to your network. It stays in the network even after you removed it from the app.
- Removing the device from the app opens it up for pairing with Home Assistant's HomeKit Controller integration directly. HomeKit devices can only be paired to a single controller at once.
### To add a HomeKit device via Ethernet or Wi-Fi
1. The device should have been discovered under **{% my integrations title="Settings > Devices & Services" %}**.
2. On the HomeKit integration, select **Configure**.
![HomeKit integration](/images/integrations/homekit_controller/homekit_controller_add_01.png)
3. Enter your HomeKit pairing code.
- Add the device to a room and select **Finish**.
- The device should now be added to your Home Assistant instance.
4. Once Home Assistant is configured to work with the device, you can export it back to Siri and Apple Home with the [`HomeKit`](/integrations/homekit/) integration.
## Adding a HomeKit device through Bluetooth
You can add a HomeKit [compatible device](#supported-devices) to Home Assistant via [Bluetooth](/integrations/bluetooth).
### Prerequisites
- Find your HomeKit pairing code. The code is on the device itself, or on the packaging. If your device has a screen, it may be shown on screen.
- There is no way to recover this if you do not have it. In this case, you will need to contact the manufacturer to see what options you have.
- If your Home Assistant instance does not natively support Bluetooth, use an ESPHome Bluetooth proxy.
- A proxy can also be helpful if your Home Assistant device is too far away from the device you are trying to pair.
- If your HomeKit device has been used with Thread before, or is still paired with iOS, reset the device.
- HomeKit devices can only be paired to a single controller at once.
- If it has been in a Thread network before, the device might remember the Thread credentials of a different network. A reset makes sure the device is not connected to any Thread network.
## To add a HomeKit device through Bluetooth
### To add a HomeKit device through Bluetooth
1. Power up your HomeKit device.
- If you have Bluetooth enabled, the device should be discovered under **{% my integrations title="Settings > Devices & Services" %}**.
1. Under **{% my integrations title="Settings > Devices & Services" %}**, on the HomeKit integration, select **Configure**.
![HomeKit integration](/images/integrations/homekit_controller/homekit_controller_add_01.png)
1. To pair the device, enter the HomeKit pairing code. The code is on the device itself or the packaging.
2. On the HomeKit integration, select **Configure**.
![HomeKit integration](/images/integrations/homekit_controller/homekit_controller_add_01.png)
3. To pair the device, enter the HomeKit pairing code.
- To pair a battery-powered device, you may need to press a button on the device to wake it.
- Bluetooth devices may take significantly longer to pair than IP devices.
- Add the device to a room and **Finish**.
## Adding a HomeKit device to a Thread network via Home Assistant
There are two methods to add a HomeKit device to a Thread network:
There are two methods to add a HomeKit [compatible device](#supported-devices) to a Thread network:
- via Home Assistant's preferred Thread network
- via [Apple Thread border router](#adding-a-homekit-device-to-home-assistant-via-apple-thread-border-router)
@ -125,22 +136,22 @@ This section describes how to add it via Home Assistant's preferred Thread netwo
### To add a HomeKit device to a Thread network via Home Assistant
1. To open the device configuration page, on the **HomeKit** integration, select the **device**.
1. Under **Diagnostic**, you can see the **Thread Status** as **Disabled**.
2. Under **Diagnostic**, you can see the **Thread Status** as **Disabled**.
![Device configuration page](/images/integrations/homekit_controller/homekit_controller_add_02.png)
1. To enable Thread, under **Configuration**, select **Press**. This will provision the preferred Thread credentials.
3. To enable Thread, under **Configuration**, select **Press**. This will provision the preferred Thread credentials.
- The status has now changed:
- Depending on the device type, the mesh size and health, the Thread status can be **Child**, **Router**, or **Leader**.
![Thread status](/images/integrations/homekit_controller/homekit_controller_add_02.png)
- That's it. Your HomeKit device now communicates via Thread.
## Adding a HomeKit device to Home Assistant via Apple Thread border router
## Adding a HomeKit device via Apple Thread border router
There are two methods to add a HomeKit device to a Thread network:
There are two methods to add a HomeKit [compatible device](#supported-devices) to a Thread network:
- via [Home Assistant's preferred Thread network](#adding-a-homekit-device-to-a-thread-network-via-home-assistant)
- via Apple Thread border router
This section describes how to add a HomeKit device using an Apple Thread border router device such as a HomePod mini.
This section describes how to add a HomeKit [compatible device](#supported-devices) using an Apple Thread border router device such as a HomePod mini.
### Prerequisites
@ -149,26 +160,51 @@ This section describes how to add a HomeKit device using an Apple Thread border
- Make sure your Home Assistant instance is on the same network (LAN) as the border router.
- Make sure the HomeKit device has been paired in the Apple Home app (using the iOS Home app).
### To add a HomeKit device to Home Assistant via Apple Thread border router
### To add a HomeKit device via Apple Thread border router
1. Remove the HomeKit device from the Apple Home app. Don't reset the device.
- This leaves the Thread network details on the HomeKit device.
- The device will be automatically discovered by the HomeKit controller integration in Home Assistant.
- It will appear as a discovered device over Thread.
1. Under **{% my integrations title="Settings > Devices & Services" %}**, on the HomeKit integration, select **Configure**.
2. Under **{% my integrations title="Settings > Devices & Services" %}**, on the HomeKit integration, select **Configure**.
![HomeKit integration](/images/integrations/homekit_controller/homekit_controller_add_01.png)
1. To pair the device, enter the HomeKit pairing code. The code is on the device itself or the packaging.
3. To pair the device, enter the HomeKit pairing code. The code is on the device itself or the packaging.
- To pair a battery-powered device, you may need to press a button on the device to wake it.
- Bluetooth devices may take significantly longer to pair than IP devices.
- Add the device to a room and **Finish**.
1. To open the device configuration page, on the **HomeKit** integration, select the **device**.
1. Under **Diagnostic**, check the status:
4. To open the device configuration page, on the **HomeKit** integration, select the **device**.
5. Under **Diagnostic**, check the status:
- Depending on the device type, the mesh size and health, the Thread status can be **Child**, **Router**, or **Leader**.
![Thread status](/images/integrations/homekit_controller/homekit_controller_add_02.png)
- That's it. Your HomeKit device now communicates via Thread.
## Supported devices
There is currently support for the following device types (also called *domains*) within Home Assistant. They are listed with their default types.
- Alarm Control Panel (HomeKit security system)
- Climate (HomeKit thermostats and air conditioners)
- Cover (HomeKit garage door openers, windows, or window coverings)
- Light (HomeKit lights)
- Lock (HomeKit lock)
- Switch (HomeKit switches, outlets and valves)
- Binary Sensor (HomeKit motion, contact, occupancy, carbon monoxide and smoke sensors)
- Sensor (HomeKit humidity, temperature, co2 and light level sensors)
- Fan
- Air Quality
- Humidifier (HomeKit humidifiers and dehumidifiers)
- Automation Triggers (HomeKit 'stateless' accessories like buttons, remotes and doorbells)
<div class='note'>
If your device is not on this list then you may still be able to pair it, and it will be visible in the Device Registry. But Home Assistant may not create entities for it.
</div>
The integration will enable push updates. Devices that connect through Wi-Fi or Ethernet may fall back to only polling if the connection is unstable.
## 'Stateless' switches and sensors
Some HomeKit devices (like buttons, remotes and doorbells) don't have sensors that can be read like a normal HomeKit device - they only inform Home Assistant when something happens. This means Home Assistant can't show an entity for them, as they have no state. But they are available for use as [device automations](/integrations/device_automation/).

View File

@ -35,16 +35,16 @@ The [HomematicIP](https://www.homematic-ip.com/) integration platform is used as
There is currently support for the following device types within Home Assistant:
* Alarm
* Binary Sensor
* Button
* Climate
* Cover
* Light
* Lock
* Sensor
* Switch
* Weather
- Alarm
- Binary Sensor
- Button
- Climate
- Cover
- Light
- Lock
- Sensor
- Switch
- Weather
{% include integrations/config_flow.md %}
@ -89,112 +89,112 @@ Within this delay the device registration should be completed in the App, otherw
## Implemented and tested devices
* homematicip_cloud.alarm_control_panel
* Combined Alarm Control Panal with INTERNAL and EXTERNAL Security zones (*HmIP-SecurityZone*)
- homematicip_cloud.alarm_control_panel
- Combined Alarm Control Panal with INTERNAL and EXTERNAL Security zones (*HmIP-SecurityZone*)
* homematicip_cloud.binary_sensor
* Access Point Cloud Connection (*HmIP-HAP, HmIP-HAP-B1*)
* Acceleration Sensor (*HMIP-SAM*)
* Inclination and vibration Sensor (*HMIP-STV*)
* Window and door contact (*HmIP-SWDO, HmIP-SWDO-PL, HmIP-SWDO-I, HmIP-SWDM, HmIP-SWDM-B2*)
* Contact Interface flush-mount 1x channel (*HmIP-FCI1*)
* Contact Interface flush-mount 6x channels (*HmIP-FCI6*)
* Contact Interface (*HmIP-SCI*)
* Window Rotary Handle Sensor (*HmIP-SRH*)
* Smoke sensor and alarm (*HmIP-SWSD*)
* Motion Detector with Brightness Sensor - indoor (*HmIP-SMI*)
* Motion Detector with Brightness Sensor - outdoor (*HmIP-SMO*)
* Presence Sensor indoor (*HmIP-SPI*)
* Rain Sensor (*HmIP-SRD*)
* Water Sensor (*HmIP-SWD*)
* Remote Control - 8x buttons (*HmIP-RC8*) (battery only)
* Wall-mount Remote Control - 2x buttons (*HmIP-WRC2*) (battery only)
* Wall-mount Remote Control - flat - 2x buttons (*HmIP-WRCC2*) (battery only)
* Wall-mount Remote Control - 6x buttons (*HmIP-WRC6*) (battery only)
* Key Ring Remote Control - 4x buttons (*HmIP-KRC4*) (battery only)
* Key Ring Remote Control - alarm (*HmIP-KRCA*) (battery only)
* Alarm Siren (*HmIP-ASIR, -B1*) (battery only)
* Remote Control for brand switches 2x buttons (*HmIP-BRC2*) (battery only)
* Pluggable Power Supply Monitoring (*HmIP-PMFS*)
* Wired Inbound module 32x channels (*HMIPW-DRI32*)
- homematicip_cloud.binary_sensor
- Access Point Cloud Connection (*HmIP-HAP, HmIP-HAP-B1*)
- Acceleration Sensor (*HMIP-SAM*)
- Inclination and vibration Sensor (*HMIP-STV*)
- Window and door contact (*HmIP-SWDO, HmIP-SWDO-PL, HmIP-SWDO-I, HmIP-SWDM, HmIP-SWDM-B2*)
- Contact Interface flush-mount 1x channel (*HmIP-FCI1*)
- Contact Interface flush-mount 6x channels (*HmIP-FCI6*)
- Contact Interface (*HmIP-SCI*)
- Window Rotary Handle Sensor (*HmIP-SRH*)
- Smoke sensor and alarm (*HmIP-SWSD*)
- Motion Detector with Brightness Sensor - indoor (*HmIP-SMI*)
- Motion Detector with Brightness Sensor - outdoor (*HmIP-SMO*)
- Presence Sensor indoor (*HmIP-SPI*)
- Rain Sensor (*HmIP-SRD*)
- Water Sensor (*HmIP-SWD*)
- Remote Control - 8x buttons (*HmIP-RC8*) (battery only)
- Wall-mount Remote Control - 2x buttons (*HmIP-WRC2*) (battery only)
- Wall-mount Remote Control - flat - 2x buttons (*HmIP-WRCC2*) (battery only)
- Wall-mount Remote Control - 6x buttons (*HmIP-WRC6*) (battery only)
- Key Ring Remote Control - 4x buttons (*HmIP-KRC4*) (battery only)
- Key Ring Remote Control - alarm (*HmIP-KRCA*) (battery only)
- Alarm Siren (*HmIP-ASIR, -B1*) (battery only)
- Remote Control for brand switches 2x buttons (*HmIP-BRC2*) (battery only)
- Pluggable Power Supply Monitoring (*HmIP-PMFS*)
- Wired Inbound module 32x channels (*HMIPW-DRI32*)
* homematicip_cloud.button
* Wall Mounted Garage Door Controller (*HmIP-WGC*)
- homematicip_cloud.button
- Wall Mounted Garage Door Controller (*HmIP-WGC*)
* homematicip_cloud.climate
* Climate group (*HmIP-HeatingGroup*)
* This includes temperature/humidity measures for climate devices of a room delivered by:
* Wall-mounted thermostat (*HmIP-WTH, HmIP-WTH-2, HmIP-WTH-B*)
* Brand Wall-mounted thermostat (*HmIP-BWTH, HmIP-BWTH-24*)
* Radiator thermostat (*HmIP-eTRV, HmIP-eTRV-2, HmIP-eTRV-C*) - should also work with (*HmIP-eTRV-2-UK, HmIP-eTRV-2-B, HmIP-eTRV-2-B1*)
* Temperature and humidity sensor (*HmIP-STH*)
* Temperature and humidity Sensor with display (*HmIP-STHD*)
* Alpha IP Wall Thermostat Display (*ALPHA-IP-RBG*)
* Alpha IP Wall Thermostat Display analog (*ALPHA-IP-RBGa*)
* There is no need to directly support the following devices by Home Assistant, because their integration is done by the required wall thermostats:
* Floor Heating Actuator 6x channels, 230V (*HMIP-FAL230-C6*)
* Floor Heating Actuator 10x channels, 230V (*HMIP-FAL230-C10*)
* Floor Heating Actuator 6x channels, 24V (*HMIP-FAL24-C6*)
* Floor Heating Actuator 10x channels, 24V (*HMIP-FAL24-C10*)
* Floor Heating Actuator 12x channels, motorized (*HMIP-FALMOT-C12*)
- homematicip_cloud.climate
- Climate group (*HmIP-HeatingGroup*)
- This includes temperature/humidity measures for climate devices of a room delivered by:
- Wall-mounted thermostat (*HmIP-WTH, HmIP-WTH-2, HmIP-WTH-B*)
- Brand Wall-mounted thermostat (*HmIP-BWTH, HmIP-BWTH-24*)
- Radiator thermostat (*HmIP-eTRV, HmIP-eTRV-2, HmIP-eTRV-C*) - should also work with (*HmIP-eTRV-2-UK, HmIP-eTRV-2-B, HmIP-eTRV-2-B1*)
- Temperature and humidity sensor (*HmIP-STH*)
- Temperature and humidity Sensor with display (*HmIP-STHD*)
- Alpha IP Wall Thermostat Display (*ALPHA-IP-RBG*)
- Alpha IP Wall Thermostat Display analog (*ALPHA-IP-RBGa*)
- There is no need to directly support the following devices by Home Assistant, because their integration is done by the required wall thermostats:
- Floor Heating Actuator 6x channels, 230V (*HMIP-FAL230-C6*)
- Floor Heating Actuator 10x channels, 230V (*HMIP-FAL230-C10*)
- Floor Heating Actuator 6x channels, 24V (*HMIP-FAL24-C6*)
- Floor Heating Actuator 10x channels, 24V (*HMIP-FAL24-C10*)
- Floor Heating Actuator 12x channels, motorized (*HMIP-FALMOT-C12*)
* homematicip_cloud.cover
* Shutter actuator for brand-mount (*HmIP-BROLL*)
* Shutter actuator for flush-mount (*HmIP-FROLL*)
* Blind Actuator for brand switches (*HmIP-BBL*)
* Blind Actuator for DIN rail mount 4x channels (*HMIP-DRBLI4*)
* Blind Actuator for flush-mount (*HmIP-FBL*)
* Garage door module for Tormatic (*HmIP-MOD_TM*)
* Module for Hoermann drives (*HMIP-MOD-HO*)
* Hunter Douglas & erfal window blinds (*HMIP-HDM1*)
- homematicip_cloud.cover
- Shutter actuator for brand-mount (*HmIP-BROLL*)
- Shutter actuator for flush-mount (*HmIP-FROLL*)
- Blind Actuator for brand switches (*HmIP-BBL*)
- Blind Actuator for DIN rail mount 4x channels (*HMIP-DRBLI4*)
- Blind Actuator for flush-mount (*HmIP-FBL*)
- Garage door module for Tormatic (*HmIP-MOD_TM*)
- Module for Hoermann drives (*HMIP-MOD-HO*)
- Hunter Douglas & erfal window blinds (*HMIP-HDM1*)
* homematicip_cloud.light
* Switch actuator and meter for brand switches (*HmIP-BSM*)
* Dimming actuator for brand switches (*HmIP-BDT*)
* Dimming actuator flush-mount (*HmIP-FDT*)
* Pluggable Dimmer trailing edge (*HmIP-PDT*)
* Switch Actuator for brand switches with signal lamp (*HmIP-BSL*)
* Wired Dimmer module 3x channels (*HMIPW-DRD3*)
- homematicip_cloud.light
- Switch actuator and meter for brand switches (*HmIP-BSM*)
- Dimming actuator for brand switches (*HmIP-BDT*)
- Dimming actuator flush-mount (*HmIP-FDT*)
- Pluggable Dimmer trailing edge (*HmIP-PDT*)
- Switch Actuator for brand switches with signal lamp (*HmIP-BSL*)
- Wired Dimmer module 3x channels (*HMIPW-DRD3*)
* homematicip_cloud.lock
* Door Lock Drive - currently, usage just without a pin is possible (*HmIP-DLD*)
- homematicip_cloud.lock
- Door Lock Drive - currently, usage just without a pin is possible (*HmIP-DLD*)
* homematicip_cloud.sensor
* Access Point Duty Cycle (*HmIP-HAP, HmIP-HAP-B1*)
* Wall Mounted Thermostat (*HmIP-WTH, HmIP-WTH2, HmIP-WTH-B*)
* Radiator thermostat (*HmIP-eTRV, HmIP-eTRV-2, HmIP-eTRV-C*) - should also work with (*HmIP-eTRV-2-UK, HmIP-eTRV-2-B, HmIP-eTRV-2-B1*)
* Temperature and Humidity Sensor without display - indoor (*HmIP-STH*)
* Temperature and Humidity Sensor with display - indoor (*HmIP-STHD*)
* Temperature and Humidity sensor - outdoor (*HmIP-STHO, -A*)
* Temperature sensor with external probes - 2-way (*HmIP-STE2-PCB*)
* Motion Detector with Brightness Sensor - indoor (*HmIP-SMI*)
* Motion Detector with Brightness Sensor - outdoor (*HmIP-SMO*)
* Presence Sensor indoor (*HmIP-SPI*)
* Light Sensor - outdoor (*HmIP-SLO*)
* Passage Sensor with Direction Recognition (*HmIP-SPDR*) (delta counter)
* Alpha IP Wall Thermostat Display (*ALPHA-IP-RBG*)
* Alpha IP Wall Thermostat Display analog (*ALPHA-IP-RBGa*)
- homematicip_cloud.sensor
- Access Point Duty Cycle (*HmIP-HAP, HmIP-HAP-B1*)
- Wall Mounted Thermostat (*HmIP-WTH, HmIP-WTH2, HmIP-WTH-B*)
- Radiator thermostat (*HmIP-eTRV, HmIP-eTRV-2, HmIP-eTRV-C*) - should also work with (*HmIP-eTRV-2-UK, HmIP-eTRV-2-B, HmIP-eTRV-2-B1*)
- Temperature and Humidity Sensor without display - indoor (*HmIP-STH*)
- Temperature and Humidity Sensor with display - indoor (*HmIP-STHD*)
- Temperature and Humidity sensor - outdoor (*HmIP-STHO, -A*)
- Temperature sensor with external probes - 2-way (*HmIP-STE2-PCB*)
- Motion Detector with Brightness Sensor - indoor (*HmIP-SMI*)
- Motion Detector with Brightness Sensor - outdoor (*HmIP-SMO*)
- Presence Sensor indoor (*HmIP-SPI*)
- Light Sensor - outdoor (*HmIP-SLO*)
- Passage Sensor with Direction Recognition (*HmIP-SPDR*) (delta counter)
- Alpha IP Wall Thermostat Display (*ALPHA-IP-RBG*)
- Alpha IP Wall Thermostat Display analog (*ALPHA-IP-RBGa*)
* homematicip_cloud.switch
* Pluggable Switch (*HmIP-PS*)
* Pluggable Switch and Meter (*HmIP-PSM*) - should also work with (*HmIP-PSM-CH, HmIP-PSM-IT, HmIP-PSM-UK, HmIP-PSM-PE*)
* Switch Actuator and Meter flush-mount (*HmIP-FSM, HmIP-FSM16*)
* Switch Actuator with Push-button Input flush-mount (*HmIP-FSI16*)
* Open Collector Module Receiver - 8x channels (*HmIP-MOD-OC8*)
* Multi IO Box - 2x (*HmIP-MIOB*)
* Switch Circuit Board - 1x channels (*HmIP-PCBS*)
* Switch Circuit Board - 2x channels (*HmIP-PCBS2*)
* Printed Circuit Board Switch Battery (*HmIP-PCBS-BAT*)
* Switch Actuator for heating systems 2x channels (*HmIP-WHS2*)
* Wired Switch Actuator 8x channels (*HMIPW-DRS8*)
* Switch Actuator for DIN rail mount 4x channels (*HMIP-DRSI4*)
* Switch Actuator for DIN rail mount 1x channels (*HMIP-DRSI1*)
* Switch Actuator - 2x channels (*HmIP-BS2*)
- homematicip_cloud.switch
- Pluggable Switch (*HmIP-PS*)
- Pluggable Switch and Meter (*HmIP-PSM*) - should also work with (*HmIP-PSM-CH, HmIP-PSM-IT, HmIP-PSM-UK, HmIP-PSM-PE*)
- Switch Actuator and Meter flush-mount (*HmIP-FSM, HmIP-FSM16*)
- Switch Actuator with Push-button Input flush-mount (*HmIP-FSI16*)
- Open Collector Module Receiver - 8x channels (*HmIP-MOD-OC8*)
- Multi IO Box - 2x (*HmIP-MIOB*)
- Switch Circuit Board - 1x channels (*HmIP-PCBS*)
- Switch Circuit Board - 2x channels (*HmIP-PCBS2*)
- Printed Circuit Board Switch Battery (*HmIP-PCBS-BAT*)
- Switch Actuator for heating systems 2x channels (*HmIP-WHS2*)
- Wired Switch Actuator 8x channels (*HMIPW-DRS8*)
- Switch Actuator for DIN rail mount 4x channels (*HMIP-DRSI4*)
- Switch Actuator for DIN rail mount 1x channels (*HMIP-DRSI1*)
- Switch Actuator - 2x channels (*HmIP-BS2*)
* homematicip_cloud.weather
* Weather Sensor basic (*HmIP-SWO-B*)
* Weather Sensor plus (*HmIP-SWO-PL*)
* Weather Sensor pro (*HmIP-SWO-PR*)
- homematicip_cloud.weather
- Weather Sensor basic (*HmIP-SWO-B*)
- Weather Sensor plus (*HmIP-SWO-PL*)
- Weather Sensor pro (*HmIP-SWO-PR*)
## What to do, if a device is missing in Home Assistant
@ -322,13 +322,13 @@ action:
Push button devices are only available with a battery sensor. This is due to a limitation of the vendor API (eq3).
It's not possible to detect a key press event on these devices at the moment.
* Remote Control - 8x buttons (*HmIP-RC8*)
* Wall-mount Remote Control for brand switches - 2x buttons (*HmIP-BRC2*)
* Motion Detector for 55mm frames - indoor (HmIP-SMI55)(Push button)
* Wall-mount Remote Control - 2x buttons (*HmIP-WRC2*)
* Wall-mount Remote Control - flat - 2x buttons (*HmIP-WRCC2*)
* Wall-mount Remote Control - 6x buttons (*HmIP-WRC6*)
* Key Ring Remote Control - 4x buttons (*HmIP-KRC4*)
* Key Ring Remote Control - alarm (*HmIP-KRCA*)
* Wall-mount Remote Control flat (*HmIP-WRCC2*)
* Rotary Button (*HmIP-WRCR*)
- Remote Control - 8x buttons (*HmIP-RC8*)
- Wall-mount Remote Control for brand switches - 2x buttons (*HmIP-BRC2*)
- Motion Detector for 55mm frames - indoor (HmIP-SMI55)(Push button)
- Wall-mount Remote Control - 2x buttons (*HmIP-WRC2*)
- Wall-mount Remote Control - flat - 2x buttons (*HmIP-WRCC2*)
- Wall-mount Remote Control - 6x buttons (*HmIP-WRC6*)
- Key Ring Remote Control - 4x buttons (*HmIP-KRC4*)
- Key Ring Remote Control - alarm (*HmIP-KRCA*)
- Wall-mount Remote Control flat (*HmIP-WRCC2*)
- Rotary Button (*HmIP-WRCR*)

Some files were not shown because too many files have changed in this diff Show More