Merge branch 'current' into next

This commit is contained in:
Franck Nijhof 2023-01-23 10:38:51 +01:00
commit d824d2d4be
No known key found for this signature in database
GPG Key ID: D62583BA8AB11CA3
165 changed files with 3639 additions and 661 deletions

View File

@ -24,6 +24,7 @@ body:
value: |
## Details
- type: input
id: url
attributes:
label: URL
placeholder: "http://www.home-assistant.io/..."
@ -32,6 +33,7 @@ body:
validations:
required: true
- type: input
id: version
attributes:
label: Version
placeholder: "e.g., 2022.7.0"

View File

@ -8,9 +8,9 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Check out files from GitHub
uses: actions/checkout@v3.2.0
uses: actions/checkout@v3.3.0
- name: Setting up Node.js
uses: actions/setup-node@v3.5.1
uses: actions/setup-node@v3.6.0
with:
node-version: 16.x
cache: "npm"
@ -25,9 +25,9 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Check out files from GitHub
uses: actions/checkout@v3.2.0
uses: actions/checkout@v3.3.0
- name: Setting up Node.js
uses: actions/setup-node@v3.5.1
uses: actions/setup-node@v3.6.0
with:
node-version: 16.x
cache: "npm"

View File

@ -25,6 +25,7 @@ source/_integrations/airthings.markdown @danielhiversen
source/_integrations/airthings_ble.markdown @vincegio
source/_integrations/airtouch4.markdown @LonePurpleWolf
source/_integrations/airvisual.markdown @bachya
source/_integrations/airvisual_pro.markdown @bachya
source/_integrations/airzone.markdown @Noltari
source/_integrations/aladdin_connect.markdown @mkmer
source/_integrations/alarm_control_panel.markdown @home-assistant/core
@ -87,7 +88,7 @@ source/_integrations/bluetooth.markdown @bdraco
source/_integrations/bmw_connected_drive.markdown @gerard33 @rikroe
source/_integrations/bond.markdown @bdraco @prystupa @joshs85 @marciogranzotto
source/_integrations/bosch_shc.markdown @tschamm
source/_integrations/brandt.markdown @imicknl @vlebourl @tetienne
source/_integrations/brandt.markdown @imicknl @vlebourl @tetienne @nyroDev
source/_integrations/braviatv.markdown @bieniu @Drafteed
source/_integrations/brel_home.markdown @starkillerOG
source/_integrations/broadlink.markdown @danielhiversen @felipediel @L-I-Am
@ -124,7 +125,7 @@ source/_integrations/coolmaster.markdown @OnFreund
source/_integrations/coronavirus.markdown @home-assistant/core
source/_integrations/counter.markdown @fabaff
source/_integrations/cover.markdown @home-assistant/core
source/_integrations/cozytouch.markdown @imicknl @vlebourl @tetienne
source/_integrations/cozytouch.markdown @imicknl @vlebourl @tetienne @nyroDev
source/_integrations/cpuspeed.markdown @fabaff @frenck
source/_integrations/crownstone.markdown @Crownstone @RicArch97
source/_integrations/cups.markdown @fabaff
@ -207,7 +208,7 @@ source/_integrations/fireservicerota.markdown @cyberjunky
source/_integrations/firmata.markdown @DaAwesomeP
source/_integrations/fivem.markdown @Sander0542
source/_integrations/fjaraskupan.markdown @elupus
source/_integrations/flexom.markdown @imicknl @vlebourl @tetienne
source/_integrations/flexom.markdown @imicknl @vlebourl @tetienne @nyroDev
source/_integrations/flick_electric.markdown @ZephireNZ
source/_integrations/flipr.markdown @cnico
source/_integrations/flo.markdown @dmulcahey
@ -246,10 +247,11 @@ source/_integrations/gogogate2.markdown @vangorra @bdraco
source/_integrations/goodwe.markdown @mletenay @starkillerOG
source/_integrations/google.markdown @allenporter
source/_integrations/google_assistant.markdown @home-assistant/cloud
source/_integrations/google_assistant_sdk.markdown @tronikos
source/_integrations/google_cloud.markdown @lufton
source/_integrations/google_sheets.markdown @tkdrob
source/_integrations/google_travel_time.markdown @eifinger
source/_integrations/govee_ble.markdown @bdraco
source/_integrations/govee_ble.markdown @bdraco @PierreAronnax
source/_integrations/gpsd.markdown @fabaff
source/_integrations/gree.markdown @cmroche
source/_integrations/greeneye_monitor.markdown @jkeljo
@ -266,8 +268,8 @@ source/_integrations/heatmiser.markdown @andylockran
source/_integrations/heiwa.markdown @cmroche
source/_integrations/heos.markdown @andrewsayre
source/_integrations/here_travel_time.markdown @eifinger
source/_integrations/hexaom.markdown @imicknl @vlebourl @tetienne
source/_integrations/hi_kumo.markdown @imicknl @vlebourl @tetienne
source/_integrations/hexaom.markdown @imicknl @vlebourl @tetienne @nyroDev
source/_integrations/hi_kumo.markdown @imicknl @vlebourl @tetienne @nyroDev
source/_integrations/hikvision.markdown @mezz64
source/_integrations/hikvisioncam.markdown @fbradyirl
source/_integrations/hisense_aehw4a1.markdown @bannhead
@ -300,8 +302,8 @@ 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/incomfort.markdown @zxdavb
source/_integrations/influxdb.markdown @mdegat01
source/_integrations/inkbird.markdown @bdraco
@ -431,7 +433,7 @@ source/_integrations/netdata.markdown @fabaff
source/_integrations/netgear.markdown @hacf-fr @Quentame @starkillerOG
source/_integrations/network.markdown @home-assistant/core
source/_integrations/nexia.markdown @bdraco
source/_integrations/nexity.markdown @imicknl @vlebourl @tetienne
source/_integrations/nexity.markdown @imicknl @vlebourl @tetienne @nyroDev
source/_integrations/nextbus.markdown @vividboarder
source/_integrations/nextcloud.markdown @meichthys
source/_integrations/nextdns.markdown @bieniu
@ -455,7 +457,7 @@ source/_integrations/numato.markdown @clssn
source/_integrations/number.markdown @home-assistant/core @Shulyaka
source/_integrations/nut.markdown @bdraco @ollo69
source/_integrations/nutrichef.markdown @bdraco
source/_integrations/nws.markdown @MatthewFlamm
source/_integrations/nws.markdown @MatthewFlamm @kamiyo
source/_integrations/nzbget.markdown @chriscla
source/_integrations/obihai.markdown @dshokouhi
source/_integrations/octoprint.markdown @rfleming71
@ -478,7 +480,7 @@ source/_integrations/openweathermap.markdown @fabaff @freekode @nzapponi
source/_integrations/opnsense.markdown @mtreinish
source/_integrations/oralb.markdown @bdraco
source/_integrations/oru.markdown @bvlaicu
source/_integrations/overkiz.markdown @imicknl @vlebourl @tetienne
source/_integrations/overkiz.markdown @imicknl @vlebourl @tetienne @nyroDev
source/_integrations/ovo_energy.markdown @timmo001
source/_integrations/p1_monitor.markdown @klaasnicolaas
source/_integrations/panel_custom.markdown @home-assistant/frontend
@ -505,6 +507,7 @@ source/_integrations/proxmoxve.markdown @jhollowe @Corbeno
source/_integrations/prusalink.markdown @balloob
source/_integrations/ps4.markdown @ktnrg45
source/_integrations/pure_energie.markdown @klaasnicolaas
source/_integrations/purpleair.markdown @bachya
source/_integrations/push.markdown @dgomes
source/_integrations/pushbullet.markdown @engrbm87
source/_integrations/pushover.markdown @engrbm87
@ -521,7 +524,7 @@ source/_integrations/rachio.markdown @bdraco
source/_integrations/radarr.markdown @tkdrob
source/_integrations/radio_browser.markdown @frenck
source/_integrations/radiotherm.markdown @bdraco @vinnyfuria
source/_integrations/rainbird.markdown @konikvranik
source/_integrations/rainbird.markdown @konikvranik @allenporter
source/_integrations/raincloud.markdown @vanstinator
source/_integrations/rainforest_eagle.markdown @gtdiehl @jcalbert @hastarin
source/_integrations/rainmachine.markdown @bachya
@ -535,7 +538,7 @@ source/_integrations/remote.markdown @home-assistant/core
source/_integrations/renault.markdown @epenet
source/_integrations/repairs.markdown @home-assistant/core
source/_integrations/repetier.markdown @MTrab @ShadowBr0ther
source/_integrations/rexel.markdown @imicknl @vlebourl @tetienne
source/_integrations/rexel.markdown @imicknl @vlebourl @tetienne @nyroDev
source/_integrations/rflink.markdown @javicalle
source/_integrations/rfxtrx.markdown @danielhiversen @elupus @RobBie1221
source/_integrations/rhasspy.markdown @balloob @synesthesiam
@ -588,7 +591,7 @@ source/_integrations/signal_messenger.markdown @bbernhard
source/_integrations/simplepush.markdown @engrbm87
source/_integrations/simplisafe.markdown @bachya
source/_integrations/simply_automated.markdown @gwww
source/_integrations/simu.markdown @imicknl @vlebourl @tetienne
source/_integrations/simu.markdown @imicknl @vlebourl @tetienne @nyroDev
source/_integrations/sinch.markdown @bendikrb
source/_integrations/siren.markdown @home-assistant/core @raman325
source/_integrations/sisyphus.markdown @jkeljo
@ -615,7 +618,7 @@ source/_integrations/solaredge_local.markdown @drobtravels @scheric
source/_integrations/solarlog.markdown @Ernst79
source/_integrations/solax.markdown @squishykid
source/_integrations/soma.markdown @ratsept @sebfortier2288
source/_integrations/somfy.markdown @imicknl @vlebourl @tetienne
source/_integrations/somfy.markdown @imicknl @vlebourl @tetienne @nyroDev
source/_integrations/sonarr.markdown @ctalkington
source/_integrations/songpal.markdown @rytilahti @shenxn
source/_integrations/sonos.markdown @cgtobi @jjlawren
@ -646,7 +649,7 @@ source/_integrations/swiss_public_transport.markdown @fabaff
source/_integrations/switch.markdown @home-assistant/core
source/_integrations/switch_as_x.markdown @home-assistant/core
source/_integrations/switchbee.markdown @jafar-atili
source/_integrations/switchbot.markdown @bdraco @danielhiversen @RenierM26 @murtas @Eloston
source/_integrations/switchbot.markdown @bdraco @danielhiversen @RenierM26 @murtas @Eloston @dsypniewski
source/_integrations/switcher_kis.markdown @tomerfi @thecode
source/_integrations/switchmate.markdown @danielhiversen @qiz-li
source/_integrations/symfonisk.markdown @cgtobi @jjlawren
@ -692,7 +695,7 @@ source/_integrations/tts.markdown @pvizeli
source/_integrations/tuya.markdown @Tuya @zlinoliver @frenck
source/_integrations/twentemilieu.markdown @frenck
source/_integrations/twinkly.markdown @dr1rrb @Robbie1221
source/_integrations/ubiwizz.markdown @imicknl @vlebourl @tetienne
source/_integrations/ubiwizz.markdown @imicknl @vlebourl @tetienne @nyroDev
source/_integrations/ukraine_alarm.markdown @PaulAnnekov
source/_integrations/unifi.markdown @Kane610
source/_integrations/unifiled.markdown @florisvdk

View File

@ -4,7 +4,7 @@ ruby '> 2.5.0'
group :development do
gem 'rake', '13.0.6'
gem 'jekyll', '4.3.1'
gem 'jekyll', '4.3.2'
gem 'compass', '1.0.3'
gem 'sass-globbing', '1.1.5'
gem 'stringex', '2.8.5'
@ -16,11 +16,11 @@ group :jekyll_plugins do
gem 'jekyll-paginate', '1.1.0'
gem 'jekyll-sitemap', '1.4.0'
gem 'jekyll-commonmark', '1.4.0'
gem 'jekyll-toc', '0.17.1'
gem 'jekyll-toc', '0.18.0'
end
gem 'sinatra', '3.0.5'
gem 'nokogiri', '1.13.10'
gem 'nokogiri', '1.14.0'
# Windows and JRuby does not include zoneinfo files, so bundle the tzinfo-data gem
# and associated library

View File

@ -32,7 +32,7 @@ GEM
http_parser.rb (0.8.0)
i18n (1.12.0)
concurrent-ruby (~> 1.0)
jekyll (4.3.1)
jekyll (4.3.2)
addressable (~> 2.4)
colorator (~> 1.0)
em-websocket (~> 0.5)
@ -55,17 +55,17 @@ GEM
sass-embedded (~> 1.54)
jekyll-sitemap (1.4.0)
jekyll (>= 3.7, < 5.0)
jekyll-toc (0.17.1)
jekyll-toc (0.18.0)
jekyll (>= 3.9)
nokogiri (~> 1.11)
nokogiri (~> 1.12)
jekyll-watch (2.2.1)
listen (~> 3.0)
kramdown (2.4.0)
rexml
kramdown-parser-gfm (1.1.0)
kramdown (~> 2.0)
liquid (4.0.3)
listen (3.7.1)
liquid (4.0.4)
listen (3.8.0)
rb-fsevent (~> 0.10, >= 0.10.3)
rb-inotify (~> 0.9, >= 0.9.10)
mercenary (0.4.0)
@ -73,16 +73,16 @@ GEM
multi_json (1.15.0)
mustermann (3.0.0)
ruby2_keywords (~> 0.0.1)
nokogiri (1.13.10)
nokogiri (1.14.0)
mini_portile2 (~> 2.8.0)
racc (~> 1.4)
nokogiri (1.13.10-x64-mingw32)
nokogiri (1.14.0-x64-mingw32)
racc (~> 1.4)
pathutil (0.16.2)
forwardable-extended (~> 2.6)
public_suffix (5.0.1)
racc (1.6.2)
rack (2.2.5)
rack (2.2.6.2)
rack-protection (3.0.5)
rack
rake (13.0.6)
@ -118,7 +118,7 @@ GEM
concurrent-ruby (~> 1.0)
tzinfo-data (1.2022.7)
tzinfo (>= 1.0.0)
unicode-display_width (2.4.1)
unicode-display_width (2.4.2)
webrick (1.7.0)
PLATFORMS
@ -127,12 +127,12 @@ PLATFORMS
DEPENDENCIES
compass (= 1.0.3)
jekyll (= 4.3.1)
jekyll (= 4.3.2)
jekyll-commonmark (= 1.4.0)
jekyll-paginate (= 1.1.0)
jekyll-sitemap (= 1.4.0)
jekyll-toc (= 0.17.1)
nokogiri (= 1.13.10)
jekyll-toc (= 0.18.0)
nokogiri (= 1.14.0)
rake (= 13.0.6)
sass-globbing (= 1.1.5)
sassc (= 2.1.0)

View File

@ -108,10 +108,10 @@ social:
account: "https://fosstodon.org/@homeassistant"
# Home Assistant release details
current_major_version: 2022
current_minor_version: 12
current_patch_version: 9
date_released: 2023-01-02
current_major_version: 2023
current_minor_version: 1
current_patch_version: 7
date_released: 2023-01-22
# Either # or the anchor link to latest release notes in the blog post.
# Must be prefixed with a # and have double quotes around it.
@ -203,14 +203,10 @@ installation:
board: Raspberry Pi
installation_media: "SD card"
variants:
- name: "Raspberry Pi 4 64-bit"
- name: "Raspberry Pi 4"
key: "rpi4-64"
- name: "Raspberry Pi 4 32-bit"
key: "rpi4"
- name: "Raspberry Pi 3 64-bit"
- name: "Raspberry Pi 3"
key: "rpi3-64"
- name: "Raspberry Pi 3 32-bit"
key: "rpi3"
tinkerboard:
board: ASUS Tinkerboard

446
package-lock.json generated
View File

@ -14,7 +14,7 @@
"remark-lint-fenced-code-flag": "^3.1.1",
"remark-lint-no-shell-dollars": "^3.1.1",
"remark-stringify": "^10.0.2",
"textlint": "^12.5.0",
"textlint": "^12.6.0",
"textlint-filter-rule-comments": "^1.2.2",
"textlint-rule-common-misspellings": "^1.0.1",
"textlint-rule-terminology": "^3.0.4"
@ -228,42 +228,42 @@
"dev": true
},
"node_modules/@textlint/ast-node-types": {
"version": "12.3.0",
"resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-12.3.0.tgz",
"integrity": "sha512-ke5hlKy/xZ/vQt6j+h4k9GradJPDsV3FKsUqWpCpF/X8qWCU2zM4e1SMUAFjoUcLuF9in+eXIQ71Qm/AdjjkZQ==",
"version": "12.6.0",
"resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-12.6.0.tgz",
"integrity": "sha512-DPxbo0d6Uihwcv2MKE/6oUaCuipHeEygow0In98SHZRY8hMytYWoYQEfhcTE5i+0cIcA2hHZhz4OQ0JaujqZ6w==",
"dev": true
},
"node_modules/@textlint/ast-tester": {
"version": "12.5.0",
"resolved": "https://registry.npmjs.org/@textlint/ast-tester/-/ast-tester-12.5.0.tgz",
"integrity": "sha512-osHf1OFLC3RnjGyoSBynn2u5pgj7qkik8TNaxgPekVwlLWtJTcyh22PHo+mXPF47XWM5gJQmy/72nUrqtbDMPg==",
"version": "12.6.0",
"resolved": "https://registry.npmjs.org/@textlint/ast-tester/-/ast-tester-12.6.0.tgz",
"integrity": "sha512-Yis3qIbOtPwJjbz5316K+P8K/SHCwsJ6YIXAvNjX0wrekhLZIwHDWUlH1cfV4rKSe8IIabBhbiq8lx95w91A3w==",
"dev": true,
"dependencies": {
"@textlint/ast-node-types": "^12.3.0",
"@textlint/ast-node-types": "^12.6.0",
"debug": "^4.3.4"
}
},
"node_modules/@textlint/ast-traverse": {
"version": "12.5.0",
"resolved": "https://registry.npmjs.org/@textlint/ast-traverse/-/ast-traverse-12.5.0.tgz",
"integrity": "sha512-TAbfxz8x8Q/sn7D/h7OikzYp5NqPDrRExm3N+3v9yj+gq++fxHtskas48tm1TYcChTMq6BbPU+EGbdlMo3rWWA==",
"version": "12.6.0",
"resolved": "https://registry.npmjs.org/@textlint/ast-traverse/-/ast-traverse-12.6.0.tgz",
"integrity": "sha512-QJuUkRw6wSFN5SWSYDfcfvMD8nw2fAtuKdtSf64d4MO07e5F9Wkpkr4V1O2dknlBcdQ2nA/T9s59HVoQ1QAe/w==",
"dev": true,
"dependencies": {
"@textlint/ast-node-types": "^12.3.0"
"@textlint/ast-node-types": "^12.6.0"
}
},
"node_modules/@textlint/config-loader": {
"version": "12.5.0",
"resolved": "https://registry.npmjs.org/@textlint/config-loader/-/config-loader-12.5.0.tgz",
"integrity": "sha512-g706+XwdsUGpVXzqW7OFcBO8XdxH1AqbD0D3UYEjlfUONXD0c4Bymctdjk49hzOwTVDGqj+CCyvL+cB/X2bG+Q==",
"version": "12.6.0",
"resolved": "https://registry.npmjs.org/@textlint/config-loader/-/config-loader-12.6.0.tgz",
"integrity": "sha512-Sm4GwsABjMquS95K0rr9rHkiHXaxF6USbDc5+sCc/KJ+FqcfFwIBUZvp3inyaD3vgRYsvbYmy92qF10VLwplOA==",
"dev": true,
"dependencies": {
"@textlint/kernel": "^12.5.0",
"@textlint/module-interop": "^12.5.0",
"@textlint/types": "^12.5.0",
"@textlint/utils": "^12.5.0",
"@textlint/kernel": "^12.6.0",
"@textlint/module-interop": "^12.6.0",
"@textlint/types": "^12.6.0",
"@textlint/utils": "^12.6.0",
"debug": "^4.3.4",
"rc-config-loader": "^4.1.1",
"rc-config-loader": "^4.1.2",
"try-resolve": "^1.0.1"
}
},
@ -298,19 +298,19 @@
}
},
"node_modules/@textlint/feature-flag": {
"version": "12.5.0",
"resolved": "https://registry.npmjs.org/@textlint/feature-flag/-/feature-flag-12.5.0.tgz",
"integrity": "sha512-GdyRbbIsWRuZieWKvRxQA8j5wX5hzq+QqEmuputBrU/KKapNfkg6uNY2GOY6SWvC8QcwD0dYh3Dy1x2txT8p8Q==",
"version": "12.6.0",
"resolved": "https://registry.npmjs.org/@textlint/feature-flag/-/feature-flag-12.6.0.tgz",
"integrity": "sha512-iIdK/ItmPIOEXn4C97Gz495ni9u+Qzwf8Dc8W8nQaAwy3GALL5hbm5VK84Q0bf6q+/2wgQ3CcTebqySQsX9Ohg==",
"dev": true
},
"node_modules/@textlint/fixer-formatter": {
"version": "12.5.0",
"resolved": "https://registry.npmjs.org/@textlint/fixer-formatter/-/fixer-formatter-12.5.0.tgz",
"integrity": "sha512-iq+fdacaVcI1W3izo2V6JJOcnlUdDL9mX2Q1Ok3b+xwEzG5ZFo3G8iPpdQZXVZDE2jehRSvom8gsOds+n5ZffQ==",
"version": "12.6.0",
"resolved": "https://registry.npmjs.org/@textlint/fixer-formatter/-/fixer-formatter-12.6.0.tgz",
"integrity": "sha512-gFbeq1GC6XGtTg+22GXvGT5veQGw13vuXjosY/2HfWjGsT/7RS6Jq5AL43y3sHQ0pWaOh0Yk+JmDFfL2FqNNFQ==",
"dev": true,
"dependencies": {
"@textlint/module-interop": "^12.5.0",
"@textlint/types": "^12.5.0",
"@textlint/module-interop": "^12.6.0",
"@textlint/types": "^12.6.0",
"chalk": "^4.1.2",
"debug": "^4.3.4",
"diff": "^4.0.2",
@ -322,33 +322,48 @@
}
},
"node_modules/@textlint/kernel": {
"version": "12.5.0",
"resolved": "https://registry.npmjs.org/@textlint/kernel/-/kernel-12.5.0.tgz",
"integrity": "sha512-9UspUHtS2FShTO9pWnrZjadjIvJzFIdIZDKIYCdZuUdU8dEhJqwOdYosqM4N5Wy40aMKnv4Voxp80Ssaq7zZaA==",
"version": "12.6.0",
"resolved": "https://registry.npmjs.org/@textlint/kernel/-/kernel-12.6.0.tgz",
"integrity": "sha512-F4lpOc7eNc45i9FCoN39GQpiCbtWunHS6zkn61tj0Wf7YqNuzkjeydaQbFtLcRag3CQw0CcjNBSddPOtLiGZNA==",
"dev": true,
"dependencies": {
"@textlint/ast-node-types": "^12.3.0",
"@textlint/ast-tester": "^12.5.0",
"@textlint/ast-traverse": "^12.5.0",
"@textlint/feature-flag": "^12.5.0",
"@textlint/source-code-fixer": "^12.5.0",
"@textlint/types": "^12.5.0",
"@textlint/utils": "^12.5.0",
"@textlint/ast-node-types": "^12.6.0",
"@textlint/ast-tester": "^12.6.0",
"@textlint/ast-traverse": "^12.6.0",
"@textlint/feature-flag": "^12.6.0",
"@textlint/source-code-fixer": "^12.6.0",
"@textlint/types": "^12.6.0",
"@textlint/utils": "^12.6.0",
"debug": "^4.3.4",
"deep-equal": "^1.1.1",
"structured-source": "^3.0.2"
"structured-source": "^4.0.0"
}
},
"node_modules/@textlint/kernel/node_modules/boundary": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/boundary/-/boundary-2.0.0.tgz",
"integrity": "sha512-rJKn5ooC9u8q13IMCrW0RSp31pxBCHE3y9V/tp3TdWSLf8Em3p6Di4NBpfzbJge9YjjFEsD0RtFEjtvHL5VyEA==",
"dev": true
},
"node_modules/@textlint/kernel/node_modules/structured-source": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/structured-source/-/structured-source-4.0.0.tgz",
"integrity": "sha512-qGzRFNJDjFieQkl/sVOI2dUjHKRyL9dAJi2gCPGJLbJHBIkyOHxjuocpIEfbLioX+qSJpvbYdT49/YCdMznKxA==",
"dev": true,
"dependencies": {
"boundary": "^2.0.0"
}
},
"node_modules/@textlint/linter-formatter": {
"version": "12.5.0",
"resolved": "https://registry.npmjs.org/@textlint/linter-formatter/-/linter-formatter-12.5.0.tgz",
"integrity": "sha512-cJ87VGmyqDyjxT2aL3492g/YyGh6AU7/3QqxKN9q8rxJtzaY2e1uJrUKdpj0oOj1xZzYYv8zPeIpFaiFtNW02Q==",
"version": "12.6.0",
"resolved": "https://registry.npmjs.org/@textlint/linter-formatter/-/linter-formatter-12.6.0.tgz",
"integrity": "sha512-jz2f78PFjPl9hiOKOa5yxQ6v8vbqY7jNABbOubaLmtrM2zxF/OjbRjrD+w1zzJNlT33yseG2XSJFAdQEyrj30g==",
"dev": true,
"dependencies": {
"@azu/format-text": "^1.0.1",
"@azu/style-format": "^1.0.0",
"@textlint/module-interop": "^12.5.0",
"@textlint/types": "^12.5.0",
"@textlint/module-interop": "^12.6.0",
"@textlint/types": "^12.6.0",
"chalk": "^4.1.2",
"debug": "^4.3.4",
"is-file": "^1.0.0",
@ -364,12 +379,12 @@
}
},
"node_modules/@textlint/markdown-to-ast": {
"version": "12.5.0",
"resolved": "https://registry.npmjs.org/@textlint/markdown-to-ast/-/markdown-to-ast-12.5.0.tgz",
"integrity": "sha512-+fUslPm0+ukMnRVMPUQwKv1DEwmDP/rXFuzc5+k5tCMhighZ/Fv/e3Y9MUe7SgNDte7ilajTa3/uP0Iurr60WA==",
"version": "12.6.0",
"resolved": "https://registry.npmjs.org/@textlint/markdown-to-ast/-/markdown-to-ast-12.6.0.tgz",
"integrity": "sha512-zy+bs7CW7R+s5FadonIb1ZWKrCt2uW563fDIlwmTLq53At07qFdp5haf60CSHBhatYkSOcUsWBu8+VXqIvRI1A==",
"dev": true,
"dependencies": {
"@textlint/ast-node-types": "^12.3.0",
"@textlint/ast-node-types": "^12.6.0",
"debug": "^4.3.4",
"mdast-util-gfm-autolink-literal": "^0.1.3",
"remark-footnotes": "^3.0.0",
@ -699,61 +714,61 @@
}
},
"node_modules/@textlint/module-interop": {
"version": "12.5.0",
"resolved": "https://registry.npmjs.org/@textlint/module-interop/-/module-interop-12.5.0.tgz",
"integrity": "sha512-NmkHL5tt+HEqLm00JSW1f03KTbEqOzupliboSZ2HeNhOqZxSX4wR3lBlGqVeVi5dImMWrt40oa+AbkqkD78b9Q==",
"version": "12.6.0",
"resolved": "https://registry.npmjs.org/@textlint/module-interop/-/module-interop-12.6.0.tgz",
"integrity": "sha512-gdb6XSBe/1K80jr/wu6q0q2z+d5u9c+QQFSN9C4VseoQJ1udDRQ5vTyMCBsMBdf2DQ5/ccD/8NH0SINe/dAbcA==",
"dev": true
},
"node_modules/@textlint/source-code-fixer": {
"version": "12.5.0",
"resolved": "https://registry.npmjs.org/@textlint/source-code-fixer/-/source-code-fixer-12.5.0.tgz",
"integrity": "sha512-7LebJ6Y64Rb4fVYyokpU8FnjNLdx+TehcHQJ9L/fi8PYVjpS/08klYtYfRtKWmi/vrWED7U0aGhb8Xr26NuWFw==",
"version": "12.6.0",
"resolved": "https://registry.npmjs.org/@textlint/source-code-fixer/-/source-code-fixer-12.6.0.tgz",
"integrity": "sha512-K9bijbOIo+bvFYW48+K2EU6H7pp8zL8cRqnZvWcLBgv+cZ4DL1RrUcXE8XK4PtQM+eYu+vzFL7DTdDqLWbcf3A==",
"dev": true,
"dependencies": {
"@textlint/types": "^12.5.0",
"@textlint/types": "^12.6.0",
"debug": "^4.3.4"
}
},
"node_modules/@textlint/text-to-ast": {
"version": "12.5.0",
"resolved": "https://registry.npmjs.org/@textlint/text-to-ast/-/text-to-ast-12.5.0.tgz",
"integrity": "sha512-wOWYX+d821ThwNYNk5hfxOBxvkqKUpNOBKkDaic4V+dkuBoAS0D9lE9fA9Ps62kL/I1uQwhU5d4qsAHWnFmQkw==",
"version": "12.6.0",
"resolved": "https://registry.npmjs.org/@textlint/text-to-ast/-/text-to-ast-12.6.0.tgz",
"integrity": "sha512-HuXrKhbnV3hv/cQNpvYhlbZI0WiGRBbhk+cnjR9F9tPmwdffHMZg0A52S0GFGVZRVdhxhooUBiBGNewHfSD/eA==",
"dev": true,
"dependencies": {
"@textlint/ast-node-types": "^12.3.0"
"@textlint/ast-node-types": "^12.6.0"
}
},
"node_modules/@textlint/textlint-plugin-markdown": {
"version": "12.5.0",
"resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-markdown/-/textlint-plugin-markdown-12.5.0.tgz",
"integrity": "sha512-1B4mTmA1NOvK2kAk4Rl/TW3QFB80iwhsOKSJ16nCH/yvF82xgH+Gu4gQB/prNpACb4TivmzwvBRYp7rzhOTTyA==",
"version": "12.6.0",
"resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-markdown/-/textlint-plugin-markdown-12.6.0.tgz",
"integrity": "sha512-51Lr5/XTKsim+WInSgwDzTWx73QXF6WjbooB8nEkxh1PcXOVkMbjppQcb91woOEbUlMC0h9RXUGzQpWjFM9JpQ==",
"dev": true,
"dependencies": {
"@textlint/markdown-to-ast": "^12.5.0"
"@textlint/markdown-to-ast": "^12.6.0"
}
},
"node_modules/@textlint/textlint-plugin-text": {
"version": "12.5.0",
"resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-text/-/textlint-plugin-text-12.5.0.tgz",
"integrity": "sha512-ec3rZaJYytoscwpAtuxD4UM3bUPqNAeWKia+LMaVMWREULwKfntlSAqSNmudujEkxdsKr028CkzYuP78q8Xmuw==",
"version": "12.6.0",
"resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-text/-/textlint-plugin-text-12.6.0.tgz",
"integrity": "sha512-qiqkiaC7qR4tkxSeh2MDLVrMcT+oCO+Y3JroP+W9GlSVoHavYW8LD0G7sZNHgCv4lc6zCUXPxC0rZPxsMSkwVA==",
"dev": true,
"dependencies": {
"@textlint/text-to-ast": "^12.5.0"
"@textlint/text-to-ast": "^12.6.0"
}
},
"node_modules/@textlint/types": {
"version": "12.5.0",
"resolved": "https://registry.npmjs.org/@textlint/types/-/types-12.5.0.tgz",
"integrity": "sha512-Po5qOubilL/g3dx+ZUgaQzNXbROADBF4Z5xy7qqgV6pBQIEE/06INZDmmLE1Eesm2zoDpygoG/1f/0/Cy5Yupw==",
"version": "12.6.0",
"resolved": "https://registry.npmjs.org/@textlint/types/-/types-12.6.0.tgz",
"integrity": "sha512-rCW4OC0bDEhGDxNkhWh2V7F6Bzem5v09uqn3D/7QcDqReSEJ6yUYuNaSRVZCNEkNmgmO9K1nUeQf37wqhPzBJw==",
"dev": true,
"dependencies": {
"@textlint/ast-node-types": "^12.3.0"
"@textlint/ast-node-types": "^12.6.0"
}
},
"node_modules/@textlint/utils": {
"version": "12.5.0",
"resolved": "https://registry.npmjs.org/@textlint/utils/-/utils-12.5.0.tgz",
"integrity": "sha512-bQWrQ7Xaru1DRLQhAQQJgNnfGQIwgTgWUigdS5wSwpbmfLDnaMzHu3AG0lk5hEnELMKTCIej5uCR0+YscyUckg==",
"version": "12.6.0",
"resolved": "https://registry.npmjs.org/@textlint/utils/-/utils-12.6.0.tgz",
"integrity": "sha512-RzF5onZIS5WQS1gnJJDOb58bb7ktp35GFrLpRmzDMEHS+WrT8xQ97NwIivm+5f0/MQluiOUoJ6tNlltIQKTAqQ==",
"dev": true
},
"node_modules/@types/concat-stream": {
@ -1489,9 +1504,9 @@
}
},
"node_modules/get-intrinsic": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz",
"integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==",
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz",
"integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==",
"dev": true,
"dependencies": {
"function-bind": "^1.1.1",
@ -4744,9 +4759,9 @@
}
},
"node_modules/punycode": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
"integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz",
"integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==",
"dev": true,
"engines": {
"node": ">=6"
@ -5334,23 +5349,23 @@
"dev": true
},
"node_modules/textlint": {
"version": "12.5.0",
"resolved": "https://registry.npmjs.org/textlint/-/textlint-12.5.0.tgz",
"integrity": "sha512-81pwYha45aXCN6oVu2qjQ6nWaXT/U0nabl+S1F8HiY6pQMYwaX1D0on/rLWDO+K7BDQFPdrnO/7/PMw5LEU2Cg==",
"version": "12.6.0",
"resolved": "https://registry.npmjs.org/textlint/-/textlint-12.6.0.tgz",
"integrity": "sha512-ApCBRN6bq0ATD3E3f7gdRni4L/zcpy6mbZ9PrDyfc96zt0T98FYd2hATxS1g13AOov8pgMGm8qYmYFTqKXRFzQ==",
"dev": true,
"dependencies": {
"@textlint/ast-node-types": "^12.3.0",
"@textlint/ast-traverse": "^12.5.0",
"@textlint/config-loader": "^12.5.0",
"@textlint/feature-flag": "^12.5.0",
"@textlint/fixer-formatter": "^12.5.0",
"@textlint/kernel": "^12.5.0",
"@textlint/linter-formatter": "^12.5.0",
"@textlint/module-interop": "^12.5.0",
"@textlint/textlint-plugin-markdown": "^12.5.0",
"@textlint/textlint-plugin-text": "^12.5.0",
"@textlint/types": "^12.5.0",
"@textlint/utils": "^12.5.0",
"@textlint/ast-node-types": "^12.6.0",
"@textlint/ast-traverse": "^12.6.0",
"@textlint/config-loader": "^12.6.0",
"@textlint/feature-flag": "^12.6.0",
"@textlint/fixer-formatter": "^12.6.0",
"@textlint/kernel": "^12.6.0",
"@textlint/linter-formatter": "^12.6.0",
"@textlint/module-interop": "^12.6.0",
"@textlint/textlint-plugin-markdown": "^12.6.0",
"@textlint/textlint-plugin-text": "^12.6.0",
"@textlint/types": "^12.6.0",
"@textlint/utils": "^12.6.0",
"debug": "^4.3.4",
"deep-equal": "^1.1.1",
"file-entry-cache": "^5.0.1",
@ -5364,7 +5379,7 @@
"rc-config-loader": "^3.0.0",
"read-pkg": "^1.1.0",
"read-pkg-up": "^3.0.0",
"structured-source": "^3.0.2",
"structured-source": "^4.0.0",
"try-resolve": "^1.0.1",
"unique-concat": "^0.2.2"
},
@ -5493,6 +5508,21 @@
"unist-util-is": "^3.0.0"
}
},
"node_modules/textlint/node_modules/boundary": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/boundary/-/boundary-2.0.0.tgz",
"integrity": "sha512-rJKn5ooC9u8q13IMCrW0RSp31pxBCHE3y9V/tp3TdWSLf8Em3p6Di4NBpfzbJge9YjjFEsD0RtFEjtvHL5VyEA==",
"dev": true
},
"node_modules/textlint/node_modules/structured-source": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/structured-source/-/structured-source-4.0.0.tgz",
"integrity": "sha512-qGzRFNJDjFieQkl/sVOI2dUjHKRyL9dAJi2gCPGJLbJHBIkyOHxjuocpIEfbLioX+qSJpvbYdT49/YCdMznKxA==",
"dev": true,
"dependencies": {
"boundary": "^2.0.0"
}
},
"node_modules/to-regex-range": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
@ -6419,42 +6449,42 @@
"dev": true
},
"@textlint/ast-node-types": {
"version": "12.3.0",
"resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-12.3.0.tgz",
"integrity": "sha512-ke5hlKy/xZ/vQt6j+h4k9GradJPDsV3FKsUqWpCpF/X8qWCU2zM4e1SMUAFjoUcLuF9in+eXIQ71Qm/AdjjkZQ==",
"version": "12.6.0",
"resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-12.6.0.tgz",
"integrity": "sha512-DPxbo0d6Uihwcv2MKE/6oUaCuipHeEygow0In98SHZRY8hMytYWoYQEfhcTE5i+0cIcA2hHZhz4OQ0JaujqZ6w==",
"dev": true
},
"@textlint/ast-tester": {
"version": "12.5.0",
"resolved": "https://registry.npmjs.org/@textlint/ast-tester/-/ast-tester-12.5.0.tgz",
"integrity": "sha512-osHf1OFLC3RnjGyoSBynn2u5pgj7qkik8TNaxgPekVwlLWtJTcyh22PHo+mXPF47XWM5gJQmy/72nUrqtbDMPg==",
"version": "12.6.0",
"resolved": "https://registry.npmjs.org/@textlint/ast-tester/-/ast-tester-12.6.0.tgz",
"integrity": "sha512-Yis3qIbOtPwJjbz5316K+P8K/SHCwsJ6YIXAvNjX0wrekhLZIwHDWUlH1cfV4rKSe8IIabBhbiq8lx95w91A3w==",
"dev": true,
"requires": {
"@textlint/ast-node-types": "^12.3.0",
"@textlint/ast-node-types": "^12.6.0",
"debug": "^4.3.4"
}
},
"@textlint/ast-traverse": {
"version": "12.5.0",
"resolved": "https://registry.npmjs.org/@textlint/ast-traverse/-/ast-traverse-12.5.0.tgz",
"integrity": "sha512-TAbfxz8x8Q/sn7D/h7OikzYp5NqPDrRExm3N+3v9yj+gq++fxHtskas48tm1TYcChTMq6BbPU+EGbdlMo3rWWA==",
"version": "12.6.0",
"resolved": "https://registry.npmjs.org/@textlint/ast-traverse/-/ast-traverse-12.6.0.tgz",
"integrity": "sha512-QJuUkRw6wSFN5SWSYDfcfvMD8nw2fAtuKdtSf64d4MO07e5F9Wkpkr4V1O2dknlBcdQ2nA/T9s59HVoQ1QAe/w==",
"dev": true,
"requires": {
"@textlint/ast-node-types": "^12.3.0"
"@textlint/ast-node-types": "^12.6.0"
}
},
"@textlint/config-loader": {
"version": "12.5.0",
"resolved": "https://registry.npmjs.org/@textlint/config-loader/-/config-loader-12.5.0.tgz",
"integrity": "sha512-g706+XwdsUGpVXzqW7OFcBO8XdxH1AqbD0D3UYEjlfUONXD0c4Bymctdjk49hzOwTVDGqj+CCyvL+cB/X2bG+Q==",
"version": "12.6.0",
"resolved": "https://registry.npmjs.org/@textlint/config-loader/-/config-loader-12.6.0.tgz",
"integrity": "sha512-Sm4GwsABjMquS95K0rr9rHkiHXaxF6USbDc5+sCc/KJ+FqcfFwIBUZvp3inyaD3vgRYsvbYmy92qF10VLwplOA==",
"dev": true,
"requires": {
"@textlint/kernel": "^12.5.0",
"@textlint/module-interop": "^12.5.0",
"@textlint/types": "^12.5.0",
"@textlint/utils": "^12.5.0",
"@textlint/kernel": "^12.6.0",
"@textlint/module-interop": "^12.6.0",
"@textlint/types": "^12.6.0",
"@textlint/utils": "^12.6.0",
"debug": "^4.3.4",
"rc-config-loader": "^4.1.1",
"rc-config-loader": "^4.1.2",
"try-resolve": "^1.0.1"
},
"dependencies": {
@ -6488,19 +6518,19 @@
}
},
"@textlint/feature-flag": {
"version": "12.5.0",
"resolved": "https://registry.npmjs.org/@textlint/feature-flag/-/feature-flag-12.5.0.tgz",
"integrity": "sha512-GdyRbbIsWRuZieWKvRxQA8j5wX5hzq+QqEmuputBrU/KKapNfkg6uNY2GOY6SWvC8QcwD0dYh3Dy1x2txT8p8Q==",
"version": "12.6.0",
"resolved": "https://registry.npmjs.org/@textlint/feature-flag/-/feature-flag-12.6.0.tgz",
"integrity": "sha512-iIdK/ItmPIOEXn4C97Gz495ni9u+Qzwf8Dc8W8nQaAwy3GALL5hbm5VK84Q0bf6q+/2wgQ3CcTebqySQsX9Ohg==",
"dev": true
},
"@textlint/fixer-formatter": {
"version": "12.5.0",
"resolved": "https://registry.npmjs.org/@textlint/fixer-formatter/-/fixer-formatter-12.5.0.tgz",
"integrity": "sha512-iq+fdacaVcI1W3izo2V6JJOcnlUdDL9mX2Q1Ok3b+xwEzG5ZFo3G8iPpdQZXVZDE2jehRSvom8gsOds+n5ZffQ==",
"version": "12.6.0",
"resolved": "https://registry.npmjs.org/@textlint/fixer-formatter/-/fixer-formatter-12.6.0.tgz",
"integrity": "sha512-gFbeq1GC6XGtTg+22GXvGT5veQGw13vuXjosY/2HfWjGsT/7RS6Jq5AL43y3sHQ0pWaOh0Yk+JmDFfL2FqNNFQ==",
"dev": true,
"requires": {
"@textlint/module-interop": "^12.5.0",
"@textlint/types": "^12.5.0",
"@textlint/module-interop": "^12.6.0",
"@textlint/types": "^12.6.0",
"chalk": "^4.1.2",
"debug": "^4.3.4",
"diff": "^4.0.2",
@ -6512,33 +6542,50 @@
}
},
"@textlint/kernel": {
"version": "12.5.0",
"resolved": "https://registry.npmjs.org/@textlint/kernel/-/kernel-12.5.0.tgz",
"integrity": "sha512-9UspUHtS2FShTO9pWnrZjadjIvJzFIdIZDKIYCdZuUdU8dEhJqwOdYosqM4N5Wy40aMKnv4Voxp80Ssaq7zZaA==",
"version": "12.6.0",
"resolved": "https://registry.npmjs.org/@textlint/kernel/-/kernel-12.6.0.tgz",
"integrity": "sha512-F4lpOc7eNc45i9FCoN39GQpiCbtWunHS6zkn61tj0Wf7YqNuzkjeydaQbFtLcRag3CQw0CcjNBSddPOtLiGZNA==",
"dev": true,
"requires": {
"@textlint/ast-node-types": "^12.3.0",
"@textlint/ast-tester": "^12.5.0",
"@textlint/ast-traverse": "^12.5.0",
"@textlint/feature-flag": "^12.5.0",
"@textlint/source-code-fixer": "^12.5.0",
"@textlint/types": "^12.5.0",
"@textlint/utils": "^12.5.0",
"@textlint/ast-node-types": "^12.6.0",
"@textlint/ast-tester": "^12.6.0",
"@textlint/ast-traverse": "^12.6.0",
"@textlint/feature-flag": "^12.6.0",
"@textlint/source-code-fixer": "^12.6.0",
"@textlint/types": "^12.6.0",
"@textlint/utils": "^12.6.0",
"debug": "^4.3.4",
"deep-equal": "^1.1.1",
"structured-source": "^3.0.2"
"structured-source": "^4.0.0"
},
"dependencies": {
"boundary": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/boundary/-/boundary-2.0.0.tgz",
"integrity": "sha512-rJKn5ooC9u8q13IMCrW0RSp31pxBCHE3y9V/tp3TdWSLf8Em3p6Di4NBpfzbJge9YjjFEsD0RtFEjtvHL5VyEA==",
"dev": true
},
"structured-source": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/structured-source/-/structured-source-4.0.0.tgz",
"integrity": "sha512-qGzRFNJDjFieQkl/sVOI2dUjHKRyL9dAJi2gCPGJLbJHBIkyOHxjuocpIEfbLioX+qSJpvbYdT49/YCdMznKxA==",
"dev": true,
"requires": {
"boundary": "^2.0.0"
}
}
}
},
"@textlint/linter-formatter": {
"version": "12.5.0",
"resolved": "https://registry.npmjs.org/@textlint/linter-formatter/-/linter-formatter-12.5.0.tgz",
"integrity": "sha512-cJ87VGmyqDyjxT2aL3492g/YyGh6AU7/3QqxKN9q8rxJtzaY2e1uJrUKdpj0oOj1xZzYYv8zPeIpFaiFtNW02Q==",
"version": "12.6.0",
"resolved": "https://registry.npmjs.org/@textlint/linter-formatter/-/linter-formatter-12.6.0.tgz",
"integrity": "sha512-jz2f78PFjPl9hiOKOa5yxQ6v8vbqY7jNABbOubaLmtrM2zxF/OjbRjrD+w1zzJNlT33yseG2XSJFAdQEyrj30g==",
"dev": true,
"requires": {
"@azu/format-text": "^1.0.1",
"@azu/style-format": "^1.0.0",
"@textlint/module-interop": "^12.5.0",
"@textlint/types": "^12.5.0",
"@textlint/module-interop": "^12.6.0",
"@textlint/types": "^12.6.0",
"chalk": "^4.1.2",
"debug": "^4.3.4",
"is-file": "^1.0.0",
@ -6554,12 +6601,12 @@
}
},
"@textlint/markdown-to-ast": {
"version": "12.5.0",
"resolved": "https://registry.npmjs.org/@textlint/markdown-to-ast/-/markdown-to-ast-12.5.0.tgz",
"integrity": "sha512-+fUslPm0+ukMnRVMPUQwKv1DEwmDP/rXFuzc5+k5tCMhighZ/Fv/e3Y9MUe7SgNDte7ilajTa3/uP0Iurr60WA==",
"version": "12.6.0",
"resolved": "https://registry.npmjs.org/@textlint/markdown-to-ast/-/markdown-to-ast-12.6.0.tgz",
"integrity": "sha512-zy+bs7CW7R+s5FadonIb1ZWKrCt2uW563fDIlwmTLq53At07qFdp5haf60CSHBhatYkSOcUsWBu8+VXqIvRI1A==",
"dev": true,
"requires": {
"@textlint/ast-node-types": "^12.3.0",
"@textlint/ast-node-types": "^12.6.0",
"debug": "^4.3.4",
"mdast-util-gfm-autolink-literal": "^0.1.3",
"remark-footnotes": "^3.0.0",
@ -6777,61 +6824,61 @@
}
},
"@textlint/module-interop": {
"version": "12.5.0",
"resolved": "https://registry.npmjs.org/@textlint/module-interop/-/module-interop-12.5.0.tgz",
"integrity": "sha512-NmkHL5tt+HEqLm00JSW1f03KTbEqOzupliboSZ2HeNhOqZxSX4wR3lBlGqVeVi5dImMWrt40oa+AbkqkD78b9Q==",
"version": "12.6.0",
"resolved": "https://registry.npmjs.org/@textlint/module-interop/-/module-interop-12.6.0.tgz",
"integrity": "sha512-gdb6XSBe/1K80jr/wu6q0q2z+d5u9c+QQFSN9C4VseoQJ1udDRQ5vTyMCBsMBdf2DQ5/ccD/8NH0SINe/dAbcA==",
"dev": true
},
"@textlint/source-code-fixer": {
"version": "12.5.0",
"resolved": "https://registry.npmjs.org/@textlint/source-code-fixer/-/source-code-fixer-12.5.0.tgz",
"integrity": "sha512-7LebJ6Y64Rb4fVYyokpU8FnjNLdx+TehcHQJ9L/fi8PYVjpS/08klYtYfRtKWmi/vrWED7U0aGhb8Xr26NuWFw==",
"version": "12.6.0",
"resolved": "https://registry.npmjs.org/@textlint/source-code-fixer/-/source-code-fixer-12.6.0.tgz",
"integrity": "sha512-K9bijbOIo+bvFYW48+K2EU6H7pp8zL8cRqnZvWcLBgv+cZ4DL1RrUcXE8XK4PtQM+eYu+vzFL7DTdDqLWbcf3A==",
"dev": true,
"requires": {
"@textlint/types": "^12.5.0",
"@textlint/types": "^12.6.0",
"debug": "^4.3.4"
}
},
"@textlint/text-to-ast": {
"version": "12.5.0",
"resolved": "https://registry.npmjs.org/@textlint/text-to-ast/-/text-to-ast-12.5.0.tgz",
"integrity": "sha512-wOWYX+d821ThwNYNk5hfxOBxvkqKUpNOBKkDaic4V+dkuBoAS0D9lE9fA9Ps62kL/I1uQwhU5d4qsAHWnFmQkw==",
"version": "12.6.0",
"resolved": "https://registry.npmjs.org/@textlint/text-to-ast/-/text-to-ast-12.6.0.tgz",
"integrity": "sha512-HuXrKhbnV3hv/cQNpvYhlbZI0WiGRBbhk+cnjR9F9tPmwdffHMZg0A52S0GFGVZRVdhxhooUBiBGNewHfSD/eA==",
"dev": true,
"requires": {
"@textlint/ast-node-types": "^12.3.0"
"@textlint/ast-node-types": "^12.6.0"
}
},
"@textlint/textlint-plugin-markdown": {
"version": "12.5.0",
"resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-markdown/-/textlint-plugin-markdown-12.5.0.tgz",
"integrity": "sha512-1B4mTmA1NOvK2kAk4Rl/TW3QFB80iwhsOKSJ16nCH/yvF82xgH+Gu4gQB/prNpACb4TivmzwvBRYp7rzhOTTyA==",
"version": "12.6.0",
"resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-markdown/-/textlint-plugin-markdown-12.6.0.tgz",
"integrity": "sha512-51Lr5/XTKsim+WInSgwDzTWx73QXF6WjbooB8nEkxh1PcXOVkMbjppQcb91woOEbUlMC0h9RXUGzQpWjFM9JpQ==",
"dev": true,
"requires": {
"@textlint/markdown-to-ast": "^12.5.0"
"@textlint/markdown-to-ast": "^12.6.0"
}
},
"@textlint/textlint-plugin-text": {
"version": "12.5.0",
"resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-text/-/textlint-plugin-text-12.5.0.tgz",
"integrity": "sha512-ec3rZaJYytoscwpAtuxD4UM3bUPqNAeWKia+LMaVMWREULwKfntlSAqSNmudujEkxdsKr028CkzYuP78q8Xmuw==",
"version": "12.6.0",
"resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-text/-/textlint-plugin-text-12.6.0.tgz",
"integrity": "sha512-qiqkiaC7qR4tkxSeh2MDLVrMcT+oCO+Y3JroP+W9GlSVoHavYW8LD0G7sZNHgCv4lc6zCUXPxC0rZPxsMSkwVA==",
"dev": true,
"requires": {
"@textlint/text-to-ast": "^12.5.0"
"@textlint/text-to-ast": "^12.6.0"
}
},
"@textlint/types": {
"version": "12.5.0",
"resolved": "https://registry.npmjs.org/@textlint/types/-/types-12.5.0.tgz",
"integrity": "sha512-Po5qOubilL/g3dx+ZUgaQzNXbROADBF4Z5xy7qqgV6pBQIEE/06INZDmmLE1Eesm2zoDpygoG/1f/0/Cy5Yupw==",
"version": "12.6.0",
"resolved": "https://registry.npmjs.org/@textlint/types/-/types-12.6.0.tgz",
"integrity": "sha512-rCW4OC0bDEhGDxNkhWh2V7F6Bzem5v09uqn3D/7QcDqReSEJ6yUYuNaSRVZCNEkNmgmO9K1nUeQf37wqhPzBJw==",
"dev": true,
"requires": {
"@textlint/ast-node-types": "^12.3.0"
"@textlint/ast-node-types": "^12.6.0"
}
},
"@textlint/utils": {
"version": "12.5.0",
"resolved": "https://registry.npmjs.org/@textlint/utils/-/utils-12.5.0.tgz",
"integrity": "sha512-bQWrQ7Xaru1DRLQhAQQJgNnfGQIwgTgWUigdS5wSwpbmfLDnaMzHu3AG0lk5hEnELMKTCIej5uCR0+YscyUckg==",
"version": "12.6.0",
"resolved": "https://registry.npmjs.org/@textlint/utils/-/utils-12.6.0.tgz",
"integrity": "sha512-RzF5onZIS5WQS1gnJJDOb58bb7ktp35GFrLpRmzDMEHS+WrT8xQ97NwIivm+5f0/MQluiOUoJ6tNlltIQKTAqQ==",
"dev": true
},
"@types/concat-stream": {
@ -7407,9 +7454,9 @@
"dev": true
},
"get-intrinsic": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz",
"integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==",
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz",
"integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==",
"dev": true,
"requires": {
"function-bind": "^1.1.1",
@ -9627,9 +9674,9 @@
"dev": true
},
"punycode": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
"integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz",
"integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==",
"dev": true
},
"rc-config-loader": {
@ -10074,23 +10121,23 @@
"dev": true
},
"textlint": {
"version": "12.5.0",
"resolved": "https://registry.npmjs.org/textlint/-/textlint-12.5.0.tgz",
"integrity": "sha512-81pwYha45aXCN6oVu2qjQ6nWaXT/U0nabl+S1F8HiY6pQMYwaX1D0on/rLWDO+K7BDQFPdrnO/7/PMw5LEU2Cg==",
"version": "12.6.0",
"resolved": "https://registry.npmjs.org/textlint/-/textlint-12.6.0.tgz",
"integrity": "sha512-ApCBRN6bq0ATD3E3f7gdRni4L/zcpy6mbZ9PrDyfc96zt0T98FYd2hATxS1g13AOov8pgMGm8qYmYFTqKXRFzQ==",
"dev": true,
"requires": {
"@textlint/ast-node-types": "^12.3.0",
"@textlint/ast-traverse": "^12.5.0",
"@textlint/config-loader": "^12.5.0",
"@textlint/feature-flag": "^12.5.0",
"@textlint/fixer-formatter": "^12.5.0",
"@textlint/kernel": "^12.5.0",
"@textlint/linter-formatter": "^12.5.0",
"@textlint/module-interop": "^12.5.0",
"@textlint/textlint-plugin-markdown": "^12.5.0",
"@textlint/textlint-plugin-text": "^12.5.0",
"@textlint/types": "^12.5.0",
"@textlint/utils": "^12.5.0",
"@textlint/ast-node-types": "^12.6.0",
"@textlint/ast-traverse": "^12.6.0",
"@textlint/config-loader": "^12.6.0",
"@textlint/feature-flag": "^12.6.0",
"@textlint/fixer-formatter": "^12.6.0",
"@textlint/kernel": "^12.6.0",
"@textlint/linter-formatter": "^12.6.0",
"@textlint/module-interop": "^12.6.0",
"@textlint/textlint-plugin-markdown": "^12.6.0",
"@textlint/textlint-plugin-text": "^12.6.0",
"@textlint/types": "^12.6.0",
"@textlint/utils": "^12.6.0",
"debug": "^4.3.4",
"deep-equal": "^1.1.1",
"file-entry-cache": "^5.0.1",
@ -10104,9 +10151,26 @@
"rc-config-loader": "^3.0.0",
"read-pkg": "^1.1.0",
"read-pkg-up": "^3.0.0",
"structured-source": "^3.0.2",
"structured-source": "^4.0.0",
"try-resolve": "^1.0.1",
"unique-concat": "^0.2.2"
},
"dependencies": {
"boundary": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/boundary/-/boundary-2.0.0.tgz",
"integrity": "sha512-rJKn5ooC9u8q13IMCrW0RSp31pxBCHE3y9V/tp3TdWSLf8Em3p6Di4NBpfzbJge9YjjFEsD0RtFEjtvHL5VyEA==",
"dev": true
},
"structured-source": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/structured-source/-/structured-source-4.0.0.tgz",
"integrity": "sha512-qGzRFNJDjFieQkl/sVOI2dUjHKRyL9dAJi2gCPGJLbJHBIkyOHxjuocpIEfbLioX+qSJpvbYdT49/YCdMznKxA==",
"dev": true,
"requires": {
"boundary": "^2.0.0"
}
}
}
},
"textlint-filter-rule-comments": {

View File

@ -9,7 +9,7 @@
"remark-lint-fenced-code-flag": "^3.1.1",
"remark-lint-no-shell-dollars": "^3.1.1",
"remark-stringify": "^10.0.2",
"textlint": "^12.5.0",
"textlint": "^12.6.0",
"textlint-filter-rule-comments": "^1.2.2",
"textlint-rule-common-misspellings": "^1.0.1",
"textlint-rule-terminology": "^3.0.4"

View File

@ -12,14 +12,13 @@ The Alarm Panel card allows you to arm and disarm your [alarm control panel](/in
Screenshot of the Alarm Panel card.
</p>
To add the Alarm Panel card to your user interface, click the menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the "Add Card" button in the bottom right corner and select **Alarm Panel** from the card picker. All options for this card can be configured via the user interface.
To add the Alarm Panel card to your user interface, click the menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the **Add Card** button in the bottom right corner and select from the card picker.
Alternatively, the card can be configured using YAML:
All options for this card can be configured via the user interface.
```yaml
type: alarm-panel
entity: alarm_control_panel.alarm
```
## YAML Configuration
The following YAML options are available when you use YAML mode or just prefer to use YAML in the Code Editor in the UI.
{% configuration %}
type:
@ -55,14 +54,14 @@ theme:
type: string
{% endconfiguration %}
## Examples
### Examples
Title example:
```yaml
- type: alarm-panel
name: House Alarm
entity: alarm_control_panel.alarm
type: alarm-panel
name: House Alarm
entity: alarm_control_panel.alarm
```
<p class='img'>

View File

@ -12,13 +12,18 @@ The Area card lets you control and monitor an individual area.
Screenshot of the Area card.
</p>
To add the Area card to your user interface, click the menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the **Add Card** button in the bottom right corner and select from the card picker.
To add the Area card to your user interface, click the menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the "Add Card" button in the bottom right corner and select **Area** from the card picker. All options for this card can be configured via the user interface.
All options for this card can be configured via the user interface.
Buttons will appear on the card for the entities in the area including fan, light and switch. A motion sensor icon will appear in the top left if a motion sensor is in the area and motion is detected by the motion sensor.
If a camera is added to the area you can show the camera feed instead of the area picture.
## YAML Configuration
The following YAML options are available when you use YAML mode or just prefer to use YAML in the Code Editor in the UI.
{% configuration %}
type:
required: true
@ -43,23 +48,21 @@ theme:
type: string
{% endconfiguration %}
## Example
Alternatively, the card can be configured using YAML:
### Example
Basic example:
```yaml
- type: area
area: bedroom
type: area
area: bedroom
```
Complex example
```yaml
- type: area
area: bedroom
navigation_path: my_bedroom
show_camera: true
theme: green
type: area
area: bedroom
navigation_path: my_bedroom
show_camera: true
theme: green
```

View File

@ -12,7 +12,9 @@ The Button card allows you to add buttons to perform tasks.
Screenshot of three Button Cards.
</p>
To add the Button card to your user interface, click the menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the "Add Card" button in the bottom right corner and select **Button** from the card picker. All options for this card can be configured via the user interface.
To add the Button card to your user interface, click the menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the **Add Card** button in the bottom right corner and select from the card picker.
All options for this card can be configured via the user interface.
## Card Settings
@ -37,9 +39,9 @@ Hold Action:
description: The action taken on card tap and hold. For more information, see the [action documentation](/dashboards/actions/#hold-action).
{% endconfiguration_basic %}
### YAML
## YAML Configuration
This is for if you use YAML mode or prefer to use YAML in the Code Editor in the UI.
The following YAML options are available when you use YAML mode or just prefer to use YAML in the Code Editor in the UI.
{% configuration %}
type:
@ -108,24 +110,15 @@ action_name:
default: Run
{% endconfiguration %}
Example:
### Examples
Basic example:
```yaml
type: button
entity: light.living_room
```
## Options For Exemptions
{% configuration badges %}
user:
required: true
description: The id of the user that can see the view tab.
type: string
{% endconfiguration %}
## Examples
Button Card with a button name and a script that runs when card is tapped:
```yaml

View File

@ -13,7 +13,9 @@ The Calendar card displays your [calendar](/integrations/#calendar) entities in
Screenshot of the Calendar card.
</p>
To add the Calendar card to your user interface, click the menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the "Add Card" button in the bottom right corner and select **Calendar** from the card picker. All options for this card can be configured via the user interface.
To add the Calendar card to your user interface, click the menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the **Add Card** button in the bottom right corner and select from the card picker.
All options for this card can be configured via the user interface.
## Card Settings
@ -28,9 +30,9 @@ Theme:
description: Name of any loaded theme to be used for this card. For more information about themes, see the [frontend documentation](/integrations/frontend/).
{% endconfiguration_basic %}
### YAML
## YAML Configuration
This is for if you use YAML mode or just prefer to use YAML in the Code Editor in the UI.
The following YAML options are available when you use YAML mode or just prefer to use YAML in the Code Editor in the UI.
{% configuration %}
type:
@ -55,7 +57,7 @@ theme:
type: string
{% endconfiguration %}
Example:
### Examples
```yaml
type: calendar

View File

@ -7,7 +7,15 @@ description: The Conditional card displays another card based on entity states.
The Conditional card displays another card based on entity states.
To add the Conditional card to your user interface, click the menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the "Add Card" button in the bottom right corner and select **Conditional** from the card picker. All options for this card can be configured via the user interface.
Note: Conditions with more than one entity are treated as an 'and' condition. This means that for the card to show, *all* entities must meet the state requirements set.
To add the Conditional card to your user interface, click the menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the **Add Card** button in the bottom right corner and select from the card picker.
All options for this card can be configured via the user interface.
## YAML Configuration
The following YAML options are available when you use YAML mode or just prefer to use YAML in the Code Editor in the UI.
{% configuration %}
type:
@ -39,9 +47,7 @@ card:
*one is required (`state` or `state_not`)
Note: Conditions with more than one entity are treated as an 'and' condition. This means that for the card to show, *all* entities must meet the state requirements set.
## Examples
### Examples
```yaml
type: conditional

View File

@ -7,7 +7,11 @@ description: "The Entities card is the most common type of card. It groups items
The Entities card is the most common type of card. It groups items together into lists. It can be used to display an entity's state or attribute, but also contain buttons, web links, etc.
To add the Entities card to your user interface, click the menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the "Add Card" button in the bottom right corner and select **Entities** from the card picker.
To add the Entities card to your user interface, click the menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the **Add Card** button in the bottom right corner and select from the card picker.
## YAML Configuration
The following YAML options are available when you use YAML mode or just prefer to use YAML in the Code Editor in the UI.
{% configuration %}
type:
@ -373,9 +377,9 @@ download:
default: false
{% endconfiguration %}
## Examples
### Examples
### Entity rows
#### Entity rows
```yaml
type: entities
@ -393,7 +397,7 @@ entities:
- group.all_locks
```
### Buttons row
#### Buttons row
Above the divider are regular entity rows, below one of type `buttons`. Note that regular entity rows automatically show the entity name, whereas for buttons you have to explicitly specify a label / name.
@ -416,7 +420,7 @@ entities:
name: Dining Ceiling
```
### Other special rows
#### Other special rows
<p class='img'>
<img src='/images/dashboards/entity_row_special.jpg' alt='Screenshot of other special rows'>

View File

@ -7,13 +7,19 @@ description: "The Entity Filter card allows you to define a list of entities tha
The Entity Filter card allows you to define a list of entities that you want to track only when in a certain state. Very useful for showing lights that you forgot to turn off or show a list of people only when they're at home.
This type of card can also be used together with rest of cards that allow multiple entities, allowing you to use [glance](/dashboards/glance/) or [picture-glance](/dashboards/picture-glance/). By default it uses [entities](/dashboards/entities/) card model.
<p class='img'>
<img src='/images/dashboards/entity_filter.png' alt='Screenshot of the Entity Filter card'>
Screenshot of the Entity Filter card.
</p>
This type of card can also be used together with other cards that allow multiple entities, allowing you to use [glance](/dashboards/glance/) or [picture-glance](/dashboards/picture-glance/). By default, it uses the [entities](/dashboards/entities/) card model.
To add the Entity Filter card to your user interface, click the menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the **Add Card** button in the bottom right corner and select from the card picker.
## YAML Configuration
This card can only be configured in YAML.
{% configuration %}
type:
required: true
@ -39,7 +45,7 @@ show_empty:
default: true
{% endconfiguration %}
## Options for Entities
### Options For Entities
If you define entities as objects instead of strings (by adding `entity:` before entity ID), you can add more customization and configurations:
@ -74,7 +80,7 @@ state_filter:
type: list
{% endconfiguration %}
## Options for state_filter
### Options For state_filter
If you define `state_filter` as objects instead of strings (by adding `value:` before your state value), you can add more customization to your filter:

View File

@ -12,7 +12,13 @@ The Entity card gives you a quick overview of your entity's state.
Screenshot of the Entity card.
</p>
To add the Entity card to your user interface, click the menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the "Add Card" button in the bottom right corner and select **Entity** from the card picker.
To add the Entity card to your user interface, click the menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the **Add Card** button in the bottom right corner and select from the card picker.
All options for this card can be configured via the user interface.
## YAML Configuration
The following YAML options are available when you use YAML mode or just prefer to use YAML in the Code Editor in the UI.
{% configuration %}
type:
@ -56,9 +62,7 @@ footer:
type: map
{% endconfiguration %}
## Example
Alternatively, the card can be configured using YAML:
### Example
```yaml
- type: entity

View File

@ -17,14 +17,13 @@ Screenshot of the Gauge card.
Screenshot of the Gauge card in needle mode.
</p>
To add the Gauge card to your user interface, click the menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the "Add Card" button in the bottom right corner and select **Gauge** from the card picker. All options for this card can be configured via the user interface.
To add the Gauge card to your user interface, click the menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the **Add Card** button in the bottom right corner and select from the card picker.
Alternatively, the card can be configured using YAML:
All options for this card can be configured via the user interface.
```yaml
type: gauge
entity: sensor.cpu_usage
```
## YAML Configuration
The following YAML options are available when you use YAML mode or just prefer to use YAML in the Code Editor in the UI.
{% configuration %}
type:
@ -100,7 +99,7 @@ segments:
type: string
{% endconfiguration %}
## Examples
### Examples
Title and unit of measurement:

View File

@ -12,7 +12,13 @@ The Glance card is useful to group multiple sensors in a compact overview. Keep
Screenshot of the Glance card.
</p>
To add the Glance card to your user interface, click the menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the "Add Card" button in the bottom right corner and select **Glance** from the card picker.
To add the Glance card to your user interface, click the menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the **Add Card** button in the bottom right corner and select from the card picker.
All options for this card can be configured via the user interface.
## YAML Configuration
The following YAML options are available when you use YAML mode or just prefer to use YAML in the Code Editor in the UI.
{% configuration %}
type:
@ -57,7 +63,7 @@ state_color:
default: true
{% endconfiguration %}
## Options For Entities
### Options For Entities
If you define entities as objects instead of strings, you can add more customization and configuration:
@ -102,7 +108,7 @@ double_tap_action:
type: map
{% endconfiguration %}
## Options For Exemptions
### Options For Exemptions
{% configuration badges %}
user:
@ -111,7 +117,7 @@ user:
type: string
{% endconfiguration %}
## Examples
### Examples
Basic example:

View File

@ -12,7 +12,13 @@ The Grid card allows you to show multiple cards in a grid. It will first fill th
Screenshot of the Grid card.
</p>
To add the Grid card to your user interface, click the menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the "Add Card" button in the bottom right corner and select **Grid Card** from the card picker.
To add the Grid card to your user interface, click the menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the **Add Card** button in the bottom right corner and select from the card picker.
All options for this card can be configured via the user interface.
## YAML Configuration
The following YAML options are available when you use YAML mode or just prefer to use YAML in the Code Editor in the UI.
{% configuration %}
type:
@ -41,8 +47,6 @@ cards:
## Examples
Alternatively, the card can be configured using YAML:
Basic example:
```yaml

View File

@ -17,7 +17,13 @@ Screenshot of the History Graph card, when the sensor has no `unit_of_measuremen
Screenshot of the History Graph card, when the sensor has a `unit_of_measurement` defined.
</p>
To add the History Graph card to your user interface, click the menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the "Add Card" button in the bottom right corner and select **History Graph** from the card picker. All options for this card can be configured via the user interface.
To add the History Graph card to your user interface, click the menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the **Add Card** button in the bottom right corner and select from the card picker.
All options for this card can be configured via the user interface.
## YAML Configuration
The following YAML options are available when you use YAML mode or just prefer to use YAML in the Code Editor in the UI.
{% configuration %}
type:
@ -49,7 +55,7 @@ show_names:
default: true
{% endconfiguration %}
## Options For Entities
### Options For Entities
If you define entities as objects instead of strings, you can add more customization and configuration:
@ -64,9 +70,7 @@ name:
type: string
{% endconfiguration %}
## Examples
Alternatively, the card can be configured using YAML:
### Examples
```yaml
type: history-graph

View File

@ -7,7 +7,11 @@ description: "The Horizontal Stack card allows you to stack together multiple ca
The Horizontal Stack card allows you to stack together multiple cards, so they always sit next to each other in the space of one column.
To add the Horizontal Stack card to your user interface, click the menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the "Add Card" button in the bottom right corner and select **Horizontal Stack** from the card picker. All options for this card can be configured via the user interface.
To add the Horizontal Stack card to your user interface, click the menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the **Add Card** button in the bottom right corner and select from the card picker.
## YAML Configuration
The following YAML options are available when you use YAML mode or just prefer to use YAML in the Code Editor in the UI.
{% configuration %}
type:
@ -24,7 +28,7 @@ cards:
type: list
{% endconfiguration %}
## Example
### Example
```yaml
type: horizontal-stack

View File

@ -12,7 +12,13 @@ The Humidifier card lets you control and monitor humidifiers, dehumidifiers, and
Screenshot of the humidifier card.
</p>
To add the Humidifier card to your user interface, click the menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the "Add Card" button in the bottom right corner and select **Humidifier** from the card picker. All options for this card can be configured via the user interface.
To add the Humidifier card to your user interface, click the menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the **Add Card** button in the bottom right corner and select from the card picker.
All options for this card can be configured via the user interface.
## YAML Configuration
The following YAML options are available when you use YAML mode or just prefer to use YAML in the Code Editor in the UI.
{% configuration %}
type:
@ -34,12 +40,10 @@ theme:
type: string
{% endconfiguration %}
## Example
Alternatively, the card can be configured using YAML:
### Example
```yaml
- type: humidifier
entity: humidifier.bedroom
name: Bedroom Humidifier
type: humidifier
entity: humidifier.bedroom
name: Bedroom Humidifier
```

View File

@ -7,16 +7,22 @@ description: "The Webpage card allows you to embed your favorite webpage right i
The Webpage card allows you to embed your favorite webpage right into Home Assistant. You can also embed files stored in your `<config-directory>/www` folder and reference them using `/local/<file>`.
<div class='note warning'>
You can't embed sites using HTTP if you are using HTTPS for your Home Assistant.
</div>
<p class='img'>
<img width="500" src='/images/dashboards/iframe.png' alt='Windy weather radar as Webpage'>
Windy weather radar as Webpage.
</p>
To add the Webpage card to your user interface, click the menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the "Add Card" button in the bottom right corner and select **Webpage** from the card picker. All options for this card can be configured via the user interface.
To add the Webpage card to your user interface, click the menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the **Add Card** button in the bottom right corner and select from the card picker.
All options for this card can be configured via the user interface.
<div class='note warning'>
You can't embed sites using HTTP if you are using HTTPS for your Home Assistant.
</div>
## YAML Configuration
The following YAML options are available when you use YAML mode or just prefer to use YAML in the Code Editor in the UI.
{% configuration %}
type:
@ -38,9 +44,7 @@ title:
type: string
{% endconfiguration %}
## Examples
The card can also be configured using YAML, some examples below:
### Examples
```yaml
type: iframe

View File

@ -12,14 +12,13 @@ The Light card allows you to change the brightness of the light.
Screenshot of the Light card.
</p>
To add the Light card to your user interface, click the menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the "Add Card" button in the bottom right corner and select **Light** from the card picker. All options for this card can be configured via the user interface.
To add the Light card to your user interface, click the menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the **Add Card** button in the bottom right corner and select from the card picker.
Alternatively, the card can be configured using YAML:
All options for this card can be configured via the user interface.
```yaml
type: light
entity: light.bedroom
```
## YAML Configuration
The following YAML options are available when you use YAML mode or just prefer to use YAML in the Code Editor in the UI.
{% configuration %}
type:
@ -54,7 +53,14 @@ double_tap_action:
type: map
{% endconfiguration %}
## Examples
### Examples
Basic example:
```yaml
type: light
entity: light.bedroom
```
Overwriting names example:

View File

@ -12,7 +12,7 @@ The Logbook card displays entries from the logbook for specific entities.
Screenshot of the Logbook card.
</p>
To add the Logbook card to your user interface, click the menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the "Add Card" button in the bottom right corner and select **Logbook** from the card picker.
To add the Logbook card to your user interface, click the menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the **Add Card** button in the bottom right corner and select from the card picker.
## Card Settings
@ -27,9 +27,9 @@ Theme:
description: Name of any loaded theme to be used for this card. For more information about themes, see the [frontend documentation](/integrations/frontend/).
{% endconfiguration_basic %}
### YAML
## YAML Configuration
This is for if you use YAML mode or prefer to use YAML in the Code Editor in the UI.
The following YAML options are available when you use YAML mode or just prefer to use YAML in the Code Editor in the UI.
{% configuration %}
type:
@ -55,7 +55,7 @@ theme:
type: string
{% endconfiguration %}
Example:
### Examples
```yaml
type: logbook

View File

@ -12,7 +12,13 @@ The Map card that allows you to display entities on a map
Screenshot of the map card.
</p>
To add the Map card to your user interface, click the menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the "Add Card" button in the bottom right corner and select **Map** from the card picker. All options for this card can be configured via the user interface.
To add the Map card to your user interface, click the menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the **Add Card** button in the bottom right corner and select from the card picker.
All options for this card can be configured via the user interface.
## YAML Configuration
The following YAML options are available when you use YAML mode or just prefer to use YAML in the Code Editor in the UI.
{% configuration %}
type:
@ -71,8 +77,6 @@ hours_to_show:
## Examples
The card can also be configured using YAML, some examples below:
```yaml
type: map
aspect_ratio: 16:9

View File

@ -7,14 +7,18 @@ description: "The Markdown card is used to render Markdown"
The Markdown card is used to render [Markdown](https://commonmark.org/help/).
The renderer uses [Marked.js](https://marked.js.org), which supports [several specifications of Markdown](https://marked.js.org/#specifications), including CommonMark, GitHub Flavored Markdown (GFM) and `markdown.pl`.
<p class='img'>
<img src='/images/dashboards/markdown.png' alt='Screenshot of the markdown card'>
Screenshot of the Markdown card.
</p>
To add the Markdown card to your user interface, click the menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the "Add Card" button in the bottom right corner and select **Markdown** from the card picker.
The renderer uses [Marked.js](https://marked.js.org), which supports [several specifications of Markdown](https://marked.js.org/#specifications), including CommonMark, GitHub Flavored Markdown (GFM) and `markdown.pl`.
To add the Markdown card to your user interface, click the menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the **Add Card** button in the bottom right corner and select from the card picker.
## YAML Configuration
The following YAML options are available when you use YAML mode or just prefer to use YAML in the Code Editor in the UI.
{% configuration %}
type:
@ -46,9 +50,7 @@ theme:
type: string
{% endconfiguration %}
## Example
The card can also be configured using YAML, some examples below:
### Example
```yaml
type: markdown
@ -58,7 +60,7 @@ content: >
Starting with Home Assistant 0.72, we're experimenting with a new way of defining your interface.
```
## Template variables
### Template variables
A special template variable - `config` is set up for the `content` of the card. It contains the configuration of the card.
@ -101,9 +103,9 @@ content: |
{% endraw %}
## Icons
### Icons
You can use [materialdesignicons.com](https://materialdesignicons.com/) icons in the `content` of the card.
You can use [Material Design Icons](https://pictogrammers.com/library/mdi/) icons in the `content` of the card.
For example:

View File

@ -12,7 +12,11 @@ The Media Control card is used to display [Media Player](/integrations/#media-pl
Screenshot of the Media Control card.
</p>
To add the Media Control card to your user interface, click the menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the "Add Card" button in the bottom right corner and select **Media Control** from the card picker.
To add the Media Control card to your user interface, click the menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the **Add Card** button in the bottom right corner and select from the card picker.
## YAML Configuration
The following YAML options are available when you use YAML mode or just prefer to use YAML in the Code Editor in the UI.
{% configuration %}
type:
@ -34,9 +38,9 @@ theme:
type: string
{% endconfiguration %}
## Example
### Example
Alternatively, the card can be configured using YAML:
Basic example:
```yaml
type: media-control

View File

@ -7,13 +7,19 @@ description: "The Picture Elements card is one of the most versatile types of ca
The Picture Elements card is one of the most versatile types of cards.
The cards allow you to position icons or text and even services on an image based on coordinates. Imagine floor plan, imagine [picture-glance](/dashboards/picture-glance/) with no restrictions!
<p class='img'>
<img src='/images/dashboards/picture_elements.gif' alt='A functional floorplan powered by picture elements'>
A functional floorplan powered by picture elements.
</p>
The cards allow you to position icons or text and even services on an image based on coordinates. Imagine floor plan, imagine [picture-glance](/dashboards/picture-glance/) with no restrictions!
To add the Picture Elements card to your user interface, click the menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the **Add Card** button in the bottom right corner and select from the card picker.
## YAML Configuration
This card can only be configured in YAML.
{% configuration %}
type:
required: true

View File

@ -12,6 +12,12 @@ The Picture Entity card displays an entity in the form of an image. Instead of i
Background changes according to the entity state.
</p>
To add the Picture Entity card to your user interface, click the menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the **Add Card** button in the bottom right corner and select from the card picker.
## YAML Configuration
The following YAML options are available when you use YAML mode or just prefer to use YAML in the Code Editor in the UI.
{% configuration %}
type:
required: true
@ -78,7 +84,7 @@ double_tap_action:
type: map
{% endconfiguration %}
## How to use state_filter
### How to use state_filter
Specify different [CSS filters](https://developer.mozilla.org/en-US/docs/Web/CSS/filter)
@ -88,7 +94,7 @@ state_filter:
"off": brightness(50%) hue-rotate(45deg)
```
## Examples
### Examples
Basic example:

View File

@ -12,6 +12,12 @@ The Picture Glance card shows an image and corresponding entity states as an ico
Picture glance card for a living room.
</p>
To add the Picture Glance card to your user interface, click the menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the **Add Card** button in the bottom right corner and select from the card picker.
## YAML Configuration
The following YAML options are available when you use YAML mode or just prefer to use YAML in the Code Editor in the UI.
{% configuration %}
type:
required: true
@ -82,7 +88,7 @@ double_tap_action:
type: map
{% endconfiguration %}
## Options For Entities
### Options For Entities
If you define entities as objects instead of strings, you can add more customization and configuration:
@ -126,7 +132,7 @@ double_tap_action:
type: map
{% endconfiguration %}
## Options For Exemptions
### Options For Exemptions
{% configuration badges %}
user:
@ -135,7 +141,7 @@ user:
type: string
{% endconfiguration %}
## How to use state_filter
### How to use state_filter
Specify different [CSS filters](https://developer.mozilla.org/en-US/docs/Web/CSS/filter)
@ -146,7 +152,7 @@ state_filter:
entity: switch.decorative_lights
```
## Examples
### Examples
```yaml
type: picture-glance

View File

@ -12,6 +12,12 @@ The Picture card allows you to set an image to use for navigation to various pat
Screenshot of the picture card.
</p>
To add the Picture card to your user interface, click the menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the **Add Card** button in the bottom right corner and select from the card picker.
## YAML Configuration
The following YAML options are available when you use YAML mode or just prefer to use YAML in the Code Editor in the UI.
{% configuration %}
type:
required: true
@ -43,16 +49,7 @@ double_tap_action:
type: map
{% endconfiguration %}
## Options For Exemptions
{% configuration badges %}
user:
required: true
description: User ID that can see the view tab.
type: string
{% endconfiguration %}
## Examples
### Examples
Navigate to another view:

View File

@ -12,7 +12,13 @@ The Plant Status card is for all the lovely botanists out there.
Screenshot of the plant status card.
</p>
To add the Plant Status card to your user interface, click the menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the "Add Card" button in the bottom right corner and select **Plant Status** from the card picker. All options for this card can be configured via the user interface.
To add the Plant Status card to your user interface, click the menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the **Add Card** button in the bottom right corner and select from the card picker.
All options for this card can be configured via the user interface.
## YAML Configuration
The following YAML options are available when you use YAML mode or just prefer to use YAML in the Code Editor in the UI.
{% configuration %}
type:
@ -34,9 +40,9 @@ theme:
type: string
{% endconfiguration %}
## Example
### Example
Alternatively, the card can be configured using YAML:
Basic example:
```yaml
type: plant-status

View File

@ -12,7 +12,13 @@ The Sensor card gives you a quick overview of your sensors state with an optiona
Screenshot of the sensor card.
</p>
To add the Sensor card to your user interface, click the menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the "Add Card" button in the bottom right corner and select **Sensor** from the card picker. All options for this card can be configured via the user interface.
To add the Sensor card to your user interface, click the menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the **Add Card** button in the bottom right corner and select from the card picker.
All options for this card can be configured via the user interface.
## YAML Configuration
The following YAML options are available when you use YAML mode or just prefer to use YAML in the Code Editor in the UI.
{% configuration %}
type:
@ -70,9 +76,7 @@ theme:
type: string
{% endconfiguration %}
## Example
Alternatively, the card can be configured using YAML:
### Example
```yaml
type: sensor

View File

@ -7,20 +7,20 @@ description: "The Shopping List card allows you to add, edit, check-off, and cle
The Shopping List card allows you to add, edit, check-off, and clear items from your shopping list.
Setup of the [Shopping List integration](/integrations/shopping_list/) is required.
<p class='img'>
<img src='/images/dashboards/shopping_list_card.gif' alt='Screenshot of the shopping list card'>
Screenshot of the Shopping List card.
</p>
To add the Shopping List card to your user interface, click the menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the "Add Card" button in the bottom right corner and select **Shopping List** from the card picker. All options for this card can be configured via the user interface.
Setup of the [Shopping List integration](/integrations/shopping_list/) is required.
Alternatively, the card can be configured using YAML:
To add the Shopping List card to your user interface, click the menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the **Add Card** button in the bottom right corner and select from the card picker.
```yaml
type: shopping-list
```
All options for this card can be configured via the user interface.
## YAML Configuration
The following YAML options are available when you use YAML mode or just prefer to use YAML in the Code Editor in the UI.
{% configuration %}
type:
@ -37,7 +37,7 @@ theme:
type: string
{% endconfiguration %}
## Examples
### Examples
Title Example:

View File

@ -7,10 +7,6 @@ description: "The Statistics Graph card allows you to display a graph with stati
The Statistics Graph card allows you to display a graph of statistics data for each of the entities listed.
Statistics are gathered every 5 minutes for sensors that support it. It will either keep the `min`, `max` and `mean` of a sensors value for a specific hour, or the `sum` for a metered entity.
If your sensor doesn't work with statistics, check [this](/more-info/statistics/).
<p class='img'>
<img src='/images/dashboards/statistics_graph_line.png' alt='Screenshot of the statistics graph card for power entities'>
Screenshot of the Statistics Graph card with none metered entities and `chart_type` `line`.
@ -21,7 +17,17 @@ Screenshot of the Statistics Graph card with none metered entities and `chart_ty
Screenshot of the Statistics Graph card with a metered entity and `chart_type` `bar`.
</p>
To add the Statistics Graph card to your user interface, click the menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the "Add Card" button in the bottom right corner and select **Statistics Graph** from the card picker. All options for this card can be configured via the user interface.
Statistics are gathered every 5 minutes for sensors that support it. It will either keep the `min`, `max`, and `mean` of a sensor's value for a specific hour or the `sum` for a metered entity.
If your sensor doesn't work with statistics, check [this](/more-info/statistics/).
To add the Statistics Graph card to your user interface, click the menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the **Add Card** button in the bottom right corner and select from the card picker.
All options for this card can be configured via the user interface.
## YAML Configuration
The following YAML options are available when you use YAML mode or just prefer to use YAML in the Code Editor in the UI.
{% configuration %}
type:
@ -55,7 +61,7 @@ period:
type: string
{% endconfiguration %}
## Options For Entities
### Options For Entities
If you define entities as objects instead of strings, you can add more customization and configuration:
@ -70,9 +76,7 @@ name:
type: string
{% endconfiguration %}
## Example
Alternatively, the card can be configured using YAML:
### Example
```yaml
type: statistics-graph

View File

@ -12,7 +12,13 @@ The Thermostat card gives control of your [climate](/integrations/#climate) enti
Screenshot of the Thermostat card.
</p>
To add the Thermostat card to your user interface, click the menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the "Add Card" button in the bottom right corner and select **Thermostat** from the card picker. All options for this card can be configured via the user interface.
To add the Thermostat card to your user interface, click the menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the **Add Card** button in the bottom right corner and select from the card picker.
All options for this card can be configured via the user interface.
## YAML Configuration
The following YAML options are available when you use YAML mode or just prefer to use YAML in the Code Editor in the UI.
{% configuration %}
type:
@ -34,9 +40,7 @@ theme:
type: string
{% endconfiguration %}
## Example
Alternatively, the card can be configured using YAML:
### Example
```yaml
type: thermostat

View File

@ -7,7 +7,11 @@ description: "The Vertical Stack card allows you to group multiple cards so they
The Vertical Stack card allows you to group multiple cards so they always sit in the same column.
To add the Vertical Stack card to your user interface, click the menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the "Add Card" button in the bottom right corner and select **Vertical Stack** from the card picker. All options for this card can be configured via the user interface.
To add the Vertical Stack card to your user interface, click the menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the **Add Card** button in the bottom right corner and select from the card picker.
## YAML Configuration
The following YAML options are available when you use YAML mode or just prefer to use YAML in the Code Editor in the UI.
{% configuration %}
type:
@ -24,9 +28,7 @@ cards:
type: list
{% endconfiguration %}
## Examples
Alternatively, the card can be configured using YAML:
### Examples
Basic example:

View File

@ -12,7 +12,7 @@ The Weather Forecast card displays the weather. Very useful to include on interf
Screenshot of the Weather card.
</p>
To add the Weather card to your user interface, click the menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the "Add Card" button in the bottom right corner and select **Weather** from the card picker.
To add the Weather card to your user interface, click the menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the **Add Card** button in the bottom right corner and select from the card picker.
## Card Settings
@ -37,9 +37,9 @@ Theme:
</div>
### YAML
## YAML Configuration
This is for if you use YAML mode or just prefer to use YAML in the Code Editor in the UI.
The following YAML options are available when you use YAML mode or just prefer to use YAML in the Code Editor in the UI.
{% configuration %}
type:
@ -83,7 +83,7 @@ double_tap_action:
type: map
{% endconfiguration %}
Example
### Example
```yaml
type: weather-forecast
@ -113,8 +113,6 @@ Example theme configuration:
--weather-icon-rain-color: purple
```
&nbsp;
#### Personal Icons
Weather icons can be overwritten with your own personal images via a [theme](/integrations/frontend/#themes). Theme variables include:

View File

@ -41,12 +41,11 @@ The following describes trigger data associated with all platforms.
### Device
Inherites template variables from [event](#event) or [state](#state) template based on the type of trigger selected for the device.
| Template variable | Data |
| ---- | ---- |
| `trigger.platform` | Hardcoded: `device`.
| `trigger.event` | Event object that matched.
| `trigger.event.event_type` | Event type.
| `trigger.event.data` | Optional event data.
### Event

View File

@ -32,7 +32,7 @@ entity_picture:
required: false
type: string
icon:
description: "Any icon from [MaterialDesignIcons.com](https://materialdesignicons.com). Prefix name with `mdi:`, ie `mdi:home`. Note: Newer icons may not yet be available in the current Home Assistant release. You can check when an icon was added to MaterialDesignIcons.com at [MDI History](https://materialdesignicons.com/history)."
description: "Any icon from [Material Design Icons](https://pictogrammers.com/library/mdi/). Prefix name with `mdi:`, ie `mdi:home`. Note: Newer icons may not yet be available in the current Home Assistant release."
required: false
type: string
assumed_state:

View File

@ -1,61 +0,0 @@
---
title: "Adding devices to Home Assistant"
description: "Steps to help you get your devices in Home Assistant."
---
Home Assistant will be able to automatically discover many devices and services
available on your network.
See the [integrations overview page](/integrations/) to find installation
instructions for your devices and services. Most integration can be
fully configured via the user interface these days; however, some older or
more complex integrations may need to be configured manually using YAML.
For some of these integrations, every entity needs its own entry in the
`configuration.yaml` file. There are two styles for multiple entity entries:
## Style 1: Collect every entity under the "parent"
```yaml
sensor:
- platform: mqtt
state_topic: "home/bedroom/temperature"
name: "MQTT Sensor 1"
- platform: mqtt
state_topic: "home/kitchen/temperature"
name: "MQTT Sensor 2"
- platform: rest
resource: "http://IP_ADDRESS/ENDPOINT"
name: "Weather"
switch:
- platform: vera
```
## Style 2: List each entity separately
You need to append numbers or strings to differentiate the entries, as in the
example below. The appended number or string must be unique.
```yaml
sensor bedroom:
platform: mqtt
state_topic: "home/bedroom/temperature"
name: "MQTT Sensor 1"
sensor kitchen:
platform: mqtt
state_topic: "home/kitchen/temperature"
name: "MQTT Sensor 2"
sensor weather:
platform: rest
resource: "http://IP_ADDRESS/ENDPOINT"
name: "Weather"
switch 1:
platform: vera
switch 2:
platform: vera
```

View File

@ -3,7 +3,7 @@ title: "Packages"
description: "Describes all there is to know about configuration packages in Home Assistant."
---
Packages in Home Assistant provide a way to bundle different component's configuration together. We already learned about the two configuration styles (specifying platforms entries together or individually) on the [adding devices](/docs/configuration/devices/) page. Both of these configuration methods require you to create the integration key in the main `configuration.yaml` file. With packages we have a way to include different components, or different configuration parts using any of the `!include` directives introduced in [splitting the configuration](/docs/configuration/splitting_configuration).
Packages in Home Assistant provide a way to bundle different component's configuration together. With packages we have a way to include different components, or different configuration parts using any of the `!include` directives introduced in [splitting the configuration](/docs/configuration/splitting_configuration).
Packages are configured under the core `homeassistant/packages` in the configuration and take the format of a package name (no spaces, all lower case) followed by a dictionary with the package configuration. For example, package `pack_1` would be created as:

View File

@ -29,7 +29,7 @@ One of the most common problems with Home Assistant is an invalid `configuration
- You can verify your configuration's YAML structure using [this online YAML parser](https://yaml-online-parser.appspot.com/) or [YAML Validator](https://codebeautify.org/yaml-validator/).
- To learn more about the quirks of YAML, read [YAML IDIOSYNCRASIES](https://docs.saltproject.io/en/latest/topics/troubleshooting/yaml_idiosyncrasies.html) by SaltStack (the examples there are specific to SaltStack, but do explain YAML issues well).
`configuration.yaml` does not allow multiple sections to have the same name. If you want to load multiple platforms for one component, you can append a [number or string](/docs/configuration/devices/#style-2-list-each-entity-separately) to the name or nest them using [this style](/docs/configuration/devices/#style-1-collect-every-entity-under-the-parent):
`configuration.yaml` does not allow multiple sections to have the same name. If you want to load multiple platforms for one component, you can append a number or string to the name or nest them:
```yaml
sensor:

View File

@ -45,6 +45,10 @@ We have developed [Home Assistant Glow](https://github.com/klaasnicolaas/home-as
![Photo of Home Assistant Glow attached to an electricity meter](/images/docs/energy/home-assistant-glow.jpg)
#### Using (Smart Message Language) interface
In countries like Germany, SML (Smart Message Language) is used typically. ESPHome's [SML (Smart Message Language)](https://esphome.io/components/sml.html) is one way to integrate it. If you prefer to integrate it via MQTT, [sml2mqtt](https://github.com/spacemanspiff2007/sml2mqtt) is another open source option.
#### Read the meter using an AI-on-the-edge-device
[AI-on-the-edge-device](https://github.com/jomjol/AI-on-the-edge-device) is a project running on an ESP32-CAM and can be fully integrated into Home Assistant using the Home Assistant discovery functionality of MQTT. It digitalizes your gas/water/electricity meter display and provides its data in various ways.
@ -65,6 +69,10 @@ _Attention! Installing CT clamp sensor devices requires opening your electrical
Some energy providers will provide you real-time information about your usage and have this data integrated into Home Assistant.
### Manual Integration
If you manually integrate your sensors, for example, using the [MQTT](/integrations/mqtt) or [Template](/integrations/template) integrations: Make sure you set and provide the `device_class`, `state_class`, and `unit_of_measurement` for those sensors.
### Troubleshooting
If you are unable to select your energy sensor in the grid consumption drop-down, make sure that its value is being recorded in the Recorder settings.

View File

@ -26,9 +26,9 @@ Alternatively, the following shops sell ESPHome-based devices, that use a proxim
Maybe you like to build one yourself?
- Pieter Brinkman has quite a [nice blog article on how to create your own water sensor](https://www.pieterbrinkman.com/2022/02/02/build-a-cheap-water-usage-sensor-using-esphome-home-assistant-and-a-proximity-sensor/) using ESPHome, or [build a water meter](https://www.ztatz.nl/p1-monitor-watermeter/) that works with the [P1 Monitor](/integrations/p1_monitor) integration.
- [AI-on-the-edge-device](https://github.com/jomjol/AI-on-the-edge-device) is a project running on an ESP32-CAM and can be fully integrated into Home Assistant using the Home Assistant Discovery Functionality of MQTT. It digitalizes your gas/water/electricity meter display and provides its data in various ways.
![Photo of the AI-on-the-edge-device Workflow](/images/docs/energy/ai-on-the-edge-device.jpg)
- [AI-on-the-edge-device](https://github.com/jomjol/AI-on-the-edge-device) is a project running on an ESP32-CAM and can be fully integrated into Home Assistant using the Home Assistant Discovery Functionality of MQTT. It digitalizes your gas/water/electricity meter display and provides its data in various ways.![Photo of the AI-on-the-edge-device Workflow](/images/docs/energy/ai-on-the-edge-device.jpg)
- [watermeter](https://github.com/nohn/watermeter) running classic OCR and statistical pattern recognition on any system supporting Docker
If you manually integrate your sensors, for example, using the [MQTT](/integrations/mqtt) or [RESTful](/integrations/rest) integrations: Make sure you set and provide the `device_class`, `state_class`, and `unit_of_measurement` for those sensors.
For any of the above-listed options, make sure it actually works with the type of water meter you have before getting one.

View File

@ -3,12 +3,23 @@ title: "Frontend of Home Assistant"
description: "Frontend of Home Assistant."
---
The frontend of Home Assistant is built with [Polymer](https://www.polymer-project.org/).
The Home Assistant frontend allows users to browse and control the state of their house, manage their automations and configure integrations.
The frontend is built with [Polymer](https://www.polymer-project.org/).
<p class='img'>
<img src='/images/screenshots/ui2015.png' />
<img src='/images/frontend/ui2022.png' />
</p>
The [User Interface section](/examples/#user-interface) can give you some starting points to expand the frontend.
<div class='note info'>
If you want to work on the frontend, please refer to the [Frontend Development documentation](/developers/frontend/).
If you're looking to contribute to the frontend, please refer to the [Frontend Development documentation](/developers/frontend/).
</div>
## Icons
Home Assistant utilizes the community-driven [Material Design Icons](https://pictogrammers.com/library/mdi/) project for icons in the frontend. The [Icons section](/docs/frontend/icons/) has more information on how to use icons and suggest new ones.
## Examples
The [User Interface section](/examples/#user-interface) can give you some starting points to expand the frontend.

View File

@ -5,7 +5,9 @@ description: "Browser Compatibility List"
Home Assistant requires a web browser to show the frontend and supports all major modern browsers. We don't test the web interface against all available browsers but this page tracks different browsers on various operating systems and should help you to pick a browser which works. The "Release" column contains the release number which was tested. This doesn't mean that older or newer releases will not work.
If a browser is listed as working but you are still having problems, it is possible that some add-on or extension may be the problem. Some add-ons or extension are known to cause issue with the frontend, but it's not possible to test them all. If you are having issues with the frontend displaying correctly, you should disable all your add-ons or extensions and enable them one at a time.
If a browser is listed as working but you are still having problems, it is possible that some add-on or extension may be the problem. Some add-ons or extension are known to cause issue with the frontend, but it's not possible to test them all.
If you are having issues with the frontend displaying correctly, you should disable all your add-ons or extensions and enable them one at a time. At last but not least, consider restarting your browser.
We would appreciate if you help to keep this page up-to-date and add feedback.

View File

@ -0,0 +1,84 @@
---
title: "Icons"
description: "Material Design Icons in the Home Assistant frontend"
---
<p class='img'>
<img src='/images/frontend/mdi.png' alt='Material Design Icons' />
</p>
Home Assistant utilizes the community-driven [Material Design Icons](https://pictogrammers.com/library/mdi/) (MDI) project for icons in the frontend. The icon library is a superset of the base icon library provided by Google and contains thousands of community-made icons for very specific applications, industries, and use-cases.
## Default Icons
Every entity in Home Assistant has a default icon assigned to it. There are way too many to list out here, but you'll see them in your dashboard. You can [customize any of your entities](/docs/configuration/customizing-devices/#icon) to change the icons displayed to you.
## Finding Icons
### Icon Picker
The most common way you can find icons is by using the icon picker built right into Home Assistant. Click into the "Icon" field when customizing an entity and start typing. The list will filter to icons that match your search criteria. You can also scroll through all available icons when the field is empty.
<p class='img'>
<img src='/images/screenshots/icon-picker.png' alt='Icon Picker in Home Assistant' />
</p>
<div class='note info'>
The icon picker will filter by icon name and by aliases applied to the icon by the MDI project. For example, typing "user" will show you most "account"-named icons.
</div>
### Material Design Icons Picker Browser Extension
The easiest way to browse and find icons outside of Home Assistant is with the official [Material Design Icons Picker](https://github.com/Pictogrammers/MaterialDesignIcons-Picker) browser extension. The extension is available for Chrome, Firefox, and Edge and is maintained by the MDI team.
<p class='img'>
<img src='/images/screenshots/mdi-picker.png' alt='Material Design Icons Picker' />
</p>
<div class='note info'>
Not all icons that appear in the MDI Picker Browser Extension may be available in Home Assistant (yet!). While the browser extension is updated as MDI releases new packages, Home Assistant may lag behind until its next release.
</div>
### Material Design Icons on the Pictogrammers Website
The last way to browse through available icons is by viewing the library on the Pictogrammers website, [https://pictogrammers.com/library/mdi/](https://pictogrammers.com/library/mdi/). Select an icon you'd like to use, then click "Home Assistant" to see an example of its usage.
<div class='note info'>
The Pictogrammers website will always show the latest release of the Material Design Icons library. However, you may find icons that may not yet be available in Home Assistant (yet!). Watch the Home Assistant release notes for announcements on upgrades of the Material Design Icons library.
</div>
## Suggesting or Contributing New Icons
Being open-source like Home Assistant, the Material Design Icons library is always accepting suggestions and contributions to expand the library.
<div class='note info'>
Before suggesting or creating a new icon, it is very important that you [search the current library](https://pictogrammers.com/library/mdi/) and [search all issues](https://github.com/Templarian/MaterialDesign/issues?q=is%3Aissue), open and closed, on their GitHub. Try searching with different terms that might mean the same thing. (e.g. "user", "person", "account")
</div>
### Suggesting a New Icon
If you have an idea for an icon that isn't currently in the library, but are not interested in creating it yourself, [open a new icon suggestion](https://github.com/Templarian/MaterialDesign/issues/new?assignees=&labels=Icon+Request&template=1_icon_request.yml).
### Contributing a New Icon
If you want to contribute a new icon to the library, familiarize yourself with the [System icons guidelines](https://material.io/design/iconography/system-icons.html#design-principles) in the Material Design system. Then create your icon and [submit it to the Pictogrammers team for review](https://github.com/Templarian/MaterialDesign/issues/new?assignees=&labels=Icon+Request%2CContribution&template=2_contribution.yml).
#### Tips for Creating New Icons
- Really pay attention to [Material Design guidelines](https://material.io/design/iconography/system-icons.html#design-principles).
- Keep in mind that icons are meant to be contextual, not literal.
- When it comes to little details, less is more.
- If you're unsure, open an issue on their GitHub. They're more than happy to help you!
- Not all icons make it into the library and that is okay!
### Suggesting an Icon Alias
Sometimes an icon exists, but you aren't able to find it with the terms you were searching for. If this has ever happened to you, please [open an issue with the Pictogrammers team to suggest new aliases](https://github.com/Templarian/MaterialDesign/issues/new?assignees=&labels=Alias&template=4_alias.yml) that can be added to existing icons.

View File

@ -25,9 +25,6 @@
<li>
{% active_link /docs/configuration/basic/ Basic information %}
</li>
<li>
{% active_link /docs/configuration/devices/ Setting up devices %}
</li>
<li>
{% active_link /docs/configuration/customizing-devices/ Customizing
entities %}
@ -126,6 +123,7 @@
%}
</li>
<li>{% active_link /dashboards Dashboards %}</li>
<li>{% active_link /docs/frontend/icons/ Icons%}</li>
</ul>
</li>
<li>

View File

@ -1,5 +1,5 @@
---
title: AirVisual
title: AirVisual Cloud
description: Instructions on how to use AirVisual data within Home Assistant
ha_category:
- Health
@ -12,7 +12,7 @@ ha_config_flow: true
ha_platforms:
- diagnostics
- sensor
ha_integration_type: device
ha_integration_type: service
---
The `airvisual` sensor platform queries the [AirVisual](https://www.iqair.com) cloud API for air quality data. Data can be collected via latitude/longitude or city/state/country.

View File

@ -12,7 +12,7 @@ ha_config_flow: true
ha_platforms:
- diagnostics
- sensor
ha_integration_type: integration
ha_integration_type: device
---
The AirVisual Pro integration allows users to retrieve data from an [AirVisual Node/Pro unit](https://www.iqair.com/air-quality-monitors/airvisual-pro). Communication with the device occurs over the local network.

View File

@ -119,16 +119,6 @@ Steps to Integrate an Amazon Alexa Smart Home Skill with Home Assistant:
We will write a small piece of code hosted as an AWS Lambda function that will redirect requests from the Alexa Smart Home skill to your Home Assistant instance, then the Alexa integration in Home Assistant will process the request and send back the response. The Lambda function will then deliver the response back to the Alexa Smart Home skill.
<div class='info'>
There already are some great alternative tutorials and solutions to ours in our community to achieve the same goal of creating your Alexa Smart Home Skill and its connection to Home Assistant, for example: [haaska](https://github.com/mike-grant/haaska/wiki).
Amazon also has provided a [step-by-step guide](https://developer.amazon.com/docs/smarthome/steps-to-build-a-smart-home-skill.html) to create a Smart Home Skill, however you have to adapt its sample code to match the Home Assistant API.
You can follow this document or others, but you cannot mix and match different solutions since they may have different designs.
</div>
OK, let's go. You first need to sign in to your [AWS console](https://console.aws.amazon.com/), if you don't have an AWS account yet, you can create a new user [here](https://aws.amazon.com/free/) with 12-month free tier benefit. You don't need to worry about the cost if your account has already passed the first 12 months, as AWS provides up to 1 million Lambda requests, 1GB of outbound data and all inbound data for free, every month, for all users. See [Lambda pricing](https://aws.amazon.com/lambda/pricing/) for more details.
### Create an IAM Role for Lambda

View File

@ -13,7 +13,7 @@ ha_domain: androidtv
ha_platforms:
- diagnostics
- media_player
ha_integration_type: integration
ha_integration_type: device
---
The `androidtv` platform allows you to control an Android TV device or [Amazon Fire TV](https://www.amazon.com/b/?node=8521791011) device.

View File

@ -16,7 +16,7 @@ ha_platforms:
- device_tracker
- diagnostics
- sensor
ha_integration_type: integration
ha_integration_type: hub
---
The ASUSWRT integration can connect Home Assistant to a ASUS router that runs on ASUSWRT firmware.

View File

@ -15,13 +15,13 @@ ha_codeowners:
- '@HarvsG'
---
The `bayesian` binary sensor platform observes the state from multiple sensors and uses [Bayes' rule](https://en.wikipedia.org/wiki/Bayes%27_theorem) to estimate the probability that an event has occurred given the state of the observed sensors. If the estimated posterior probability is above the `probability_threshold`, the sensor is `on` otherwise it is `off`.
The `bayesian` binary sensor platform observes the state from multiple sensors. It uses [Bayes' rule](https://en.wikipedia.org/wiki/Bayes%27_theorem) to estimate the probability that an event is occurring given the state of the observed sensors. If the estimated posterior probability is above the `probability_threshold`, the sensor is `on`; otherwise, it is `off`.
This allows for the detection of complex events that may not be readily observable, e.g., cooking, showering, in bed, the start of a morning routine, etc. It can also be used to gain greater confidence about events that _are_ directly observable, but for which the sensors can be unreliable, e.g., presence.
## Theory
A key concept in Bayes' Rule is the difference between the probability of the 'event given the observation' and the probability of the 'observation given the event'. In some cases these probabilities will be similar. The probability that someone is in the room given that motion is detected is similar to the probability motion is detected given that someone is in the room. In other cases, the distinction is much more important. The probability I have just arrived home (the event) each time the front door contact sensor reports `open` (the observation) (p=0.2) is not the same as the probability the front door contact sensor reports `open` (the observation) when I come home (the event) (p=0.999).
A key concept in Bayes' Rule is the difference between the probability of the 'event given the observation' and the probability of the 'observation given the event'. In some cases, these probabilities will be similar. The probability that someone is in the room given that motion is detected is similar to the probability motion is detected given that someone is in the room when motion sensors are accurate. In other cases, the distinction is much more important. The probability one has just arrived home (the event) each time the front door contact sensor reports `open` (the observation) (p=0.2) is not the same as the probability the front door contact sensor reports `open` (the observation) when one comes home (the event) (p=0.999). This difference is because one opens the door several times a day for other purposes.
In the configuration use the probability of the observation (the sensor state in question) given the event (the assumed state of the Bayesian binary_sensor).

View File

@ -19,6 +19,7 @@ ha_platforms:
- sensor
- switch
ha_integration_type: integration
ha_zeroconf: true
---
[BleBox](https://blebox.eu/?lang=en) produces small, low-power, surprisingly affordable, feature-rich WiFi devices for serverless home automation.

View File

@ -26,6 +26,7 @@ ha_codeowners:
- '@imicknl'
- '@vlebourl'
- '@tetienne'
- '@nyroDev'
ha_config_flow: true
ha_platforms:
- alarm_control_panel

View File

@ -21,6 +21,7 @@ To enable it, add the following lines to your `configuration.yaml`:
# Example configuration.yaml entry (using radius)
sensor:
- platform: citybikes
radius: 200
```
{% configuration %}
@ -44,11 +45,11 @@ longitude:
default: Defaults to the longitude in your `configuration.yaml` file.
type: string
radius:
description: The radius (in meters or feet, depending on the Home Assistant configuration) around the monitored location. Only stations closer than this distance will be monitored.
description: The radius (in meters or feet, depending on the Home Assistant configuration) around the monitored location. Only stations closer than this distance will be monitored. Either `radius` or `stations` are required.
required: false
type: integer
stations:
description: A list of specific stations to monitor. The list should contain station `ID`s or `UID`s, which can be obtained from the CityBikes API.
description: A list of specific stations to monitor. The list should contain station `ID`s or `UID`s, which can be obtained from the CityBikes API. Either `radius` or `stations` are required.
required: false
type: list
{% endconfiguration %}

View File

@ -75,7 +75,7 @@ counter:
type: icon
{% endconfiguration %}
Pick an icon that you can find on [materialdesignicons.com](https://materialdesignicons.com/) to use for your input and prefix the name with `mdi:`. For example `mdi:car`, `mdi:ambulance` or `mdi:motorbike`.
Pick an icon that from [Material Design Icons](https://pictogrammers.com/library/mdi/) to use for your input and prefix the name with `mdi:`. For example `mdi:car`, `mdi:ambulance` or `mdi:motorbike`.
### Restore State

View File

@ -205,7 +205,7 @@ position_open:
type: integer
default: 100
position_template:
description: "Defines a [template](/topics/templating/) that can be used to extract the payload for the `position_topic` topic. Within the template the following variables are available: `entity_id`, `position_open`; `position_closed`; `tilt_min`; `tilt_max`. The `entity_id` can be used to reference the entity's attributes with help of the [states](/docs/configuration/templating/#states) template function;"
description: "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) that can be used to extract the payload for the `position_topic` topic. Within the template the following variables are available: `entity_id`, `position_open`; `position_closed`; `tilt_min`; `tilt_max`. The `entity_id` can be used to reference the entity's attributes with help of the [states](/docs/configuration/templating/#states) template function;"
required: false
type: string
position_topic:
@ -223,7 +223,7 @@ retain:
type: boolean
default: false
set_position_template:
description: "Defines a [template](/topics/templating/) to define the position to be sent to the `set_position_topic` topic. Incoming position value is available for use in the template `{% raw %}{{ position }}{% endraw %}`. Within the template the following variables are available: `entity_id`, `position`, the target position in percent; `position_open`; `position_closed`; `tilt_min`; `tilt_max`. The `entity_id` can be used to reference the entity's attributes with help of the [states](/docs/configuration/templating/#states) template function;"
description: "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to define the position to be sent to the `set_position_topic` topic. Incoming position value is available for use in the template `{% raw %}{{ position }}{% endraw %}`. Within the template the following variables are available: `entity_id`, `position`, the target position in percent; `position_open`; `position_closed`; `tilt_min`; `tilt_max`. The `entity_id` can be used to reference the entity's attributes with help of the [states](/docs/configuration/templating/#states) template function;"
required: false
type: string
set_position_topic:
@ -265,7 +265,7 @@ tilt_closed_value:
type: integer
default: 0
tilt_command_template:
description: "Defines a [template](/topics/templating/) that can be used to extract the payload for the `tilt_command_topic` topic. Within the template the following variables are available: `entity_id`, `tilt_position`, the target tilt position in percent; `position_open`; `position_closed`; `tilt_min`; `tilt_max`. The `entity_id` can be used to reference the entity's attributes with help of the [states](/docs/configuration/templating/#states) template function;"
description: "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) that can be used to extract the payload for the `tilt_command_topic` topic. Within the template the following variables are available: `entity_id`, `tilt_position`, the target tilt position in percent; `position_open`; `position_closed`; `tilt_min`; `tilt_max`. The `entity_id` can be used to reference the entity's attributes with help of the [states](/docs/configuration/templating/#states) template function;"
required: false
type: string
tilt_command_topic:
@ -293,7 +293,7 @@ tilt_optimistic:
type: boolean
default: "`true` if `tilt_status_topic` is not defined, else `false`"
tilt_status_template:
description: "Defines a [template](/topics/templating/) that can be used to extract the payload for the `tilt_status_topic` topic. Within the template the following variables are available: `entity_id`, `position_open`; `position_closed`; `tilt_min`; `tilt_max`. The `entity_id` can be used to reference the entity's attributes with help of the [states](/docs/configuration/templating/#states) template function;"
description: "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) that can be used to extract the payload for the `tilt_status_topic` topic. Within the template the following variables are available: `entity_id`, `position_open`; `position_closed`; `tilt_min`; `tilt_max`. The `entity_id` can be used to reference the entity's attributes with help of the [states](/docs/configuration/templating/#states) template function;"
required: false
type: string
tilt_status_topic:
@ -305,7 +305,7 @@ unique_id:
required: false
type: string
value_template:
description: "Defines a [template](/topics/templating/) that can be used to extract the payload for the `state_topic` topic."
description: "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) that can be used to extract the payload for the `state_topic` topic."
required: false
type: string
{% endconfiguration %}

View File

@ -26,6 +26,7 @@ ha_codeowners:
- '@imicknl'
- '@vlebourl'
- '@tetienne'
- '@nyroDev'
ha_config_flow: true
ha_platforms:
- alarm_control_panel

View File

@ -25,7 +25,7 @@ This integration is a meta-component and configures a default set of integration
- [History](/integrations/history/) (`history`)
- [Home Assistant Alerts](/integrations/homeassistant_alerts) (`homeassistant_alerts`)
- [Home Assistant Cloud](/integrations/cloud/) (`cloud`)
- [Image](/integrations/image/) (`image`)
- [Image upload](/integrations/image_upload/) (`image_upload`)
- [Input boolean](/integrations/input_boolean/) (`input_boolean`)
- [Input button](/integrations/input_button/) (`input_button`)
- [Input datetime](/integrations/input_datetime/) (`input_datetime`)

View File

@ -50,9 +50,12 @@ Available demo platforms:
- [Air Quality](/integrations/air_quality/) (`air_quality`)
- [Alarm control panel](/integrations/alarm_control_panel/) (`alarm_control_panel`)
- [Binary sensor](/integrations/binary_sensor/) (`binary_sensor`)
- [Button](/integrations/button/) (`button`)
- [Calendar](/integrations/calendar/) (`calendar`)
- [Camera](/integrations/camera/) (`camera`)
- [Climate](/integrations/climate/) (`climate`)
- [Cover](/integrations/cover/) (`cover`)
- [Device Tracker](/integrations/device_tracker/) (`device_tracker`)
- [Fan](/integrations/fan/) (`fan`)
- [Geolocation](/integrations/geo_location/) (`geo_location`)
- [Humidifier](/integrations/humidifier/) (`humidifier`)
@ -64,9 +67,15 @@ Available demo platforms:
- [Notification](/integrations/notify/) (`notify`)
- [Number](/integrations/number/) (`number`)
- [Remote](/integrations/remote/) (`remote`)
- [Select](/integrations/select/) (`select`)
- [Sensor](/integrations/sensor/) (`sensor`)
- [Siren](/integrations/siren/) (`siren`)
- [Switch](/integrations/switch/) (`switch`)
- [Text](/integrations/text/) (`text`)
- [Text-to-speech](/integrations/tts/) (`tts`)
- [Update](/integrations/update/) (`update`)
- [Vacuum](/integrations/vacuum/) (`vacuum`)
- [Water Heater](/integrations/water_heater/) (`water_heater`)
- [Weather](/integrations/weather/) (`weather`)
To integrate a demo platform in Home Assistant, add the following section to your `configuration.yaml` file:

View File

@ -18,8 +18,9 @@ ha_platforms:
ha_integration_type: helper
---
The derivative ([Wikipedia](https://en.wikipedia.org/wiki/Derivative)) integration creates a sensor that estimates the derivative of the
values provided by another sensor (the **source sensor**). Derivative sensors are updated upon changes of the **source sensor**.
The derivative ([Wikipedia](https://en.wikipedia.org/wiki/Derivative)) integration creates a sensor that "smooths-out" another sensor (the **source sensor**).
Derivatives of the specified sensor will be averaged in a given time window with a Simple Moving Average algorithm weighted by time. This is, for instance, useful for a sensor that outputs discrete values or to filter out short-duration noise.
Derivative sensors are updated upon changes of the **source sensor**.
For sensors that reset to zero after a power interruption and need a "non-negative derivative", such as bandwidth counters in routers, or rain gauges, consider using the [Utility Meter](/integrations/utility_meter/) integration instead. Otherwise, each reset will register a significant change in the derivative sensor.
@ -30,7 +31,7 @@ Name:
Input sensor:
description: The entity providing numeric readings to create the derivative of.
Precision:
description: Round the calculated integration value to at most N decimal places.
description: Round the calculated derivative value to at most N decimal places.
Time window:
description: The time window in which to calculate the derivative. Derivatives in this window will be averaged with a simple moving average algorithm (SMA) weighted by time. This is for instance useful for a sensor that outputs discrete values, or to filter out short duration noise. By default the derivative is calculated between two consecutive updates without any smoothing.
Metric Prefix:
@ -42,7 +43,7 @@ Time unit:
## YAML Configuration
Alternatively, this integration can be configured and set up manually via YAML
instead. To enable the Integration sensor in your installation, add the
instead. To enable the Derivative sensor in your installation, add the
following to your `configuration.yaml` file:
```yaml
@ -82,7 +83,7 @@ unit:
required: false
type: string
time_window:
description: The time window in which to calculate the derivative. Derivatives in this window will be averaged with a Simple Moving Average algorithm weighted by time. This is for instance useful for a sensor that outputs discrete values, or to filter out short duration noise. By default the derivative is calculated between two consecutive updates without any smoothing.
description: The time window in which to calculate the derivative. By default the derivative is calculated between two consecutive updates without any smoothing.
default: 0
required: false
type: time

View File

@ -21,7 +21,7 @@ ha_platforms:
ha_integration_type: integration
---
The EcoNet integration is consuming the information provided by a [EcoNet enabled Rheem water heater or thermostat](https://www.rheem.com/EcoNet/Home).
The EcoNet integration is consuming the information provided by a [EcoNet enabled Rheem water heater or thermostat](https://www.rheem.com/econet).
{% include integrations/config_flow.md %}

View File

@ -28,6 +28,7 @@ Tested smart meters:
- Iskraemeco MT175 (ISKRA MT175-D2A51-V22-K0t)
- EMH metering eHZ Generation K (enable InF as described in manual to retrieve full data)
- efr SGM-C4 (enable InF as described in manual to retrieve full data)
- easymeter Q3 ([Link](https://www.easymeter.com/products/zaehler/q3a))
## Configuration

View File

@ -10,6 +10,7 @@ ha_codeowners:
- '@albertogeniola'
ha_domain: elmax
ha_platforms:
- alarm_control_panel
- binary_sensor
- switch
ha_integration_type: integration

View File

@ -49,10 +49,10 @@ envisalink:
timeout: 10
panic_type: Police
zones:
11:
1:
name: "Back Door"
type: "opening"
21:
2:
name: "First Floor Motion"
type: "motion"
partitions:
@ -112,7 +112,7 @@ panic_type:
default: Police
type: string
zones:
description: "Envisalink boards have no way to tell us which zones are actually in use, so each zone must be configured in Home Assistant. For each zone, at least a name must be given. For more information about the visual representation of a zone, take a look at the [Binary Sensor](/integrations/binary_sensor/#device-class) documentation. *Note: If no zones are specified, Home Assistant will not load any binary_sensor components.*"
description: "Envisalink boards have no way to tell us which zones are actually in use, so each zone must be configured in Home Assistant. Zone numbers correspond to the zone numbers configured on your alarm system and must be in the range of 1 to 64. For each zone, at least a name must be given. For more information about the visual representation of a zone, take a look at the [Binary Sensor](/integrations/binary_sensor/#device-class) documentation. *Note: If no zones are specified, Home Assistant will not load any binary_sensor components.*"
required: false
type: integer
keys:

View File

@ -90,3 +90,7 @@ To enable/disable motion detection, use the Home Assistant built in services.
| Service data attribute | Description |
| -----------------------| ----------- |
| `entity_id` | String or list of strings that point at `entity_id`s of cameras. Use `entity_id: all` to target all. |
## Troubleshooting
- `authentication failed`: The authentication requires an EZVIZ account with two-step verification disabled. Google, Facebook, TikTok, or other Oauth-based accounts will not work.

View File

@ -26,6 +26,7 @@ ha_codeowners:
- '@imicknl'
- '@vlebourl'
- '@tetienne'
- '@nyroDev'
ha_config_flow: true
ha_platforms:
- alarm_control_panel

View File

@ -338,6 +338,10 @@ If you receive 404 errors linked to reporting state in your log, Home Assistant
Your fulfillment URL may be invalid or unreachable. Recheck the `Fulfillment URL` as specified in [Manual Setup](#manual-setup) and verify that it's publicly reachable.
#### 500 / 429 error on request sync
This error may occur if the service key is invalid. Try deleting and creating a new service account and key.
#### NGINX
When using NGINX, ensure that your `proxy_pass` line *does not* have a trailing `/`, as this will result in errors. Your line should look like:

View File

@ -4,12 +4,14 @@ description: Instructions on how to use Google Assistant SDK in Home Assistant.
ha_category:
- Utility
ha_iot_class: Cloud Polling
ha_release: '2023.01'
ha_release: 2023.1
ha_config_flow: true
ha_domain: google_assistant_sdk
ha_codeowners:
- '@tronikos'
ha_integration_type: integration
- "@tronikos"
ha_integration_type: service
ha_platforms:
- notify
---
The Google Assistant SDK integration allows Home Assistant to interact with Google Assistant. If you want to use Google Assistant (for example, from your phone or Google Home device) to interact with your Home Assistant managed devices, then you want the [Google Assistant](/integrations/google_assistant) integration.
@ -29,6 +31,8 @@ This integration allows:
- Water leak detected in the master bathroom
- Having a conversation with Google Assistant using the [conversation](/integrations/conversation/) integration via text or voice.
<lite-youtube videoid="a-Is8GtLJCs" videotitle="Controlling Google Home With Home Assistant!" posterquality="maxresdefault"></lite-youtube>
## Prerequisites
You need to configure developer credentials to allow Home Assistant to access your Google Account.
@ -43,21 +47,20 @@ This section explains how to generate a Client ID and Client Secret on
1. First go to the Google Developers Console to enable [Google Assistant API](https://console.developers.google.com/apis/api/embeddedassistant.googleapis.com/overview)
2. Select an existing project or create a new one from the dropdown menu in the upper left corner.
3. Click to enable this API.
4. From the left sidebar click on [Credentials](https://console.cloud.google.com/apis/credentials)
5. Click on the field on the left of the screen, **OAuth Consent Screen**.
6. Select **External** and **Create**.
7. Set the *App Name* (the name of the application asking for consent) to anything you want e.g. *Home Assistant*.
8. You then need to select a *Support email*. To do this, simply click the drop down box and select your email address.
9. You finally need to complete the section: *Developer contact information*. To do this, simply enter your email address (same as above is fine).
10. Scroll to the bottom and click **Save and Continue**. Don't have to fill out anything else or it may enable additional review.
11. You will then be automatically taken to the Scopes page. You do not need to add any scopes here so click Save and Continue to move to the Optional info page. You do not need to add anything to the Optional info page so click Save and Continue which will take you to the Summary page. Click Back to Dashboard.
12. Click **OAuth consent screen** again and set *Publish Status* to **Production** otherwise your credentials will expire every 7 days.
13. Make sure **Publishing status** is set to production.
14. Click **Credentials** in the menu on the left hand side of the screen, then click **Create credentials** (at the top of the screen), then select *OAuth client ID*.
15. Set the Application type to *Web application* and give this credential set a name (like "Home Assistant Credentials").
16. Add https://my.home-assistant.io/redirect/oauth to *Authorized redirect URIs* then click **Create**.
17. You will then be presented with a pop-up saying *OAuth client created* showing *Your Client ID* and *Your Client Secret*. Make a note of these (for example, copy and paste them into a text editor) as you will need these shortly. Once you have noted these strings, click **OK**. If you need to find these credentials again at any point then simply navigate to *APIs & Services > Credentials* and you will see *Home Assistant Credentials* (or whatever you named them in the previous step) under *OAuth 2.0 Client IDs*. To view both the *Client ID* and *Client secret*, click on the pencil icon, this will take you to the settings page for these credentials and the information will be on the right hand side of the page.
18. Double check that the *Google Assistant API* has been automatically enabled. To do this, select **Library** from the menu, then search for *Google Assistant API*. If it is enabled you will see *API Enabled* with a green tick next to it. If it is not enabled, then enable it.
4. Click on the field on the left of the screen, **OAuth Consent Screen**.
5. Select **External** and **Create**.
6. Set the _App Name_ (the name of the application asking for consent) to anything you want e.g. _Home Assistant_.
7. You then need to select a _Support email_. To do this, simply click the drop down box and select your email address.
8. You finally need to complete the section: _Developer contact information_. To do this, simply enter your email address (same as above is fine).
9. Scroll to the bottom and click **Save and Continue**. Don't have to fill out anything else or it may enable additional review.
10. You will then be automatically taken to the Scopes page. You do not need to add any scopes here so click Save and Continue to move to the Optional info page. You do not need to add anything to the Optional info page so click Save and Continue which will take you to the Summary page. Click Back to Dashboard.
11. Click **OAuth consent screen** again and set _Publish Status_ to **Production** otherwise your credentials will expire every 7 days.
12. Make sure **Publishing status** is set to production.
13. Click **Credentials** in the menu on the left hand side of the screen, then click **Create credentials** (at the top of the screen), then select _OAuth client ID_.
14. Set the Application type to _Web application_ and give this credential set a name (like "Home Assistant Credentials").
15. Add https://my.home-assistant.io/redirect/oauth to _Authorized redirect URIs_ then click **Create**.
16. You will then be presented with a pop-up saying _OAuth client created_ showing _Your Client ID_ and _Your Client Secret_. Make a note of these (for example, copy and paste them into a text editor) as you will need these shortly. Once you have noted these strings, click **OK**. If you need to find these credentials again at any point then simply navigate to _APIs & Services > Credentials_ and you will see _Home Assistant Credentials_ (or whatever you named them in the previous step) under _OAuth 2.0 Client IDs_. To view both the _Client ID_ and _Client secret_, click on the pencil icon, this will take you to the settings page for these credentials and the information will be on the right hand side of the page.
17. Double check that the _Google Assistant API_ has been automatically enabled. To do this, select **Library** from the menu, then search for _Google Assistant API_. If it is enabled you will see _API Enabled_ with a green tick next to it. If it is not enabled, then enable it.
{% enddetails %}
@ -73,9 +76,9 @@ The integration setup will next give you instructions to enter the [Application
3. You can now see the details of what you are authorizing Home Assistant to access with two options at the bottom. Click **Continue**.
4. The page will now display *Link account to Home Assistant?*, note *Your instance URL*. If this is not correct, please refer to [My Home Assistant](/integrations/my). If everything looks good, click **Link Account**.
4. The page will now display _Link account to Home Assistant?_, note _Your instance URL_. If this is not correct, please refer to [My Home Assistant](/integrations/my). If everything looks good, click **Link Account**.
5. You may close the window, and return back to Home Assistant where you should see a *Success!* message from Home Assistant.
5. You may close the window, and return back to Home Assistant where you should see a _Success!_ message from Home Assistant.
{% enddetails %}
@ -83,7 +86,15 @@ The integration setup will next give you instructions to enter the [Application
If you have an error with your credentials you can delete them in the [Application Credentials](/integrations/application_credentials/) user interface.
If broadcasting doesn't work, make sure: the speakers aren't in do not disturb mode and that the Home Assistant server is in the same network as the speakers.
If commands don't work try removing superfluous words such as "the". E.g. "play rain sounds on bedroom speaker" instead of "play rain sounds on the bedroom speaker".
If broadcasting doesn't work, make sure: the speakers aren't in do not disturb mode, the Home Assistant server is in the same network as the speakers, and IPv6 is disabled in the router.
## Limitations/known issues
Multiple Google accounts are not supported.
Limitations of the underlying library are listed [here](https://github.com/tronikos/gassist_text#limitationsknown-issues) (media playback, routines, and personal results are not working).
## Configuration
@ -95,8 +106,8 @@ On the configure page, you can set the language code of the interactions with Go
You can use the service `google_assistant_sdk.send_text_command` to send commands to Google Assistant.
| Service data attribute | Optional | Description | Example |
| ---------------------- | -------- | ----------- | --------|
| Service data attribute | Optional | Description | Example |
| ---------------------- | -------- | ------------------------------------ | ------------------- |
| `command` | no | Command to send to Google Assistant. | turn off kitchen TV |
Example:
@ -111,10 +122,10 @@ data:
You can use the service `notify.google_assistant_sdk` to broadcast messages to Google Assistant speakers and displays without interrupting music/video playback.
| Service data attribute | Optional | Description | Example |
| ---------------------- | -------- | ----------- | --------|
| `message` | no | Message to broadcast. | someone is at the front door |
| `target` | yes | Rooms (in Google Assistant) | bedroom |
| Service data attribute | Optional | Description | Example |
| ---------------------- | -------- | --------------------------- | ---------------------------- |
| `message` | no | Message to broadcast. | someone is at the front door |
| `target` | yes | Rooms (in Google Assistant) | bedroom |
Example to broadcast to all speakers:
@ -138,6 +149,7 @@ data:
## Conversation agent
In `configuration.yaml` add:
```yaml
conversation:
```

View File

@ -139,4 +139,4 @@ data:
{% endraw %}
For more information about using text-to-speech with Home Assistant and more details on all the options it provides, see the [TTS documentation](/integrations/tts/).
For more information about using text-to-speech with Home Assistant and more details on all the options it provides, see the [TTS documentation](/integrations/tts/).

View File

@ -8,6 +8,7 @@ ha_release: 2022.8
ha_iot_class: Local Push
ha_codeowners:
- '@bdraco'
- '@PierreAronnax'
ha_domain: govee_ble
ha_config_flow: true
ha_platforms:

View File

@ -14,7 +14,7 @@ ha_platforms:
ha_integration_type: integration
---
The `here_travel_time` sensor provides travel time from the [HERE Routing API](https://developer.here.com/documentation/routing/dev_guide/topics/introduction.html).
The `here_travel_time` sensor provides travel time from the [HERE Routing API](https://developer.here.com/documentation/routing-api/dev_guide/index.html).
## Setup

View File

@ -26,6 +26,7 @@ ha_codeowners:
- '@imicknl'
- '@vlebourl'
- '@tetienne'
- '@nyroDev'
ha_config_flow: true
ha_platforms:
- alarm_control_panel

View File

@ -26,6 +26,7 @@ ha_codeowners:
- '@imicknl'
- '@vlebourl'
- '@tetienne'
- '@nyroDev'
ha_config_flow: true
ha_platforms:
- alarm_control_panel

View File

@ -45,7 +45,7 @@ scan_interval:
description: The time interval, in seconds, to poll the Hydrawise cloud.
required: false
type: integer
default: 30
default: 120
{% endconfiguration %}
To get your API access token log into your [Hydrawise account](https://app.hydrawise.com/config/login) and in the 'My Account Details' section under Account Settings click 'Generate API Key'. Enter that key in your configuration file as `YOUR_API_KEY`.
@ -77,6 +77,13 @@ monitored_conditions:
The Hydrawise API removed the ability to read the rain sensor status. Therefore it is no longer supported by the Hydrawise integration to Home Assistant.
</div>
<div class='note warning'>
The Hydrawise API uses rate limiting and might throw errors in case the `scan_interval` is too low or too many manual service calls are triggered:
The limit is 3 calls to start/stop/suspend a zone per 30 seconds and an additional limit across the entire API of 30 calls in a 5-minute period per user.
</div>
## Sensor
Once you have enabled the `hydrawise` component, add the following to your `configuration.yaml` file:

View File

@ -77,6 +77,7 @@ To get the Estimated distance sensor to work, in most cases, it has to be calibr
- [NRF51822 iBeacon](https://www.aliexpress.com/item/32826502025.html)
- [NRF52810 iBeacon](https://www.aliexpress.com/item/1005003211033416.html)
- [Pawscout Tag](https://pawscout.com/shop/pawscout-tag/)
- [SwiftFinder](https://www.amazon.com/dp/B089MD5NP7) (Requires being paired to a phone first before it starts transmitting once a minute, otherwise it stays asleep)
## Example automation

View File

@ -24,5 +24,5 @@ integration manually:
```yaml
# Example configuration.yaml entry
image:
image_upload:
```

View File

@ -23,7 +23,7 @@ and create them as sensors in Home Assistant.
## Energy management
You can use the accumulated energy sensors directly with the Home Assistant energy dashboard.
You can use the energy sensors directly with the Home Assistant energy dashboard.
If you have an energy production system such as solar panels, follow these instructions:
@ -49,6 +49,6 @@ If you have two solar sensors named `Solar1` and `Solar2` you would use:
### Configure Energy Management
In the `Grid Consumption` settings, click `Add Consumption` and select `MainsConsumption.wh Accumulated`
In the `Return to grid` settings, click `Add Return` and select `MainsExport.wh Accumulated`
In the `Solar production` settings, click `Add Solar Production` and select `Solar.wh Accumulated`
In the Grid Consumption settings, select `MainsConsumption.wh`
In the Return to grid settings, select `MainsExport.wh`
In the Solar production settings, select `Solar.wh`

View File

@ -17,6 +17,7 @@ The `lacrosse` sensor platform is using the data provided by a [Jeelink](https:/
- Technoline TX 29 IT (temperature only)
- Technoline TX 29 DTH-IT (including humidity)
- TFA Dostmann LaCrosse sensors (type 30.3147.IT)
## Setup

View File

@ -6,6 +6,7 @@ ha_category:
- Select
- Sensor
- Switch
- Update
- Vacuum
ha_iot_class: Cloud Push
ha_release: 2021.3

View File

@ -11,6 +11,10 @@ ha_platforms:
ha_integration_type: integration
---
<div class='note warning'>
This integration is pending removal from Home Assistant and will be no longer available as of Home Assistant 2023.2.
</div>
The `magicseaweed` platform uses the [Magicseaweed Forecast API](https://magicseaweed.com/docs/developers/59/) as a source for surf forecasting data for the surf spots of your choice.
## Setup

View File

@ -1142,6 +1142,7 @@ following lines to configuration.yaml:
```yaml
logger:
default: warning
logs:
homeassistant.components.modbus: debug
pymodbus.client: debug

View File

@ -509,6 +509,7 @@ Configuration variable names in the discovery payload may be abbreviated to cons
The following software has built-in support for MQTT discovery:
- [ArduinoHA](https://github.com/dawidchyrzynski/arduino-home-assistant)
- [Arilux AL-LC0X LED controllers](https://github.com/smrtnt/Arilux_AL-LC0X)
- [ebusd](https://github.com/john30/ebusd)
- [ecowitt2mqtt](https://github.com/bachya/ecowitt2mqtt)
@ -520,15 +521,16 @@ The following software has built-in support for MQTT discovery:
- [OpenMQTTGateway](https://github.com/1technophile/OpenMQTTGateway)
- [room-assistant](https://github.com/mKeRix/room-assistant) (starting with 1.1.0)
- [SmartHome](https://github.com/roncoa/SmartHome)
- [SpeedTest-CLI MQTT](https://github.com/adorobis/speedtest-CLI2mqtt)
- [Tasmota](https://github.com/arendst/Tasmota) (starting with 5.11.1e, development halted)
- [Teleinfo MQTT](https://fmartinou.github.io/teleinfo2mqtt) (starting with 3.0.0)
- [Tydom2MQTT](https://fmartinou.github.io/tydom2mqtt/)
- [What's up Docker?](https://fmartinou.github.io/whats-up-docker/) (starting with 3.5.0)
- [WyzeSense2MQTT](https://github.com/raetha/wyzesense2mqtt)
- [Xiaomi DaFang Hacks](https://github.com/EliasKotlyar/Xiaomi-Dafang-Hacks)
- [Zehnder Comfoair RS232 MQTT](https://github.com/adorobis/hacomfoairmqtt)
- [Zigbee2mqtt](https://github.com/koenkk/zigbee2mqtt)
- [Zwave2Mqtt](https://github.com/OpenZWave/Zwave2Mqtt) (starting with 2.0.1)
- [ArduinoHA](https://github.com/dawidchyrzynski/arduino-home-assistant)
### Discovery examples

View File

@ -71,9 +71,10 @@ The following router features can be turned on/off, and the status can be read:
### Speed test data
The "Average Ping", "Downlink Bandwidth" and "Uplink Bandwidth" can be tracked by performing a speed test every 30 minutes.
If these sensor entities are enabled they will first show as Unknown since the first speed test does only happen 30 minutes after the integration loads, previous results will be restored on subsequent restarts.
The speed test interval is chosen to be 30 minutes to not put unnecessary load on the network.
The "Average Ping", "Downlink Bandwidth," and "Uplink Bandwidth" can be tracked by performing a speed test every 2 hours.
If these sensor entities are enabled, they will first show previous results on integration load. The first new speed tests happens 2 hours after the integration loads.
The speed test interval is chosen to be 2 hours not to put unnecessary load on the network and reduce data usage.
When one or more of the three sensors is enabled, the speed tests will be performed. Note that this can cause high data usage depending on your internet connection speed which might be relevant when using metered/limited networks.
### Ethernet link status

View File

@ -26,6 +26,7 @@ ha_codeowners:
- '@imicknl'
- '@vlebourl'
- '@tetienne'
- '@nyroDev'
ha_config_flow: true
ha_platforms:
- alarm_control_panel

View File

@ -11,6 +11,8 @@ ha_codeowners:
ha_domain: nibe_heatpump
ha_platforms:
- binary_sensor
- button
- climate
- number
- select
- sensor

View File

@ -24,7 +24,7 @@ The type of data a number represents impacts how it is displayed in the frontend
- **None**: Generic number. This is the default and doesn't need to be set.
- **apparent_power**: Apparent power in VA.
- **aqi**: Air Quality Index
- **aqi**: Air Quality Index (unitless).
- **atmospheric_pressure**: Atmospheric pressure in cbar, bar, hPa, inHg, kPa, mbar, Pa, psi
- **battery**: Percentage of battery that is left
- **carbon_dioxide**: Carbon Dioxide in CO2 (Smoke)
@ -48,7 +48,7 @@ The type of data a number represents impacts how it is displayed in the frontend
- **pm1**: Concentration of particulate matter less than 1 micrometer in µg/m³
- **pm10**: Concentration of particulate matter less than 10 micrometers in µg/m³
- **pm25**: Concentration of particulate matter less than 2.5 micrometers in µg/m³
- **power_factor**: Power factor in %
- **power_factor**: Power factor(unitless), unit may be `None` or %
- **power**: Power in W or kW
- **precipitation**: Accumulated precipitation in cm, in or mm
- **precipitation_intensity**: Precipitation intensity in in/d, in/h, mm/d, or mm/h

View File

@ -14,7 +14,7 @@ ha_zeroconf: true
ha_platforms:
- diagnostics
- sensor
ha_integration_type: integration
ha_integration_type: device
---
The Network UPS Tools (NUT) integration allows you to monitor a UPS

View File

@ -7,6 +7,7 @@ ha_release: 0.99
ha_iot_class: Cloud Polling
ha_codeowners:
- '@MatthewFlamm'
- '@kamiyo'
ha_domain: nws
ha_quality_scale: platinum
ha_config_flow: true

View File

@ -174,3 +174,23 @@ automation:
- sensor.LATITUDE_LONGITUDE_current_uv_index
```
{% endraw %}
## Expired API Keys and Re-authentication
In OpenUV, an `HTTP 403` response indicates one of two conditions:
1. An invalid API key
2. An API key whose daily/monthly limit is reached
Unfortunately, the integration is unable to determine which is which from the API data
provided by OpenUV. So, this strategy is followed:
1. Any `HTTP 403` response will create a persistent notification asking you to
re-authenticate the OpenUV integration.
2. In the case of an overrun API call limit, once the `homeassistant.update_entity`
service call is again successful, existing re-authentication notifications will
automatically be removed.
If you receive a re-authentication notification and are certain that your key has merely
reached its daily call limit, you can safely ignore it.

View File

@ -24,6 +24,7 @@ ha_codeowners:
- '@imicknl'
- '@vlebourl'
- '@tetienne'
- '@nyroDev'
ha_domain: overkiz
ha_dhcp: true
ha_zeroconf: true

View File

@ -43,7 +43,7 @@ sidebar_title:
required: false
type: string
sidebar_icon:
description: Icon for entry. Pick an icon that you can find on [materialdesignicons.com](https://materialdesignicons.com/) to use for your input and prefix the name with `mdi:`. For example `mdi:car`, `mdi:ambulance`, or `mdi:motorbike`.
description: Icon for entry. Pick an icon that from [Material Design Icons](https://pictogrammers.com/library/mdi/) to use for your input and prefix the name with `mdi:`. For example `mdi:car`, `mdi:ambulance`, or `mdi:motorbike`.
required: false
default: "mdi:bookmark"
type: icon

View File

@ -22,14 +22,10 @@ ha_integration_type: integration
---
The Pi-hole integration allows you to retrieve statistics and interact with a
[Pi-hole](https://pi-hole.net/) system.
[Pi-hole](https://pi-hole.net/) system. If your Pi-hole web interface is password protected, an API key is needed for the setup (_from Settings -> API / Web interface_).
{% include integrations/config_flow.md %}
Please note, that during the integration set up, an API key can be provided.
Providing one, gives access to the Pi-Hole `disable` service and a switch
to enable/disable Pi-Hole from Home Assistant.
## Services
The platform provides the following services to interact with your Pi-hole. Use switch entities when calling the services.

View File

@ -77,7 +77,7 @@ zone:
default: km
{% endconfiguration %}
To add multiple proximity components, simply use a list in your `configuration.yaml` file:
To add multiple proximity components, add a mapping to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry

View File

@ -9,12 +9,14 @@ ha_codeowners:
- '@bachya'
ha_domain: purpleair
ha_platforms:
- diagnostics
- sensor
ha_integration_type: device
ha_integration_type: integration
ha_config_flow: true
---
[PurpleAir](https://www2.purpleair.com/) makes sensors that measure hyper-local air quality data and share it with the public.
[PurpleAir](https://www2.purpleair.com/) makes sensors that measure hyper-local air
quality data and share it with the public.
{% include integrations/config_flow.md %}
@ -26,3 +28,120 @@ Add Sensor:
Remove Sensor:
description: Untrack a sensor.
{% endconfiguration_basic %}
## Creating an AQI Rating from Raw Particulate Data
The PurpleAir API does not provide AQI data; therefore, the integration does not create
an AQI sensor automatically. However, sensors providing raw particulate data can be used
to create a human-friendly AQI rating sensor.
<div class='note warning'>
The guidelines within this documentation constitute estimates and are intended to help
informed decision making. They should not replace analysis, advice or diagnosis from a
trained medical professional.
</div>
### Understanding EPA Guidelines
The United States Environmental Protection Agency (EPA) provides
[guidelines](https://aqs.epa.gov/aqsweb/documents/codetables/aqi_breakpoints.html) on
correlating the concentration of pollution over a time period to overall "healthiness."
For example, a PM2.5 concentration between 0.0 and 12.0 µg/m³ over a 24-hour period
equates to a "Good" AQI rating.
Therefore, a common strategy would be to use the guidelines for the particulate types
provided by the PurpleAir integration and "merge" them into a single AQI rating.
### Creating Statistics Sensors
With the EPA guidelines in hand, the next step is to create
[`statistics`](/integrations/statistics/) sensors for each particulate sensor you are
interested. This example uses PM2.5 and PM10.0 over a 24-hour period:
<div class='note info'>
The entity IDs provided below are simulated; make sure that you use entity IDs that
actually exist in your Home Assistant instance.
</div>
```yaml
sensor:
- platform: statistics
name: "Average Outdoor PM2.5 (24h)"
entity_id: sensor.sensor_pm2_5_mass_concentration
state_characteristic: mean
max_age:
hours: 24
- platform: statistics
name: "Average Outdoor PM10.0 (24h)"
entity_id: sensor.sensor_pm10_0_mass_concentration
state_characteristic: mean
max_age:
hours: 24
```
### Creating the AQI Rating Sensor
The [`statistics`](/integrations/statistics/) sensors can then be combined into a template
sensor. Note that this example takes a conservative approach: the "worse" of the two
values (PM2.5 or PM10.0) is used to determine the overall rating.
<div class='note info'>
Reminder that the breakpoints used below can be determined from the aforementioned EPA
guidelines.
</div>
{% raw %}
```yaml
sensor:
- name: "Local Outdoor Air Quality"
state: >
{% set pm2_5_avg = states("sensor.average_outdoor_pm2_5_24h") | int %}
{% if 0 <= pm2_5_avg <= 12.0 %}
{% set pm2_5_rating = 0 %}
{% elif 12.0 < pm2_5_avg <= 35.4 %}
{% set pm2_5_rating = 1 %}
{% elif 35.4 < pm2_5_avg <= 55.4 %}
{% set pm2_5_rating = 2 %}
{% elif 55.4 < pm2_5_avg <= 150.4 %}
{% set pm2_5_rating = 3 %}
{% elif 150.4 < pm2_5_avg <= 250.4 %}
{% set pm2_5_rating = 4 %}
{% else %}
{% set pm2_5_rating = 5 %}
{% endif %}
{% set pm10_0_avg = states("sensor.average_outdoor_pm10_0_24h") | int %}
{% if 0 <= pm10_0_avg <= 54.0 %}
{% set pm10_0_rating = 0 %}
{% elif 54.0 < pm10_0_avg <= 154.0 %}
{% set pm10_0_rating = 1 %}
{% elif 154.0 < pm10_0_avg <= 254.0 %}
{% set pm10_0_rating = 2 %}
{% elif 254.0 < pm10_0_avg <= 354.0 %}
{% set pm10_0_rating = 3 %}
{% elif 354.0 < pm10_0_avg <= 424.0 %}
{% set pm10_0_rating = 4 %}
{% else %}
{% set pm10_0_rating = 5 %}
{% endif %}
{% set rating = [pm2_5_rating, pm10_0_rating] | max %}
{% if rating == 0 %}
Good
{% elif rating == 1 %}
Moderate
{% elif rating == 2 %}
Unhealthy for sensitive groups
{% elif rating == 3 %}
Unhealthy
{% elif rating == 4 %}
Very unhealthy
{% else %}
Hazardous
{% endif %}
unique_id: local_outdoor_air_quality
```
{% endraw %}

View File

@ -68,7 +68,7 @@ data:
Running this script show absolutely no output on the screen, but it logs with level `info`. You must have the [Logger](/integrations/logger/) enabled at least for level `info`.
Your `confiuration.yaml` should include something like this.
Your `configuration.yaml` should include something like this.
```yaml
logger:

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