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: lock:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: dessant/lock-threads@v2.1.1 - uses: dessant/lock-threads@v2.1.2
with: with:
github-token: ${{ github.token }} github-token: ${{ github.token }}
issue-lock-inactive-days: "30" issue-lock-inactive-days: "30"

View File

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

View File

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

View File

@ -21,7 +21,7 @@ group :jekyll_plugins do
end end
gem 'sinatra', '2.1.0' 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 # Windows and JRuby does not include zoneinfo files, so bundle the tzinfo-data gem
# and associated library # and associated library

View File

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

View File

@ -107,9 +107,9 @@ social:
# Home Assistant release details # Home Assistant release details
current_major_version: 2021 current_major_version: 2021
current_minor_version: 7 current_minor_version: 8
current_patch_version: 4 current_patch_version: 8
date_released: 2021-07-21 date_released: 2021-08-18
# Either # or the anchor link to latest release notes in the blog post. # Either # or the anchor link to latest release notes in the blog post.
# Must be prefixed with a # and have double quotes around it. # 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" "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": { "unified": {
"version": "9.2.1", "version": "9.2.1",
"resolved": "https://registry.npmjs.org/unified/-/unified-9.2.1.tgz", "resolved": "https://registry.npmjs.org/unified/-/unified-9.2.1.tgz",
@ -604,6 +641,15 @@
"@types/ms": "*" "@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": { "@types/is-empty": {
"version": "1.2.0", "version": "1.2.0",
"resolved": "https://registry.npmjs.org/@types/is-empty/-/is-empty-1.2.0.tgz", "resolved": "https://registry.npmjs.org/@types/is-empty/-/is-empty-1.2.0.tgz",
@ -637,6 +683,12 @@
"integrity": "sha512-TmVHsm43br64js9BqHWqiDZA+xMtbUpI1MBIA0EyiBmoV9pcEYFOSdj5fr6enZNfh4fChh+AGOLIzGwJnkshyQ==", "integrity": "sha512-TmVHsm43br64js9BqHWqiDZA+xMtbUpI1MBIA0EyiBmoV9pcEYFOSdj5fr6enZNfh4fChh+AGOLIzGwJnkshyQ==",
"dev": true "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": { "@types/repeat-string": {
"version": "1.6.1", "version": "1.6.1",
"resolved": "https://registry.npmjs.org/@types/repeat-string/-/repeat-string-1.6.1.tgz", "resolved": "https://registry.npmjs.org/@types/repeat-string/-/repeat-string-1.6.1.tgz",
@ -820,6 +872,12 @@
"integrity": "sha512-yB4oYSAa9yLcGyTbB4ItFwHw43QHdH129IJ5R+WvxOkWlyFnR5FAaBNnUq4mcxsTVZGh28bHoeTHMKXH1wZf3w==", "integrity": "sha512-yB4oYSAa9yLcGyTbB4ItFwHw43QHdH129IJ5R+WvxOkWlyFnR5FAaBNnUq4mcxsTVZGh28bHoeTHMKXH1wZf3w==",
"dev": true "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": { "character-entities-legacy": {
"version": "1.1.3", "version": "1.1.3",
"resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.3.tgz", "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.3.tgz",
@ -854,12 +912,6 @@
"readdirp": "~3.6.0" "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": { "code-point-at": {
"version": "1.1.0", "version": "1.1.0",
"resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", "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==", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
"dev": true "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": { "concat-map": {
"version": "0.0.1", "version": "0.0.1",
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
@ -995,12 +1053,12 @@
"dev": true "dev": true
}, },
"fault": { "fault": {
"version": "1.0.3", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/fault/-/fault-1.0.3.tgz", "resolved": "https://registry.npmjs.org/fault/-/fault-2.0.0.tgz",
"integrity": "sha512-sfFuP4X0hzrbGKjAUNXYvNqsZ5F6ohx/dZ9I0KQud/aiZNwg263r5L9yGB0clvXHCkzXh5W3t7RSHchggYIFmA==", "integrity": "sha512-JsDj9LFcoC+4ChII1QpXPA7YIaY8zmqPYw7h9j5n7St7a0BBKfNnwEBAUQRBx70o2q4rs+BeSNHk8Exm6xE7fQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"format": "^0.2.2" "format": "^0.2.0"
} }
}, },
"figgy-pudding": { "figgy-pudding": {
@ -1162,12 +1220,137 @@
"integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==",
"dev": true "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": { "hosted-git-info": {
"version": "2.8.9", "version": "2.8.9",
"resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz",
"integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==",
"dev": true "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": { "ignore": {
"version": "5.1.8", "version": "5.1.8",
"resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz",
@ -1600,9 +1783,9 @@
} }
}, },
"mdast-comment-marker": { "mdast-comment-marker": {
"version": "1.1.2", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/mdast-comment-marker/-/mdast-comment-marker-1.1.2.tgz", "resolved": "https://registry.npmjs.org/mdast-comment-marker/-/mdast-comment-marker-2.0.0.tgz",
"integrity": "sha512-vTFXtmbbF3rgnTh3Zl3irso4LtvwUq/jaDvT2D1JqTGAwaipcS7RpTxzi6KjoRqI9n2yuAhzLDAC8xVTF3XYVQ==", "integrity": "sha512-LQ4sf7vUzxz4mQQlzzBDgjaCJO5A0lkIAT9TyeNMfqaP31ooP1Qw9hprf7/V3NCo5FA1nvo5gbnfLVRY79QlDQ==",
"dev": true "dev": true
}, },
"mdast-util-find-and-replace": { "mdast-util-find-and-replace": {
@ -1691,12 +1874,12 @@
} }
}, },
"mdast-util-frontmatter": { "mdast-util-frontmatter": {
"version": "0.2.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/mdast-util-frontmatter/-/mdast-util-frontmatter-0.2.0.tgz", "resolved": "https://registry.npmjs.org/mdast-util-frontmatter/-/mdast-util-frontmatter-1.0.0.tgz",
"integrity": "sha512-FHKL4w4S5fdt1KjJCwB0178WJ0evnyyQr5kXTM3wrOVpytD0hrkvd+AOOjU9Td8onOejCkmZ+HQRT3CZ3coHHQ==", "integrity": "sha512-7itKvp0arEVNpCktOET/eLFAYaZ+0cNjVtFtIPxgQ5tV+3i+D4SDDTjTzPWl44LT59PC+xdx+glNTawBdF98Mw==",
"dev": true, "dev": true,
"requires": { "requires": {
"micromark-extension-frontmatter": "^0.2.0" "micromark-extension-frontmatter": "^1.0.0"
} }
}, },
"mdast-util-gfm": { "mdast-util-gfm": {
@ -1960,12 +2143,14 @@
} }
}, },
"micromark-extension-frontmatter": { "micromark-extension-frontmatter": {
"version": "0.2.2", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/micromark-extension-frontmatter/-/micromark-extension-frontmatter-0.2.2.tgz", "resolved": "https://registry.npmjs.org/micromark-extension-frontmatter/-/micromark-extension-frontmatter-1.0.0.tgz",
"integrity": "sha512-q6nPLFCMTLtfsctAuS0Xh4vaolxSFUWUWR6PZSrXXiRy+SANGllpcqdXFv2z07l0Xz/6Hl40hK0ffNCJPH2n1A==", "integrity": "sha512-EXjmRnupoX6yYuUJSQhrQ9ggK0iQtQlpi6xeJzVD5xscyAI+giqco5fdymayZhJMbIFecjnE2yz85S9NzIgQpg==",
"dev": true, "dev": true,
"requires": { "requires": {
"fault": "^1.0.0" "fault": "^2.0.0",
"micromark-util-character": "^1.0.0",
"micromark-util-symbol": "^1.0.0"
} }
}, },
"micromark-extension-gfm": { "micromark-extension-gfm": {
@ -2399,6 +2584,12 @@
"error-ex": "^1.2.0" "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": { "path-exists": {
"version": "3.0.0", "version": "3.0.0",
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
@ -2473,6 +2664,12 @@
"integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
"dev": true "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": { "punycode": {
"version": "2.1.1", "version": "2.1.1",
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
@ -2598,6 +2795,41 @@
"define-properties": "^1.1.3" "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": { "remark": {
"version": "14.0.1", "version": "14.0.1",
"resolved": "https://registry.npmjs.org/remark/-/remark-14.0.1.tgz", "resolved": "https://registry.npmjs.org/remark/-/remark-14.0.1.tgz",
@ -2798,13 +3030,15 @@
} }
}, },
"remark-frontmatter": { "remark-frontmatter": {
"version": "3.0.0", "version": "4.0.0",
"resolved": "https://registry.npmjs.org/remark-frontmatter/-/remark-frontmatter-3.0.0.tgz", "resolved": "https://registry.npmjs.org/remark-frontmatter/-/remark-frontmatter-4.0.0.tgz",
"integrity": "sha512-mSuDd3svCHs+2PyO29h7iijIZx4plX0fheacJcAoYAASfgzgVIcXGYSq9GFyYocFLftQs8IOmmkgtOovs6d4oA==", "integrity": "sha512-0J+2czWAS9sz9baJJel4tTUnNhMI7wYgih99Hxhdeq2GpdI1Ctu0iol6zAsWw5xa+jLsZXNiwEnnJAJo3XX3hw==",
"dev": true, "dev": true,
"requires": { "requires": {
"mdast-util-frontmatter": "^0.2.0", "@types/mdast": "^3.0.0",
"micromark-extension-frontmatter": "^0.2.0" "mdast-util-frontmatter": "^1.0.0",
"micromark-extension-frontmatter": "^1.0.0",
"unified": "^10.0.0"
} }
}, },
"remark-gfm": { "remark-gfm": {
@ -2818,103 +3052,146 @@
} }
}, },
"remark-lint": { "remark-lint": {
"version": "8.0.0", "version": "9.0.1",
"resolved": "https://registry.npmjs.org/remark-lint/-/remark-lint-8.0.0.tgz", "resolved": "https://registry.npmjs.org/remark-lint/-/remark-lint-9.0.1.tgz",
"integrity": "sha512-ESI8qJQ/TIRjABDnqoFsTiZntu+FRifZ5fJ77yX63eIDijl/arvmDvT+tAf75/Nm5BFL4R2JFUtkHRGVjzYUsg==", "integrity": "sha512-q4VFsA7LEG4REJhR2P4A6CU9b4cCQL53845CX74Z4N/W0EgB9mm/GXpYzjbEqgkMPl5ctP8yp/vBYTNmjfUCtw==",
"dev": true, "dev": true,
"requires": { "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": { "remark-lint-fenced-code-flag": {
"version": "2.0.1", "version": "3.0.1",
"resolved": "https://registry.npmjs.org/remark-lint-fenced-code-flag/-/remark-lint-fenced-code-flag-2.0.1.tgz", "resolved": "https://registry.npmjs.org/remark-lint-fenced-code-flag/-/remark-lint-fenced-code-flag-3.0.1.tgz",
"integrity": "sha512-+COnWHlS/h02FMxoZWxNlZW3Y8M0cQQpmx3aNCbG7xkyMyCKsMLg9EmRvYHHIbxQCuF3JT0WWx5AySqlc7d+NA==", "integrity": "sha512-HsEhvalGxCauZO6OAnaVzIBycfaHLuyZxy1KlniWXQJKZ6EjRAsWwkZHYx9qfPl/ZW7zDG+xAoWTqdHjZW/BTg==",
"dev": true, "dev": true,
"requires": { "requires": {
"unified-lint-rule": "^1.0.0", "@types/mdast": "^3.0.0",
"unist-util-generated": "^1.1.0", "unified": "^10.0.0",
"unist-util-position": "^3.0.0", "unified-lint-rule": "^2.0.0",
"unist-util-visit": "^2.0.0" "unist-util-generated": "^2.0.0",
"unist-util-position": "^4.0.0",
"unist-util-visit": "^4.0.0"
}, },
"dependencies": { "dependencies": {
"unist-util-is": { "unist-util-is": {
"version": "4.0.2", "version": "5.1.1",
"resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.0.2.tgz", "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.1.1.tgz",
"integrity": "sha512-Ofx8uf6haexJwI1gxWMGg6I/dLnF2yE+KibhD3/diOqY2TinLcqHXCV6OI5gFVn3xQqDH+u0M625pfKwIwgBKQ==", "integrity": "sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==",
"dev": true "dev": true
}, },
"unist-util-visit": { "unist-util-visit": {
"version": "2.0.2", "version": "4.0.0",
"resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.2.tgz", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz",
"integrity": "sha512-HoHNhGnKj6y+Sq+7ASo2zpVdfdRifhTgX2KTU3B/sO/TTlZchp7E3S4vjRzDJ7L60KmrCPsQkVK3lEF3cz36XQ==", "integrity": "sha512-3HWTvrtU10/E7qgPznBfiOyG0TXj9W8c1GSfaI8L9GkaG1pLePiQPZ7E35a0R3ToQ/zcy4Im6aZ9WBgOTnv1MQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"@types/unist": "^2.0.0", "@types/unist": "^2.0.0",
"unist-util-is": "^4.0.0", "unist-util-is": "^5.0.0",
"unist-util-visit-parents": "^3.0.0" "unist-util-visit-parents": "^5.0.0"
} }
}, },
"unist-util-visit-parents": { "unist-util-visit-parents": {
"version": "3.0.2", "version": "5.0.0",
"resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.0.2.tgz", "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.0.0.tgz",
"integrity": "sha512-yJEfuZtzFpQmg1OSCyS9M5NJRrln/9FbYosH3iW0MG402QbdbaB8ZESwUv9RO6nRfLAKvWcMxCwdLWOov36x/g==", "integrity": "sha512-CVaLOYPM/EaFTYMytbaju3Tw4QI3DHnHFnL358FkEu0hZOzSm/hqBdVwOQDR60jF5ZzhB1tlZlRH0ll/yekZIQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"@types/unist": "^2.0.0", "@types/unist": "^2.0.0",
"unist-util-is": "^4.0.0" "unist-util-is": "^5.0.0"
} }
} }
} }
}, },
"remark-lint-no-shell-dollars": { "remark-lint-no-shell-dollars": {
"version": "2.0.2", "version": "3.0.1",
"resolved": "https://registry.npmjs.org/remark-lint-no-shell-dollars/-/remark-lint-no-shell-dollars-2.0.2.tgz", "resolved": "https://registry.npmjs.org/remark-lint-no-shell-dollars/-/remark-lint-no-shell-dollars-3.0.1.tgz",
"integrity": "sha512-zhkHZOuyaD3r/TUUkkVqW0OxsR9fnSrAnHIF63nfJoAAUezPOu8D1NBsni6rX8H2DqGbPYkoeWrNsTwiKP0yow==", "integrity": "sha512-QvnA8Ltj3FPaAqUu0DebKYv66LFndTk0fXVZ9rQWOjTEVIKImy9Dy59kVqwYMpCwZbJkpigu2bMl/7UG/BA0XA==",
"dev": true, "dev": true,
"requires": { "requires": {
"unified-lint-rule": "^1.0.0", "@types/mdast": "^3.0.0",
"unist-util-generated": "^1.1.0", "unified": "^10.0.0",
"unist-util-visit": "^2.0.0" "unified-lint-rule": "^2.0.0",
"unist-util-generated": "^2.0.0",
"unist-util-visit": "^4.0.0"
}, },
"dependencies": { "dependencies": {
"unist-util-is": { "unist-util-is": {
"version": "4.0.2", "version": "5.1.1",
"resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.0.2.tgz", "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.1.1.tgz",
"integrity": "sha512-Ofx8uf6haexJwI1gxWMGg6I/dLnF2yE+KibhD3/diOqY2TinLcqHXCV6OI5gFVn3xQqDH+u0M625pfKwIwgBKQ==", "integrity": "sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==",
"dev": true "dev": true
}, },
"unist-util-visit": { "unist-util-visit": {
"version": "2.0.2", "version": "4.0.0",
"resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.2.tgz", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz",
"integrity": "sha512-HoHNhGnKj6y+Sq+7ASo2zpVdfdRifhTgX2KTU3B/sO/TTlZchp7E3S4vjRzDJ7L60KmrCPsQkVK3lEF3cz36XQ==", "integrity": "sha512-3HWTvrtU10/E7qgPznBfiOyG0TXj9W8c1GSfaI8L9GkaG1pLePiQPZ7E35a0R3ToQ/zcy4Im6aZ9WBgOTnv1MQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"@types/unist": "^2.0.0", "@types/unist": "^2.0.0",
"unist-util-is": "^4.0.0", "unist-util-is": "^5.0.0",
"unist-util-visit-parents": "^3.0.0" "unist-util-visit-parents": "^5.0.0"
} }
}, },
"unist-util-visit-parents": { "unist-util-visit-parents": {
"version": "3.0.2", "version": "5.0.0",
"resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.0.2.tgz", "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.0.0.tgz",
"integrity": "sha512-yJEfuZtzFpQmg1OSCyS9M5NJRrln/9FbYosH3iW0MG402QbdbaB8ZESwUv9RO6nRfLAKvWcMxCwdLWOov36x/g==", "integrity": "sha512-CVaLOYPM/EaFTYMytbaju3Tw4QI3DHnHFnL358FkEu0hZOzSm/hqBdVwOQDR60jF5ZzhB1tlZlRH0ll/yekZIQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"@types/unist": "^2.0.0", "@types/unist": "^2.0.0",
"unist-util-is": "^4.0.0" "unist-util-is": "^5.0.0"
} }
} }
} }
}, },
"remark-message-control": { "remark-message-control": {
"version": "6.0.0", "version": "7.0.0",
"resolved": "https://registry.npmjs.org/remark-message-control/-/remark-message-control-6.0.0.tgz", "resolved": "https://registry.npmjs.org/remark-message-control/-/remark-message-control-7.0.0.tgz",
"integrity": "sha512-k9bt7BYc3G7YBdmeAhvd3VavrPa/XlKWR3CyHjr4sLO9xJyly8WHHT3Sp+8HPR8lEUv+/sZaffL7IjMLV0f6BA==", "integrity": "sha512-KZySoC97TrMPYfIZ9vJ7wxvQwniy68K6WCY3vmSedDN5YuGfdVOpMj6sjaZQcqbWZV9n7BhrT70E3xaUTtk4hA==",
"dev": true, "dev": true,
"requires": { "requires": {
"mdast-comment-marker": "^1.0.0", "@types/mdast": "^3.0.0",
"unified-message-control": "^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": { "remark-parse": {
@ -3091,10 +3368,10 @@
"is-fullwidth-code-point": "^3.0.0" "is-fullwidth-code-point": "^3.0.0"
} }
}, },
"sliced": { "space-separated-tokens": {
"version": "1.0.1", "version": "2.0.1",
"resolved": "https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz", "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.1.tgz",
"integrity": "sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E=", "integrity": "sha512-ekwEbFp5aqSPKaqeY1PGrlGQxPNaq+Cnx4+bE2D8sciBQrHpbwoBbawqTN2+6jPs9IdWxxiUcN0K2pkczD3zmw==",
"dev": true "dev": true
}, },
"spdx-correct": { "spdx-correct": {
@ -3155,6 +3432,24 @@
"safe-buffer": "~5.2.0" "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": { "strip-ansi": {
"version": "6.0.0", "version": "6.0.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
@ -3617,56 +3912,127 @@
} }
}, },
"unified-lint-rule": { "unified-lint-rule": {
"version": "1.0.4", "version": "2.0.1",
"resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-1.0.4.tgz", "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.0.1.tgz",
"integrity": "sha512-q9wY6S+d38xRAuWQVOMjBQYi7zGyKkY23ciNafB8JFVmDroyKjtytXHCg94JnhBCXrNqpfojo3+8D+gmF4zxJQ==", "integrity": "sha512-2RzZuuuWW+ifftM0zd/ZEng0Hb5lah+Zi+ZL/ybj8BrLO/TH2aQAMYvG+iC95aCg2FkWu/pcvVvHqsh2UMmzPg==",
"dev": true, "dev": true,
"requires": { "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": { "unified-message-control": {
"version": "3.0.1", "version": "4.0.0",
"resolved": "https://registry.npmjs.org/unified-message-control/-/unified-message-control-3.0.1.tgz", "resolved": "https://registry.npmjs.org/unified-message-control/-/unified-message-control-4.0.0.tgz",
"integrity": "sha512-K2Kvvp1DBzeuxYLLsumZh/gDWUTl4e2z/P3VReFirC78cfHKtQifbhnfRrSBtKtd1Uc6cvYTW0/SZIUaMAEcTg==", "integrity": "sha512-1b92N+VkPHftOsvXNOtkJm4wHlr+UDmTBF2dUzepn40oy9NxanJ9xS1RwUBTjXJwqr2K0kMbEyv1Krdsho7+Iw==",
"dev": true, "dev": true,
"requires": { "requires": {
"unist-util-visit": "^2.0.0", "@types/unist": "^2.0.0",
"vfile-location": "^3.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": { "dependencies": {
"unist-util-is": { "unist-util-is": {
"version": "4.0.2", "version": "5.1.1",
"resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.0.2.tgz", "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.1.1.tgz",
"integrity": "sha512-Ofx8uf6haexJwI1gxWMGg6I/dLnF2yE+KibhD3/diOqY2TinLcqHXCV6OI5gFVn3xQqDH+u0M625pfKwIwgBKQ==", "integrity": "sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==",
"dev": true "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": { "unist-util-visit": {
"version": "2.0.3", "version": "3.1.0",
"resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.3.tgz", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-3.1.0.tgz",
"integrity": "sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==", "integrity": "sha512-Szoh+R/Ll68QWAyQyZZpQzZQm2UPbxibDvaY8Xc9SUtYgPsDzx5AWSk++UUt2hJuow8mvwR+rG+LQLw+KsuAKA==",
"dev": true, "dev": true,
"requires": { "requires": {
"@types/unist": "^2.0.0", "@types/unist": "^2.0.0",
"unist-util-is": "^4.0.0", "unist-util-is": "^5.0.0",
"unist-util-visit-parents": "^3.0.0" "unist-util-visit-parents": "^4.0.0"
} }
}, },
"unist-util-visit-parents": { "unist-util-visit-parents": {
"version": "3.1.0", "version": "4.1.1",
"resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.1.0.tgz", "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-4.1.1.tgz",
"integrity": "sha512-0g4wbluTF93npyPrp/ymd3tCDTMnP0yo2akFD2FIBAYXq/Sga3lwaU1D8OYKbtpioaI6CkDcQ6fsMnmtzt7htw==", "integrity": "sha512-1xAFJXAKpnnJl8G7K5KgU7FY55y3GcLIXqkzUj5QF/QVP7biUm0K0O2oqVkYsdjzJKifYeWn9+o6piAK2hGSHw==",
"dev": true, "dev": true,
"requires": { "requires": {
"@types/unist": "^2.0.0", "@types/unist": "^2.0.0",
"unist-util-is": "^4.0.0" "unist-util-is": "^5.0.0"
} }
}, },
"vfile-location": { "vfile": {
"version": "3.1.0", "version": "5.0.2",
"resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-3.1.0.tgz", "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz",
"integrity": "sha512-FCZ4AN9xMcjFIG1oGmZKo61PjwJHRVA+0/tPUP2ul4uIwjGGndIxavEMRpWn5p4xwm/ZsdXp9YNygf1ZyE4x8g==", "integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==",
"dev": true "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 "dev": true
}, },
"unist-util-generated": { "unist-util-generated": {
"version": "1.1.4", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-1.1.4.tgz", "resolved": "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-2.0.0.tgz",
"integrity": "sha512-SA7Sys3h3X4AlVnxHdvN/qYdr4R38HzihoEVY2Q2BZu8NHWDnw5OGcC/tXWjQfd4iG+M6qRFNIRGqJmp2ez4Ww==", "integrity": "sha512-TiWE6DVtVe7Ye2QxOVW9kqybs6cZexNwTwSMVgkfjEReqy/xwGpAXb99OxktoWwmL+Z+Epb0Dn8/GNDYP1wnUw==",
"dev": true "dev": true
}, },
"unist-util-inspect": { "unist-util-inspect": {
@ -3698,9 +4064,9 @@
"dev": true "dev": true
}, },
"unist-util-position": { "unist-util-position": {
"version": "3.1.0", "version": "4.0.1",
"resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-3.1.0.tgz", "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.1.tgz",
"integrity": "sha512-w+PkwCbYSFw8vpgWD0v7zRCl1FpY3fjDSQ3/N/wNd9Ffa4gPi8+4keqt99N3XW6F99t/mUzp2xAhNmfKWp95QA==", "integrity": "sha512-mgy/zI9fQ2HlbOtTdr2w9lhVaiFUHWQnZrFF2EUoVOqtAUdzqMtNiD99qA5a1IcjWVR8O6aVYE9u7Z2z1v0SQA==",
"dev": true "dev": true
}, },
"unist-util-stringify-position": { "unist-util-stringify-position": {
@ -3768,6 +4134,49 @@
"vfile-message": "^2.0.0" "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": { "vfile-message": {
"version": "2.0.4", "version": "2.0.4",
"resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz", "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": { "word-wrap": {
"version": "1.2.3", "version": "1.2.3",
"resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
"integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
"dev": true "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": { "wrappy": {
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",

View File

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

View File

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

View File

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

View File

@ -9,7 +9,7 @@ The template variable `this` is also available when evaluating any `trigger_vari
## Available this Data ## 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 ## Available Trigger Data

View File

@ -230,7 +230,7 @@ automation:
<div class='note'> <div class='note'>
Listing above and below together means the numeric_state has to be between the two values. 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> </div>
Number helpers (`input_number` entities), `number` and `sensor` entities that 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. 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 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). a [variable script step](/docs/scripts/#variables).
```yaml ```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. 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` ## Editing `configuration.yaml`

View File

@ -14,7 +14,7 @@ homeassistant:
longitude: 117.22743 longitude: 117.22743
elevation: 430 elevation: 430
unit_system: metric unit_system: metric
currency: "$", currency: USD
time_zone: "America/Los_Angeles" time_zone: "America/Los_Angeles"
external_url: "https://www.example.com" external_url: "https://www.example.com"
internal_url: "http://homeassistant.local:8123" internal_url: "http://homeassistant.local:8123"
@ -61,7 +61,7 @@ time_zone:
required: false required: false
type: string type: string
currency: 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 required: false
type: string type: string
external_url: 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. 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 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. 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. 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. 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. 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) ![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. 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: 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) - [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;'> <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: The following software has built-in support for MQTT discovery:
- [Arilux AL-LC0X LED controllers](https://github.com/mertenats/Arilux_AL-LC0X) - [Arilux AL-LC0X LED controllers](https://github.com/mertenats/Arilux_AL-LC0X)
- [ecowitt2mqtt](https://github.com/bachya/ecowitt2mqtt)
- [ESPHome](https://esphome.io) - [ESPHome](https://esphome.io)
- [ESPurna](https://github.com/xoseperez/espurna) - [ESPurna](https://github.com/xoseperez/espurna)
- [IOTLink](https://iotlink.gitlab.io) (starting with 2.0.0) - [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) - [room-assistant](https://github.com/mKeRix/room-assistant) (starting with 1.1.0)
- [SmartHome](https://github.com/roncoa/SmartHome) - [SmartHome](https://github.com/roncoa/SmartHome)
- [Tasmota](https://github.com/arendst/Tasmota) (starting with 5.11.1e, development halted) - [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) - [WyzeSense2MQTT](https://github.com/raetha/wyzesense2mqtt)
- [Xiaomi DaFang Hacks](https://github.com/EliasKotlyar/Xiaomi-Dafang-Hacks) - [Xiaomi DaFang Hacks](https://github.com/EliasKotlyar/Xiaomi-Dafang-Hacks)
- [Zigbee2mqtt](https://github.com/koenkk/zigbee2mqtt) - [Zigbee2mqtt](https://github.com/koenkk/zigbee2mqtt)

View File

@ -674,4 +674,4 @@ automation:
[service calls page]: /getting-started/scripts-service-calls/ [service calls page]: /getting-started/scripts-service-calls/
[conditions page]: /getting-started/scripts-conditions/ [conditions page]: /getting-started/scripts-conditions/
[shorthand-template]: /docs/scripts/conditions/#template-condition-shorthand-notation [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: 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 - Everspring USB stick - Gen 5
- GoControl HUSBZB-1 stick - GoControl HUSBZB-1 stick
- Sigma Designs UZB stick - Sigma Designs UZB stick
- Silicon Labs SLUSB7000A - Silicon Labs SLUSB7000A
- Vision USB stick - Gen5 - Vision USB stick - Gen5
- Zooz Z-Wave Plus S2 stick ZST10
- ZWave.me Razberry Board - ZWave.me Razberry Board
- ZWave.me UZB1 stick - 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: 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/) - [Vera](/integrations/vera/)
- [Wink](/integrations/wink/)
- [Fibaro](/integrations/fibaro/) - [Fibaro](/integrations/fibaro/)
- [SmartThings](/integrations/smartthings/) - [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> <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. 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> </div>
### Configure the BIOS ### 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 1. Disable Secure Boot
![Disable Secure Boot mode](/images/installation/intel-nuc-disable-secure-boot.jpg) ![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 %} {% 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> 2. Download and start <a href="https://www.balena.io/etcher" target="_blank">Balena Etcher</a>
3. Select "Flash from URL" 3. Select "Flash from URL"
![etcher_from_url](/images/installation/etcher1.png) ![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}} ### Start up your {{site.installation.types[page.installation_type].board}}
{% if page.installation_type == 'generic-x86-64' %} {% 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 2. Make sure an ethernet cable for network is plugged in
3. Power the system on. 3. Power the system on.
{% else %} {% 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. 2. Attach a ethernet cable for network.
3. Attach a cable for power 3. Attach a cable for power
{% endif %} {% endif %}

View File

@ -21,7 +21,18 @@ ha_platforms:
- sensor - 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: 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. August Lock 2nd Gen will need either August Connect or Doorbell to connect to Home Assistant.
</div> </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 ### Binary Sensor

View File

@ -44,6 +44,15 @@ calendar:
url: https://nextcloud.example.com/remote.php/dav 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. 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 ## Custom calendars

View File

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

View File

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

View File

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

View File

@ -17,7 +17,7 @@ The Dexcom integration allows you to view your CGM data from [Dexcom](https://ww
## Prerequisites ## 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 %} {% include integrations/config_flow.md %}

View File

@ -35,6 +35,7 @@ This integration is known to work for:
- Kaifa E0026 - Kaifa E0026
- Kamstrup 382JxC (DSMR 2.2) - Kamstrup 382JxC (DSMR 2.2)
- Sagemcom XS210 ESMR5 - Sagemcom XS210 ESMR5
- Ziv E0058 ESMR5
USB serial converters: USB serial converters:
@ -49,7 +50,7 @@ Serial to network proxies:
DIY solutions (ESP8266 based): 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 %} {% include integrations/config_flow.md %}

View File

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

View File

@ -18,7 +18,7 @@ To get an overview about the available [currencies](https://fixer.io/symbols).
## Setup ## 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 ## Configuration

View File

@ -9,6 +9,8 @@ ha_config_flow: true
ha_codeowners: ha_codeowners:
- '@cnico' - '@cnico'
ha_domain: flipr ha_domain: flipr
ha_platforms:
- sensor
--- ---
[Flipr](https://www.goflipr.com) is a smart pool monitor that publishes data to the cloud via SigFox. [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]_ph`
- `sensor.flipr_[fliprid]_red_ox` - `sensor.flipr_[fliprid]_red_ox`
- `sensor.flipr_[fliprid]_water_temp` - `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. 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 ## 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 To use the Forecast.Solar integration, it will need some information about your
solar panel system: **latitude**, **longitude**, **declination**, **azimuth** solar panel system: **latitude**, **longitude**, **declination**, **azimuth**
and **total modules power**. and **total modules power**.

View File

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

View File

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

View File

@ -1,11 +1,16 @@
--- ---
title: Generic Hygrostat title: Generic hygrostat
description: Virtual hygrostat device description: Virtual hygrostat device
ha_category: ha_category:
- Humidifier - Humidifier
ha_release: 2021.8 ha_release: 2021.8
ha_domain: generic_hygrostat ha_domain: generic_hygrostat
ha_quality_scale: internal 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. 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 default: 100
type: integer type: integer
target_humidity: 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 required: false
type: integer type: integer
device_class: device_class:

View File

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

View File

@ -34,6 +34,7 @@ ha_platforms:
- light - light
- lock - lock
- media_player - media_player
- number
- sensor - sensor
- switch - 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/`). 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. description: The MQTT topic subscribed to receive humidifier target humidity.
required: false required: false
type: string 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. description: Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract a value for the humidifier `target_humidity` state.
required: false required: false
type: string type: string
@ -207,7 +207,7 @@ mode_state_topic:
description: The MQTT topic subscribed to receive the humidifier `mode`. description: The MQTT topic subscribed to receive the humidifier `mode`.
required: false required: false
type: string 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. description: Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract a value for the humidifier `mode` state.
required: false required: false
type: string type: string

View File

@ -83,4 +83,4 @@ sensor:
round: 2 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 title: IntesisHome
description: Instructions how to integrate IntesisHome AC devices with Home Assistant description: Instructions how to integrate IntesisHome AC devices with Home Assistant
logo: intesishome.png
ha_category: Climate ha_category: Climate
ha_release: 0.104 ha_release: 0.104
ha_iot_class: Cloud Push 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. The default name of the location attributes is `lat` and `long` to avoid showing them on the map.
</div> </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 - number
- scene - scene
- sensor - sensor
- select
- switch - switch
- weather - weather
--- ---

View File

@ -10,7 +10,7 @@ ha_platforms:
- camera - 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. 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. - `tv`: Device is a television type device.
- `speaker`: Device is speaker or stereo 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_config_flow: true
ha_platforms: ha_platforms:
- climate - climate
- sensor
--- ---
Integrates Mill heater into Home Assistant. Integrates Mill heater into Home Assistant.

View File

@ -18,6 +18,7 @@ ha_platforms:
- light - light
- sensor - sensor
- switch - 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). [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 address: 100
scan_interval: 20 scan_interval: 20
slave: 1 slave: 1
- name: "binary_ensor2" - name: "binary_sensor2"
address: 110 address: 110
device_class: door device_class: door
input_type: discrete_input input_type: discrete_input

View File

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

View File

@ -17,10 +17,12 @@ ha_platforms:
- climate - climate
- cover - cover
- fan - fan
- humidifier
- lock - lock
- number - number
- scene - scene
- sensor - sensor
- select
- switch - 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 Google applies strict [Redirect URI validation
rules](https://developers.google.com/identity/protocols/oauth2/web-server#uri-validation) to keep your login 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 ## Overview: Supported Devices
@ -365,7 +365,7 @@ New users are not currently able to set up a Works With Nest Developer account.
</div> </div>
<details> <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`. 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 - climate
- light - light
- sensor - sensor
- select
--- ---
The Netatmo integration platform is the main integration to integrate all Netatmo related platforms. 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. description: Instructions on how to integrate Trane and American Standard thermostats into Home Assistant.
ha_category: ha_category:
- Binary Sensor - 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 | | `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 | | `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. description: Instructions on how to integrate Prosegur Smart Alarms into Home Assistant.
ha_category: ha_category:
- Alarm - Alarm

View File

@ -52,7 +52,7 @@ sensor:
- platform: template - platform: template
sensors: sensors:
power_consumption: 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" friendly_name: "Using"
unit_of_measurement: "Watt" unit_of_measurement: "Watt"
energy_consumption: 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: ha_platforms:
- binary_sensor - binary_sensor
- number - number
- select
- sensor - sensor
- select
- switch - switch
ha_quality_scale: silver ha_quality_scale: silver
--- ---

View File

@ -10,9 +10,9 @@ ha_platforms:
- sensor - 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 ## Supported Sensors

View File

@ -9,7 +9,6 @@ ha_quality_scale: internal
ha_codeowners: ha_codeowners:
- '@home-assistant/core' - '@home-assistant/core'
- '@raman325' - '@raman325'
ha_iot_class:
--- ---
The Siren integration is built for the controlling and monitoring of siren/chime devices. 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_l1 | W | Power for phase 1 |
| power_l2 | W | Power for phase 2 | | power_l2 | W | Power for phase 2 |
| power_l3 | W | Power for phase 3 | | 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 | | daily_yield | Wh | The solar plant's yield for today |
| pv_gen_meter | kWh | Total kWh generated to date | | 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_supplied | W | Power supplied |
| metering_power_absorbed | W | Power absorbed | | metering_power_absorbed | W | Power absorbed |
| metering_frequency | Hz | Grid frequency | | metering_frequency | Hz | Grid frequency |
| metering_total_yield | kWh | Total power from the grid | | metering_total_yield | kWh | Total energy supplied to the grid |
| metering_total_absorbed | kWh | Total power supplied to the grid | | metering_total_absorbed | kWh | Total energy from the grid |
| metering_current_l1 | A | Current for phase 1 | | metering_current_l1 | A | Current for phase 1 |
| metering_current_l2 | A | Current for phase 2 | | metering_current_l2 | A | Current for phase 2 |
| metering_current_l3 | A | Current for phase 3 | | 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. 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. 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 ### 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. 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 title: Solar-Log
description: Instructions on how to integrate Solar-Log sensors within Home Assistant. description: Instructions on how to integrate Solar-Log sensors within Home Assistant.
ha_category: Sensor ha_category:
- Sensor
- Energy
ha_release: 0.101 ha_release: 0.101
ha_iot_class: Local Polling ha_iot_class: Local Polling
ha_config_flow: true ha_config_flow: true

View File

@ -18,6 +18,7 @@ ha_platforms:
- media_player - media_player
- sensor - sensor
- switch - 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. 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_config_flow: true
ha_platforms: ha_platforms:
- climate - climate
- sensor
- switch - switch
--- ---

View File

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

View File

@ -12,6 +12,7 @@ ha_domain: switcher_kis
ha_platforms: ha_platforms:
- sensor - sensor
- switch - switch
ha_config_flow: true
--- ---
This `Switcher` integration allows you to control your [Switcher Devices](https://www.switcher.co.il/). 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 V2 (Qualcomm chipset - from firmware 72.32)
- Switcher V4 - 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 %} {% include integrations/config_flow.md %}
## Sensors ## 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: 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) - [Compatible card printing tray](https://amzn.to/3hq59x2)
- [Printable NFC cards](https://amzn.to/3iqHpKx) - [Printable NFC cards](https://amzn.to/3iqHpKx)

View File

@ -93,4 +93,4 @@ sensor:
``` ```
[tautulli]: https://tautulli.com [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 title: Template
description: Instructions on how to integrate Template Sensors into Home Assistant. description: Instructions on how to integrate Template Sensors into Home Assistant.
ha_category: ha_category:
- Binary Sensor
- Sensor - Sensor
ha_release: 0.12 ha_release: 0.12
ha_iot_class: Local Push ha_iot_class: Local Push
@ -9,6 +10,7 @@ ha_quality_scale: internal
ha_codeowners: ha_codeowners:
- '@PhracturedBlue' - '@PhracturedBlue'
- '@tetienne' - '@tetienne'
- '@home-assistant/core'
ha_domain: template ha_domain: template
ha_platforms: ha_platforms:
- alarm_control_panel - alarm_control_panel

View File

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

View File

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

View File

@ -11,6 +11,7 @@ ha_codeowners:
ha_domain: velux ha_domain: velux
ha_platforms: ha_platforms:
- cover - cover
- light
- scene - 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` `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 }}' value_template: '{{ states.switch.vesync_switch.attributes["voltage"] | float }}'
unit_of_measurement: "V" 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 %} {% endraw %}

View File

@ -43,7 +43,7 @@ The above-required configuration parameters can be obtained as follows:
Google reCAPTCHA: Disabled Google reCAPTCHA: Disabled
Redirect URIs: vicare://oauth-callback/everest 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. 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_release: 0.18
ha_codeowners: ha_codeowners:
- '@bendavid' - '@bendavid'
- '@thecode'
ha_domain: webostv ha_domain: webostv
ha_platforms: ha_platforms:
- media_player - media_player

View File

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

View File

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

View File

@ -25,9 +25,12 @@ ha_platforms:
- binary_sensor - binary_sensor
- device_tracker - device_tracker
- fan - fan
- humidifier
- light - light
- number
- remote - remote
- sensor - sensor
- select
- switch - switch
- vacuum - vacuum
--- ---
@ -429,32 +432,58 @@ Sensor | Description
### Air Humidifier (zhimi.humidifier.v1) ### Air Humidifier (zhimi.humidifier.v1)
- On, Off - On, Off
- Operation modes (silent, medium, high, strong) - Operation modes (Silent, Medium, High, Strong)
- Buzzer (on, off) - Buzzer (on, off)
- Child lock (on, off) - Child lock (on, off)
- LED (on, off), LED brightness (bright, dim, off) - LED (on, off), LED brightness (bright, dim, off)
- Target humidity (30, 40, 50, 60, 70, 80) - 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 - Sensor entities
- `humidity`
- `temperature` Sensor | Description
--- | ---
`humidity` | The current `humidity` measured
`temperature` | The current `temperature` measured
### Air Humidifier CA (zhimi.humidifier.ca1) ### Air Humidifier CA (zhimi.humidifier.ca1)
- On, Off - On, Off
- Operation modes (silent, medium, high, auto) - Operation modes (Silent, Medium, High, Auto)
- Buzzer (on, off) - Buzzer (on, off)
- Child lock (on, off) - Child lock (on, off)
- LED brightness (bright, dim, off) - LED brightness (bright, dim, off)
- Target humidity (30, 40, 50, 60, 70, 80) - Target humidity (30, 40, 50, 60, 70, 80)
- Dry mode (on, off) - 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 - Sensor entities
- `humidity`
- `temperature` Sensor | Description
--- | ---
`humidity` | The current `humidity` measured
`temperature` | The current `temperature` measured
### Air Humidifier CA (zhimi.humidifier.ca4) ### Air Humidifier CA (zhimi.humidifier.ca4)
- On, Off - On, Off
- Operation modes (auto, low, medium, high) - Operation modes (Auto, Low, Medium, High)
- Buzzer (on, off) - Buzzer (on, off)
- Child lock (on, off) - Child lock (on, off)
- LED brightness (off, dim, bright) - LED brightness (off, dim, bright)
@ -462,11 +491,24 @@ Sensor | Description
- Clean mode (on, off) - Clean mode (on, off)
- Dry mode (on, off) - Dry mode (on, off)
- Motor speed rpm (200 - 2000) - 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 - Sensor entities
- `actual_speed`
- `humidity` Sensor | Description
- `temperature` --- | ---
- `water_level` `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'> <div class='note'>
Clean mode and Motor speed can only be set when the device is turned on. 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) ### Air Humidifier CB (zhimi.humidifier.cb1)
- On, Off - On, Off
- Operation modes (silent, medium, high, auto) - Operation modes (Silent, Medium, High, Auto)
- Buzzer (on, off) - Buzzer (on, off)
- Child lock (on, off) - Child lock (on, off)
- LED (on, off), LED brightness (bright, dim, off) - LED (on, off), LED brightness (bright, dim, off)
- Target humidity (30, 40, 50, 60, 70, 80) - Target humidity (30, 40, 50, 60, 70, 80)
- Dry mode (on, off) - 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 - 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) ### 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_iot_class: Cloud Polling
ha_config_flow: true ha_config_flow: true
ha_codeowners: ha_codeowners:
- '@gjohanssson-ST' - '@gjohansson-ST'
ha_domain: yale_smart_alarm ha_domain: yale_smart_alarm
ha_platforms: ha_platforms:
- alarm_control_panel - 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. 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. description: Instructions on how to integrate your YouLess device into Home Assistant.
ha_category: ha_category:
- Sensor - Sensor
ha_iot_class: Local Pull ha_iot_class: Local Polling
ha_config_flow: true ha_config_flow: true
ha_release: 2021.8 ha_release: 2021.8
ha_domain: youless 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). 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 - Hub
- Light - Light
- Lock - Lock
- Number
- Select - Select
- Sensor - Sensor
- Siren
- Switch - Switch
ha_release: '2021.2' ha_release: '2021.2'
ha_iot_class: Local Push ha_iot_class: Local Push
@ -29,6 +31,7 @@ ha_platforms:
- number - number
- select - select
- sensor - sensor
- siren
- switch - 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> <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. 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 %} {% if page.sections %}
{% for section in 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"> <div class="header">
<img src="{{section.image}}"> <img src="{{section.image}}">
<div class="title">{{section.title}}</div> <div class="title">{{section.title}}</div>

View File

@ -60,11 +60,15 @@ type: energy-solar-graph
</p> </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. 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 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 #### Example
```yaml ```yaml
type: energy-distribution type: energy-distribution
link_dashboard: true
``` ```
## Energy sources table ## Energy sources table

View File

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

View File

@ -41,7 +41,7 @@ chart_type:
required: false required: false
description: If the chart should be rendered as a `bar` or a `line` chart. description: If the chart should be rendered as a `bar` or a `line` chart.
type: string type: string
state_types: stat_types:
required: false required: false
description: The stat types to render. `min`, `max`, `mean`, `sum` description: The stat types to render. `min`, `max`, `mean`, `sum`
type: list 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 # Redirect for Energy
/energy /home-energy-management /energy /home-energy-management
/integrations/energy /docs/energy
# Older development pages # Older development pages
/developers https://developers.home-assistant.io /developers https://developers.home-assistant.io

View File

@ -22,6 +22,7 @@ tagline: >-
</svg> </svg>
tagline_wide: false tagline_wide: false
og_image: /images/blue/blue_hero.jpg og_image: /images/blue/blue_hero.jpg
frontpage_image: /images/frontpage/blue-frontpage.jpg
--- ---
<div class="content"> <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" description: "Monitor your energy usage, transition to sustainable energy and save money"
hero_image: /images/energy/hero.jpg hero_image: /images/energy/hero.jpg
og_image: /images/blog/2021-08-energy/social.png 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. tagline: The world is heating up. Together we can fix that.
sections: sections:
- title: "Monitor usage" - 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 image: /images/energy/vector-graph.png
entries: entries:
- title: "Know where it goes." - 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." description: "Track the energy use of individual devices to see their impact on your energy consumption."
image: /images/energy/individual_devices.png image: /images/energy/individual_devices.png
- title: "Track your costs" - title: "Supercharge your solar panels"
description: "Home Assistant helps you keep track of the costs and compensation for your energy consumption and production." description: "Schedule power usage based on solar production predictions."
image: /images/energy/vector-money.png image: /images/energy/vector-sun.png
entries: entries:
- title: "Consumption overview." - title: "Time your usage."
description: "Get an overview of your energy consumption." 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/energy/cost.png 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" - title: "Use any hardware"
description: "" description: ""
@ -45,13 +50,17 @@ sections:
image_description: "Home Assistant Glow attached to an energy meter" image_description: "Home Assistant Glow attached to an energy meter"
read_more: /docs/energy/electricity-grid/#reading-the-meter-via-a-pulse-counter read_more: /docs/energy/electricity-grid/#reading-the-meter-via-a-pulse-counter
- title: "Supercharge your solar panels" - title: "Track your costs"
description: "Schedule power usage based on solar production predictions." description: "Home Assistant helps you keep track of the costs and compensation for your energy consumption and production."
image: /images/energy/vector-sun.png image: /images/energy/vector-money.png
entries: entries:
- title: "Time your usage." - title: "Consumption overview."
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." description: "Get an overview of your energy consumption."
image: /images/blog/2021-08-energy/solar-production.png 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"> <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. 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> <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> </div>
<div class="links"> <div class="links">
@ -73,3 +82,4 @@ sections:
</a> </a>
</div> </div>
</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