Merge branch 'current' into next

This commit is contained in:
Franck Nijhof 2021-08-19 15:53:28 +02:00
commit 151011122e
No known key found for this signature in database
GPG Key ID: D62583BA8AB11CA3
108 changed files with 3906 additions and 313 deletions

View File

@ -8,7 +8,7 @@ jobs:
lock:
runs-on: ubuntu-latest
steps:
- uses: dessant/lock-threads@v2.1.1
- uses: dessant/lock-threads@v2.1.2
with:
github-token: ${{ github.token }}
issue-lock-inactive-days: "30"

View File

@ -10,7 +10,7 @@ jobs:
- name: Check out files from GitHub
uses: actions/checkout@v2.3.4
- name: Setting up Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v2.3.1
uses: actions/setup-node@v2.4.0
with:
node-version: 12.x
- name: Setup NPM cache
@ -33,7 +33,7 @@ jobs:
- name: Check out files from GitHub
uses: actions/checkout@v2.3.4
- name: Setting up Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v2.3.1
uses: actions/setup-node@v2.4.0
with:
node-version: 12.x
- name: Setup NPM cache
@ -57,7 +57,7 @@ jobs:
- name: Check out files from GitHub
uses: actions/checkout@v2.3.4
- name: Setting up Ruby 2.6
uses: ruby/setup-ruby@v1.79.0
uses: ruby/setup-ruby@v1.81.0
with:
ruby-version: 2.6
- name: Setup Ruby Gems cache

View File

@ -11,6 +11,7 @@
source/_integrations/abode.markdown @shred86
source/_integrations/accuweather.markdown @bieniu
source/_integrations/acmeda.markdown @atmurray
source/_integrations/adax.markdown @danielhiversen
source/_integrations/adguard.markdown @frenck
source/_integrations/advantage_air.markdown @Bre77
source/_integrations/aemet.markdown @noltari
@ -87,7 +88,7 @@ source/_integrations/configurator.markdown @home-assistant/core
source/_integrations/control4.markdown @lawtancool
source/_integrations/conversation.markdown @home-assistant/core
source/_integrations/coolmaster.markdown @OnFreund
source/_integrations/coronavirus.markdown @home_assistant/core
source/_integrations/coronavirus.markdown @home-assistant/core
source/_integrations/counter.markdown @fabaff
source/_integrations/cover.markdown @home-assistant/core
source/_integrations/cpuspeed.markdown @fabaff
@ -149,6 +150,7 @@ source/_integrations/fireservicerota.markdown @cyberjunky
source/_integrations/firmata.markdown @DaAwesomeP
source/_integrations/fixer.markdown @fabaff
source/_integrations/flick_electric.markdown @ZephireNZ
source/_integrations/flipr.markdown @cnico
source/_integrations/flo.markdown @dmulcahey
source/_integrations/flock.markdown @fabaff
source/_integrations/flume.markdown @ChrisMandich @bdraco
@ -165,6 +167,7 @@ source/_integrations/fronius.markdown @nielstron
source/_integrations/frontend.markdown @home-assistant/frontend
source/_integrations/garages_amsterdam.markdown @klaasnicolaas
source/_integrations/gdacs.markdown @exxamalte
source/_integrations/generic_hygrostat.markdown @Shulyaka
source/_integrations/geniushub.markdown @zxdavb
source/_integrations/geo_json_events.markdown @exxamalte
source/_integrations/geo_rss_events.markdown @exxamalte
@ -200,6 +203,7 @@ source/_integrations/homeassistant.markdown @home-assistant/core
source/_integrations/homekit.markdown @bdraco
source/_integrations/homekit_controller.markdown @Jc2k @bdraco
source/_integrations/homematic.markdown @pvizeli @danielperna84
source/_integrations/honeywell.markdown @rdfurman
source/_integrations/http.markdown @home-assistant/core
source/_integrations/huawei_lte.markdown @scop @fphammerle
source/_integrations/huawei_router.markdown @abmantis
@ -313,6 +317,7 @@ source/_integrations/netdata.markdown @fabaff
source/_integrations/nexia.markdown @bdraco
source/_integrations/nextbus.markdown @vividboarder
source/_integrations/nextcloud.markdown @meichthys
source/_integrations/nfandroidtv.markdown @tkdrob
source/_integrations/nightscout.markdown @marciogranzotto
source/_integrations/nilu.markdown @hfurubotten
source/_integrations/nissan_leaf.markdown @filcole
@ -368,6 +373,7 @@ source/_integrations/powerwall.markdown @bdraco @jrester
source/_integrations/profiler.markdown @bdraco
source/_integrations/progettihwsw.markdown @ardaseremet
source/_integrations/prometheus.markdown @knyar
source/_integrations/prosegur.markdown @dgomes
source/_integrations/proxmoxve.markdown @k4ds3 @jhollowe @Corbeno
source/_integrations/ps4.markdown @ktnrg45
source/_integrations/push.markdown @dgomes
@ -426,6 +432,7 @@ source/_integrations/sighthound.markdown @robmarkcole
source/_integrations/signal_messenger.markdown @bbernhard
source/_integrations/simplisafe.markdown @bachya
source/_integrations/sinch.markdown @bendikrb
source/_integrations/siren.markdown @home-assistant/core @raman325
source/_integrations/sisyphus.markdown @jkeljo
source/_integrations/sky_hub.markdown @rogerselwyn
source/_integrations/slack.markdown @bachya
@ -486,7 +493,7 @@ source/_integrations/tapsaff.markdown @bazwilliams
source/_integrations/tasmota.markdown @emontnemery
source/_integrations/tautulli.markdown @ludeeus
source/_integrations/tellduslive.markdown @fredrike
source/_integrations/template.markdown @PhracturedBlue @tetienne
source/_integrations/template.markdown @PhracturedBlue @tetienne @home-assistant/core
source/_integrations/tesla.markdown @zabuldon @alandtse
source/_integrations/tfiac.markdown @fredrike @mellado
source/_integrations/thethingsnetwork.markdown @fabaff
@ -537,11 +544,12 @@ source/_integrations/wallbox.markdown @hesselonline
source/_integrations/waqi.markdown @andrey-git
source/_integrations/watson_tts.markdown @rutkai
source/_integrations/weather.markdown @fabaff
source/_integrations/webostv.markdown @bendavid
source/_integrations/webostv.markdown @bendavid @thecode
source/_integrations/websocket_api.markdown @home-assistant/core
source/_integrations/wemo.markdown @esev
source/_integrations/wiffi.markdown @mampfes
source/_integrations/wilight.markdown @leofig-rj
source/_integrations/wirelesstag.markdown @sergeymaysak
source/_integrations/withings.markdown @vangorra
source/_integrations/wled.markdown @frenck
source/_integrations/wolflink.markdown @adamkrol93
@ -559,6 +567,7 @@ source/_integrations/yandex_transport.markdown @rishatik92 @devbis
source/_integrations/yeelight.markdown @rytilahti @zewelor @shenxn
source/_integrations/yeelightsunflower.markdown @lindsaymarkward
source/_integrations/yi.markdown @bachya
source/_integrations/youless.markdown @gjong
source/_integrations/zeroconf.markdown @bdraco
source/_integrations/zerproc.markdown @emlove
source/_integrations/zha.markdown @dmulcahey @adminiuga

View File

@ -21,7 +21,7 @@ group :jekyll_plugins do
end
gem 'sinatra', '2.1.0'
gem 'nokogiri', '1.12.1'
gem 'nokogiri', '1.12.3'
# Windows and JRuby does not include zoneinfo files, so bundle the tzinfo-data gem
# and associated library

View File

@ -66,7 +66,7 @@ GEM
kramdown-parser-gfm (1.1.0)
kramdown (~> 2.0)
liquid (4.0.3)
listen (3.6.0)
listen (3.7.0)
rb-fsevent (~> 0.10, >= 0.10.3)
rb-inotify (~> 0.9, >= 0.9.10)
mercenary (0.4.0)
@ -74,10 +74,10 @@ GEM
multi_json (1.15.0)
mustermann (1.1.1)
ruby2_keywords (~> 0.0.1)
nokogiri (1.12.1)
nokogiri (1.12.3)
mini_portile2 (~> 2.6.1)
racc (~> 1.4)
nokogiri (1.12.1-x64-mingw32)
nokogiri (1.12.3-x64-mingw32)
racc (~> 1.4)
pathutil (0.16.2)
forwardable-extended (~> 2.6)
@ -130,7 +130,7 @@ DEPENDENCIES
jekyll-sitemap (= 1.4.0)
jekyll-time-to-read (= 0.1.2)
jekyll-toc (= 0.17.1)
nokogiri (= 1.12.1)
nokogiri (= 1.12.3)
rake (= 13.0.6)
sass-globbing (= 1.1.5)
sassc (= 2.1.0)

View File

@ -107,9 +107,9 @@ social:
# Home Assistant release details
current_major_version: 2021
current_minor_version: 7
current_patch_version: 4
date_released: 2021-07-21
current_minor_version: 8
current_patch_version: 8
date_released: 2021-08-18
# Either # or the anchor link to latest release notes in the blog post.
# Must be prefixed with a # and have double quotes around it.

641
package-lock.json generated
View File

@ -478,6 +478,43 @@
"ms": "2.1.2"
}
},
"fault": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/fault/-/fault-1.0.4.tgz",
"integrity": "sha512-CJ0HCB5tL5fYTEA7ToAq5+kTwd++Borf1/bifxd9iT70QcXr4MRrO3Llf8Ifs70q+SJcGHFtnIE/Nw6giCtECA==",
"dev": true,
"requires": {
"format": "^0.2.0"
}
},
"mdast-util-frontmatter": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/mdast-util-frontmatter/-/mdast-util-frontmatter-0.2.0.tgz",
"integrity": "sha512-FHKL4w4S5fdt1KjJCwB0178WJ0evnyyQr5kXTM3wrOVpytD0hrkvd+AOOjU9Td8onOejCkmZ+HQRT3CZ3coHHQ==",
"dev": true,
"requires": {
"micromark-extension-frontmatter": "^0.2.0"
}
},
"micromark-extension-frontmatter": {
"version": "0.2.2",
"resolved": "https://registry.npmjs.org/micromark-extension-frontmatter/-/micromark-extension-frontmatter-0.2.2.tgz",
"integrity": "sha512-q6nPLFCMTLtfsctAuS0Xh4vaolxSFUWUWR6PZSrXXiRy+SANGllpcqdXFv2z07l0Xz/6Hl40hK0ffNCJPH2n1A==",
"dev": true,
"requires": {
"fault": "^1.0.0"
}
},
"remark-frontmatter": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/remark-frontmatter/-/remark-frontmatter-3.0.0.tgz",
"integrity": "sha512-mSuDd3svCHs+2PyO29h7iijIZx4plX0fheacJcAoYAASfgzgVIcXGYSq9GFyYocFLftQs8IOmmkgtOovs6d4oA==",
"dev": true,
"requires": {
"mdast-util-frontmatter": "^0.2.0",
"micromark-extension-frontmatter": "^0.2.0"
}
},
"unified": {
"version": "9.2.1",
"resolved": "https://registry.npmjs.org/unified/-/unified-9.2.1.tgz",
@ -604,6 +641,15 @@
"@types/ms": "*"
}
},
"@types/hast": {
"version": "2.3.2",
"resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.2.tgz",
"integrity": "sha512-Op5W7jYgZI7AWKY5wQ0/QNMzQM7dGQPyW1rXKNiymVCy5iTfdPuGu4HhYNOM2sIv8gUfIuIdcYlXmAepwaowow==",
"dev": true,
"requires": {
"@types/unist": "*"
}
},
"@types/is-empty": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/@types/is-empty/-/is-empty-1.2.0.tgz",
@ -637,6 +683,12 @@
"integrity": "sha512-TmVHsm43br64js9BqHWqiDZA+xMtbUpI1MBIA0EyiBmoV9pcEYFOSdj5fr6enZNfh4fChh+AGOLIzGwJnkshyQ==",
"dev": true
},
"@types/parse5": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-6.0.1.tgz",
"integrity": "sha512-ARATsLdrGPUnaBvxLhUlnltcMgn7pQG312S8ccdYlnyijabrX9RN/KN/iGj9Am96CoW8e/K9628BA7Bv4XHdrA==",
"dev": true
},
"@types/repeat-string": {
"version": "1.6.1",
"resolved": "https://registry.npmjs.org/@types/repeat-string/-/repeat-string-1.6.1.tgz",
@ -820,6 +872,12 @@
"integrity": "sha512-yB4oYSAa9yLcGyTbB4ItFwHw43QHdH129IJ5R+WvxOkWlyFnR5FAaBNnUq4mcxsTVZGh28bHoeTHMKXH1wZf3w==",
"dev": true
},
"character-entities-html4": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.0.0.tgz",
"integrity": "sha512-dwT2xh5ZhUAjyP96k57ilMKoTQyASaw9IAMR9U5c1lCu2RUni6O6jxfpUEdO2RcPT6TJFvr8pqsbami4Jk+2oA==",
"dev": true
},
"character-entities-legacy": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.3.tgz",
@ -854,12 +912,6 @@
"readdirp": "~3.6.0"
}
},
"co": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/co/-/co-3.1.0.tgz",
"integrity": "sha1-TqVOpaCJOBUxheFSEMaNkJK8G3g=",
"dev": true
},
"code-point-at": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
@ -881,6 +933,12 @@
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
"dev": true
},
"comma-separated-tokens": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.2.tgz",
"integrity": "sha512-G5yTt3KQN4Yn7Yk4ed73hlZ1evrFKXeUW3086p3PRFNp7m2vIjI6Pg+Kgb+oyzhd9F2qdcoj67+y3SdxL5XWsg==",
"dev": true
},
"concat-map": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
@ -995,12 +1053,12 @@
"dev": true
},
"fault": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/fault/-/fault-1.0.3.tgz",
"integrity": "sha512-sfFuP4X0hzrbGKjAUNXYvNqsZ5F6ohx/dZ9I0KQud/aiZNwg263r5L9yGB0clvXHCkzXh5W3t7RSHchggYIFmA==",
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/fault/-/fault-2.0.0.tgz",
"integrity": "sha512-JsDj9LFcoC+4ChII1QpXPA7YIaY8zmqPYw7h9j5n7St7a0BBKfNnwEBAUQRBx70o2q4rs+BeSNHk8Exm6xE7fQ==",
"dev": true,
"requires": {
"format": "^0.2.2"
"format": "^0.2.0"
}
},
"figgy-pudding": {
@ -1162,12 +1220,137 @@
"integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==",
"dev": true
},
"hast-util-from-parse5": {
"version": "7.1.0",
"resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-7.1.0.tgz",
"integrity": "sha512-m8yhANIAccpU4K6+121KpPP55sSl9/samzQSQGpb0mTExcNh2WlvjtMwSWFhg6uqD4Rr6Nfa8N6TMypQM51rzQ==",
"dev": true,
"requires": {
"@types/hast": "^2.0.0",
"@types/parse5": "^6.0.0",
"@types/unist": "^2.0.0",
"hastscript": "^7.0.0",
"property-information": "^6.0.0",
"vfile": "^5.0.0",
"vfile-location": "^4.0.0",
"web-namespaces": "^2.0.0"
},
"dependencies": {
"unist-util-stringify-position": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz",
"integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==",
"dev": true,
"requires": {
"@types/unist": "^2.0.0"
}
},
"vfile": {
"version": "5.0.2",
"resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz",
"integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==",
"dev": true,
"requires": {
"@types/unist": "^2.0.0",
"is-buffer": "^2.0.0",
"unist-util-stringify-position": "^3.0.0",
"vfile-message": "^3.0.0"
}
},
"vfile-message": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz",
"integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==",
"dev": true,
"requires": {
"@types/unist": "^2.0.0",
"unist-util-stringify-position": "^3.0.0"
}
}
}
},
"hast-util-is-element": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-2.1.1.tgz",
"integrity": "sha512-ag0fiZfRWsPiR1udvnSbaazJLGv8qd8E+/e3rW8rUZhbKG4HNJmFL4QkEceN+22BgE+uozXY30z/s+2dL6Z++g==",
"dev": true,
"requires": {
"@types/hast": "^2.0.0",
"@types/unist": "^2.0.0"
}
},
"hast-util-parse-selector": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-3.1.0.tgz",
"integrity": "sha512-AyjlI2pTAZEOeu7GeBPZhROx0RHBnydkQIXlhnFzDi0qfXTmGUWoCYZtomHbrdrheV4VFUlPcfJ6LMF5T6sQzg==",
"dev": true,
"requires": {
"@types/hast": "^2.0.0"
}
},
"hast-util-to-html": {
"version": "8.0.1",
"resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-8.0.1.tgz",
"integrity": "sha512-S1mTqXvWVGIxrWw0xOHHvmevwCBFTRGNvXWsjE32IyEAlMhbMkK+ZuP6CAqkQ6Vb7swrehaHpfXHEI6voGDh0w==",
"dev": true,
"requires": {
"@types/hast": "^2.0.0",
"ccount": "^2.0.0",
"comma-separated-tokens": "^2.0.0",
"hast-util-is-element": "^2.0.0",
"hast-util-whitespace": "^2.0.0",
"html-void-elements": "^2.0.0",
"property-information": "^6.0.0",
"space-separated-tokens": "^2.0.0",
"stringify-entities": "^4.0.0",
"unist-util-is": "^5.0.0"
},
"dependencies": {
"ccount": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.0.tgz",
"integrity": "sha512-VOR0NWFYX65n9gELQdcpqsie5L5ihBXuZGAgaPEp/U7IOSjnPMEH6geE+2f6lcekaNEfWzAHS45mPvSo5bqsUA==",
"dev": true
},
"unist-util-is": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.1.1.tgz",
"integrity": "sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==",
"dev": true
}
}
},
"hast-util-whitespace": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-2.0.0.tgz",
"integrity": "sha512-Pkw+xBHuV6xFeJprJe2BBEoDV+AvQySaz3pPDRUs5PNZEMQjpXJJueqrpcHIXxnWTcAGi/UOCgVShlkY6kLoqg==",
"dev": true
},
"hastscript": {
"version": "7.0.2",
"resolved": "https://registry.npmjs.org/hastscript/-/hastscript-7.0.2.tgz",
"integrity": "sha512-uA8ooUY4ipaBvKcMuPehTAB/YfFLSSzCwFSwT6ltJbocFUKH/GDHLN+tflq7lSRf9H86uOuxOFkh1KgIy3Gg2g==",
"dev": true,
"requires": {
"@types/hast": "^2.0.0",
"comma-separated-tokens": "^2.0.0",
"hast-util-parse-selector": "^3.0.0",
"property-information": "^6.0.0",
"space-separated-tokens": "^2.0.0"
}
},
"hosted-git-info": {
"version": "2.8.9",
"resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz",
"integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==",
"dev": true
},
"html-void-elements": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-2.0.0.tgz",
"integrity": "sha512-4OYzQQsBt0G9bJ/nM9/DDsjm4+fVdzAaPJJcWk5QwA3GIAPxQEeOR0rsI8HbDHQz5Gta8pVvGnnTNSbZVEVvkQ==",
"dev": true
},
"ignore": {
"version": "5.1.8",
"resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz",
@ -1600,9 +1783,9 @@
}
},
"mdast-comment-marker": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/mdast-comment-marker/-/mdast-comment-marker-1.1.2.tgz",
"integrity": "sha512-vTFXtmbbF3rgnTh3Zl3irso4LtvwUq/jaDvT2D1JqTGAwaipcS7RpTxzi6KjoRqI9n2yuAhzLDAC8xVTF3XYVQ==",
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/mdast-comment-marker/-/mdast-comment-marker-2.0.0.tgz",
"integrity": "sha512-LQ4sf7vUzxz4mQQlzzBDgjaCJO5A0lkIAT9TyeNMfqaP31ooP1Qw9hprf7/V3NCo5FA1nvo5gbnfLVRY79QlDQ==",
"dev": true
},
"mdast-util-find-and-replace": {
@ -1691,12 +1874,12 @@
}
},
"mdast-util-frontmatter": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/mdast-util-frontmatter/-/mdast-util-frontmatter-0.2.0.tgz",
"integrity": "sha512-FHKL4w4S5fdt1KjJCwB0178WJ0evnyyQr5kXTM3wrOVpytD0hrkvd+AOOjU9Td8onOejCkmZ+HQRT3CZ3coHHQ==",
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/mdast-util-frontmatter/-/mdast-util-frontmatter-1.0.0.tgz",
"integrity": "sha512-7itKvp0arEVNpCktOET/eLFAYaZ+0cNjVtFtIPxgQ5tV+3i+D4SDDTjTzPWl44LT59PC+xdx+glNTawBdF98Mw==",
"dev": true,
"requires": {
"micromark-extension-frontmatter": "^0.2.0"
"micromark-extension-frontmatter": "^1.0.0"
}
},
"mdast-util-gfm": {
@ -1960,12 +2143,14 @@
}
},
"micromark-extension-frontmatter": {
"version": "0.2.2",
"resolved": "https://registry.npmjs.org/micromark-extension-frontmatter/-/micromark-extension-frontmatter-0.2.2.tgz",
"integrity": "sha512-q6nPLFCMTLtfsctAuS0Xh4vaolxSFUWUWR6PZSrXXiRy+SANGllpcqdXFv2z07l0Xz/6Hl40hK0ffNCJPH2n1A==",
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/micromark-extension-frontmatter/-/micromark-extension-frontmatter-1.0.0.tgz",
"integrity": "sha512-EXjmRnupoX6yYuUJSQhrQ9ggK0iQtQlpi6xeJzVD5xscyAI+giqco5fdymayZhJMbIFecjnE2yz85S9NzIgQpg==",
"dev": true,
"requires": {
"fault": "^1.0.0"
"fault": "^2.0.0",
"micromark-util-character": "^1.0.0",
"micromark-util-symbol": "^1.0.0"
}
},
"micromark-extension-gfm": {
@ -2399,6 +2584,12 @@
"error-ex": "^1.2.0"
}
},
"parse5": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz",
"integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==",
"dev": true
},
"path-exists": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
@ -2473,6 +2664,12 @@
"integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
"dev": true
},
"property-information": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/property-information/-/property-information-6.0.1.tgz",
"integrity": "sha512-F4WUUAF7fMeF4/JUFHNBWDaKDXi2jbvqBW/y6o5wsf3j19wTZ7S60TmtB5HoBhtgw7NKQRMWuz5vk2PR0CygUg==",
"dev": true
},
"punycode": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
@ -2598,6 +2795,41 @@
"define-properties": "^1.1.3"
}
},
"rehype": {
"version": "12.0.0",
"resolved": "https://registry.npmjs.org/rehype/-/rehype-12.0.0.tgz",
"integrity": "sha512-gZcttmf9R5IYHb8AlI1rlmWqXS1yX0rSB/S5ZGJs8atfYZy2DobvH3Ic/gSzB+HL/+oOHPtBguw1TprfhxXBgQ==",
"dev": true,
"requires": {
"@types/hast": "^2.0.0",
"rehype-parse": "^8.0.0",
"rehype-stringify": "^9.0.0",
"unified": "^10.0.0"
}
},
"rehype-parse": {
"version": "8.0.2",
"resolved": "https://registry.npmjs.org/rehype-parse/-/rehype-parse-8.0.2.tgz",
"integrity": "sha512-Y5AvUbTareuAcCQITTbC9SGagm1IvOOSfG5CTTaOUW0pEeoNHkOq4YmMaEywUmSwwOgel3gOF3O7Mwl1acoBzg==",
"dev": true,
"requires": {
"@types/hast": "^2.0.0",
"hast-util-from-parse5": "^7.0.0",
"parse5": "^6.0.0",
"unified": "^10.0.0"
}
},
"rehype-stringify": {
"version": "9.0.1",
"resolved": "https://registry.npmjs.org/rehype-stringify/-/rehype-stringify-9.0.1.tgz",
"integrity": "sha512-xfhm8Erp7yL+RRgYmtZMJUqu6OSguwOQMfR2LkqT1dgNDQheClFMaDPVERy4/su7o0eHo0PKFGn4L68kOjVdRQ==",
"dev": true,
"requires": {
"@types/hast": "^2.0.0",
"hast-util-to-html": "^8.0.0",
"unified": "^10.0.0"
}
},
"remark": {
"version": "14.0.1",
"resolved": "https://registry.npmjs.org/remark/-/remark-14.0.1.tgz",
@ -2798,13 +3030,15 @@
}
},
"remark-frontmatter": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/remark-frontmatter/-/remark-frontmatter-3.0.0.tgz",
"integrity": "sha512-mSuDd3svCHs+2PyO29h7iijIZx4plX0fheacJcAoYAASfgzgVIcXGYSq9GFyYocFLftQs8IOmmkgtOovs6d4oA==",
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/remark-frontmatter/-/remark-frontmatter-4.0.0.tgz",
"integrity": "sha512-0J+2czWAS9sz9baJJel4tTUnNhMI7wYgih99Hxhdeq2GpdI1Ctu0iol6zAsWw5xa+jLsZXNiwEnnJAJo3XX3hw==",
"dev": true,
"requires": {
"mdast-util-frontmatter": "^0.2.0",
"micromark-extension-frontmatter": "^0.2.0"
"@types/mdast": "^3.0.0",
"mdast-util-frontmatter": "^1.0.0",
"micromark-extension-frontmatter": "^1.0.0",
"unified": "^10.0.0"
}
},
"remark-gfm": {
@ -2818,103 +3052,146 @@
}
},
"remark-lint": {
"version": "8.0.0",
"resolved": "https://registry.npmjs.org/remark-lint/-/remark-lint-8.0.0.tgz",
"integrity": "sha512-ESI8qJQ/TIRjABDnqoFsTiZntu+FRifZ5fJ77yX63eIDijl/arvmDvT+tAf75/Nm5BFL4R2JFUtkHRGVjzYUsg==",
"version": "9.0.1",
"resolved": "https://registry.npmjs.org/remark-lint/-/remark-lint-9.0.1.tgz",
"integrity": "sha512-q4VFsA7LEG4REJhR2P4A6CU9b4cCQL53845CX74Z4N/W0EgB9mm/GXpYzjbEqgkMPl5ctP8yp/vBYTNmjfUCtw==",
"dev": true,
"requires": {
"remark-message-control": "^6.0.0"
"@types/mdast": "^3.0.0",
"remark-message-control": "^7.0.0",
"unified": "^10.1.0"
}
},
"remark-lint-fenced-code-flag": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/remark-lint-fenced-code-flag/-/remark-lint-fenced-code-flag-2.0.1.tgz",
"integrity": "sha512-+COnWHlS/h02FMxoZWxNlZW3Y8M0cQQpmx3aNCbG7xkyMyCKsMLg9EmRvYHHIbxQCuF3JT0WWx5AySqlc7d+NA==",
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/remark-lint-fenced-code-flag/-/remark-lint-fenced-code-flag-3.0.1.tgz",
"integrity": "sha512-HsEhvalGxCauZO6OAnaVzIBycfaHLuyZxy1KlniWXQJKZ6EjRAsWwkZHYx9qfPl/ZW7zDG+xAoWTqdHjZW/BTg==",
"dev": true,
"requires": {
"unified-lint-rule": "^1.0.0",
"unist-util-generated": "^1.1.0",
"unist-util-position": "^3.0.0",
"unist-util-visit": "^2.0.0"
"@types/mdast": "^3.0.0",
"unified": "^10.0.0",
"unified-lint-rule": "^2.0.0",
"unist-util-generated": "^2.0.0",
"unist-util-position": "^4.0.0",
"unist-util-visit": "^4.0.0"
},
"dependencies": {
"unist-util-is": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.0.2.tgz",
"integrity": "sha512-Ofx8uf6haexJwI1gxWMGg6I/dLnF2yE+KibhD3/diOqY2TinLcqHXCV6OI5gFVn3xQqDH+u0M625pfKwIwgBKQ==",
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.1.1.tgz",
"integrity": "sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==",
"dev": true
},
"unist-util-visit": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.2.tgz",
"integrity": "sha512-HoHNhGnKj6y+Sq+7ASo2zpVdfdRifhTgX2KTU3B/sO/TTlZchp7E3S4vjRzDJ7L60KmrCPsQkVK3lEF3cz36XQ==",
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz",
"integrity": "sha512-3HWTvrtU10/E7qgPznBfiOyG0TXj9W8c1GSfaI8L9GkaG1pLePiQPZ7E35a0R3ToQ/zcy4Im6aZ9WBgOTnv1MQ==",
"dev": true,
"requires": {
"@types/unist": "^2.0.0",
"unist-util-is": "^4.0.0",
"unist-util-visit-parents": "^3.0.0"
"unist-util-is": "^5.0.0",
"unist-util-visit-parents": "^5.0.0"
}
},
"unist-util-visit-parents": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.0.2.tgz",
"integrity": "sha512-yJEfuZtzFpQmg1OSCyS9M5NJRrln/9FbYosH3iW0MG402QbdbaB8ZESwUv9RO6nRfLAKvWcMxCwdLWOov36x/g==",
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.0.0.tgz",
"integrity": "sha512-CVaLOYPM/EaFTYMytbaju3Tw4QI3DHnHFnL358FkEu0hZOzSm/hqBdVwOQDR60jF5ZzhB1tlZlRH0ll/yekZIQ==",
"dev": true,
"requires": {
"@types/unist": "^2.0.0",
"unist-util-is": "^4.0.0"
"unist-util-is": "^5.0.0"
}
}
}
},
"remark-lint-no-shell-dollars": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/remark-lint-no-shell-dollars/-/remark-lint-no-shell-dollars-2.0.2.tgz",
"integrity": "sha512-zhkHZOuyaD3r/TUUkkVqW0OxsR9fnSrAnHIF63nfJoAAUezPOu8D1NBsni6rX8H2DqGbPYkoeWrNsTwiKP0yow==",
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/remark-lint-no-shell-dollars/-/remark-lint-no-shell-dollars-3.0.1.tgz",
"integrity": "sha512-QvnA8Ltj3FPaAqUu0DebKYv66LFndTk0fXVZ9rQWOjTEVIKImy9Dy59kVqwYMpCwZbJkpigu2bMl/7UG/BA0XA==",
"dev": true,
"requires": {
"unified-lint-rule": "^1.0.0",
"unist-util-generated": "^1.1.0",
"unist-util-visit": "^2.0.0"
"@types/mdast": "^3.0.0",
"unified": "^10.0.0",
"unified-lint-rule": "^2.0.0",
"unist-util-generated": "^2.0.0",
"unist-util-visit": "^4.0.0"
},
"dependencies": {
"unist-util-is": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.0.2.tgz",
"integrity": "sha512-Ofx8uf6haexJwI1gxWMGg6I/dLnF2yE+KibhD3/diOqY2TinLcqHXCV6OI5gFVn3xQqDH+u0M625pfKwIwgBKQ==",
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.1.1.tgz",
"integrity": "sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==",
"dev": true
},
"unist-util-visit": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.2.tgz",
"integrity": "sha512-HoHNhGnKj6y+Sq+7ASo2zpVdfdRifhTgX2KTU3B/sO/TTlZchp7E3S4vjRzDJ7L60KmrCPsQkVK3lEF3cz36XQ==",
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz",
"integrity": "sha512-3HWTvrtU10/E7qgPznBfiOyG0TXj9W8c1GSfaI8L9GkaG1pLePiQPZ7E35a0R3ToQ/zcy4Im6aZ9WBgOTnv1MQ==",
"dev": true,
"requires": {
"@types/unist": "^2.0.0",
"unist-util-is": "^4.0.0",
"unist-util-visit-parents": "^3.0.0"
"unist-util-is": "^5.0.0",
"unist-util-visit-parents": "^5.0.0"
}
},
"unist-util-visit-parents": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.0.2.tgz",
"integrity": "sha512-yJEfuZtzFpQmg1OSCyS9M5NJRrln/9FbYosH3iW0MG402QbdbaB8ZESwUv9RO6nRfLAKvWcMxCwdLWOov36x/g==",
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.0.0.tgz",
"integrity": "sha512-CVaLOYPM/EaFTYMytbaju3Tw4QI3DHnHFnL358FkEu0hZOzSm/hqBdVwOQDR60jF5ZzhB1tlZlRH0ll/yekZIQ==",
"dev": true,
"requires": {
"@types/unist": "^2.0.0",
"unist-util-is": "^4.0.0"
"unist-util-is": "^5.0.0"
}
}
}
},
"remark-message-control": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/remark-message-control/-/remark-message-control-6.0.0.tgz",
"integrity": "sha512-k9bt7BYc3G7YBdmeAhvd3VavrPa/XlKWR3CyHjr4sLO9xJyly8WHHT3Sp+8HPR8lEUv+/sZaffL7IjMLV0f6BA==",
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/remark-message-control/-/remark-message-control-7.0.0.tgz",
"integrity": "sha512-KZySoC97TrMPYfIZ9vJ7wxvQwniy68K6WCY3vmSedDN5YuGfdVOpMj6sjaZQcqbWZV9n7BhrT70E3xaUTtk4hA==",
"dev": true,
"requires": {
"mdast-comment-marker": "^1.0.0",
"unified-message-control": "^3.0.0"
"@types/mdast": "^3.0.0",
"mdast-comment-marker": "^2.0.0",
"rehype": "^12.0.0",
"unified": "^10.0.0",
"unified-message-control": "^4.0.0",
"vfile": "^5.0.0"
},
"dependencies": {
"unist-util-stringify-position": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz",
"integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==",
"dev": true,
"requires": {
"@types/unist": "^2.0.0"
}
},
"vfile": {
"version": "5.0.2",
"resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz",
"integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==",
"dev": true,
"requires": {
"@types/unist": "^2.0.0",
"is-buffer": "^2.0.0",
"unist-util-stringify-position": "^3.0.0",
"vfile-message": "^3.0.0"
}
},
"vfile-message": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz",
"integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==",
"dev": true,
"requires": {
"@types/unist": "^2.0.0",
"unist-util-stringify-position": "^3.0.0"
}
}
}
},
"remark-parse": {
@ -3091,10 +3368,10 @@
"is-fullwidth-code-point": "^3.0.0"
}
},
"sliced": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz",
"integrity": "sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E=",
"space-separated-tokens": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.1.tgz",
"integrity": "sha512-ekwEbFp5aqSPKaqeY1PGrlGQxPNaq+Cnx4+bE2D8sciBQrHpbwoBbawqTN2+6jPs9IdWxxiUcN0K2pkczD3zmw==",
"dev": true
},
"spdx-correct": {
@ -3155,6 +3432,24 @@
"safe-buffer": "~5.2.0"
}
},
"stringify-entities": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.1.tgz",
"integrity": "sha512-gmMQxKXPWIO3NXNSPyWNhlYcBNGpPA/487D+9dLPnU4xBnIrnHdr8cv5rGJOS/1BRxEXRb7uKwg7BA36IWV7xg==",
"dev": true,
"requires": {
"character-entities-html4": "^2.0.0",
"character-entities-legacy": "^2.0.0"
},
"dependencies": {
"character-entities-legacy": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-2.0.0.tgz",
"integrity": "sha512-YwaEtEvWLpFa6Wh3uVLrvirA/ahr9fki/NUd/Bd4OR6EdJ8D22hovYQEOUCBfQfcqnC4IAMGMsHXY1eXgL4ZZA==",
"dev": true
}
}
},
"strip-ansi": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
@ -3617,56 +3912,127 @@
}
},
"unified-lint-rule": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-1.0.4.tgz",
"integrity": "sha512-q9wY6S+d38xRAuWQVOMjBQYi7zGyKkY23ciNafB8JFVmDroyKjtytXHCg94JnhBCXrNqpfojo3+8D+gmF4zxJQ==",
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.1.tgz",
"integrity": "sha512-2RzZuuuWW+ifftM0zd/ZEng0Hb5lah+Zi+ZL/ybj8BrLO/TH2aQAMYvG+iC95aCg2FkWu/pcvVvHqsh2UMmzPg==",
"dev": true,
"requires": {
"wrapped": "^1.0.1"
"@types/unist": "^2.0.0",
"trough": "^2.0.0",
"unified": "^10.0.0",
"vfile": "^5.0.0"
},
"dependencies": {
"trough": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz",
"integrity": "sha512-FnHq5sTMxC0sk957wHDzRnemFnNBvt/gSY99HzK8F7UP5WAbvP70yX5bd7CjEQkN+TjdxwI7g7lJ6podqrG2/w==",
"dev": true
},
"unist-util-stringify-position": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz",
"integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==",
"dev": true,
"requires": {
"@types/unist": "^2.0.0"
}
},
"vfile": {
"version": "5.0.2",
"resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz",
"integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==",
"dev": true,
"requires": {
"@types/unist": "^2.0.0",
"is-buffer": "^2.0.0",
"unist-util-stringify-position": "^3.0.0",
"vfile-message": "^3.0.0"
}
},
"vfile-message": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz",
"integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==",
"dev": true,
"requires": {
"@types/unist": "^2.0.0",
"unist-util-stringify-position": "^3.0.0"
}
}
}
},
"unified-message-control": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/unified-message-control/-/unified-message-control-3.0.1.tgz",
"integrity": "sha512-K2Kvvp1DBzeuxYLLsumZh/gDWUTl4e2z/P3VReFirC78cfHKtQifbhnfRrSBtKtd1Uc6cvYTW0/SZIUaMAEcTg==",
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/unified-message-control/-/unified-message-control-4.0.0.tgz",
"integrity": "sha512-1b92N+VkPHftOsvXNOtkJm4wHlr+UDmTBF2dUzepn40oy9NxanJ9xS1RwUBTjXJwqr2K0kMbEyv1Krdsho7+Iw==",
"dev": true,
"requires": {
"unist-util-visit": "^2.0.0",
"vfile-location": "^3.0.0"
"@types/unist": "^2.0.0",
"unist-util-is": "^5.0.0",
"unist-util-visit": "^3.0.0",
"vfile": "^5.0.0",
"vfile-location": "^4.0.0",
"vfile-message": "^3.0.0"
},
"dependencies": {
"unist-util-is": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.0.2.tgz",
"integrity": "sha512-Ofx8uf6haexJwI1gxWMGg6I/dLnF2yE+KibhD3/diOqY2TinLcqHXCV6OI5gFVn3xQqDH+u0M625pfKwIwgBKQ==",
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.1.1.tgz",
"integrity": "sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==",
"dev": true
},
"unist-util-stringify-position": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz",
"integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==",
"dev": true,
"requires": {
"@types/unist": "^2.0.0"
}
},
"unist-util-visit": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.3.tgz",
"integrity": "sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==",
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-3.1.0.tgz",
"integrity": "sha512-Szoh+R/Ll68QWAyQyZZpQzZQm2UPbxibDvaY8Xc9SUtYgPsDzx5AWSk++UUt2hJuow8mvwR+rG+LQLw+KsuAKA==",
"dev": true,
"requires": {
"@types/unist": "^2.0.0",
"unist-util-is": "^4.0.0",
"unist-util-visit-parents": "^3.0.0"
"unist-util-is": "^5.0.0",
"unist-util-visit-parents": "^4.0.0"
}
},
"unist-util-visit-parents": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.1.0.tgz",
"integrity": "sha512-0g4wbluTF93npyPrp/ymd3tCDTMnP0yo2akFD2FIBAYXq/Sga3lwaU1D8OYKbtpioaI6CkDcQ6fsMnmtzt7htw==",
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-4.1.1.tgz",
"integrity": "sha512-1xAFJXAKpnnJl8G7K5KgU7FY55y3GcLIXqkzUj5QF/QVP7biUm0K0O2oqVkYsdjzJKifYeWn9+o6piAK2hGSHw==",
"dev": true,
"requires": {
"@types/unist": "^2.0.0",
"unist-util-is": "^4.0.0"
"unist-util-is": "^5.0.0"
}
},
"vfile-location": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-3.1.0.tgz",
"integrity": "sha512-FCZ4AN9xMcjFIG1oGmZKo61PjwJHRVA+0/tPUP2ul4uIwjGGndIxavEMRpWn5p4xwm/ZsdXp9YNygf1ZyE4x8g==",
"dev": true
"vfile": {
"version": "5.0.2",
"resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz",
"integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==",
"dev": true,
"requires": {
"@types/unist": "^2.0.0",
"is-buffer": "^2.0.0",
"unist-util-stringify-position": "^3.0.0",
"vfile-message": "^3.0.0"
}
},
"vfile-message": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz",
"integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==",
"dev": true,
"requires": {
"@types/unist": "^2.0.0",
"unist-util-stringify-position": "^3.0.0"
}
}
}
},
@ -3677,9 +4043,9 @@
"dev": true
},
"unist-util-generated": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-1.1.4.tgz",
"integrity": "sha512-SA7Sys3h3X4AlVnxHdvN/qYdr4R38HzihoEVY2Q2BZu8NHWDnw5OGcC/tXWjQfd4iG+M6qRFNIRGqJmp2ez4Ww==",
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-2.0.0.tgz",
"integrity": "sha512-TiWE6DVtVe7Ye2QxOVW9kqybs6cZexNwTwSMVgkfjEReqy/xwGpAXb99OxktoWwmL+Z+Epb0Dn8/GNDYP1wnUw==",
"dev": true
},
"unist-util-inspect": {
@ -3698,9 +4064,9 @@
"dev": true
},
"unist-util-position": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-3.1.0.tgz",
"integrity": "sha512-w+PkwCbYSFw8vpgWD0v7zRCl1FpY3fjDSQ3/N/wNd9Ffa4gPi8+4keqt99N3XW6F99t/mUzp2xAhNmfKWp95QA==",
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.1.tgz",
"integrity": "sha512-mgy/zI9fQ2HlbOtTdr2w9lhVaiFUHWQnZrFF2EUoVOqtAUdzqMtNiD99qA5a1IcjWVR8O6aVYE9u7Z2z1v0SQA==",
"dev": true
},
"unist-util-stringify-position": {
@ -3768,6 +4134,49 @@
"vfile-message": "^2.0.0"
}
},
"vfile-location": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-4.0.1.tgz",
"integrity": "sha512-JDxPlTbZrZCQXogGheBHjbRWjESSPEak770XwWPfw5mTc1v1nWGLB/apzZxsx8a0SJVfF8HK8ql8RD308vXRUw==",
"dev": true,
"requires": {
"@types/unist": "^2.0.0",
"vfile": "^5.0.0"
},
"dependencies": {
"unist-util-stringify-position": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz",
"integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==",
"dev": true,
"requires": {
"@types/unist": "^2.0.0"
}
},
"vfile": {
"version": "5.0.2",
"resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz",
"integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==",
"dev": true,
"requires": {
"@types/unist": "^2.0.0",
"is-buffer": "^2.0.0",
"unist-util-stringify-position": "^3.0.0",
"vfile-message": "^3.0.0"
}
},
"vfile-message": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz",
"integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==",
"dev": true,
"requires": {
"@types/unist": "^2.0.0",
"unist-util-stringify-position": "^3.0.0"
}
}
}
},
"vfile-message": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz",
@ -3918,22 +4327,18 @@
}
}
},
"web-namespaces": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-2.0.0.tgz",
"integrity": "sha512-dE7ELZRVWh0ceQsRgkjLgsAvwTuv3kcjSY/hLjqL0llleUlQBDjE9JkB9FCBY5F2mnFEwiyJoowl8+NVGHe8dw==",
"dev": true
},
"word-wrap": {
"version": "1.2.3",
"resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
"integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
"dev": true
},
"wrapped": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/wrapped/-/wrapped-1.0.1.tgz",
"integrity": "sha1-x4PZ2Aeyc+mwHoUWgKk4yHyQckI=",
"dev": true,
"requires": {
"co": "3.1.0",
"sliced": "^1.0.1"
}
},
"wrappy": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",

View File

@ -5,10 +5,10 @@
"dependencies": {},
"devDependencies": {
"remark-cli": "^10.0.0",
"remark-frontmatter": "^3.0.0",
"remark-lint": "^8.0.0",
"remark-lint-fenced-code-flag": "^2.0.1",
"remark-lint-no-shell-dollars": "^2.0.2",
"remark-frontmatter": "^4.0.0",
"remark-lint": "^9.0.1",
"remark-lint-fenced-code-flag": "^3.0.1",
"remark-lint-no-shell-dollars": "^3.0.1",
"remark-stringify": "^10.0.0",
"textlint": "^12.0.2",
"textlint-rule-common-misspellings": "^1.0.1",

View File

@ -20,11 +20,11 @@ module Jekyll
MSG
end
end
def render(context)
# We parse on render, as we now have context
options = parse_options(@options, context)
# Base URI
uri = URI.join("https://my.home-assistant.io/redirect/", @redirect)
@ -87,15 +87,17 @@ module Jekyll
DEFAULT_TITLES = {
"blueprint_import" => "Import Blueprint",
"cloud" => "Home Assistant Cloud",
"config_energy" => "Energy Configuration",
"config_flow_start" => "Add Integration",
"config_mqtt" => "MQTT Configuration",
"config_zha" => "ZHA Configuration",
"config_zha" => "ZHA Configuration",
"config_zwave_js" => "Z-Wave JS Configuration",
"config" => "Configuration",
"developer_events" => "Events",
"developer_services" => "Services",
"developer_states" => "States",
"developer_template" => "Templates",
"energy" => "Energy",
"general" => "General Settings",
"info" => "Information",
"supervisor_info" => "Supervisor Information",
@ -108,7 +110,7 @@ module Jekyll
# Split along 3 possible forms: key="value", key=value, or just key
input.scan(OPTIONS_REGEX) do |opt|
key, value = opt.split("=")
if !value.nil?
if !value.nil?
if value&.include?('"')
value.delete!('"')
else

View File

@ -35,6 +35,7 @@ $ha__primary_color: #03a9f4;
line-height: 55px;
text-align: center;
color: #ffffff;
text-shadow: 2px 2px 0 rgba(0, 0, 0, 0.75);
bottom: 226px;
svg {
stroke: $ha__primary_color;
@ -865,7 +866,7 @@ $ha__primary_color: #03a9f4;
$landingpage__hero_height: 500px;
#landingpage {
.site-header {
background-color: #ffffff66;
background-color: #ffffffe8;
transition: background 0.5s;
ul {
@ -911,7 +912,7 @@ $ha__primary_color: #03a9f4;
.section-content {
width: 100%;
padding: 32px 4px;
padding: 32px 8px;
.header {
width: 100%;

View File

@ -9,7 +9,7 @@ The template variable `this` is also available when evaluating any `trigger_vari
## Available this Data
`this` is a state object. [State Objects](docs/configuration/state_object) provides a comprehensive description for the properties of `this` and `this.attributes`.
`this` is a state object. [State Objects](/docs/configuration/state_object) provides a comprehensive description for the properties of `this` and `this.attributes`.
## Available Trigger Data

View File

@ -230,7 +230,7 @@ automation:
<div class='note'>
Listing above and below together means the numeric_state has to be between the two values.
In the example above, the trigger would fire a single time if a numeric_state goes into the 17.1-24.9 range (from 17 and below or 25 and above). It will only fire again, once it has left the defined range and enters it again.
In the example above, the trigger would fire a single time if a numeric_state goes into the 17.1-24.9 range (above 17 and below 25). It will only fire again, once it has left the defined range and enters it again.
</div>
Number helpers (`input_number` entities), `number` and `sensor` entities that

View File

@ -121,7 +121,7 @@ A blueprint can have as many inputs as you like.
The inputs are available as custom YAML tags, but not as template variables.
To use a blueprint input in a template, it first needs to be exposed as either
a [script level variable](/integrations/script/#-configuration-variables) or in
a [script level variable](/integrations/script/#configuration-variables) or in
a [variable script step](/docs/scripts/#variables).
```yaml

View File

@ -5,7 +5,7 @@ description: "Configuring Home Assistant via text files."
While you can configure most of Home Assistant directly from the user interface under {% my configuration %}, some parts need you to edit `configuration.yaml`. This file contains integrations to be loaded along with their configurations. Throughout the documentation you will find snippets that you can add to your configuration file to enable specific functionality.
If you run into trouble while configuring Home Assistant, refer to the [configuration troubleshooting page](/getting-started/configuration/troubleshooting/) and the [`configuration.yaml` examples](/examples/#example-configurationyaml).
If you run into trouble while configuring Home Assistant, refer to the [configuration troubleshooting page](/docs/configuration/troubleshooting/) and the [`configuration.yaml` examples](/examples/#example-configurationyaml).
## Editing `configuration.yaml`

View File

@ -14,7 +14,7 @@ homeassistant:
longitude: 117.22743
elevation: 430
unit_system: metric
currency: "$",
currency: USD
time_zone: "America/Los_Angeles"
external_url: "https://www.example.com"
internal_url: "http://homeassistant.local:8123"
@ -61,7 +61,7 @@ time_zone:
required: false
type: string
currency:
description: The default currency symbol for your location.
description: "Pick your currency code from the column **Code** of [Wikipedia's list of ISO 4217 active codes](https://en.wikipedia.org/wiki/ISO_4217#Active_codes)"
required: false
type: string
external_url:

View File

@ -5,6 +5,8 @@ description: "How to get started using home energy management in Home Assistant.
Home Assistant allows you to get on top of your energy use with its home energy management feature. Gain new insights, optimize your solar panel production, plan energy usage and save money.
{% my energy badge %} {% my config_energy badge %}
Home Assistant works with three different types of information sources. You can start using it even if you just have one source connected to Home Assistant. Every source you add will complement the other sources, giving you even more insight into energy in your home.
Home Assistant is an open platform and so home energy management is not restricted to specific hardware. Any energy monitoring hardware that integrates with Home Assistant can be used as a data source. Check out the following sections for in-depth explanations and hardware recommendations.

View File

@ -23,9 +23,9 @@ Home Assistant will need to know the amount of energy flowing through your meter
CT clamp sensors measure the instantaneous current passing through an electrical wire. To translate this into electrical power (W) you also need a voltage measurement, because Power = Current x Voltage.
In Home Assistant we have support for off-the-shelf CT clamp sensors and you can build your own with ESPHome's [CT Clamp Current sensor](https://esphome.io/components/sensor/ct_clamp.html).
In Home Assistant we have support for off-the-shelf CT clamp sensors and you can build your own with ESPHome's [CT Clamp Current sensor](https://esphome.io/components/sensor/ct_clamp.html). You can also use a dedicated energy meter sensor in ESPHome, which outputs more detailed data, like the [ATM90E32](https://esphome.io/components/sensor/atm90e32.html).
The off-the-shelf solution that we advice is the [Shelly EM](https://shop.shelly.cloud/shelly-em-2-x-120a-clamp-wifi-smart-home-automation?tracking=A7FsiPIfUWsFpnfKHa8SRyUYLXjr2hPq). The device has a local API, updates are pushed to Home Assistant and it has a high quality integration.
The off-the-shelf solution that we advise is the [Shelly EM](https://shop.shelly.cloud/shelly-em-2-x-120a-clamp-wifi-smart-home-automation?tracking=A7FsiPIfUWsFpnfKHa8SRyUYLXjr2hPq). The device has a local API, updates are pushed to Home Assistant and it has a high quality integration.
In case of three-phase electrical systems, attention should be drawn to the fact that the current measurement of a given phase is matched to the voltage of the same phase, otherwise the power measurements will be incorrect.
@ -47,7 +47,9 @@ We have worked with creator [Marcel Zuidwijk](https://www.zuidwijk.com) to devel
Many meters, including older ones, have an LED that will flash whenever energy passes through it. For example, each flash is a 1/1000th kWh. By monitoring the time between flashes its possible to determine the energy consumption.
We have developed [Home Assistant Glow](https://github.com/klaasnicolaas/home-assistant-glow), an open source solution powered by ESPHome's [pulse meter sensor](https://esphome.io/components/sensor/pulse_meter.html).
We have developed [Home Assistant Glow](https://github.com/klaasnicolaas/home-assistant-glow), an open source solution powered by ESPHome's [pulse meter sensor](https://esphome.io/components/sensor/pulse_meter.html). You put it on top of the activity LED of your electricity meter and it will bring your consumption into Home Assistant.
![Photo of Home Assistant Glow attached to an electricity meter](/images/docs/energy/home-assistant-glow.jpg)
![Photo of Home Assistant Glow attached to an electricity meter](/images/docs/energy/home-assistant-glow.jpg)

View File

@ -17,10 +17,12 @@ Depending on what protocols you use at home, you can use Zigbee, Z-Wave or Wi-Fi
Smart relays sit behind your "normal" switches and make them smart. It allows you to control the devices via Home Assistant and via the connected buttons/switches.
{% comment %}
We recommend the Shelly brand because they have a local API that updates Home Assistant as soon as something happens and it has a high quality integration:
- [Shelly 1L](https://shop.shelly.cloud/shelly-1l-wifi-smart-home-automation?tracking=A7FsiPIfUWsFpnfKHa8SRyUYLXjr2hPq)
- [Shelly 1PM](https://shop.shelly.cloud/shelly-1pm-wifi-smart-home-automation-1?tracking=A7FsiPIfUWsFpnfKHa8SRyUYLXjr2hPq)
- [Shelly 2.5](https://shop.shelly.cloud/shelly-2.5-ce-ul-wifi-smart-home-automation?tracking=A7FsiPIfUWsFpnfKHa8SRyUYLXjr2hPq)
{% endcomment %}
<img src='/images/docs/energy/devices.png' alt='Graphic showing energy flowing from the home to individual devices.' style='border: 0;box-shadow: none; display: block; max-height: 400px; margin: 0 auto;'>

View File

@ -303,6 +303,7 @@ Supported abbreviations for device registry configuration:
The following software has built-in support for MQTT discovery:
- [Arilux AL-LC0X LED controllers](https://github.com/mertenats/Arilux_AL-LC0X)
- [ecowitt2mqtt](https://github.com/bachya/ecowitt2mqtt)
- [ESPHome](https://esphome.io)
- [ESPurna](https://github.com/xoseperez/espurna)
- [IOTLink](https://iotlink.gitlab.io) (starting with 2.0.0)
@ -311,6 +312,8 @@ The following software has built-in support for MQTT discovery:
- [room-assistant](https://github.com/mKeRix/room-assistant) (starting with 1.1.0)
- [SmartHome](https://github.com/roncoa/SmartHome)
- [Tasmota](https://github.com/arendst/Tasmota) (starting with 5.11.1e, development halted)
- [Teleinfo MQTT](https://github.com/fmartinou/teleinfo-mqtt) (starting with 3.0.0)
- [What's up Docker?](https://github.com/fmartinou/whats-up-docker) (starting with 3.5.0)
- [WyzeSense2MQTT](https://github.com/raetha/wyzesense2mqtt)
- [Xiaomi DaFang Hacks](https://github.com/EliasKotlyar/Xiaomi-Dafang-Hacks)
- [Zigbee2mqtt](https://github.com/koenkk/zigbee2mqtt)

View File

@ -674,4 +674,4 @@ automation:
[service calls page]: /getting-started/scripts-service-calls/
[conditions page]: /getting-started/scripts-conditions/
[shorthand-template]: /docs/scripts/conditions/#template-condition-shorthand-notation
[script variables]: /integrations/script/#-configuration-variables
[script variables]: /integrations/script/#configuration-variables

View File

@ -13,13 +13,12 @@ This Z-Wave integration is deprecated and replaced with a [new implementation ba
You need to have a compatible Z-Wave stick or module installed. This needs to be a *static controller*, which most Z-Wave sticks and modules will be. If yours is a *bridge* device then it won't work with [OpenZWave](http://openzwave.com/), which is what provides Home Assistant's Z-Wave capabilities. The following devices have been confirmed to work:
- Aeotec Z-Stick Series 5 (see note below)
- Aeotec Z-Stick Gen5 (see note below)
- Everspring USB stick - Gen 5
- GoControl HUSBZB-1 stick
- Sigma Designs UZB stick
- Silicon Labs SLUSB7000A
- Vision USB stick - Gen5
- Zooz Z-Wave Plus S2 stick ZST10
- ZWave.me Razberry Board
- ZWave.me UZB1 stick
@ -34,7 +33,6 @@ We recommend that you purchase a [Z-Wave Plus](https://z-wavealliance.org/z-wave
The alternative to a stick is a hub that supports Z-Wave. Home Assistant supports the following hubs with Z-Wave support:
- [Vera](/integrations/vera/)
- [Wink](/integrations/wink/)
- [Fibaro](/integrations/fibaro/)
- [SmartThings](/integrations/smartthings/)

View File

@ -54,6 +54,10 @@ We will need a few things to get started with installing Home Assistant. Links b
<b>Prerequisites</b>
This guide assumes that you have a dedicated generic x86 PC (typically an Intel or AMD-based system) available to exclusively run Home Assistant Operating System. The system must be 64-bit capable and able to boot using UEFI. Pretty much all systems produced in the last 10 years support the UEFI boot mode.
<b>Summary</b>
You will need to write the HAOS (Home Assistant OS) disk image directly to your boot media, and then configure your x86 to boot from this media, using UEFI boot mode.
</div>
### Configure the BIOS
@ -69,15 +73,15 @@ To boot Home Assistant OS the BIOS needs to have UEFI boot mode enabled and Secu
1. Disable Secure Boot
![Disable Secure Boot mode](/images/installation/intel-nuc-disable-secure-boot.jpg)
As a next step, we need to write the Operating System image to the installation media. Depending on your system this can be a S-ATA hard disk, S-ATA SSD, a M.2 SSD or even a eMMC. Home Assistant Operating System has no integrated installer. You need to use your Desktop computer (e.g. by using a USB to S-ATA adapter) or boot a live operating system on your target system to install Home Assistant Operating System.
As a next step, we need to write the Operating System image to the target boot media (Your "boot media" is the disk, SSD, or eMMC that your x86-64 hardware will boot from when it is running Home Assistant). Depending on your system this can be a S-ATA hard disk, S-ATA SSD, a M.2 SSD or even a eMMC. Home Assistant Operating System has no integrated installer. You need to use your Desktop computer (e.g. by using a USB to S-ATA adapter) or boot a live operating system on your target system to install Home Assistant Operating System, by writing the disk image directly onto the boot media for your x86 system.
If you prefer to use a live operating system, follow the instructions of your Live distribution (e.g., [this Ubuntu guide](https://ubuntu.com/tutorials/try-ubuntu-before-you-install)). Once you booted the live operating system, the following steps on how-to write the image to your installation media can be followed.
If you prefer to use a live operating system, follow the instructions of your Live distribution (e.g., [this Ubuntu guide](https://ubuntu.com/tutorials/try-ubuntu-before-you-install)). Once you booted the live operating system, the following steps on how to write the image to your boot media can be followed.
{% endif %}
### Write the image to your installation media
### Write the image to your boot media
1. Attach the installation media ({{site.installation.types[page.installation_type].installation_media}}) to your computer
1. Attach the Home Assistant boot media ({{site.installation.types[page.installation_type].installation_media}}) to your computer
2. Download and start <a href="https://www.balena.io/etcher" target="_blank">Balena Etcher</a>
3. Select "Flash from URL"
![etcher_from_url](/images/installation/etcher1.png)
@ -127,11 +131,11 @@ _Select and copy the URL or use the "copy" button that appear when you hover it.
### Start up your {{site.installation.types[page.installation_type].board}}
{% if page.installation_type == 'generic-x86-64' %}
1. If you used your Desktop system to write to your installation media, install the installation media ({{site.installation.types[page.installation_type].installation_media}}) to the target system. Otherwise, shutdown the live operating system and make sure to remove the USB flash drive you have been using for the live system.
1. If you used your Desktop system to write to your boot media, install the boot media ({{site.installation.types[page.installation_type].installation_media}}) into the target system. Otherwise, shutdown the live operating system and make sure to remove the USB flash drive you have been using for the live system.
2. Make sure an ethernet cable for network is plugged in
3. Power the system on.
{% else %}
1. Insert the installation media ({{site.installation.types[page.installation_type].installation_media}}) you just created
1. Insert the boot media ({{site.installation.types[page.installation_type].installation_media}}) you just created
2. Attach a ethernet cable for network.
3. Attach a cable for power
{% endif %}

View File

@ -21,7 +21,18 @@ ha_platforms:
- sensor
---
The `august` integration allows you to integrate your [August](https://august.com/) devices in Home Assistant.
The `august` integration allows you to integrate your [August](https://august.com/) and some Yale Access devices in Home Assistant.
{% include integrations/config_flow.md %}
### Known Working Devices
- August Wi-Fi Smart Lock (Gen 4)
- August Smart Lock Pro (Gen 3)
- August Smart Lock (Gen 2)
- August Doorbell Cam (Gen 1, Gen2)
- August View
- Yale Assure Locks with August/Yale Connect Module
There is currently support for the following device types within Home Assistant:
@ -35,7 +46,10 @@ There is currently support for the following device types within Home Assistant:
August Lock 2nd Gen will need either August Connect or Doorbell to connect to Home Assistant.
</div>
{% include integrations/config_flow.md %}
### Known Unsupported Devices
- The Yale Doorman L3
Other devices not listed above have not been tested and may not function as expected.
### Binary Sensor

View File

@ -44,6 +44,15 @@ calendar:
url: https://nextcloud.example.com/remote.php/dav
```
```yaml
# Example configuration.yaml entry for iCloud, calendars will be found automatically
calendar:
- platform: caldav
username: !secret userIcloud
password: !secret passIcloud
url: https://caldav.icloud.com
```
This example will generate default binary sensors for each calendar you have in your account. Those calendars will be `on` when there is an ongoing event and `off` if not. Events that last a whole day are ignored in those calendars. You have to setup custom calendars in order to take them into account or for advanced event filtering.
## Custom calendars

View File

@ -7,7 +7,7 @@ ha_release: 0.106
ha_iot_class: Cloud Polling
ha_config_flow: true
ha_codeowners:
- '@home_assistant/core'
- '@home-assistant/core'
ha_domain: coronavirus
ha_platforms:
- sensor

View File

@ -15,6 +15,7 @@ This integration is a meta-component and configures a default set of integration
- [Configuration](/integrations/config/) (`config`)
- [Counter](/integrations/counter/) (`counter`)
- [DHCP Discovery](/integrations/dhcp/) (`dhcp`)
- [Energy](/integrations/energy/) (`energy`)
- [Frontend](/integrations/frontend/) (`frontend`)
- [History](/integrations/history/) (`history`)
- [Image](/integrations/image/) (`image`)

View File

@ -27,6 +27,8 @@ ha_platforms:
- number
- remote
- sensor
- select
- siren
- stt
- switch
- tts

View File

@ -17,7 +17,7 @@ The Dexcom integration allows you to view your CGM data from [Dexcom](https://ww
## Prerequisites
You will need to set up the [Dexcom Share](https://provider.dexcom.com/education-research/cgm-education-use/videos/setting-dexcom-share-and-follow) feature in your Dexcom G6 App to use this integration.
You will need to set up the [Dexcom Share](https://provider.dexcom.com/education-research/cgm-education-use/videos/setting-dexcom-share-and-follow) feature in your Dexcom G6 App to use this integration. Enabling the Dexcom Share service requires setup of at least one follower. The integration will use the Dexcom user's credentials, not the follower's credentials.
{% include integrations/config_flow.md %}

View File

@ -35,6 +35,7 @@ This integration is known to work for:
- Kaifa E0026
- Kamstrup 382JxC (DSMR 2.2)
- Sagemcom XS210 ESMR5
- Ziv E0058 ESMR5
USB serial converters:
@ -49,7 +50,7 @@ Serial to network proxies:
DIY solutions (ESP8266 based):
- [esp8266_p1meter (fliphess)](https://github.com/fliphess/esp8266_p1meter)
- [esp8266_p1meter (daniel-jong)](https://github.com/daniel-jong/esp8266_p1meter)
{% include integrations/config_flow.md %}

View File

@ -21,6 +21,7 @@ ha_platforms:
- light
- number
- sensor
- select
- switch
---

View File

@ -18,7 +18,7 @@ To get an overview about the available [currencies](https://fixer.io/symbols).
## Setup
You need to create an [API key](https://fixer.io/product). There is a rate limit of 1000 calls per month.
You need to create an [API key](https://fixer.io/product). The free account is limited to only EUR as a base currency, allows 250 requests per month, and updates every hour.
## Configuration

View File

@ -9,6 +9,8 @@ ha_config_flow: true
ha_codeowners:
- '@cnico'
ha_domain: flipr
ha_platforms:
- sensor
---
[Flipr](https://www.goflipr.com) is a smart pool monitor that publishes data to the cloud via SigFox.
@ -42,6 +44,6 @@ It is recommended that you create your own card with the following sensors where
- `sensor.flipr_[fliprid]_ph`
- `sensor.flipr_[fliprid]_red_ox`
- `sensor.flipr_[fliprid]_water_temp`
- `sensor.flipr_[fliprid]_date_measure`
- `sensor.flipr_[fliprid]_last_measured`
Leave `binary_sensor.flipr_[fliprid]_ph_status` and `binary_sensor.flipr_[fliprid]_chlorine_status` as badges.

View File

@ -33,6 +33,8 @@ As an example automation idea, you could determine if:
## Prerequisites
Forecast.Solar relies on data provided by the [EU Photovoltaic geographical information system](https://re.jrc.ec.europa.eu/pvg_tools/en/tools.html) and your solar panels must be in a location that is covered by this tool. Data is currently not available for most of the Asia Pacific region.
To use the Forecast.Solar integration, it will need some information about your
solar panel system: **latitude**, **longitude**, **declination**, **azimuth**
and **total modules power**.

View File

@ -17,7 +17,7 @@ ha_codeowners:
- '@stefano055415'
ha_domain: freedompro
ha_platforms:
- binary sensor
- binary_sensor
- climate
- cover
- fan

View File

@ -1,5 +1,5 @@
---
title: Generic
title: Generic Camera
description: Instructions on how to integrate IP cameras within Home Assistant.
ha_category:
- Camera

View File

@ -1,11 +1,16 @@
---
title: Generic Hygrostat
title: Generic hygrostat
description: Virtual hygrostat device
ha_category:
- Humidifier
ha_release: 2021.8
ha_domain: generic_hygrostat
ha_quality_scale: internal
ha_codeowners:
- '@Shulyaka'
ha_iot_class: Local Polling
ha_platforms:
- humidifier
---
The `generic_hygrostat` humidifier integration is a virtual hygrostat implemented in Home Assistant. It uses a sensor and a switch connected to a humidifier or dehumidifier under the hood. When in humidifier mode, if the measured humidity is less than the target humidity, the humidifier will be turned on and turned off when the required humidity is reached. When in dehumidifier mode, if the measured humidity is greater than the target humidity, the dehumidifier will be turned on and turned off when required humidity is reached. One Generic Hygrostat entity can only control one switch. If you need to activate two switches, one for a humidifier and one for a dehumidifier, you will need two Generic Hygrostat entities.
@ -43,7 +48,7 @@ max_humidity:
default: 100
type: integer
target_humidity:
description: Set initial target temperature. This value will be used as a fallback when the previous setpoint is not available.
description: Set initial target humidity. This value will be used as a fallback when the previous setpoint is not available.
required: false
type: integer
device_class:

View File

@ -5,6 +5,7 @@ logo: brultech.png
ha_category:
- Hub
- Sensor
- Energy
ha_release: 0.82
ha_iot_class: Local Push
ha_codeowners:

View File

@ -34,6 +34,7 @@ ha_platforms:
- light
- lock
- media_player
- number
- sensor
- switch
---

View File

@ -19,4 +19,4 @@ It uses the [somecomfort](https://github.com/kk7ds/somecomfort) client library.
If your system is compatible with this integration, then you will be able access it via [https://mytotalconnectcomfort.com/portal/](https://mytotalconnectcomfort.com/portal/) (note the `/portal/`).
{% include integrations/config_flow.md %}
{% include integrations/config_flow.md %}

View File

@ -191,7 +191,7 @@ target_humidity_state_topic:
description: The MQTT topic subscribed to receive humidifier target humidity.
required: false
type: string
target_humidity_value_template:
target_humidity_state_template:
description: Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract a value for the humidifier `target_humidity` state.
required: false
type: string
@ -207,7 +207,7 @@ mode_state_topic:
description: The MQTT topic subscribed to receive the humidifier `mode`.
required: false
type: string
mode_value_template:
mode_state_template:
description: Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract a value for the humidifier `mode` state.
required: false
type: string

View File

@ -83,4 +83,4 @@ sensor:
round: 2
```
This configuration will provide you with `sensor.energy_spent` who will have your energy in kWh.
This configuration will provide you with `sensor.energy_spent` which will have your energy in kWh.

View File

@ -1,7 +1,6 @@
---
title: IntesisHome
description: Instructions how to integrate IntesisHome AC devices with Home Assistant
logo: intesishome.png
ha_category: Climate
ha_release: 0.104
ha_iot_class: Cloud Push

View File

@ -48,24 +48,3 @@ If you set `show_on_map: true` then the location attributes are named `latitude`
The default name of the location attributes is `lat` and `long` to avoid showing them on the map.
</div>
### Show position on map with camera platform
The [generic camera platform](/integrations/mjpeg) offers
the possibility to show the location of the ISS on OpenStreetMap.
{% raw %}
```yaml
# Example configuration.yaml entry
- platform: iss
show_on_map: true
camera:
- platform: generic
name: ISS
still_image_url: http://staticmap.openstreetmap.de/staticmap.php?center={{ state_attr('binary_sensor.iss', 'lat') }},{{ state_attr('binary_sensor.iss', 'long') }}&zoom=4&size=865x512&maptype=mapnik&markers={{ state_attr('binary_sensor.iss', 'lat') }},{{ state_attr('binary_sensor.iss', 'long') }},lightblue
limit_refetch_to_url_change: true
```
{% endraw %}

View File

@ -33,6 +33,7 @@ ha_platforms:
- number
- scene
- sensor
- select
- switch
- weather
---

View File

@ -10,7 +10,7 @@ ha_platforms:
- camera
---
The `local_file` camera platform allows you to integrate an image file from disk into Home Assistant as a camera. If the image is updated on the file system the image displayed in Home Assistant will also be updated. The service `local_file_update_file_path` can be used to update the image using an automation.
The `local_file` camera platform allows you to integrate an image file from disk into Home Assistant as a camera. If the image is updated on the file system the image displayed in Home Assistant will also be updated. The service `local_file.update_file_path` can be used to update the image using an automation.
The `local_file` camera can for example be used with various camera platforms that save a temporary images locally. It can also be used to display a graph that you render periodically and will then be displayed in Home Assistant.

View File

@ -176,3 +176,6 @@ The way media players are displayed in the frontend can be modified in the [cust
- `tv`: Device is a television type device.
- `speaker`: Device is speaker or stereo type device.
- `receiver`: Device is audio video receiver type device taking audio and outputting to speakers and video to some display.

View File

@ -11,6 +11,7 @@ ha_domain: mill
ha_config_flow: true
ha_platforms:
- climate
- sensor
---
Integrates Mill heater into Home Assistant.

View File

@ -18,6 +18,7 @@ ha_platforms:
- light
- sensor
- switch
ha_quality_scale: silver
---
[Modbus](http://www.modbus.org/) is a serial communication protocol to control PLCs (Programmable Logic Controller) and RTUs (Remote Terminal Unit). The integration adheres strictly to the [protocol specification](https://modbus.org/docs/Modbus_Application_Protocol_V1_1b3.pdf).
@ -302,7 +303,7 @@ modbus:
address: 100
scan_interval: 20
slave: 1
- name: "binary_ensor2"
- name: "binary_sensor2"
address: 110
device_class: door
input_type: discrete_input

View File

@ -11,6 +11,7 @@ ha_codeowners:
ha_config_flow: true
ha_platforms:
- camera
- switch
---
The motionEye integration allows you to integrate your

View File

@ -17,10 +17,12 @@ ha_platforms:
- climate
- cover
- fan
- humidifier
- lock
- number
- scene
- sensor
- select
- switch
---

View File

@ -37,7 +37,7 @@ This integration supports two Nest APIs. The SDM API is the new primary API that
Google applies strict [Redirect URI validation
rules](https://developers.google.com/identity/protocols/oauth2/web-server#uri-validation) to keep your login
credentials secure. In practice, this means that you must access Home Assistant *over SSL* and a *public top-level domain*. See the documentation on [Securing](/docs/configuration/securing/) or [Troubleshooting](#troubleshooting), and note that you don't need actually need to enable remote access.
credentials secure. In practice, this means that you must access Home Assistant *over SSL* and a *public top-level domain* when setting up this integration. See the documentation on [Securing](/docs/configuration/securing/) or [Troubleshooting](#troubleshooting), and note that you don't actually need to enable remote access.
## Overview: Supported Devices
@ -365,7 +365,7 @@ New users are not currently able to set up a Works With Nest Developer account.
</div>
<details>
<summary>Click here for documentation for the Legacy Works with Nest API</summary>
<summary>Click here to expand documentation for the Legacy Works with Nest API</summary>
The Nest integration is the main integration to integrate all [Nest](https://nest.com/) related platforms. To connect Nest, you will have to [sign up for a developer account](https://developers.nest.com/products) and get a `client_id` and `client_secret`.

View File

@ -21,6 +21,7 @@ ha_platforms:
- climate
- light
- sensor
- select
---
The Netatmo integration platform is the main integration to integrate all Netatmo related platforms.

View File

@ -1,5 +1,5 @@
---
title: Nexia/American Standard
title: Nexia/American Standard/Trane
description: Instructions on how to integrate Trane and American Standard thermostats into Home Assistant.
ha_category:
- Binary Sensor

View File

@ -40,3 +40,14 @@ Disables configured Pi-hole(s) for the specified amount of time.
| ---------------------- | -------- | -------- | ----------- |
| `entity_id` | `False` | string | Target switch entity. Use `all` to target all Pi-hole services |
| `duration` | `True` | timedelta | Time for which Pi-hole should be disabled |
Example service call:
```yaml
# Example service call to disable Pi-Hole for 30 minutes
service: pi_hole.disable
data:
duration: '00:30'
target:
entity_id: all
```

View File

@ -1,5 +1,5 @@
---
title: Prosegur
title: Prosegur Alarm
description: Instructions on how to integrate Prosegur Smart Alarms into Home Assistant.
ha_category:
- Alarm

View File

@ -52,7 +52,7 @@ sensor:
- platform: template
sensors:
power_consumption:
value_template: "{% if is_state_attr('sensor.pvoutput', 'power_consumption', 'NaN') %}0{% else %}{{ state_attr('sensor.pvoutput', 'power_consumption') }}{% endif %}"
value_template: "{% if is_state_attr('sensor.pvoutput', 'power_consumption', 'NaN') %}0{% else %}{{ state_attr('sensor.pvoutput', 'power_consumption') }}{% endif %}"
friendly_name: "Using"
unit_of_measurement: "Watt"
energy_consumption:

View File

@ -0,0 +1,27 @@
---
title: Renault
description: Instructions on how to integrate Renault car into Home Assistant.
ha_category:
- Car
- Sensor
ha_release: 2021.8
ha_iot_class: Cloud Polling
ha_config_flow: true
ha_codeowners: '@epenet'
ha_domain: renault
---
The Renault integration offers integration with the **MyRenault** cloud service and provides sensors such as charger state and temperature.
This integration provides the following platforms:
- Sensors - such as battery level, outside temperature, odometer, estimated range, and charging rate.
## Prerequisites
You need two API keys: one for Gigya and one for Kamereon and they shouldn't be confused with your API credentials. Instructions can be found at [https://github.com/jamesremuscat/pyze#obtaining-api-keys].
{% include integrations/config_flow.md %}
All vehicles linked to the account should then get added as devices, with sensors added as linked entity.

View File

@ -16,8 +16,8 @@ ha_domain: rituals_perfume_genie
ha_platforms:
- binary_sensor
- number
- select
- sensor
- select
- switch
ha_quality_scale: silver
---

View File

@ -10,9 +10,9 @@ ha_platforms:
- sensor
---
Particulate matter sensors measure the amount of very small particles in the air. A short introduction how these sensors work can be found on [Open Home Automation](https://www.open-homeautomation.com/2016/07/19/measuring-air-quality/).
Particulate matter sensors measure the amount of very small particles in the air.
Cheap LED based sensors usually use a GPIO interface that is hard to attach to computers. However, there are a lot of laser LED based sensors on the market that use a serial interface and can be [connected to your Home Assistant system easily with a USB to serial converter](https://www.open-homeautomation.com/2016/07/20/connecting-an-particulate-matter-sensor-to-your-pc-or-mac/).
Cheap LED based sensors usually use a GPIO interface that is hard to attach to computers. However, there are a lot of laser LED based sensors on the market that use a serial interface and can be connected to your Home Assistant system easily with a USB to serial converter.
## Supported Sensors

View File

@ -9,7 +9,6 @@ ha_quality_scale: internal
ha_codeowners:
- '@home-assistant/core'
- '@raman325'
ha_iot_class:
---
The Siren integration is built for the controlling and monitoring of siren/chime devices.

View File

@ -46,7 +46,7 @@ The SMA WebConnect module supports a wide variety of sensors, but not all of the
| power_l1 | W | Power for phase 1 |
| power_l2 | W | Power for phase 2 |
| power_l3 | W | Power for phase 3 |
| total_yield | kWh | Total power yield from a solar installation |
| total_yield | kWh | Total energy yield from a solar installation |
| daily_yield | Wh | The solar plant's yield for today |
| pv_gen_meter | kWh | Total kWh generated to date |
@ -66,8 +66,8 @@ The SMA WebConnect module supports a wide variety of sensors, but not all of the
| metering_power_supplied | W | Power supplied |
| metering_power_absorbed | W | Power absorbed |
| metering_frequency | Hz | Grid frequency |
| metering_total_yield | kWh | Total power from the grid |
| metering_total_absorbed | kWh | Total power supplied to the grid |
| metering_total_yield | kWh | Total energy supplied to the grid |
| metering_total_absorbed | kWh | Total energy from the grid |
| metering_current_l1 | A | Current for phase 1 |
| metering_current_l2 | A | Current for phase 2 |
| metering_current_l3 | A | Current for phase 3 |

View File

@ -44,6 +44,8 @@ Those automatically discovered Smappee devices are listed on the integrations pa
This will provide you a limited number of entities only.
If your home network doesn't support mDNS you can still manually initiate the Smappee integration by choosing the LOCAL option and entering the IP address of the Smappee monitor through the configuration flow.
Technical note: Auto-discovery of Smappee device requires that its mDNS name and password are set to factory default values. These values are typically accessed on the device expert web portal (locally at http://[IP-Address]/smappee.html). If you have changed the mDNS name, this typically is "Smappee[serialnumber]".
### Sensor
A sensor entity is being added for the current active power usage. In case of solar production, an entity for active power production is added as well.

View File

@ -1,7 +1,9 @@
---
title: Solar-Log
description: Instructions on how to integrate Solar-Log sensors within Home Assistant.
ha_category: Sensor
ha_category:
- Sensor
- Energy
ha_release: 0.101
ha_iot_class: Local Polling
ha_config_flow: true

View File

@ -18,6 +18,7 @@ ha_platforms:
- media_player
- sensor
- switch
ha_zeroconf: true
---
The `sonos` integration allows you to control your [Sonos](https://www.sonos.com) wireless speakers from Home Assistant. It also works with IKEA Symfonisk speakers.

View File

@ -13,6 +13,7 @@ ha_domain: spider
ha_config_flow: true
ha_platforms:
- climate
- sensor
- switch
---

View File

@ -24,8 +24,9 @@ It requires the following components:
By now, the following units are tested:
- LWZ504e
- LWZ304
- LWZ 504e
- LWZ 304
- LWZ 304 Trend
## HVAC modes

View File

@ -12,6 +12,7 @@ ha_domain: switcher_kis
ha_platforms:
- sensor
- switch
ha_config_flow: true
---
This `Switcher` integration allows you to control your [Switcher Devices](https://www.switcher.co.il/).
@ -24,6 +25,8 @@ Supported devices:
- Switcher V2 (Qualcomm chipset - from firmware 72.32)
- Switcher V4
If you completed the integration setup but are still unable to control the device, please make sure your device's firmware is up-to-date.
{% include integrations/config_flow.md %}
## Sensors

View File

@ -99,7 +99,7 @@ NFC tags come in many different shapes and formats. [NFC Stickers](https://amzn.
To get started with printing cards, you need the following hardware:
- [Inktjet Printer](https://amzn.to/3khMrts)
- [Inkjet Printer](https://amzn.to/3khMrts)
- [Compatible card printing tray](https://amzn.to/3hq59x2)
- [Printable NFC cards](https://amzn.to/3iqHpKx)

View File

@ -93,4 +93,4 @@ sensor:
```
[tautulli]: https://tautulli.com
[tautulliapi]: https://github.com/Tautulli/Tautulli/blob/master/API.md#get_activity
[tautulliapi]: https://github.com/Tautulli/Tautulli/wiki/Tautulli-API-Reference#get_activity

View File

@ -2,6 +2,7 @@
title: Template
description: Instructions on how to integrate Template Sensors into Home Assistant.
ha_category:
- Binary Sensor
- Sensor
ha_release: 0.12
ha_iot_class: Local Push
@ -9,6 +10,7 @@ ha_quality_scale: internal
ha_codeowners:
- '@PhracturedBlue'
- '@tetienne'
- '@home-assistant/core'
ha_domain: template
ha_platforms:
- alarm_control_panel

View File

@ -40,12 +40,6 @@ This integration provides the following platforms:
{% include integrations/config_flow.md %}
<div class='note warning'>
Note: MFA on your Tesla Account is not supported at this time.
</div>
## Options
Tesla options are set via **Configuration** -> **Integrations** -> **Tesla** -> **Options**.

View File

@ -15,6 +15,7 @@ ha_codeowners:
ha_domain: tplink
ha_platforms:
- light
- sensor
- switch
ha_dhcp: true
---
@ -53,6 +54,7 @@ Plugs are type `switch` when autodiscovery has been disabled.
- KP303 (powerstrip 3-outlet)
- KP400 (outdoor 2-outlet)
- KP200 (indoor 2-outlet)
- KP40 (outdoor 2-outlet)
### Wall Switches

View File

@ -11,6 +11,7 @@ ha_codeowners:
ha_domain: velux
ha_platforms:
- cover
- light
- scene
---

View File

@ -54,50 +54,5 @@ source:
`default`, `qemux86`, `qemux86-64`, `qemuarm`, `qemuarm-64`, `generic-x86-64`, `raspberrypi`, `raspberrypi2`, `raspberrypi3`, `raspberrypi3-64`, `raspberrypi4`, `raspberrypi4-64`, `tinker`, `odroid-c2`, `odroid-n2`, `odroid-xu`
## Alternatives for showing local version
This sensor is an alternative to the existing solutions to achieve the same
result through various platforms.
Remember that you can easily get the installed version on the command line.
```bash
hass --version
```
Or go to the <img src='/images/screenshots/developer-tool-about-icon.png' alt='service developer tool icon' class="no-shadow" height="38" /> **Info** section of the **Developer Tools**.
A [`command_line`](/integrations/sensor.command_line/) with
[`hass`](/docs/tools/hass/) to display your current version.
```yaml
sensor:
- platform: command_line
name: Version
command: "/home/homeassistant/bin/hass --version"
```
It's also possible to read a file called `.HA_VERSION` which is located in your
Home Assistant [configuration](/docs/configuration/) folder.
```yaml
sensor:
- platform: command_line
name: Version
command: "cat /home/homeassistant/.homeassistant/.HA_VERSION"
```
You might think that a [`rest` sensor](/integrations/rest) could work,
too,
but it will not as Home Assistant is not ready when the sensor gets initialized.
{% raw %}
```yaml
sensor:
- platform: rest
resource: http://IP_ADDRESS:8123/api/config
name: Current Version
value_template: "{{ value_json.version }}"
```
{% endraw %}

View File

@ -126,5 +126,17 @@ sensor:
value_template: '{{ states.switch.vesync_switch.attributes["voltage"] | float }}'
unit_of_measurement: "V"
```
{% endraw %}
Extracting air quality from a VeSync LV-PUR131S air purifier. Change the `vesync_air_purifier` to match your device's entity ID.
{% raw %}
```yaml
template:
- sensor:
- name: "VeSync Air Quality"
state: "{{ state_attr('fan.vesync_air_purifier', 'air_quality') | title }}"
```
{% endraw %}

View File

@ -43,7 +43,7 @@ The above-required configuration parameters can be obtained as follows:
Google reCAPTCHA: Disabled
Redirect URIs: vicare://oauth-callback/everest
```
4. Copy the Client ID to the configuration, e.g., `client_id="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"`.
4. Copy the Client ID to the configuration, e.g., `client_id: "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"`.
5. Set `username`and `password` to your Viessmann Developer Portal login credentials.

View File

@ -8,6 +8,7 @@ ha_iot_class: Local Polling
ha_release: 0.18
ha_codeowners:
- '@bendavid'
- '@thecode'
ha_domain: webostv
ha_platforms:
- media_player

View File

@ -17,6 +17,7 @@ ha_platforms:
- binary_sensor
- fan
- light
- sensor
- switch
ha_codeowners:
- '@esev'

View File

@ -13,6 +13,8 @@ ha_platforms:
- binary_sensor
- sensor
- switch
ha_codeowners:
- '@sergeymaysak'
---
The `wirelesstag` implementation allows you to integrate your [wirelesstag.net](https://wirelesstag.net/) sensors tags in Home Assistant.

View File

@ -16,6 +16,7 @@ ha_zeroconf: true
ha_platforms:
- light
- sensor
- select
- switch
---

View File

@ -25,9 +25,12 @@ ha_platforms:
- binary_sensor
- device_tracker
- fan
- humidifier
- light
- number
- remote
- sensor
- select
- switch
- vacuum
---
@ -429,32 +432,58 @@ Sensor | Description
### Air Humidifier (zhimi.humidifier.v1)
- On, Off
- Operation modes (silent, medium, high, strong)
- Operation modes (Silent, Medium, High, Strong)
- Buzzer (on, off)
- Child lock (on, off)
- LED (on, off), LED brightness (bright, dim, off)
- Target humidity (30, 40, 50, 60, 70, 80)
- Attributes (humidifier platform)
Attribute | Description
--- | ---
`humidity` | The current `target_humidity`
`max_humidity` | The maximum settable `target_humidity`
`min_humidity` | The minimum settable `target_humidity`
`available_modes` | A list with the operation modes available
`mode` | the current operation mode selected
- Sensor entities
- `humidity`
- `temperature`
Sensor | Description
--- | ---
`humidity` | The current `humidity` measured
`temperature` | The current `temperature` measured
### Air Humidifier CA (zhimi.humidifier.ca1)
- On, Off
- Operation modes (silent, medium, high, auto)
- Operation modes (Silent, Medium, High, Auto)
- Buzzer (on, off)
- Child lock (on, off)
- LED brightness (bright, dim, off)
- Target humidity (30, 40, 50, 60, 70, 80)
- Dry mode (on, off)
- Attributes (humidifier platform)
Attribute | Description
--- | ---
`humidity` | The current `target_humidity`
`max_humidity` | The maximum settable `target_humidity`
`min_humidity` | The minimum settable `target_humidity`
`available_modes` | A list with the operation modes available
`mode` | the current operation mode selected
- Sensor entities
- `humidity`
- `temperature`
Sensor | Description
--- | ---
`humidity` | The current `humidity` measured
`temperature` | The current `temperature` measured
### Air Humidifier CA (zhimi.humidifier.ca4)
- On, Off
- Operation modes (auto, low, medium, high)
- Operation modes (Auto, Low, Medium, High)
- Buzzer (on, off)
- Child lock (on, off)
- LED brightness (off, dim, bright)
@ -462,11 +491,24 @@ Sensor | Description
- Clean mode (on, off)
- Dry mode (on, off)
- Motor speed rpm (200 - 2000)
- Attributes (humidifier platform)
Attribute | Description
--- | ---
`humidity` | The current `target_humidity`
`max_humidity` | The maximum settable `target_humidity`
`min_humidity` | The minimum settable `target_humidity`
`available_modes` | A list with the operation modes available
`mode` | the current operation mode selected
- Sensor entities
- `actual_speed`
- `humidity`
- `temperature`
- `water_level`
Sensor | Description
--- | ---
`actual_speed` | The current `motor_speed` measured in (rpm)
`humidity` | The current `humidity` percentage measured
`temperature` | The current `temperature` measured in degrees Celius
`water_level` | The current `water_level` percentage measured
<div class='note'>
Clean mode and Motor speed can only be set when the device is turned on.
@ -475,15 +517,28 @@ Clean mode and Motor speed can only be set when the device is turned on.
### Air Humidifier CB (zhimi.humidifier.cb1)
- On, Off
- Operation modes (silent, medium, high, auto)
- Operation modes (Silent, Medium, High, Auto)
- Buzzer (on, off)
- Child lock (on, off)
- LED (on, off), LED brightness (bright, dim, off)
- Target humidity (30, 40, 50, 60, 70, 80)
- Dry mode (on, off)
- Attributes (humidifier platform)
Attribute | Description
--- | ---
`humidity` | The current `target_humidity`
`max_humidity` | The maximum settable `target_humidity`
`min_humidity` | The minimum settable `target_humidity`
`available_modes` | A list with the operation modes available
`mode` | the current operation mode selected
- Sensor entities
- `humidity`
- `temperature`
Sensor | Description
--- | ---
`humidity` | The current `humidity` measured
`temperature` | The current `temperature` measured
### Air Humidifier JSQ/JSQ1/MJJSQ (deerma.humidifier.jsq/deerma.humidifier.jsq1/deerma.humidifier.mjjsq)

View File

@ -7,12 +7,10 @@ ha_release: 0.78
ha_iot_class: Cloud Polling
ha_config_flow: true
ha_codeowners:
- '@gjohanssson-ST'
- '@gjohansson-ST'
ha_domain: yale_smart_alarm
ha_platforms:
- alarm_control_panel
ha_codeowners:
- '@gjohansson-ST'
---
The Yale Smart Living integration provides connectivity with the Yale Smart Alarm systems and Smart Hub through Yale's API.

View File

@ -3,10 +3,14 @@ title: YouLess
description: Instructions on how to integrate your YouLess device into Home Assistant.
ha_category:
- Sensor
ha_iot_class: Local Pull
ha_iot_class: Local Polling
ha_config_flow: true
ha_release: 2021.8
ha_domain: youless
ha_codeowners:
- '@gjong'
ha_platforms:
- sensor
---
The YouLess integration for Home Assistant allows you to read the meter values from sensors created by [YouLess](https://www.youless.nl/home.html).

View File

@ -10,8 +10,10 @@ ha_category:
- Hub
- Light
- Lock
- Number
- Select
- Sensor
- Siren
- Switch
ha_release: '2021.2'
ha_iot_class: Local Push
@ -29,6 +31,7 @@ ha_platforms:
- number
- select
- sensor
- siren
- switch
---
@ -435,7 +438,7 @@ It is perfectly doable to switch over from one of the above mentioned previous i
<div class='note info'>Make a list of what node ID belongs to each device. Your network (Nodes and their config etc) is stored on the stick but the names you gave your devices and entities are not. This step is optional but will save you a lot of time later.</div>
2) Remove the Z-Wave integration from Home Assistant: Configuration --> Integrations --> Z-Wave (or OpenZWave) --> Press the three dots and click Remove.
2) Remove the Z-Wave integration from Home Assistant: Configuration --> Integrations --> Z-Wave (or OpenZWave) --> Press the three dots and click Delete.
3) If you were running the OpenZWave beta, make sure to stop (or even remove) the OpenZWave add-on, also make sure it doesn't start automatically at startup.

View File

@ -36,7 +36,7 @@ layout: page
{% if page.sections %}
{% for section in page.sections %}
<div class="section-content" id="{{section.title | downcase | strip | replace: " ", "_"}}">
<div class="section-content" id="{{section.title | downcase | strip | replace: " ", "_"}}" style="{{section.style}}">
<div class="header">
<img src="{{section.image}}">
<div class="title">{{section.title}}</div>

View File

@ -60,11 +60,15 @@ type: energy-solar-graph
</p>
The energy distribution card shows how the energy flowed, from the grid to your house, from your solar panels to your house and/or back to the grid.
If setup, it will also tell you how many kWh of the energy you got from the grid was produced without using fossil fuels.
If you set `link_dashboard` to `true`, the card will include a link to the energy dashboard.
#### Example
```yaml
type: energy-distribution
link_dashboard: true
```
## Energy sources table

View File

@ -550,10 +550,10 @@ elements:
filter: saturate(.8)
state_filter:
"on": brightness(120%) saturate(1.2)
style:
top: 25%
left: 75%
width: 15%
style:
top: 25%
left: 75%
width: 15%
# Camera, red border, rounded-rectangle - show more-info on click
- type: image
entity: camera.driveway_camera

View File

@ -41,7 +41,7 @@ chart_type:
required: false
description: If the chart should be rendered as a `bar` or a `line` chart.
type: string
state_types:
stat_types:
required: false
description: The stat types to render. `min`, `max`, `mean`, `sum`
type: list

View File

@ -0,0 +1,132 @@
---
layout: post
title: "Energy Management in Home Assistant"
description: "Monitor your energy usage, transition to sustainable energy and save money."
date: 2021-08-04 00:01:00
date_formatted: "August 4, 2021"
author: Paulus Schoutsen
author_twitter: balloob
comments: true
categories:
- Announcements
og_image: /images/blog/2021-08-energy/social.png
feedback: true
---
_TL; DR: We're adding energy management and [it's awesome](https://demo.home-assistant.io/#/energy). Created two products to read out electricity meters: [SlimmeLezer](https://www.slimmelezer.nl) for P1 ports & [Home Assistant Glow](https://github.com/klaasnicolaas/home-assistant-glow) for activity LEDs. Upgraded most of the [existing energy integrations](/integrations/#energy) to be compatible._
<img src='/images/blog/2021-08-energy/social.png' style='border: 0;box-shadow: none;'>
The world is in a climate crisis. Global warming is a reality and the weather is getting unpredictable. Our way of living needs to change, at all levels. I am worried that the climate crisis is something that the world is going to try to solve too late and after irreversible damages have already been done.
So with Home Assistant we want to do our part to help take on the climate crisis, and help you do the same. One part of fighting the climate crisis is making sure our homes are energy efficient and use low-carbon energy sources.
Starting today, Home Assistant is adding official support for home energy management. Our energy management will help users monitor the energy usage, transition to sustainable energy and save money.
<p class='img'>
<img src='/images/blog/2021-08-energy/architecture.png' alt='Diagram how both home automation and energy management use the same data.'>
Home automation and energy management are built on top of knowing what devices are doing
</p>
## Energy management and Home Assistant in context
Bill Gates was recently interviewed by Marques Brownlee (MKBHD) and talked about how intelligent homes are needed to make smart cities. And how all of this starts with energy management in the home. The interview is 3 minutes and worth watching:
<div class="videoWrapper">
<iframe width="853" height="480" src="https://www.youtube-nocookie.com/embed/ccnlAVDXd7k?start=978" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>
</div>
Home Assistant wont have all the answers when it comes to energy management, at least not right away. But we have two key things going for us that makes us the perfect platform to choose for your energy management:
The first is that were completely open. This means that with Home Assistant, anyone can use [the source](https://github.com/home-assistant/core) or [its collected data](https://data.home-assistant.io/) and build anything with it. We already see this happening: the [European federation of citizen energy cooperatives](https://www.rescoop.eu/) is using Home Assistant to build [energy management software tailored for communities](https://www.rescoopvpp.eu/blog/presenting-the-cofy-box). We are part of a rich ecosystem with many different approaches, all connected with Home Assistant.
The second thing is that we have a passionate and global community that wants to make their homes the best it can be. A community that revolves around building and sharing their own hardware and software to be able to achieve their goals. Through experimentation and iteration we will be able to improve energy management over time to fit our needs there are no investors to satisfy.
When it comes to your home, Home Assistant is the best platform to manage it and figure out what works and what doesnt.
<!--more-->
## Energy Dashboard
Today's release of [Home Assistant Core 2021.8](/blog/2021/08/04/release-20218/) contains a new energy dashboard ([demo](https://demo.home-assistant.io/#/energy)). The goal is to make it super easy for users to get insight into their energy usage. The dashboard has been designed to see at a quick glance how you're doing today, with the option to also break down per hour to see what happened when. It also includes indicators to help you identify your reliance on the grid and if adding energy storage would help your situation.
<p class='img'>
<img src='/images/blog/2021-08-energy/sidebar-widgets.png'>
(above) Different ways of looking at your consumption will help you better understand your energy usage<br>
(below) The energy usage graph shows per hour how much energy you used from the grid, how much energy you produced and how much of that energy went back to the grid.
<img src='/images/blog/2021-08-energy/energy-usage.png'>
</p>
Users will be able to see at a glance what sources of energy have been used in their home. This insight includes the carbon intensity of the electricity being consumed from the grid, which is available thanks to [electricityMap](https://www.electricitymap.org/).
If users have solar panels they can set up the [Forecast.Solar](https://www.forecast.solar) integration which allows users to see at a glance how todays production is going to be. This enables users to schedule when to charge their electric car or heat extra water.
<img src='/images/blog/2021-08-energy/solar-production.png' style='border: 0;box-shadow: none;'><br>
Energy management is complicated, so we made sure that our energy settings are as easy as it can be. They are accompanied with [documentation](/docs/energy/) to further explain the different concepts.
Users can configure their consumption and production and Home Assistant will do the rest. Home Assistant can pull in energy data from any supported hardware such as smart energy meters, inverters, CT clamps, pulse monitors and smart plugs.
<p class='img'>
<img src='/images/blog/2021-08-energy/config-dialogs.png'>
The configuration is separated into different sections.
</p>
## Hardware
Home Assistant is vendor agnostic and there is no vendor lock-in. You can use any hardware that you want. Weve already upgraded many of the [existing integrations for energy monitoring](/integrations/#energy) to work out of the box with energy management.
Besides supporting existing integrations, weve also created two open-source hardware projects to help you get your energy data into Home Assistant.
### Slimme Lezer
Most energy meters in the Netherlands, Belgium and Luxembourg have a P1 port on their energy meter. This port provides real-time usage statistics.
Together with [Marcel Zuidwijk](https://www.zuidwijk.com) we have designed and developed [SlimmeLezer](https://www.slimmelezer.nl). This product, based on [ESPHome](https://esphome.io), will make all P1 data instantly available in Home Assistant. P1 ports using the DSMR v5 protocol will also be able to power this device directly, so you dont need an external charger. The SlimmeLezer firmware is fully open source.
[Buy a SlimmeLezer](https://www.slimmelezer.nl)
[SlimmeLezer on GitHub](https://www.github.com/zuidwijk/dsmr/)
![Photo of SlimmeLezer attached to a smart electricity meter](/images/docs/energy/slimmelezer.jpg)
### Home Assistant Glow
Most energy meters will flash a small light when a fixed amount of energy has been consumed. Home Assistant Glow monitors this light and brings it as a consumption sensor into Home Assistant.
Home Assistant Glow is powered by [ESPHome](https://esphome.io). Both firmware and case are fully open source and it is relatively straightforward to make your own with the included guide.
The Home Assistant Glow was designed and developed by [Klaas Schoute](https://github.com/klaasnicolaas) as part of his internship at [Nabu Casa](https://www.nabucasa.com).
[Home Assistant Glow on GitHub](https://github.com/klaasnicolaas/home-assistant-glow)
![Photo of Home Assistant Glow attached to an electricity meter](/images/docs/energy/home-assistant-glow.jpg)
### This is only the beginning
Today we released the very first version of energy management in Home Assistant 2021.8. We have many ideas that we're going to add in the next couple of releases.
If you're interested in helping out, don't hesitate to stop by the new #devs_energy channel on [our Discord server](/join-chat).
### New possibilities for advanced users
Every home is different and so are the needs of individual users. The energy management feature in Home Assistant is created with existing Home Assistant building blocks: Lovelace & Data storage. This means that our advanced users can choose to build up their own dashboards and use [the pieces from the energy dashboard](/lovelace/energy/) that they like.
On top of that, advanced users will have access to the new [long-term statistics](/lovelace/statistics-graph/) that have been added to Home Assistant. This data allows you to easily monitor most sensor data over long periods of time, not just energy data.
### Thank you community
Our home energy management has been in the making for over six months and many people and companies around the world have contributed to making this a success.
Weve upgraded how Home Assistant stores data, renders charts and enhanced many other parts. We also extended the sensor model in ESPHome and added new features to make it possible to create devices that work out of the box with energy management. Its been a lot of work by a lot of people and I am very proud of what we have been able to accomplish.
It shows that open source works: when you bring a group of people together that are passionate about something, great things can be made.
I want to give a special thanks to [Klaas Schoute](https://github.com/klaasnicolaas) who started the initial research as part of his internship at [Nabu Casa](https://www.nabucasa.com). He researched available solutions, created his own solutions ([Home Assistant Glow](https://github.com/klaasnicolaas/home-assistant-glow)), held in-depth interviews with 20 Home Assistant users, created the first iterations of the dashboard and integrated new data sources into Home Assistant ([forecast.solar](/integrations/forecast_solar/)). Thanks Klaas!
![One of Klaas his sketches](/images/blog/2021-08-energy/klaas-prototype.png)
### Support our work
If you like what were doing and want to help fund our work, subscribe to [Home Assistant Cloud](https://www.nabucasa.com).

File diff suppressed because it is too large Load Diff

View File

@ -9,6 +9,7 @@
# Redirect for Energy
/energy /home-energy-management
/integrations/energy /docs/energy
# Older development pages
/developers https://developers.home-assistant.io

View File

@ -22,6 +22,7 @@ tagline: >-
</svg>
tagline_wide: false
og_image: /images/blue/blue_hero.jpg
frontpage_image: /images/frontpage/blue-frontpage.jpg
---
<div class="content">

View File

@ -5,10 +5,11 @@ date: 2021-07-28
description: "Monitor your energy usage, transition to sustainable energy and save money"
hero_image: /images/energy/hero.jpg
og_image: /images/blog/2021-08-energy/social.png
frontpage_image: /images/frontpage/energy-frontpage.jpg
tagline: The world is heating up. Together we can fix that.
sections:
- title: "Monitor usage"
description: "Monitor the energy usage, transition to sustainable energy and save money."
description: "Easily track your different power sources and their tariffs."
image: /images/energy/vector-graph.png
entries:
- title: "Know where it goes."
@ -18,13 +19,17 @@ sections:
description: "Track the energy use of individual devices to see their impact on your energy consumption."
image: /images/energy/individual_devices.png
- title: "Track your costs"
description: "Home Assistant helps you keep track of the costs and compensation for your energy consumption and production."
image: /images/energy/vector-money.png
- title: "Supercharge your solar panels"
description: "Schedule power usage based on solar production predictions."
image: /images/energy/vector-sun.png
entries:
- title: "Consumption overview."
description: "Get an overview of your energy consumption."
image: /images/energy/cost.png
- title: "Time your usage."
description: "Its cheaper to consume the energy you produce than to give it back to the grid. Home Assistant helps you conserve the energy you don't use for later."
image: /images/blog/2021-08-energy/solar-production.png
style: >-
background: rgb(255,244,201);
background: radial-gradient(at bottom left, rgb(255, 244, 201) 0%, rgb(255, 252, 223) 15%, rgb(255, 221, 80) 100%);
border-radius: 15px;
- title: "Use any hardware"
description: ""
@ -45,13 +50,17 @@ sections:
image_description: "Home Assistant Glow attached to an energy meter"
read_more: /docs/energy/electricity-grid/#reading-the-meter-via-a-pulse-counter
- title: "Supercharge your solar panels"
description: "Schedule power usage based on solar production predictions."
image: /images/energy/vector-sun.png
- title: "Track your costs"
description: "Home Assistant helps you keep track of the costs and compensation for your energy consumption and production."
image: /images/energy/vector-money.png
entries:
- title: "Time your usage."
description: "Its cheaper to consume the energy you produce than to give it back to the grid. Home Assistant helps you turn on the power-hungry things when your usage needs a boost."
image: /images/blog/2021-08-energy/solar-production.png
- title: "Consumption overview."
description: "Get an overview of your energy consumption."
image: /images/energy/cost.png
style: >-
background: rgb(201,255,224);
background: linear-gradient(90deg, rgba(0,255,102,0.3925770991990546) 0%, rgba(223,255,235,1) 85%, rgba(201,255,224,1) 100%);
border-radius: 15px;
---
@ -61,7 +70,7 @@ sections:
<div class="banner-overlay-content">
With Home Assistant we want to do our part to help take on the climate crisis, and help you do the same. One part of fighting the climate crisis is making sure our homes are energy efficient and use low-carbon energy sources.
<br><br>
Home Assistant helps you to monitor your energy usage, transition to sustainable energy and save money.
Home Assistant helps you monitor your energy usage, transition to sustainable energy and save money.
</div>
</div>
<div class="links">
@ -73,3 +82,4 @@ sections:
</a>
</div>
</div>
<div style='text-align: center; margin-top: 10px; font-size: .9em;'>Already have Home Assistant? {% my energy title="Start here" %}</div>

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 306 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 233 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

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