Merge branch 'current' into next

This commit is contained in:
Franck Nijhof 2021-09-29 20:34:15 +02:00
commit f837bc6246
No known key found for this signature in database
GPG Key ID: D62583BA8AB11CA3
136 changed files with 3603 additions and 473 deletions

View File

@ -4,13 +4,13 @@
"dockerfile": "../Dockerfile",
"context": "..",
"args": {
"VARIANT": "2.6",
"NODE_VERSION": "12.1",
"VARIANT": "2.7",
"NODE_VERSION": "14"
}
},
"appPort": [4000],
"postCreateCommand": "bundle install && npm install",
"containerEnv": {"DEVCONTAINER": "true"},
"containerEnv": { "DEVCONTAINER": "true" },
"extensions": [
"davidanson.vscode-markdownlint",
"editorconfig.editorconfig",
@ -25,6 +25,6 @@
"errorLens.gutterIconsEnabled": true,
"errorLens.addAnnotationTextPrefixes": false,
"errorLens.enabledDiagnosticLevels": ["error", "warning"],
"terminal.integrated.shell.linux": "/usr/bin/zsh",
"terminal.integrated.shell.linux": "/usr/bin/zsh"
}
}
}

View File

@ -9,17 +9,11 @@ jobs:
steps:
- name: Check out files from GitHub
uses: actions/checkout@v2.3.4
- name: Setting up Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v2.4.0
- name: Setting up Node.js
uses: actions/setup-node@v2.4.1
with:
node-version: 12.x
- name: Setup NPM cache
uses: actions/cache@v2.1.6
with:
path: ~/.npm
key: npm-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
npm-
node-version: 14.x
cache: "npm"
- name: Install dependencies
run: npm install
env:
@ -32,56 +26,14 @@ jobs:
steps:
- name: Check out files from GitHub
uses: actions/checkout@v2.3.4
- name: Setting up Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v2.4.0
- name: Setting up Node.js
uses: actions/setup-node@v2.4.1
with:
node-version: 12.x
- name: Setup NPM cache
uses: actions/cache@v2.1.6
with:
path: ~/.npm
key: npm-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
npm-
node-version: 14.x
cache: "npm"
- name: Install dependencies
run: npm install
env:
CI: true
- name: Run textlint
run: npm run textlint
build:
name: Jekyll build
runs-on: ubuntu-18.04
needs: [markdown-lint]
steps:
- name: Check out files from GitHub
uses: actions/checkout@v2.3.4
- name: Setting up Ruby 2.6
uses: ruby/setup-ruby@v1.81.0
with:
ruby-version: 2.6
- name: Setup Ruby Gems cache
uses: actions/cache@v2.1.6
with:
path: vendor/bundle
key: gems-${{ hashFiles('**/Gemfile.lock') }}
restore-keys: |
gems-
- name: Installing dependencies
run: |
gem install bundler -v 2.0.1
bundle config path vendor/bundle
bundle install --jobs 4 --retry 3
- name: Setting up Jekyll cache
uses: actions/cache@v2.1.6
with:
path: source/.jekyll-cache
key:
jekyll-${{ hashFiles('**/Gemfile.lock') }}-${{
hashFiles('**/_config.yml') }}
restore-keys: |
jekyll-${{ hashFiles('**/Gemfile.lock') }}-
jekyll-
- name: Building site
run: |
bundle exec rake generate

2
.nvmrc
View File

@ -1 +1 @@
12.1
14

View File

@ -1 +1 @@
2.6.2
2.7.2

View File

@ -28,6 +28,7 @@ source/_integrations/alpha_vantage.markdown @fabaff
source/_integrations/ambee.markdown @frenck
source/_integrations/ambiclimate.markdown @danielhiversen
source/_integrations/ambient_station.markdown @bachya
source/_integrations/amcrest.markdown @flacjacket
source/_integrations/analytics.markdown @home-assistant/core @ludeeus
source/_integrations/androidtv.markdown @JeffLIrion
source/_integrations/apache_kafka.markdown @bachya
@ -108,7 +109,6 @@ source/_integrations/dexcom.markdown @gagebenne
source/_integrations/dhcp.markdown @bdraco
source/_integrations/dht.markdown @thegardenmonkey
source/_integrations/digital_ocean.markdown @fabaff
source/_integrations/directv.markdown @ctalkington
source/_integrations/discogs.markdown @thibmaek
source/_integrations/doorbird.markdown @oblogic7 @bdraco
source/_integrations/dsmr.markdown @Robbie1221 @frenck
@ -150,6 +150,7 @@ source/_integrations/filter.markdown @dgomes
source/_integrations/fireservicerota.markdown @cyberjunky
source/_integrations/firmata.markdown @DaAwesomeP
source/_integrations/fixer.markdown @fabaff
source/_integrations/fjaraskupan.markdown @elupus
source/_integrations/flick_electric.markdown @ZephireNZ
source/_integrations/flipr.markdown @cnico
source/_integrations/flo.markdown @dmulcahey
@ -175,6 +176,7 @@ source/_integrations/geo_rss_events.markdown @exxamalte
source/_integrations/geonetnz_quakes.markdown @exxamalte
source/_integrations/geonetnz_volcano.markdown @exxamalte
source/_integrations/gios.markdown @bieniu
source/_integrations/github.markdown @timmo001 @ludeeus
source/_integrations/gitter.markdown @fabaff
source/_integrations/glances.markdown @fabaff @engrbm87
source/_integrations/goalzero.markdown @tkdrob
@ -185,7 +187,7 @@ source/_integrations/gpsd.markdown @fabaff
source/_integrations/gree.markdown @cmroche
source/_integrations/greeneye_monitor.markdown @jkeljo
source/_integrations/group.markdown @home-assistant/core
source/_integrations/growatt_server.markdown @indykoning @muppet3000
source/_integrations/growatt_server.markdown @indykoning @muppet3000 @JasperPlant
source/_integrations/guardian.markdown @bachya
source/_integrations/habitica.markdown @ASMfreaK @leikoilja
source/_integrations/harmony.markdown @ehendrix23 @bramkragten @bdraco @mkeesey
@ -304,10 +306,11 @@ source/_integrations/msteams.markdown @peroyvind
source/_integrations/mullvad.markdown @meichthys
source/_integrations/mutesync.markdown @currentoor
source/_integrations/my.markdown @home-assistant/core
source/_integrations/myq.markdown @bdraco
source/_integrations/myq.markdown @bdraco @ehendrix23
source/_integrations/mysensors.markdown @MartinHjelmare @functionpointer
source/_integrations/mystrom.markdown @fabaff
source/_integrations/nam.markdown @bieniu
source/_integrations/nanoleaf.markdown @milanmeu
source/_integrations/neato.markdown @dshokouhi @Santobert
source/_integrations/nederlandse_spoorwegen.markdown @YarmoM
source/_integrations/nello.markdown @pschmitt
@ -322,6 +325,7 @@ source/_integrations/nfandroidtv.markdown @tkdrob
source/_integrations/nightscout.markdown @marciogranzotto
source/_integrations/nilu.markdown @hfurubotten
source/_integrations/nissan_leaf.markdown @filcole
source/_integrations/nmap_tracker.markdown @bdraco
source/_integrations/nmbs.markdown @thibmaek
source/_integrations/no_ip.markdown @fabaff
source/_integrations/noaa_tides.markdown @jdelaney72
@ -355,6 +359,7 @@ source/_integrations/orangepi_gpio.markdown @pascallj
source/_integrations/oru.markdown @bvlaicu
source/_integrations/ovo_energy.markdown @timmo001
source/_integrations/ozw.markdown @cgarwood @marcelveldt @MartinHjelmare
source/_integrations/p1_monitor.markdown @klaasnicolaas
source/_integrations/panel_custom.markdown @home-assistant/frontend
source/_integrations/panel_iframe.markdown @home-assistant/frontend
source/_integrations/pcal9535a.markdown @Shulyaka
@ -395,6 +400,7 @@ source/_integrations/rainmachine.markdown @bachya
source/_integrations/random.markdown @fabaff
source/_integrations/recollect_waste.markdown @bachya
source/_integrations/rejseplanen.markdown @DarkFox
source/_integrations/renault.markdown @epenet
source/_integrations/repetier.markdown @MTrab
source/_integrations/rflink.markdown @javicalle
source/_integrations/rfxtrx.markdown @danielhiversen @elupus @RobBie1221
@ -486,7 +492,7 @@ source/_integrations/synology_dsm.markdown @hacf-fr @Quentame @mib1185
source/_integrations/synology_srm.markdown @aerialls
source/_integrations/syslog.markdown @fabaff
source/_integrations/system_bridge.markdown @timmo001
source/_integrations/tado.markdown @michaelarnauts @bdraco @noltari
source/_integrations/tado.markdown @michaelarnauts @noltari
source/_integrations/tag.markdown @balloob @dmulcahey
source/_integrations/tahoma.markdown @philklei
source/_integrations/tankerkoenig.markdown @guillempages
@ -508,6 +514,8 @@ source/_integrations/toon.markdown @frenck
source/_integrations/totalconnect.markdown @austinmroczek
source/_integrations/tplink.markdown @rytilahti @thegardenmonkey
source/_integrations/traccar.markdown @ludeeus
source/_integrations/tractive.markdown @Danielhiversen @zhulik @bieniu
source/_integrations/tradfri.markdown @janiversen
source/_integrations/trafikverket_train.markdown @endor-force
source/_integrations/trafikverket_weatherstation.markdown @endor-force
source/_integrations/transmission.markdown @engrbm87 @JPHutchins
@ -522,8 +530,9 @@ source/_integrations/upb.markdown @gwww
source/_integrations/upc_connect.markdown @pvizeli @fabaff
source/_integrations/upcloud.markdown @scop
source/_integrations/updater.markdown @home-assistant/core
source/_integrations/upnp.markdown @StevenLooman
source/_integrations/upnp.markdown @StevenLooman @ehendrix23
source/_integrations/uptimerobot.markdown @ludeeus
source/_integrations/usb.markdown @bdraco
source/_integrations/usgs_earthquakes_feed.markdown @exxamalte
source/_integrations/utility_meter.markdown @dgomes
source/_integrations/velbus.markdown @Cereal2nd @brefra
@ -559,13 +568,13 @@ source/_integrations/worldclock.markdown @fabaff
source/_integrations/xbox.markdown @hunterjm
source/_integrations/xbox_live.markdown @MartinHjelmare
source/_integrations/xiaomi_aqara.markdown @danielhiversen @syssi
source/_integrations/xiaomi_miio.markdown @rytilahti @syssi @starkillerOG
source/_integrations/xiaomi_miio.markdown @rytilahti @syssi @starkillerOG @bieniu
source/_integrations/xiaomi_tv.markdown @simse
source/_integrations/xmpp.markdown @fabaff @flowolf
source/_integrations/yale_smart_alarm.markdown @gjohansson-ST
source/_integrations/yamaha_musiccast.markdown @vigonotion @micha91
source/_integrations/yandex_transport.markdown @rishatik92 @devbis
source/_integrations/yeelight.markdown @rytilahti @zewelor @shenxn
source/_integrations/yeelight.markdown @rytilahti @zewelor @shenxn @starkillerOG
source/_integrations/yeelightsunflower.markdown @lindsaymarkward
source/_integrations/yi.markdown @bachya
source/_integrations/youless.markdown @gjong

View File

@ -4,7 +4,7 @@ ruby '> 2.5.0'
group :development do
gem 'rake', '13.0.6'
gem 'jekyll', '4.2.0'
gem 'jekyll', '4.2.1'
gem 'compass', '1.0.3'
gem 'sass-globbing', '1.1.5'
gem 'stringex', '2.8.5'
@ -21,7 +21,7 @@ group :jekyll_plugins do
end
gem 'sinatra', '2.1.0'
gem 'nokogiri', '1.12.3'
gem 'nokogiri', '1.12.5'
# Windows and JRuby does not include zoneinfo files, so bundle the tzinfo-data gem
# and associated library

View File

@ -25,13 +25,13 @@ GEM
http_parser.rb (~> 0.6.0)
eventmachine (1.2.7)
eventmachine (1.2.7-x64-mingw32)
ffi (1.15.3)
ffi (1.15.3-x64-mingw32)
ffi (1.15.4)
ffi (1.15.4-x64-mingw32)
forwardable-extended (2.6.0)
http_parser.rb (0.6.0)
i18n (1.8.10)
concurrent-ruby (~> 1.0)
jekyll (4.2.0)
jekyll (4.2.1)
addressable (~> 2.4)
colorator (~> 1.0)
em-websocket (~> 0.5)
@ -74,10 +74,10 @@ GEM
multi_json (1.15.0)
mustermann (1.1.1)
ruby2_keywords (~> 0.0.1)
nokogiri (1.12.3)
nokogiri (1.12.5)
mini_portile2 (~> 2.6.1)
racc (~> 1.4)
nokogiri (1.12.3-x64-mingw32)
nokogiri (1.12.5-x64-mingw32)
racc (~> 1.4)
pathutil (0.16.2)
forwardable-extended (~> 2.6)
@ -91,7 +91,7 @@ GEM
rb-inotify (0.10.1)
ffi (~> 1.0)
rexml (3.2.5)
rouge (3.26.0)
rouge (3.26.1)
ruby-enum (0.9.0)
i18n
ruby2_keywords (0.0.5)
@ -114,9 +114,9 @@ GEM
tilt (2.0.10)
tzinfo (2.0.4)
concurrent-ruby (~> 1.0)
tzinfo-data (1.2021.1)
tzinfo-data (1.2021.2)
tzinfo (>= 1.0.0)
unicode-display_width (1.7.0)
unicode-display_width (1.8.0)
PLATFORMS
ruby
@ -124,13 +124,13 @@ PLATFORMS
DEPENDENCIES
compass (= 1.0.3)
jekyll (= 4.2.0)
jekyll (= 4.2.1)
jekyll-commonmark (= 1.3.1)
jekyll-paginate (= 1.1.0)
jekyll-sitemap (= 1.4.0)
jekyll-time-to-read (= 0.1.2)
jekyll-toc (= 0.17.1)
nokogiri (= 1.12.3)
nokogiri (= 1.12.5)
rake (= 13.0.6)
sass-globbing (= 1.1.5)
sassc (= 2.1.0)
@ -143,4 +143,4 @@ RUBY VERSION
ruby 2.6.2p47
BUNDLED WITH
2.0.1
2.2.28

View File

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

54
package-lock.json generated
View File

@ -642,9 +642,9 @@
}
},
"@types/hast": {
"version": "2.3.2",
"resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.2.tgz",
"integrity": "sha512-Op5W7jYgZI7AWKY5wQ0/QNMzQM7dGQPyW1rXKNiymVCy5iTfdPuGu4HhYNOM2sIv8gUfIuIdcYlXmAepwaowow==",
"version": "2.3.4",
"resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.4.tgz",
"integrity": "sha512-wLEm0QvaoawEDoTRwzTXp4b4jpwiJDvR5KMnFnVodm3scufTlBOWRD6N1OBf9TZMhjlNsSfcO5V+7AF4+Vy+9g==",
"dev": true,
"requires": {
"@types/unist": "*"
@ -1246,9 +1246,9 @@
}
},
"vfile": {
"version": "5.0.2",
"resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz",
"integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==",
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/vfile/-/vfile-5.1.0.tgz",
"integrity": "sha512-4o7/DJjEaFPYSh0ckv5kcYkJTHQgCKdL8ozMM1jLAxO9ox95IzveDPXCZp08HamdWq8JXTkClDvfAKaeLQeKtg==",
"dev": true,
"requires": {
"@types/unist": "^2.0.0",
@ -1289,9 +1289,9 @@
}
},
"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==",
"version": "8.0.2",
"resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-8.0.2.tgz",
"integrity": "sha512-ipLhUTMyyJi9F/LXaNDG9BrRdshP6obCfmUZYbE/+T639IdzqAOkKN4DyrEyID0gbb+rsC3PKf0XlviZwzomhw==",
"dev": true,
"requires": {
"@types/hast": "^2.0.0",
@ -2808,9 +2808,9 @@
}
},
"rehype-parse": {
"version": "8.0.2",
"resolved": "https://registry.npmjs.org/rehype-parse/-/rehype-parse-8.0.2.tgz",
"integrity": "sha512-Y5AvUbTareuAcCQITTbC9SGagm1IvOOSfG5CTTaOUW0pEeoNHkOq4YmMaEywUmSwwOgel3gOF3O7Mwl1acoBzg==",
"version": "8.0.3",
"resolved": "https://registry.npmjs.org/rehype-parse/-/rehype-parse-8.0.3.tgz",
"integrity": "sha512-RGw0CVt+0S6KdvpE8bbP2Db9WXclQcIX7A0ufM3QFqAhTo/ddJMQrrI2j3cijlRPZlGK8R3pRgC8U5HyV76IDw==",
"dev": true,
"requires": {
"@types/hast": "^2.0.0",
@ -2820,9 +2820,9 @@
}
},
"rehype-stringify": {
"version": "9.0.1",
"resolved": "https://registry.npmjs.org/rehype-stringify/-/rehype-stringify-9.0.1.tgz",
"integrity": "sha512-xfhm8Erp7yL+RRgYmtZMJUqu6OSguwOQMfR2LkqT1dgNDQheClFMaDPVERy4/su7o0eHo0PKFGn4L68kOjVdRQ==",
"version": "9.0.2",
"resolved": "https://registry.npmjs.org/rehype-stringify/-/rehype-stringify-9.0.2.tgz",
"integrity": "sha512-BuVA6lAEYtOpXO2xuHLohAzz8UNoQAxAqYRqh4QEEtU39Co+P1JBZhw6wXA9hMWp+JLcmrxWH8+UKcNSr443Fw==",
"dev": true,
"requires": {
"@types/hast": "^2.0.0",
@ -3052,9 +3052,9 @@
}
},
"remark-lint": {
"version": "9.0.1",
"resolved": "https://registry.npmjs.org/remark-lint/-/remark-lint-9.0.1.tgz",
"integrity": "sha512-q4VFsA7LEG4REJhR2P4A6CU9b4cCQL53845CX74Z4N/W0EgB9mm/GXpYzjbEqgkMPl5ctP8yp/vBYTNmjfUCtw==",
"version": "9.1.0",
"resolved": "https://registry.npmjs.org/remark-lint/-/remark-lint-9.1.0.tgz",
"integrity": "sha512-47ZaPj1HSs17nqsu3CPg4nIhaj+XTEXJM9cpFybhyA4lzVRZiRXy43BokbEjBt0f1fhY3coQoOh16jJeGBvrJg==",
"dev": true,
"requires": {
"@types/mdast": "^3.0.0",
@ -3171,9 +3171,9 @@
}
},
"vfile": {
"version": "5.0.2",
"resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz",
"integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==",
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/vfile/-/vfile-5.1.0.tgz",
"integrity": "sha512-4o7/DJjEaFPYSh0ckv5kcYkJTHQgCKdL8ozMM1jLAxO9ox95IzveDPXCZp08HamdWq8JXTkClDvfAKaeLQeKtg==",
"dev": true,
"requires": {
"@types/unist": "^2.0.0",
@ -4013,9 +4013,9 @@
}
},
"vfile": {
"version": "5.0.2",
"resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz",
"integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==",
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/vfile/-/vfile-5.1.0.tgz",
"integrity": "sha512-4o7/DJjEaFPYSh0ckv5kcYkJTHQgCKdL8ozMM1jLAxO9ox95IzveDPXCZp08HamdWq8JXTkClDvfAKaeLQeKtg==",
"dev": true,
"requires": {
"@types/unist": "^2.0.0",
@ -4154,9 +4154,9 @@
}
},
"vfile": {
"version": "5.0.2",
"resolved": "https://registry.npmjs.org/vfile/-/vfile-5.0.2.tgz",
"integrity": "sha512-5cV+K7tX83MT3bievROc+7AvHv0GXDB0zqbrTjbOe+HRbkzvY4EP+wS3IR77kUBCoWFMdG9py18t0sesPtQ1Rw==",
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/vfile/-/vfile-5.1.0.tgz",
"integrity": "sha512-4o7/DJjEaFPYSh0ckv5kcYkJTHQgCKdL8ozMM1jLAxO9ox95IzveDPXCZp08HamdWq8JXTkClDvfAKaeLQeKtg==",
"dev": true,
"requires": {
"@types/unist": "^2.0.0",

View File

@ -6,7 +6,7 @@
"devDependencies": {
"remark-cli": "^10.0.0",
"remark-frontmatter": "^4.0.0",
"remark-lint": "^9.0.1",
"remark-lint": "^9.1.0",
"remark-lint-fenced-code-flag": "^3.0.1",
"remark-lint-no-shell-dollars": "^3.0.1",
"remark-stringify": "^10.0.0",

View File

@ -20,7 +20,7 @@ div.details-block {
align-items: center;
}
.details-block-content {
margin: 4px 32px 0 0;
margin: 4px 32px 12px 0;
}
}
}

View File

@ -220,10 +220,9 @@ $ha__primary_color: #03a9f4;
margin: -36px auto 0;
&.with-box {
display: flex;
.banner-overlay-content {
width: 420px;
max-width: 416px;
}
}
@ -243,14 +242,16 @@ $ha__primary_color: #03a9f4;
margin-top: 16px;
}
.banner-overlay {
.box {
position: absolute;
right: 0;
top: 0;
width: 210px;
border-radius: 8px;
margin: -50px -50px 0 0;
margin: -50px -50px 0 4px;
padding: 22px;
display: flex;
flex-flow: wrap;
justify-content: space-between;
flex-direction: column;
.banner-overlay-header {
font-weight: 500;
@ -330,7 +331,11 @@ $ha__primary_color: #03a9f4;
color: #ffffff;
}
}
.below-button {
margin-top: 8px;
text-align: center;
font-size: .8em;
}
}
.banner-overlay-disclaimer {
font-size: 12px;
@ -1160,6 +1165,15 @@ $ha__primary_color: #03a9f4;
@media only screen and (max-width: $lap-end) {
#landingpage {
.banner-overlay {
display: block !important;
.box {
position: relative !important;
margin: 10px auto -22px !important;
}
}
.page-content {
.content {
.bullet-points {

View File

@ -240,14 +240,28 @@ $primary-color: #049cdb;
}
}
.sponsors-and-press {
margin-top:24px;
}
.sponsored-by {
img {
border: 0;
border-radius: 0;
box-shadow: none;
margin: 15px;
max-width: 40%;
max-height: 80px;
}
}
.seen-press {
margin-top: 24px;
img {
border: 0;
box-shadow: none;
margin: 15px;
width: 100%;
max-width: 40%;
max-height: 70px;
}

View File

@ -123,7 +123,6 @@ header .grid {
.menu li a {
@include box-sizing(border-box);
@include transition(all 0.25s linear);
display: block;
padding: 32px 12px;
text-decoration: none;
@ -137,8 +136,7 @@ header .grid {
background: $site-background;
box-shadow: inset 0px 5px $navigation-color;
color: $navigation-color;
padding-top: 40px;
padding-bottom: 24px;
padding-bottom: 22px;
}
.toggle {

View File

@ -20,6 +20,10 @@ When you start Home Assistant for the first time the _owner_ user account is cre
For the moment, other user accounts will have the same access as the owner account. In the future, non-owner accounts will be able to have restrictions applied.
</div>
<div class="note">
If you want to manage users and you're an owner but you do not see "Users" in your main configuration menu, make sure that "Advanced Mode" is enabled for your user in your profile.
</div>
### Your Account Profile
Once you're logged in, you can see the details of your account at the _Profile_ page by clicking on the circular at the very bottom of the sidebar.

View File

@ -15,7 +15,7 @@ When you log in, an _auth provider_ checks your credentials to make sure you are
Home Assistant automatically configures the standard auth providers so you don't need to specify `auth_providers` in your `configuration.yaml` file unless you are configuring more than one. Specifying `auth_providers` will disable all auth providers that are not listed, so you could reduce your security or create difficulties logging in if it is not configured correctly.
If you decide to use `trusted_networks` as your `auth_provider` there won't be a way to authenticate for a device outside of your listed trusted network. To overcome this ensure you add the default `auth_provider``type: homeassistant` back in manually. This will then present you with the default auth login screen when trusted network authentication fails as expected from outside your LAN.
If you decide to use `trusted_networks` as your `auth_provider` there won't be a way to authenticate for a device outside of your listed trusted network. To overcome this ensure you add the default `auth_provider` with `type: homeassistant` back in manually. This will then present you with the default auth login screen when trusted network authentication fails as expected from outside your LAN.
</div>

View File

@ -9,7 +9,7 @@ The template variable `this` is also available when evaluating any `trigger_vari
## Available this Data
`this` is a state object. [State Objects](/docs/configuration/state_object) provides a comprehensive description for the properties of `this` and `this.attributes`.
Variable `this` is the [state object](/docs/configuration/state_object) of the automation. State objects also contain context data which can be used to identify the user that caused a script or automation to execute.
## Available Trigger Data

View File

@ -24,7 +24,7 @@ An automation can be triggered by an event, with a certain entity state, at a gi
## Trigger id
All triggers can be assigned an optional `id`. If the id is omitted, it will instead be set to the index of the trigger. The `id` can be referenced from trigger conditions.
All triggers can be assigned an optional `id`. If the id is omitted, it will instead be set to the index of the trigger. The `id` can be referenced from trigger conditions. The `id` should be unique for each trigger.
```yaml
automation:
@ -294,7 +294,7 @@ The `for` template(s) will be evaluated when an entity changes as specified.
## State trigger
Fires when the state of any of given entities changes. If only `entity_id` is given, the trigger will fire for all state changes, even if only state attributes change.
If only one of `from_state` or `to_state` are given, the trigger will fire on any matching state change, but not if only attributes change.
If only one of `from` or `to` are given, the trigger will fire on any matching state change, but not if only attributes change.
<div class='note'>
@ -315,7 +315,7 @@ automation:
to: "home"
```
It's possible to give a list of from_states or to_states:
It's possible to give a list of `from` states or `to` states:
```yaml
automation:

View File

@ -3,7 +3,7 @@ title: "Troubleshooting Automations"
description: "Tips on how to troubleshoot your automations."
---
When an automation is run, all steps are recorded and a trace is made. From the UI choose **Configuration** which is located in the sidebar, then click on **Automation** to go to the automation editor or click this button directly: {% my automation badge %}
When an automation is run, all steps are recorded and a trace is made. From the UI choose **Configuration** which is located in the sidebar, then click on **Automation** to go to the automation editor or click this button directly: {% my automations badge %}
Click on the clock icon next to an automation to enter the debugging screen. Alternatively, click on **Show trace** directly from a Logbook automation entry.
@ -39,7 +39,7 @@ It is also useful to go to **{% my server_controls title="Configuration -> Serve
If your automation uses templates in any part, you can do the following to make sure it works as expected:
1. Go to **{% my developer_templates title="Developer tools -> Template" %}** tab.
1. Go to **{% my developer_template title="Developer tools -> Template" %}** tab.
2. Create all variables (sources) required for your template as described at the end of [this](https://www.home-assistant.io/docs/configuration/templating/#processing-incoming-data) paragraph.
3. Copy your template code and paste it in Template editor straight after your variables.
4. If necessary, change your sources' value and check if the template works as you want and does not generate any errors.

View File

@ -52,7 +52,7 @@ description:
domain:
description: >
The domain name this blueprint provides a blueprint for. Currently, only
`automation` is supported.
`automation` and `script` are supported.
type: string
required: true
input:

View File

@ -3,7 +3,7 @@ title: "Configuration.yaml"
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 config title="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](/docs/configuration/troubleshooting/) and the [`configuration.yaml` examples](/examples/#example-configurationyaml).

View File

@ -26,4 +26,4 @@ As well as the above we advise that you consider the following to improve securi
- For systems that use SSH set `PermitRootLogin no` in your sshd configuration (usually `/etc/ssh/sshd_config`) and to use SSH keys for authentication instead of passwords. This is particularly important if you enable remote access to your SSH services.
- Lock down the host following good practice guidance, for example:
* [Securing Debian Manual](https://www.debian.org/doc/manuals/securing-debian-manual/index.en.html) (this also applies to Raspberry Pi OS)
* [Red Hat Enterprise Linux 7 Security Guide](https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/pdf/Security_Guide/Red_Hat_Enterprise_Linux-7-Security_Guide-en-US.pdf), [CIS Red Hat Enterprise Linux 7 Benchmark](https://benchmarks.cisecurity.org/tools2/linux/CIS_Red_Hat_Enterprise_Linux_7_Benchmark_v1.0.0.pdf)
* [Red Hat Enterprise Linux 7 Security Guide](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/security_guide/index), [CIS Red Hat Enterprise Linux 7 Benchmark](https://benchmarks.cisecurity.org/tools2/linux/CIS_Red_Hat_Enterprise_Linux_7_Benchmark_v1.0.0.pdf)

View File

@ -287,8 +287,6 @@ action:
```
It is important to note that each file must contain only **one** entry when using `!include_dir_list`.
It is also important to note that if you are splitting a file after adding -id: to support the automation UI,
the -id: line must be removed from each of the split files.
### Example: `!include_dir_named`

View File

@ -19,6 +19,9 @@ All states will always have an entity id, a state and a timestamp when last upda
| `state.last_updated` | Time the state was written to the state machine in UTC time. Note that writing the exact same state including attributes will not result in this field being updated. Example: `2017-10-28 08:13:36.715874+00:00`. |
| `state.last_changed` | Time the state changed in the state machine in UTC time. This is not updated when there are only updated attributes. Example: `2017-10-28 08:13:36.715874+00:00`. |
| `state.attributes` | A dictionary with extra attributes related to the current state. |
| `state.context` | A dictionary with extra attributes related to the context of the state. |
## Attributes
The attributes of an entity are optional. There are a few attributes that are used by Home Assistant for representing the entity in a specific way. Each integration will also have its own attributes to represent extra state data about the entity. For example, the light integration has attributes for the current brightness and color of the light. When an attribute is not available, Home Assistant will not write it to the state.
@ -33,3 +36,13 @@ When using templates, attributes will be available by their name. For example `s
| `unit_of_measurement` | The unit of measurement the state is expressed in. Used for grouping graphs or understanding the entity. Example: `°C`. |
When an attribute contains spaces, you can retrieve it like this: `state_attr('sensor.livingroom', 'Battery numeric')`.
## Context
Context is used to tie events and states together in Home Assistant. Whenever an automation or user interaction causes states to change, a new context is assigned. This context will be attached to all events and states that happen as result of the change.
| Field | Description |
| ----- | ------------------------------------------------------------------- |
| context_id | Unique identifier for the context. |
| user_id | Unique identifier of the user that started the change. Will be `None` if action was not started by a user (ie. started by an automation) |
| parent_id | Unique identifier of the parent context that started the change, if available. For example, if an automation is triggered, the context of the trigger will be set as parent. |

View File

@ -7,7 +7,7 @@ Home Assistant allows you to get on top of your energy use with its home energy
{% 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 energy management works with three different types of information sources. You can start using it even if you just have one source connected to Home Assistant. Every source you add will complement the other sources, giving you even more insight into energy in your home.
Home Assistant is an open platform and so home energy management is not restricted to specific hardware. Any energy monitoring hardware that integrates with Home Assistant can be used as a data source. Check out the following sections for in-depth explanations and hardware recommendations.

View File

@ -28,3 +28,8 @@ That said, if you can sample Power values fast enough (every few seconds) you ca
If you are using a 3rd party device (e.g. not reading directly from your utility meter device or from the utility provider cloud service) you need HA to split your energy measurements into 2 (or more) tariffs, in order to track these energy consumptions separately.
To accomplish such, you can use [the utility_meter integration](/integrations/utility_meter/). With this integration, you define as many tariffs as required (in accordance with your utility provider contract) and HA will be able to differentiate energy consumptions in each of the tariffs. Please note that each utility provider has its own time schedules for peak and off-peak and you are required to create an automation that switches the utility_meter entity from one tariff to the other.
## The Energy panel is not visible
If you do not see the Energy panel in the sidebar, make sure you have not removed [`default_config:`](/integrations/default_config/) from your `configuration.yaml`. If you have, you will need to add the `energy:` integration manually.

View File

@ -232,6 +232,7 @@ Supported abbreviations:
'spd_rng_min': 'speed_range_min',
'spd_rng_max': 'speed_range_max',
'src_type': 'source_type',
'stat_cla': 'state_class',
'stat_clsd': 'state_closed',
'stat_closing': 'state_closing',
'stat_off': 'state_off',

View File

@ -1,6 +1,8 @@
---
title: "Script Syntax"
description: "Documentation for the Home Assistant Script Syntax."
toc: true
no_toc: true
---
Scripts are a sequence of actions that Home Assistant will execute. Scripts are available as an entity through the standalone [Script component] but can also be embedded in [automations] and [Alexa/Amazon Echo] configurations.
@ -27,24 +29,7 @@ script:
message: "Turned on the ceiling light!"
```
- [Call a Service](#call-a-service)
- [Activate a Scene](#activate-a-scene)
- [Variables](#variables)
- [Test a Condition](#test-a-condition)
- [Delay](#delay)
- [Wait](#wait)
- [Wait Template](#wait-template)
- [Wait for Trigger](#wait-for-trigger)
- [Wait Timeout](#wait-timeout)
- [Wait Variable](#wait-variable)
- [Fire an Event](#fire-an-event)
- [Raise and Consume Custom Events](#raise-and-consume-custom-events)
- [Repeat a Group of Actions](#repeat-a-group-of-actions)
- [Counted Repeat](#counted-repeat)
- [While Loop](#while-loop)
- [Repeat Until](#repeat-until)
- [Repeat Loop Variable](#repeat-loop-variable)
- [Choose a Group of Actions](#choose-a-group-of-actions)
{{ page.content | markdownify | toc_only }}
## Call a Service
@ -92,7 +77,13 @@ The variables action allows you to set/override variables that will be accessibl
## Test a Condition
While executing a script you can add a condition to stop further execution. When a condition does not return `true`, the script will stop executing. There are many different conditions which are documented at the [conditions page].
While executing a script you can add a condition in the main sequence to stop further execution. When a condition does not return `true`, the script will stop executing. There are many different conditions which are documented at the [conditions page].
<div class='note'>
The `condition` action only stops executing the current sequence block. When it is used inside a [repeat](#repeat-a-group-of-actions) action, only the current iteration of the `repeat` loop will stop. When it is used inside a [choose](#test-a-condition) action, only the actions within that `choose` will stop.
</div>
```yaml
# If paulus is home, continue to execute the script below these lines

View File

@ -1,6 +1,8 @@
---
title: "Conditions"
description: "Documentation about all available conditions."
toc: true
no_toc: true
---
Conditions can be used within a script or automation to prevent further execution. When a condition does not return true, the script or automation stops executing. A condition will look at the system at that moment. For example, a condition can test if a switch is currently turned on or off.
@ -9,7 +11,11 @@ Unlike a trigger, which is always `or`, conditions are `and` by default - all co
All conditions support an optional `alias`.
## AND condition
{{ page.content | markdownify | toc_only }}
## Logical conditions
### AND condition
Test multiple conditions in one condition statement. Passes if all embedded conditions are valid.
@ -31,8 +37,7 @@ If you do not want to combine AND and OR conditions, you can list them sequentia
The following configuration works the same as the one listed above:
```yaml
alias: "Paulus home AND temperature below 20"
conditions:
condition:
- condition: state
entity_id: "device_tracker.paulus"
state: "home"
@ -43,7 +48,7 @@ conditions:
Currently you need to format your conditions like this to be able to edit them using the [automations editor](/docs/automation/editor/).
## OR condition
### OR condition
Test multiple conditions in one condition statement. Passes if any embedded condition is valid.
@ -60,7 +65,7 @@ condition:
below: 20
```
## MIXED AND and OR conditions
### Mixed AND and OR conditions
Test multiple AND and OR conditions in one condition statement. Passes if any embedded condition is valid.
This allows you to mix several AND and OR conditions together.
@ -82,7 +87,7 @@ condition:
below: 20
```
## NOT condition
### NOT condition
Test multiple conditions in one condition statement. Passes if all embedded conditions are **not** valid.

View File

@ -1,100 +0,0 @@
---
title: "OwnTracks with two MQTT brokers"
description: "Setting up OwnTracks with 2 MQTT brokers bridged for use with the MQTT bridge for SmartThings."
ha_category: Infrastructure
---
I ([surge919](https://github.com/surge919)) successfully tied in [OwnTracks](http://owntracks.org/) to Home Assistant and [SmartThings](https://www.smartthings.com/) while using authentication for external access. The MQTT bridge doesn't support authentication so I set up 2 MQTT instances.
Here are the steps I performed. Hopefully it saves someone else some time.
It seems to be working pretty well but if anyone sees something incorrect in my configuration, please let me know. This is my first real interaction with MQTT.
Here's a summary of my setup:
Two Docker instances for MQTT
- 1 for internal use (the MQTT bridge for SmartThings - no authentication)
- 1 for external use (for OwnTracks - with authentication)
All Docker configuration files are on my NAS so the Docker containers can be destroyed without affecting my actual configuration files.
#### Docker setup for the Mosquitto internal instance. No authentication for use with the MQTT bridge.
```bash
$ docker run -ti -p 1883:1883 \
-v /volume1/data/mosquitto-int/config:/mqtt/config:ro \
-v /volume1/data/mosquitto-int/log:/mqtt/log \
-v /volume1/data/mosquitto-int/data/:/mqtt/data/ \
--name mosquitto-int -d toke/mosquitto
```
#### Docker setup for the mosquitto external instance. With authentication for use with Owntracks.
```bash
$ docker run -ti -p 1884:1883 \
-v /volume1/data/mosquitto-ext/config:/mqtt/config:ro \
-v /volume1/data/mosquitto-ext/log:/mqtt/log \
-v /volume1/data/mosquitto-ext/data/:/mqtt/data/ \
-v /volume1/data/mosquitto-ext/etc:/etc/mosquitto \
--name mosquitto-ext -d toke/mosquitto
```
Here are the configuration files:
`/volume1/data/mosquitto-int/config/mosquitto.conf`
```bash
connection mosquitto-ext
persistence_file mosquitto.db
try_private true
address 10.0.0.20:1884
start_type automatic
username test
password test
notifications true
topic owntracks/# in
log_type all
log_dest file /mqtt/log/mqtt.log
log_facility 5
```
`/volume1/data/mosquitto-ext/config/mosquitto.conf`
```bash
connection mosquitto-int
persistence_file mosquitto.db
try_private true
address 10.0.0.20:1883
start_type automatic
username test
password test
notifications true
topic owntracks/# out
log_type all
log_dest file /mqtt/log/mqtt.log
log_facility 5
allow_anonymous false
password_file /etc/mosquitto/pwfile
```
Create a password for `mosquitto-ext`
```bash
docker exec -it mosquitto-ext /bin/bash
cd /etc/mosquitto/
mosquitto_passwd -c /etc/mosquitto/pwfile <userID>
```
### OwnTracks settings for Android
```bash
Preferences / Connection / Mode - Private MQTT
Fill out
Host
Identification
Security: TLS disabled
```
<img src="//community-home-assistant-assets.s3.amazonaws.com/original/2X/5/5ce27145e5b37bac72859e4c36b8269d14f85ce1.png" width="649" height="500">

View File

@ -26,7 +26,7 @@ sudo apt-get upgrade -y
Install the dependencies:
```bash
sudo apt-get install -y python3 python3-dev python3-venv python3-pip libffi-dev libssl-dev libjpeg-dev zlib1g-dev autoconf build-essential libopenjp2-7 libtiff5 tzdata
sudo apt-get install -y python3 python3-dev python3-venv python3-pip libffi-dev libssl-dev libjpeg-dev zlib1g-dev autoconf build-essential libopenjp2-7 libtiff5 libturbojpeg tzdata
```
### Create an account

View File

@ -82,6 +82,9 @@ If you prefer to use a live operating system, follow the instructions of your Li
### Write the image to your boot media
1. Attach the Home Assistant boot media ({{site.installation.types[page.installation_type].installation_media}}) to your computer
{% if page.installation_type == 'odroid' %}
If you are using a [Home Assistant Blue](/blue) or ODROID N2+, you can [attach your device directly](/common-tasks/os/#flashing-an-odroid-n2).
{% endif %}
2. Download and start <a href="https://www.balena.io/etcher" target="_blank">Balena Etcher</a>
3. Select "Flash from URL"
![etcher_from_url](/images/installation/etcher1.png)
@ -133,7 +136,7 @@ _Select and copy the URL or use the "copy" button that appear when you hover it.
{% if page.installation_type == 'generic-x86-64' %}
1. If you used your Desktop system to write to your boot media, install the boot media ({{site.installation.types[page.installation_type].installation_media}}) into the target system. Otherwise, shutdown the live operating system and make sure to remove the USB flash drive you have been using for the live system.
2. Make sure an ethernet cable for network is plugged in
3. Power the system on.
3. Power the system on.
{% else %}
1. Insert the boot media ({{site.installation.types[page.installation_type].installation_media}}) you just created
2. Attach a ethernet cable for network.

View File

@ -8,6 +8,8 @@ ha_config_flow: true
ha_codeowners:
- '@LonePurpleWolf'
ha_domain: airtouch4
ha_platforms:
- climate
---
The AirTouch 4 integration allows you to control Ducted Air Conditioning Systems that are using the [AirTouch 4](https://www.airtouch.net.au/airtouch/airtouch-4/) Controller. Currently, this integration only supports AirTouch 4 controllers with the Individual Temperature Control (ITC) modules.

View File

@ -16,6 +16,7 @@ The integration will accept the following states from your Alarm Panel (in lower
- `armed_home`
- `armed_away`
- `armed_night`
- `armed_vacation`
- `armed_custom_bypass`
- `pending`
- `triggered`
@ -162,6 +163,11 @@ payload_arm_night:
required: false
type: string
default: ARM_NIGHT
payload_arm_vacation:
description: The payload to set armed-vacation mode on your Alarm Panel.
required: false
type: string
default: ARM_VACATION
payload_arm_custom_bypass:
description: The payload to set armed-custom-bypass mode on your Alarm Panel.
required: false

View File

@ -103,7 +103,7 @@ panels:
description: If true, the code is required to arm the alarm.
required: false
type: boolean
default: false
default: true
code_format:
description: One of `number`, `text` or `no_code`. Format for the code used to arm/disarm the alarm.
required: false

View File

@ -13,6 +13,8 @@ ha_platforms:
- binary_sensor
- camera
- sensor
ha_codeowners:
- '@flacjacket'
---
The `amcrest` camera platform allows you to integrate your [Amcrest](https://amcrest.com/) or Dahua IP camera or doorbell in Home Assistant.

View File

@ -135,7 +135,7 @@ name:
optimistic:
description: Flag that defines if switch works in optimistic mode.
required: false
type: string
type: boolean
default: "`false` if state or position topic defined, else `true`."
payload_available:
description: The payload that represents the online state.

View File

@ -20,7 +20,7 @@ ha_platforms:
---
<p class='note warning'>
Daikin has removed their local API in newer products. They offer a cloud API accessible only under NDA, which is incompatible with open source.
Daikin has removed their local API in newer products. They offer a cloud API accessible only under NDA, which is incompatible with open source. This affects units fitted with the BRP069C4x wifi adapter. Units listed under Supported Hardware below continue to have access to local control. Additionally the older but commonly available BRP072A42 adapter can be fitted to most if not all newer units for access to local control.
</p>
The `daikin` integration integrates Daikin air conditioning systems into Home Assistant.

View File

@ -18,6 +18,8 @@ There is currently support for the following device types within Home Assistant:
- [Sensor](#sensor)
- [Switch](#switch)
To be able to use this integration, you have to enable the following option in deluge settings: Daemon > Allow remote controls
## Sensor
The `deluge` platform allows you to monitor your downloads with [Deluge](https://deluge-torrent.org/) from within Home Assistant and setup automation based on the information.

View File

@ -8,8 +8,6 @@ ha_release: 0.25
ha_iot_class: Local Polling
ha_domain: directv
ha_config_flow: true
ha_codeowners:
- '@ctalkington'
ha_quality_scale: gold
ha_ssdp: true
ha_platforms:

View File

@ -1,6 +1,6 @@
---
title: Discovery
description: Instructions on how to setup Home Assistant to discover new devices.
description: Instructions on how to setup Home Assistant to discover new devices with the Discovery integration.
ha_category:
- Other
ha_release: 0.7
@ -10,36 +10,18 @@ ha_domain: discovery
Home Assistant can discover and automatically configure [zeroconf](https://en.wikipedia.org/wiki/Zero-configuration_networking)/[mDNS](https://en.wikipedia.org/wiki/Multicast_DNS) and [UPnP](https://en.wikipedia.org/wiki/Universal_Plug_and_Play) devices on your network. Currently the `discovery` integration can detect:
* [Apple TV](/integrations/apple_tv/)
* [Belkin WeMo switches](/integrations/wemo/)
* [Bluesound speakers](/integrations/bluesound)
* [Bose Soundtouch speakers](/integrations/soundtouch)
* [Denon network receivers](/integrations/denonavr/)
* [DLNA DMR enabled devices](/integrations/dlna_dmr)
* [Enigma2 media player](/integrations/enigma2)
* [Frontier Silicon internet radios](/integrations/frontier_silicon)
* [LG Soundbars](/integrations/lg_soundbar)
* [Linn / Openhome](/integrations/openhome)
* [Logitech Harmony Hub](/integrations/harmony)
* [Logitech Media Server (Squeezebox)](/integrations/squeezebox)
* [NETGEAR routers](/integrations/netgear)
* [Philips Hue](/integrations/hue)
* [SABnzbd downloader](/integrations/sabnzbd)
* [Samsung SyncThru Printer](/integrations/syncthru)
* [Sonos speakers](/integrations/sonos)
* [Telldus Live](/integrations/tellduslive/)
* [Wink](/integrations/wink/)
* [Yamaha media player](/integrations/yamaha)
* [Yeelight Sunflower bulb](/integrations/yeelightsunflower/)
* [Xiaomi Gateway (Aqara)](/integrations/xiaomi_aqara/)
It will be able to add Belkin WeMo switches automatically,
for Philips Hue it will require some configuration from the user.
<div class='note'>
Zeroconf discoverable integrations [Axis](/integrations/axis/)/[ESPHome](/integrations/esphome/)/[HomeKit](/integrations/homekit_controller/)/[Tradfri](/integrations/tradfri/)/[Google Cast](/integrations/cast/) have been migrated to use [zeroconf](/integrations/zeroconf) integration to initiate discovery.
</div>
To load this integration, add the following lines to your `configuration.yaml` file:
@ -47,10 +29,10 @@ To load this integration, add the following lines to your `configuration.yaml` f
# Example configuration.yaml entry
discovery:
ignore:
- sonos
- samsung_printer
- yamaha
- logitech_mediaserver
enable:
- homekit
- dlna_dmr
```
{% configuration discovery %}
@ -66,28 +48,17 @@ enable:
Valid values for ignore are:
* `apple_tv`: Apple TV
* `belkin_wemo`: Belkin WeMo switches
* `bluesound`: Bluesound speakers
* `bose_soundtouch`: Bose Soundtouch speakers
* `denonavr`: Denon network receivers
* `enigma2`: Enigma2 media players
* `frontier_silicon`: Frontier Silicon internet radios
* `harmony`: Logitech Harmony Hub
* `lg_smart_device`: LG Soundbars
* `logitech_mediaserver`: Logitech Media Server (Squeezebox)
* `netgear_router`: NETGEAR routers
* `octoprint`: Octoprint
* `openhome`: Linn / Openhome
* `philips_hue`: Philips Hue
* `sabnzbd`: SABnzbd downloader
* `samsung_printer`: Samsung SyncThru Printer
* `sonos`: Sonos speakers
* `songpal` : Songpal
* `tellstick`: Telldus Live
* `wink`: Wink Hub
* `yamaha`: Yamaha media player
* `yeelight`: Yeelight lamps and bulbs (not only Yeelight Sunflower bulb)
* `xiaomi_gw`: Xiaomi Aqara gateway
Valid values for enable are:
@ -118,7 +89,3 @@ There is currently a <a href='https://web.archive.org/web/20200623234241/https:/
### Could not install dependency netdisco
If you see `Not initializing discovery because could not install dependency netdisco==0.6.1` in the logs, you will need to install the `python3-dev` or `python3-devel` package on your system manually (eg. `sudo apt-get install python3-dev` or `sudo dnf -y install python3-devel`). On the next restart of Home Assistant, the discovery should work. If you still get an error, check if you have a compiler (`gcc`) available on your system.
### DSM and Synology
For DSM/Synology, install via debian-chroot [see this forum post](https://community.home-assistant.io/t/error-starting-home-assistant-on-synology-for-first-time/917/15).

View File

@ -49,7 +49,7 @@ password:
default: The default password is the `PIN` included on the configuration card.
type: string
use_legacy_protocol:
description: Enable limited support for legacy firmware protocols (Tested with v1.24).
description: Enable limited support for legacy firmware protocols (Tested with v1.24, v1.26).
required: false
default: false
type: boolean

View File

@ -70,7 +70,7 @@ Connection can be done directly to the meter via a USB to serial connector, or t
- [SOS Solutions](https://www.sossolutions.nl/slimme-meter-kabel)
- [AliExpress](https://nl.aliexpress.com/item/32945187155.html)
Docker users have to allow Docker access to the USB to seriacl converter by adding `--device /dev/ttyUSB21:/dev/ttyUSB21` to the run command:
Docker users have to allow Docker access to the USB to serial converter by adding `--device /dev/ttyUSB21:/dev/ttyUSB21` to the run command:
```hass
$ docker run --device /dev/ttyUSB0:/dev/ttyUSB0 -d --name="home-assistant" -v /home/USERNAME/hass:/config -v /etc/localtime:/etc/localtime:ro --net=host {{ site.installation.container.base }}
@ -86,7 +86,7 @@ DIY solutions (ESP8266 based):
{% include integrations/config_flow.md %}
Optional configuration example for ser2net:
Optional configuration example for ser2net 3.x.x:
```sh
# Example /etc/ser2net.conf for proxying USB/serial connections to DSMRv4 smart meters
@ -98,6 +98,22 @@ or
2001:raw:600:/dev/ttyUSB0:9600 EVEN 1STOPBIT 7DATABITS XONXOFF LOCAL -RTSCTS
```
Optional configuration example for ser2net 4.x.x:
```sh
# Example /etc/ser2net.yaml for proxying USB/serial connections to DSMRv4 smart meters
connection: &con0096
accepter: tcp,2001
enable: on
options:
banner: *banner
kickolduser: true
telnet-brk-on-sync: true
connector: serialdev,
/dev/ttyUSB0,
115200n81,local
```
### Technical overview
DSMR is a standard to which Dutch smartmeters must comply. It specifies that the smartmeter must send out a 'telegram' every 10 seconds (every second for DSMR 5.0 devices) over a serial port.

View File

@ -85,10 +85,10 @@ Minimal configuration. All Feeds are added as sensors with the unit of measureme
```yaml
sensor:
platform: emoncms
api_key: API_KEY
url: https://emoncms.org
id: 1
- platform: emoncms
api_key: API_KEY
url: https://emoncms.org
id: 1
```
Display only feeds with their feed IDs specified in `include_only_feed_id`.

View File

@ -115,3 +115,30 @@ sensor:
```
{% endraw %}
#### Entries as CSV
Assuming the log file contains multiple values formatted as CSV like shown below:
```text
timestamp,temperature,humidity
1631472948,21,39
1631472949,22,36
```
This would require the following entry in the `configuration.yaml` file to extract the temperature:
{% raw %}
```yaml
# Example configuration.yaml entry
sensor:
- platform: file
name: Temperature
file_path: /home/user/.homeassistant/sensor.csv
value_template: '{{ value.split(",")[1] }}'
unit_of_measurement: "°C"
```
{% endraw %}

View File

@ -6,7 +6,7 @@ ha_category:
- Fan
- Light
ha_release: 2021.9
ha_iot_class: Local Push
ha_iot_class: Local Polling
ha_config_flow: true
ha_codeowners:
- '@elupus'
@ -15,6 +15,7 @@ ha_platforms:
- binary_sensor
- fan
- light
- sensor
---
[Fjäråskupan](https://fjaraskupan.se/) allows you to control your Bluetooth equipped kitchen fan.

View File

@ -21,7 +21,9 @@ Flume monitors the real-time status of your home water meter. Allowing the end-u
{% include integrations/config_flow.md %}
You can find your Client ID and Client Secret under "API Access" on the [settings page](https://portal.flumewater.com/#settings).
You can find your Client ID and Client Secret under "API Access" on the [settings page](https://portal.flumewater.com/#settings).
The Flume API access is available to Flume Insight users only, which may require a paid subscription.
To add `Flume` to your installation, go to **Configuration** >> **Integrations** in the UI, click the button with `+` sign and from the list of integrations select **Flume**.

View File

@ -8,6 +8,9 @@ ha_iot_class: Cloud Polling
ha_domain: github
ha_platforms:
- sensor
ha_codeowners:
- '@timmo001'
- '@ludeeus'
---
The GitHub sensor allows you to monitor your favorite [GitHub](https://github.com/) repositories. Monitored information includes the amount of stargazers, forks, open issues and pull requests, the latest commit message, and more.

View File

@ -9,6 +9,7 @@ ha_iot_class: Cloud Polling
ha_codeowners:
- '@indykoning'
- '@muppet3000'
- '@JasperPlant'
ha_domain: growatt_server
ha_platforms:
- sensor

View File

@ -1,6 +1,7 @@
---
title: HomeKit
description: Instructions on how to set up the HomeKit Bridge integration in Home Assistant.
featured: true
ha_category:
- Voice
ha_release: 0.64

View File

@ -440,6 +440,41 @@ action:
entity_id: lock.leq1234567
```
#### Integrating HMIP-DLD
There is no available default integration for HMIP Doorlock (HMIP-DLD) in the current `pyhomeatic` implementation.
A workaround is to define a template lock in your configuration:
{% raw %}
```yaml
lock:
- platform: template
name: Basedoor
unique_id: basedoor
value_template: "{{ state_attr('homematic.ccu2', 'base_lock_status') }}"
lock:
service: homematic.set_device_value
data:
address: "002A1BE9A792D2"
channel: 1
param: LOCK_TARGET_LEVEL
value: 0
unlock:
service: homematic.set_device_value
data:
address: "002A1BE9A792D2"
channel: 1
param: LOCK_TARGET_LEVEL
value: 1
```
{% endraw %}
To get the current value of the current lock status, you have to create a system variable (in the example above it is `base_lock_status`) and create a program on CCU, which updates the variable with every change of the Lock level to `true` for locked and `false` for unlocked.
#### Detecting lost connections
When the connection to your Homematic CCU or Homegear is lost, Home Assistant will stop getting updates from devices. This may happen after rebooting the CCU for example. Due to the nature of the communication protocol this cannot be handled automatically, so you must call *homematic.reconnect* in this case. That's why it is usually a good idea to check if your Homematic integrations are still updated properly, in order to detect connection losses. This can be done in several ways through an automation:

View File

@ -64,7 +64,7 @@ data:
| ---------------------- | -------- | --------------------------------------------------------------------- |
| `group_name` | no | The group/room name of the lights. Find this in the official Hue app. |
| `scene_name` | no | The name of the scene. Find this in the official Hue app. |
| 'transition' | yes | The time in 100s of milliseconds to transition to the scene. For example, a value of 4 means 400 milliseconds. |
| `transition` | yes | The time in 100s of milliseconds to transition to the scene. For example, a value of 4 means 400 milliseconds. |
_Note_: `group_name` is not a reference to a Home Assistant group name. It can only be the name of a group/room in the Hue app.

View File

@ -134,11 +134,6 @@ min_humidity:
required: false
type: integer
default: 0
modes:
description: List of available modes this humidifier is capable of running at. Common examples include `normal`, `eco`, `away`, `boost`, `comfort`, `home`, `sleep`, `auto` and `baby`. These examples offer built-in translations but other custom modes are allowed as well.
required: false
type: [list]
default: []
name:
description: The name of the humidifier.
required: false

View File

@ -417,7 +417,7 @@ bucket:
default: Home Assistant
queries:
type: list
description: 1.xx only - List of InfluxQL queries.
description: 1.xx only - List of sensors to expose in Home Assistant. Each sensor's state is set by configuring an InfluxQL query.
required: true
keys:
name:
@ -457,7 +457,7 @@ queries:
default: value
queries_flux:
type: list
description: 2.xx only - List of Flux queries.
description: 2.xx only - List of sensors to expose in Home Assistant. Each sensor's state is set by configuring a Flux query.
required: true
keys:
name:

View File

@ -18,7 +18,7 @@ ha_platforms:
- sensor
---
The `keba` integrates your Keba charging station (wallbox) into your Home Assistant instance. It was tested with a BMW Wallbox but should also work with a Keba P20/P30 according to the developers [manual](https://www.keba.com/web/downloads/e-mobility/KeContact_P20_P30_UDP_ProgrGuide_en.pdf). The fetching interval to the charging station is set to 5 seconds, same as in the official mobile app.
The `keba` integrates your Keba charging station/BMW Wallbox into your Home Assistant instance using the UDP Smart Home Interface ([manual](https://www.keba.com/web/downloads/e-mobility/KeContact_P20_P30_UDP_ProgrGuide_en.pdf)). The fetching interval to the charging station is set to 5 seconds, same as in the official mobile app. In order to use the integration, enable the UDP Smart Home Interface by adjusting the DIP switches within the charging station according to the [installation manual](https://www.keba.com/file/downloads/e-mobility/KeContact_KCP20_30_ih_en.pdf).
This component provides the following platforms:

View File

@ -112,7 +112,7 @@ color_temp_command_topic:
required: false
type: string
color_temp_state_topic:
description: "The MQTT topic subscribed to receive color temperature state updates. If the light also supports setting colors, also define a `white_value_state_topic`. "
description: "The MQTT topic subscribed to receive color temperature state updates."
required: false
type: string
color_temp_value_template:
@ -904,7 +904,7 @@ name:
optimistic:
description: Flag that defines if the light works in optimistic mode.
required: false
type: string
type: boolean
default: "`true` if no state topic or state template is defined, else `false`."
payload_available:
description: The payload that represents the available state.

View File

@ -122,7 +122,7 @@ name:
optimistic:
description: Flag that defines if lock works in optimistic mode.
required: false
type: string
type: boolean
default: "`true` if no `state_topic` defined, else `false`."
payload_available:
description: The payload that represents the available state.

View File

@ -28,14 +28,14 @@ Presently, there's only support for communicating with the [RadioRA 2](http://ww
When configured, the `lutron` integration will automatically discover the rooms and their associated switches/dimmers as configured by the RadioRA 2 software from Lutron. Each room will be treated as a separate group.
To use Lutron RadioRA 2 devices in your installation, add the following to your `configuration.yaml` file using the IP address of your RadioRA 2 main repeater:
To use Lutron RadioRA 2 devices in your installation, you'll need to first create a username/password in your Lutron programming software. Once a telnet username/password has been programmed, add the following to your `configuration.yaml` file using the IP address of your RadioRA 2 main repeater:
``` yaml
# Example configuration.yaml entry
lutron:
host: IP_ADDRESS
username: lutron
password: integration
username: USERNAME
password: PASSWORD
```
{% configuration %}

View File

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

View File

@ -1,7 +1,6 @@
---
title: MeteoAlarm
description: Instructions on how to set up MeteoAlarm binary sensors within Home Assistant.
logo: meteoalarm.png
ha_category: Binary Sensor
ha_release: 0.93
ha_iot_class: Cloud Polling

View File

@ -18,7 +18,7 @@ ha_platforms:
- light
- sensor
- switch
ha_quality_scale: silver
ha_quality_scale: gold
---
[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).
@ -193,7 +193,7 @@ Description:
| Attribute | Description |
| --------- | ----------- |
| hub | Hub name (defaults to 'modbus_hub' when omitted) |
| unit | Slave address (1-255, defaults to 0) |
| unit | Slave address (0-255) |
| address | Address of the Register (e.g. 138) |
| value | (write_register) A single value or an array of 16-bit values. Single value will call modbus function code 0x06. Array will call modbus function code 0x10. Values might need reverse ordering. E.g., to set 0x0004 you might need to set `[4,0]`, this depend on the byte order of your CPU |
| state | (write_coil) A single boolean or an array of booleans. Single boolean will call modbus function code 0x05. Array will call modbus function code 0x0F |
@ -211,6 +211,19 @@ Description:
| --------- | ----------- |
| hub | Hub name (defaults to 'modbus_hub' when omitted) |
### Example: writing a float32 type register
To write a float32 datatype register use network format like `10.0` == `0x41200000` (network order float hexadecimal).
```yaml
service: modbus.write_register
data:
address: <target register address>
unit: <target slave address>
hub: <hub name>
value: [0x4120, 0x0000]
```
# configure Modbus platforms
Modbus platform entities are configured within the Modbus configuration.
@ -1011,8 +1024,9 @@ and restart Home Assistant, reproduce the problem, and include the log in the is
## Building on top of Modbus
- [Modbus Binary Sensor](/integrations/binary_sensor.modbus/)
- [Modbus Climate](/integrations/climate.modbus/)
- [Modbus Cover](/integrations/cover.modbus/)
- [Modbus Sensor](/integrations/sensor.modbus/)
- [Modbus Switch](/integrations/switch.modbus/)
- [Modbus Binary Sensor](#configuring-platform-binary_sensor)
- [Modbus Climate](#configuring-platform-climate)
- [Modbus Cover](#configuring-platform-cover)
- [Modbus Fan](#configuring-platform-fan)
- [Modbus Sensor](#configuring-platform-sensor)
- [Modbus Switch](#configuring-platform-switch)

View File

@ -108,3 +108,5 @@ Please make sure the motion gateway and the device running Home Assistant are on
If using separate VLANs, make sure the 238.0.0.18:32100 and 238.0.0.18:32101 ports are open for communication between those VLANs (not tested or confirmed to work).
For some routers "IGMP snooping" on the used wireless interface needs to be disabled to let the IGMP/multicast messages through.
For Ubiquiti routers/access points the "Enable multicast enhancement (IGMPv3)" should be disabled.

View File

@ -10,6 +10,7 @@ ha_iot_class: Cloud Polling
ha_config_flow: true
ha_codeowners:
- '@bdraco'
- '@ehendrix23'
ha_domain: myq
ha_homekit: true
ha_platforms:

View File

@ -45,7 +45,7 @@ region:
required: true
type: string
update_interval:
description: The interval between updates if the climate control is off and the car is not charging. Set in any time unit (e.g., minutes, hours, days!).
description: The interval between updates if the climate control is off and the car is not charging. Set in any time unit (e.g., minutes, hours, days!). Providing a low interval will cause the service to refresh more frequently and can negatively impact your 12V battery.
required: false
default: 1 hour
type: time

View File

@ -9,6 +9,8 @@ ha_domain: nmap_tracker
ha_platforms:
- device_tracker
ha_config_flow: true
ha_codeowners:
- '@bdraco'
---
As an alternative to the router-based device tracking, it is possible to directly scan the network for devices by using Nmap. The IP addresses to scan can be specified in any format that Nmap understands, including the network-prefix notation (`192.168.1.1/24`) and the range notation (`192.168.1.1-255`).

View File

@ -1,6 +1,6 @@
---
title: NMBS
description: Instructions on how to integrate timetable data for traveling on the NMBS Belgian Railway within Home Assistant.
description: Instructions on how to integrate timetable data for traveling on the NMBS/SNCB Belgian Railway within Home Assistant.
ha_category:
- Transport
ha_iot_class: Cloud Polling
@ -28,7 +28,7 @@ sensor:
exclude_vias: true
```
The stations can only be provided by their standard names and not ids. The list of stations can be checked on the NMBS/SCNB website but for most accurate results check them on the [iRail API page](https://api.irail.be/stations/) which this integration uses internally.
The stations can only be provided by their standard names and not ids. The list of stations can be checked on the NMBS/SNCB website but for most accurate results check them on the [iRail API page](https://api.irail.be/stations/) which this integration uses internally.
{% configuration %}
station_from:

View File

@ -131,18 +131,6 @@ The device IDs begin with `28-`.
{% include integrations/config_flow.md %}
### Configuration Example
When `onewire` is added to Home Assistant, it will generate an ID for the sensor. You can specify a friendly name for the sensor with the name configuration option.
```yaml
# Named sensor configuration.yaml entry
sensor:
- platform: onewire
names:
GENERATED_ID: FRIENDLY_NAME
```
### Entities and attributes
Upon startup of the platform, the 1-wire bus is searched for available 1-wire devices. On Bridge devices, the `aux` and `main` branches are recursively searched. For each device that this platform handles (see list of supported devices above), the platform adds one sensor for each physical quantity it measures. The name of the sensor is the device ID with the physical quantity it measures appended. Unsupported sensors are noted with a warning message in the log.

View File

@ -105,6 +105,7 @@ sources:
#### VSX-824
```yaml
port: 8102
sources:
'CD': '01'
'Tuner': '02'

View File

@ -12,6 +12,8 @@ ha_codeowners:
ha_domain: rainforest_eagle
ha_platforms:
- sensor
ha_config_flow: true
ha_dhcp: true
---
Integrate energy usage and price from the Rainforest Automation's [Eagle-200](https://rainforestautomation.com/rfa-z114-eagle-200/)

View File

@ -35,7 +35,7 @@ recorder:
type: map
keys:
db_url:
description: The URL that points to your database.
description: The URL that points to your database. Examples of these can be found [here](#custom-database-engines).
required: false
type: string
db_max_retries:
@ -236,23 +236,48 @@ The following database engines are tested when major changes are made to the rec
## Custom database engines
| Database engine | `db_url` |
| :----------------------------- | :-------------------------------------------------------------------------------------------------------- |
| SQLite | `sqlite:////PATH/TO/DB_NAME` |
| MariaDB (omit pymysql) | `mysql://user:password@SERVER_IP/DB_NAME?charset=utf8mb4` |
| MariaDB (omit pymysql, Socket) | `mysql://user:password@SERVER_IP/DB_NAME?unix_socket=/var/run/mysqld/mysqld.sock&charset=utf8mb4` |
| MySQL | `mysql://SERVER_IP/DB_NAME?charset=utf8mb4` |
| MySQL | `mysql://user:password@SERVER_IP/DB_NAME?charset=utf8mb4` |
| MySQL (Socket) | `mysql://user:password@localhost/DB_NAME?unix_socket=/var/run/mysqld/mysqld.sock&charset=utf8mb4` |
| MariaDB | `mysql+pymysql://SERVER_IP/DB_NAME?charset=utf8mb4` |
| MariaDB | `mysql+pymysql://user:password@SERVER_IP/DB_NAME?charset=utf8mb4` |
| MariaDB (Socket) | `mysql+pymysql://user:password@localhost/DB_NAME?unix_socket=/var/run/mysqld/mysqld.sock&charset=utf8mb4` |
| PostgreSQL | `postgresql://SERVER_IP/DB_NAME` |
| PostgreSQL | `postgresql://user:password@SERVER_IP/DB_NAME` |
| PostgreSQL (Socket) | `postgresql://@/DB_NAME` |
| PostgreSQL (Custom socket dir) | `postgresql://@/DB_NAME?host=/path/to/dir` |
| MS SQL Server | `mssql+pyodbc://username:password@SERVER_IP:1433/DB_NAME?charset=utf8&driver=DRIVER` |
| Oracle | `oracle+cx_oracle://username:password@SERVER_IP:1521/DB_NAME?encoding=UTF-8&nencoding=UTF-8` |
Here are examples to use with the [`db_url`](#db_url) configuration option.
{% configuration_basic %}
SQLite:
description: >
`sqlite:////PATH/TO/DB_NAME`
MariaDB (omit pymysql):
description: >
`mysql://user:password@SERVER_IP/DB_NAME?charset=utf8mb4`
MariaDB (omit pymysql, Socket):
description: >
`mysql://user:password@SERVER_IP/DB_NAME?unix_socket=/var/run/mysqld/mysqld.sock&charset=utf8mb4`
MySQL:
description: >
`mysql://user:password@SERVER_IP/DB_NAME?charset=utf8mb4`
MySQL (Socket):
description: >
`mysql://user:password@localhost/DB_NAME?unix_socket=/var/run/mysqld/mysqld.sock&charset=utf8mb4`
MariaDB:
description: >
`mysql+pymysql://user:password@SERVER_IP/DB_NAME?charset=utf8mb4`
MariaDB (Socket):
description: >
`mysql+pymysql://user:password@localhost/DB_NAME?unix_socket=/var/run/mysqld/mysqld.sock&charset=utf8mb4`
PostgreSQL:
description: >
`postgresql://user:password@SERVER_IP/DB_NAME`
PostgreSQL (Socket):
description: >
`postgresql://@/DB_NAME`
PostgreSQL (Custom socket dir):
description: >
`postgresql://@/DB_NAME?host=/path/to/dir`
MS SQL Server:
description: >
`mssql+pyodbc://username:password@SERVER_IP:1433/DB_NAME?charset=utf8&driver=DRIVER`
Oracle:
description: >
`oracle+cx_oracle://username:password@SERVER_IP:1521/DB_NAME?encoding=UTF-8&nencoding=UTF-8`
{% endconfiguration_basic %}
<div class='note'>

View File

@ -94,7 +94,7 @@ Here's an example for an automation that creates a new task whenever `sensor.mys
action:
- service: remember_the_milk.myaccount_create_task
data:
name: "Please switch of {{trigger.entity_id}}"
name: "Please switch off {{trigger.entity_id}}"
id: "{{trigger.entity_id}}"
- id: mysensor_off
trigger:

View File

@ -10,7 +10,8 @@ ha_category:
ha_release: 2021.8
ha_iot_class: Cloud Polling
ha_config_flow: true
ha_codeowners: '@epenet'
ha_codeowners:
- '@epenet'
ha_domain: renault
ha_platforms:
- binary_sensor

View File

@ -40,7 +40,7 @@ service_name:
headers:
description: The headers for the requests.
required: false
type: list
type: map
payload:
description: A string/template to send with request.
required: false

View File

@ -24,6 +24,7 @@ The type of data a sensor returns impacts how it is displayed in the frontend. T
- **current**: Current in A.
- **date**: Date string (ISO 8601).
- **energy**: Energy in Wh or kWh.
- **gas**: Gasvolume in m³ or ft³.
- **humidity**: Percentage of humidity in the air.
- **illuminance**: The current light level in lx or lm.
- **monetary**: The monetary value.

View File

@ -120,7 +120,7 @@ json_attributes_topic:
required: false
type: string
last_reset_topic:
description: "The MQTT topic subscribed to receive timestamps for when an accumulating sensor such as an energy meter was reset. If the sensor never resets, set it to UNIX epoch 0: `1970-01-01T00:00:00+00:00`."
description: "The MQTT topic subscribed to receive timestamps for when an accumulating sensor such as an energy meter was reset. If the sensor never resets, set `last_reset_topic` to same as `state_topic` and set the `last_reset_value_template` to a constant valid timstamp, for example UNIX epoch 0: `1970-01-01T00:00:00+00:00`."
required: false
type: string
last_reset_value_template:

View File

@ -46,7 +46,9 @@ Integration is communicating directly with the device; cloud connection is not n
## Entity naming (generation 1)
The integration uses the following strategy to name its entities:
The integration uses `Device Name` to name its entities if the device has only one relay or no relays at all.
The integration uses the following strategy to name its entities if the device has more than one relay:
- If `Device Name` or `Channel Name` is set in the device, the integration will use them to generate the entities' name.
- If channel names are set, they will be used in the entity names. The device name will not be used.
@ -209,6 +211,11 @@ shelly:
coap_port: 12345
```
## Additional info
Shelly devices rely on [SNTP](https://en.wikipedia.org/wiki/Network_Time_Protocol#SNTP) for features like power measurement.
Please check from the device Web UI that the configured server is reachable.
## Known issues and limitations
- Only supports firmware 1.8 and later for generation 1 devices

View File

@ -13,7 +13,6 @@ ha_release: 0.41
ha_iot_class: Cloud Polling
ha_codeowners:
- '@michaelarnauts'
- '@bdraco'
- '@noltari'
ha_domain: tado
ha_config_flow: true

View File

@ -22,6 +22,7 @@ ha_platforms:
- number
- select
- sensor
- select
- switch
- vacuum
- weather
@ -178,8 +179,7 @@ number:
description: Template for the number's current value.
required: true
type: template
set_value:
description: Defines an action to run when the number value changes.
description: Defines an action to run when the number value changes. The variable `value` will contain the number entered.
required: true
type: action
step:
@ -215,7 +215,7 @@ select:
required: true
type: action
options:
description: Template for the select's available options.
description: Template for the select's available options. The variable `option` will contain the option selected.
required: true
type: template
optimistic:
@ -268,7 +268,7 @@ template:
## Rate limiting updates
When there are entities present in the template and no triggers are defined, the template will be re-rendered when one of the entities changes states. To avoid this taking up too many resources in Home Assistant, automatic rate limiting will be automatically applied if too many states are observed.
When there are entities present in the template and no triggers are defined, the template will be re-rendered when one of the entities changes states. To avoid this taking up too many resources in Home Assistant, rate limiting will be automatically applied if too many states are observed.
<p class='note'>
<a href='#trigger-based-template-sensors'>Define a trigger</a> to avoid a rate limit and get more control over entity updates.
@ -415,7 +415,7 @@ template:
### Multiline Example With an `if` Test
This example shows a multiple line template with an `if` test. It looks at a sensing switch and shows `on`/`off` in the frontend.
This example shows a multiple line template with an `if` test. It looks at a sensing switch and shows `on`/`off` in the frontend, and shows 'standby' if the power use is less than 1000 watts.
{% raw %}
@ -426,7 +426,7 @@ template:
state: >
{% if is_state('switch.kettle', 'off') %}
off
{% elif state_attr('switch.kettle', 'kwh')|float < 1000 %}
{% elif state_attr('switch.kettle', 'W')|float < 1000 %}
standby
{% elif is_state('switch.kettle', 'on') %}
on
@ -510,7 +510,7 @@ template:
- binary_sensor:
- name: My Device
state: >
{{ is_state('device_tracker.my_device_nmap', 'home') or is_state('device_tracker.my_device_gps', 'home') }
{{ is_state('device_tracker.my_device_nmap', 'home') or is_state('device_tracker.my_device_gps', 'home') }}
device_class: "presence"
attributes:
latitude: >
@ -531,7 +531,7 @@ template:
### Change the icon when a state changes
This example demonstrates how to use template to change the icon as it's state changes. This icon is referencing it's own state.
This example demonstrates how to use template to change the icon as its state changes. This icon is referencing its own state.
{% raw %}

View File

@ -66,7 +66,7 @@ sensor:
sensors:
time_formatted:
friendly_name: "Date and time"
value_template: "{{ as_timestamp(states('sensor.date_time_iso')) | timestamp_custom('%A %B %-m, %I:%M %p') }}"
value_template: "{{ as_timestamp(states('sensor.date_time_iso')) | timestamp_custom('%A %B %-d, %I:%M %p') }}"
icon_template: mdi:calendar-clock
```

View File

@ -17,7 +17,15 @@ When a timer finishes or gets canceled the corresponding events are fired. This
</div>
## Configuration
The preferred way to configure timer helpers is via the user interface. To add one, go to Configuration -> Helpers and click the add button; next choose the “Timer” option.
You can also click the following button to be redirected to the Helpers page of your Home Assistant instance.
{% my helpers badge %}
To be able to add Helpers via the user interface you should have default_config: in your configuration.yaml, it should already be there by default unless you removed it. If you removed default_config: from your configuration, you must add timer: to your configuration.yaml first, then you can use the UI.
Timers can also be configured via configuration.yaml:
To add a timer to your installation, add the following to your `configuration.yaml` file:
```yaml

View File

@ -4,10 +4,12 @@ description: Instructions on how to integrate Tractive within Home Assistant.
ha_category:
- Presence Detection
ha_release: 2021.9
ha_iot_class: Cloud push
ha_iot_class: Cloud Push
ha_config_flow: true
ha_codeowners:
- "@zhulik"
- '@Danielhiversen'
- '@zhulik'
- '@bieniu'
ha_domain: tractive
ha_platforms:
- binary_sensor

View File

@ -17,6 +17,8 @@ ha_platforms:
- light
- sensor
- switch
ha_codeowners:
- '@janiversen'
---
The `tradfri` integration allows you to connect your IKEA Trådfri Gateway to Home Assistant. The gateway can control compatible Zigbee-based lights (certified Zigbee Light Link products) connected to it. Home Assistant will automatically discover the gateway's presence on your local network if `discovery:` is present in your `configuration.yaml` file.

View File

@ -10,6 +10,8 @@ ha_codeowners:
ha_domain: uptimerobot
ha_platforms:
- binary_sensor
ha_quality_scale: platinum
ha_config_flow: true
---
The `uptimerobot` integration provides binary sensors to get the status for all of your monitors from your account on [Uptime Robot]( https://uptimerobot.com).

View File

@ -46,7 +46,7 @@ name:
type: string
cycle:
description: How often to reset the counter. Valid values are `quarter-hourly`, `hourly`, `daily`, `weekly`, `monthly`, `bimonthly`, `quarterly` and `yearly`. Cycle value `bimonthly` will reset the counter once in two months.
required: true
required: false
type: string
offset:
description: "Cycle reset occur at the beginning of the period (0 minutes, 0h00 hours, Monday, day 1, January). This option enables the offsetting of these beginnings. Supported formats: `offset: 'HH:MM:SS'`, `offset: 'HH:MM'` and Time period dictionary (see example below)."

View File

@ -53,6 +53,3 @@ source:
### Supported images for Home Assistant
`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`

View File

@ -16,6 +16,7 @@ ha_codeowners:
- '@rytilahti'
- '@syssi'
- '@starkillerOG'
- '@bieniu'
ha_domain: xiaomi_miio
ha_config_flow: true
ha_zeroconf: true
@ -39,7 +40,7 @@ The Xiaomi Miio integration supports the following devices:
- [Xiaomi Gateway](#xiaomi-gateway)
- [Xiaomi device tracker (Xiaomi Mi WiFi Repeater 2)](#xiaomi-device-tracker-xiaomi-mi-wifi-repeater-2)
- [Xiaomi Air Purifier and Humidifier](#xiaomi-air-purifier-and-humidifier)
- [Xiaomi Air Purifier, Air Humidifier and Standing Fan](#xiaomi-air-purifier-air-humidifier-and-standing-fan)
- [Xiaomi Air Quality Monitor](#xiaomi-air-quality-monitor)
- [Xiaomi IR Remote](#xiaomi-ir-remote)
- [Xiaomi Mi Robot Vacuum](#xiaomi-mi-robot-vacuum)

View File

@ -57,3 +57,14 @@ data:
media_content_id: "presets:1"
media_content_type: "music"
```
## Troubleshooting
In this section known problems and their resolution are documented.
### Errors on handling UDP messages
The Yamaha MusicCast integration is working with updates sent from the device to Home Assistant instead of pulling all information every few seconds. There is no error correction mechanism in these messages, so that only 100% correct messages can be processed. Whenever there is a corrupt message the Yamaha MusicCast integration will update all device information and log an error message like these:
* `Received invalid message: <message>`
* `Received non UTF-8 compliant message: b'<binary>'`
If you receive these errors frequently, you should first try to disconnect your MusicCast devices from the power, wait 30 seconds and reconnect them to the power. If this does not help, you can try to use a LAN cable instead of WiFi to connect the device to the network.

View File

@ -4,18 +4,20 @@ description: Instructions on how to setup Yeelight Wifi devices within Home Assi
ha_category:
- Light
ha_release: 0.32
ha_iot_class: Local Polling
ha_iot_class: Local Push
ha_config_flow: true
ha_codeowners:
- '@rytilahti'
- '@zewelor'
- '@shenxn'
- '@starkillerOG'
ha_domain: yeelight
ha_platforms:
- binary_sensor
- light
ha_homekit: true
ha_dhcp: true
ha_quality_scale: platinum
---
The `yeelight` integration allows you to control your Yeelight Wi-Fi bulbs with Home Assistant.
@ -193,6 +195,8 @@ This integration is tested to work with the following models. If you have a diff
| `mono` | YLTD03YL | Yeelight Serene Eye-Friendly Desk Lamp |
| `ceiling10` | YLDL01YL | Yeelight Meteorite Pendant Light |
| `ceiling13` | YLXD01YL | Yeelight LED Ceiling Light |
| ? | YLXD013-B | Yeelight Arwen Ceiling Light 450C |
| ? | YLXD013-C | Yeelight Arwen Ceiling Light 550C |
| `ceil26` | YLXD76YL | Yeelight Ceiling Light - Updated HomeKit 23w |
| `lamp` | MJTD02YL | Xiaomi Mijia Desk Lamp Pro |

View File

@ -3,6 +3,7 @@ title: YouLess
description: Instructions on how to integrate your YouLess device into Home Assistant.
ha_category:
- Sensor
- Energy
ha_iot_class: Local Polling
ha_config_flow: true
ha_release: 2021.8

View File

@ -19,6 +19,11 @@ Integrations can opt-in to be found by adding either [a Zeroconf section](https:
This integration is by default enabled, unless you've disabled or removed the [`default_config:`](/integrations/default_config/) line from your configuration. If that is the case, and you wish to have Home Assistant scan for integrations using zeroconf and HomeKit, the following example shows you how to enable this integration manually:
```yaml
# Example configuration.yaml entry
zeroconf:
```
## Network interfaces and auto detection
Zeroconf chooses which interfaces to broadcast on based on the [Network](/integrations/network/) integration.

View File

@ -335,6 +335,19 @@ To add a new device:
1. Reset your Zigbee devices according to the device instructions provided by the manufacturer (e.g., turn on/off lights up to 10 times, switches usually have a reset button/pin). It might take a few seconds for the devices to appear. You can click on **Show logs** for more verbose output.
1. Once the device is found, it will appear on that page and will be automatically added to your devices. You can optionally change its name and add it to an area (you can change this later). You can search again to add another device, or you can go back to the list of added devices.
### Best practices for avoiding pairing difficulties
- If possible try to pair your Zigbee devices in their intended final location, (and not pair it next to the Zigbee coordinator and then need to move it after).
- Pairing a Zigbee device next to the Zigbee coordinator and then moving it later can result in dropped/lost connections or other issues.
- If the device you want to add is not brand new and as such never paired before then you always have to make sure to first manually reset the device to its factory default settings before you will be able to add/pair it.
- Some battery-operated Zigbee devices are known to have problems with pairing if they have Low battery voltage.
- Some people have reported replacing the battery on their newly received Xiaomi/Aqara devices solved pairing issues.
- Check that you have enough Zigbee router devices (also known as Zigbee signal repeaters or range extenders) and if you do not have any, invest and add some mains-powered devices that will work as Zigbee routers.
- Aim to start out with mains-powered devices before adding battery-operated devices as a "weak" Zigbee network mesh (e.g., the device is too far from the Zigbee coordinator or a Zigbee router) may prevent some devices from being paired. Zigbee router devices are also needed to increase the maximum of devices that can be connected to your Zigbee mesh network.
- Note that some Zigbee devices are not fully compatible with all brands of Zigbee router devices. Xiaomi/Aqara devices are for example known not to work with Zigbee router devices from Centralite, General Electrics, Iris, Ledvance/OSRAM/ LIGHTIFY/Sylvania, Orvibo, PEQ, Securifi, and SmartThings/Samsung. Better results can usually be achieved by using mains-powered devices IKEA and Nue/3A Home or dedicated DIY routing devices based on Texas Instruments CC253x/CC26x2 and XBee Series 2/3 Zigbee radios.
- Be patient as the pairing of some Zigbee devices may require multiple attempts and you may sometimes need to try again and again.
- Some devices, like example those from Xiaomi/Aqara, are known to not be 100% compliant with the standard Zigbee specifications and may therefore require many paring attempts over 10-20 minutes or longer.
### Using router devices
You use routers to increase the number of Zigbee devices that can be used in a network. The total number of Zigbee devices that you have on a Zigbee network depends on a few things, but you should know that Zigbee coordinator hardware and firmware only plays a larger role in Zigbee networks with a lot of devices. More important is how many directly connected devices ("direct children") versus how many routers are connected to your Zigbee coordinator. Zigpy library which ZHA uses has an upper limit. This is 32 direct children, but if your Zigbee coordinator hardware is powerful enough then you can still have hundreds of Zigbee devices connected through routers.

View File

@ -71,7 +71,7 @@ To find the latitude/longitude of a certain place you can use [Google Maps](http
## Home zone
If no configuration is given, the `zone` integration will create a zone for home. This zone will use location provided in the `configuration.yaml` file and have a radius of 100 meters. To override this, create a zone configuration and name it **'Home'**.
If no configuration is given, the `zone` integration will create a zone for home. This zone will use location provided in the `configuration.yaml` file and have a radius of 100 meters. To override this, create a zone configuration in `configuration.yaml` (see above) and name it **'Home'**. Overriding the Home zone via the UI is not supported.
<div class='note'>

View File

@ -29,8 +29,8 @@ ha_platforms:
- light
- lock
- number
- select
- sensor
- select
- siren
- switch
---
@ -629,7 +629,7 @@ Node {{ node }};{{ s.name }};{{ s.entity_id }}{% endfor %}
{% endraw %}
## How can I add (include) a new device to my Z-Wave network?
### How can I add (include) a new device to my Z-Wave network?
1. In Home Assistant: open Configuration -> Integrations -> Z-Wave JS -> Configure.
2. Press `Add node`.
@ -642,7 +642,7 @@ Node {{ node }};{{ s.name }};{{ s.entity_id }}{% endfor %}
While adding devices, you have the option to use `secure inclusion`, this means that the traffic between the controller and the device will be encrypted. This adds additional overhead to the Z-Wave network so use this option with care. As a general rule of thumb it is advised to only securely include devices that actually NEED this kind of protection. A good example is a Z-Wave door lock.
</div>
## How can I remove (exclude) a device from my Z-Wave network?
### How can I remove (exclude) a device from my Z-Wave network?
1. In Home Assistant: open Configuration -> Integrations -> Z-Wave JS -> Configure.
2. Press `Remove node`.

View File

@ -13,9 +13,11 @@ layout: default
{% if page.collection == "integrations" %}
{% assign active_alert = "" %}
{% for alert in site.data.alerts_data %}
{% if alert.integrations and alert.integrations[0].package == page.ha_domain %}
{% assign active_alert = alert.alert_url %}
{% endif %}
{% for integration in alert.integrations %}
{% if integration.package == page.ha_domain %}
{% assign active_alert = alert.alert_url %}
{% endif %}
{% endfor %}
{% endfor %}
{% if active_alert != "" %}
<div class="integration-alert">

View File

@ -52,6 +52,21 @@ The solar production graph card shows the amount of energy your solar panels hav
type: energy-solar-graph
```
## Gas consumption graph
<p class='img'>
<img src='/images/lovelace/energy/gas-graph.png' alt='Screenshot of the gas consumption graph card'>
Screenshot of the gas consumption graph card.
</p>
The gas consumption graph card shows the amount of gas consumed per source.
#### Example
```yaml
type: energy-gas-graph
```
## Energy distribution
<p class='img'>

View File

@ -6,11 +6,11 @@ description: "The default panel layout uses a masonry algorithme."
---
The masonry view is the default view type.
It sorts cards in columns based on their `card size`. If you want to group some cards you have to use `stack` cards.
It sorts cards in columns based on their `card size`. If you want to group some cards you have to use `stack` or `grid` cards.
{% configuration %}
type:
required: false
description: "`masonry`"
type: string
{% endconfiguration %}
{% endconfiguration %}

View File

@ -435,7 +435,7 @@ user:
### How to use the style object
Position and style your elements using [CSS](https://developer.mozilla.org/en-US/docs/Web/CSS). More/other keys are also possible.
Note, the default style for most elements includes [translate](https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/translate)(-50%, -50%), which means that the coordinates you provide will set the position of the center of the element.
Note, the default style for most elements includes [translate](https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/translate)(-50%, -50%), which means that the coordinates you provide will set the position of the center of the element. Use `transform: none` to disable this behavior.
```yaml
style:

View File

@ -11,7 +11,6 @@ categories:
- Release-Notes
- Core
og_image: /images/blog/2021-03/social.png
feedback: true
---
<a href='/integrations/#version/2021.3'><img src='/images/blog/2021-03/social.png' style='border: 0;box-shadow: none;'></a>

View File

@ -9,7 +9,6 @@ author_twitter: balloob
comments: true
categories: Announcements
og_image: /images/blog/2021-03-18-nabu-casa-acquired-esphome/social.png
feedback: true
---
<img alt="Nabu Casa heart ESPHome" src="/images/blog/2021-03-18-nabu-casa-acquired-esphome/social.png" />

View File

@ -11,7 +11,6 @@ categories:
- Release-Notes
- Core
og_image: /images/blog/2021-04/social.png
feedback: true
---
<a href='/integrations/#version/2021.4'><img src='/images/blog/2021-04/social.png' style='border: 0;box-shadow: none;'></a>

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