mirror of
https://github.com/home-assistant/home-assistant.io.git
synced 2025-07-09 18:36:51 +00:00
Merge branch 'current' into next
This commit is contained in:
commit
f837bc6246
@ -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"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
64
.github/workflows/test.yml
vendored
64
.github/workflows/test.yml
vendored
@ -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
|
||||
|
@ -1 +1 @@
|
||||
2.6.2
|
||||
2.7.2
|
||||
|
23
CODEOWNERS
23
CODEOWNERS
@ -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
|
||||
|
4
Gemfile
4
Gemfile
@ -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
|
||||
|
22
Gemfile.lock
22
Gemfile.lock
@ -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
|
||||
|
@ -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
54
package-lock.json
generated
@ -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",
|
||||
|
@ -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",
|
||||
|
@ -20,7 +20,7 @@ div.details-block {
|
||||
align-items: center;
|
||||
}
|
||||
.details-block-content {
|
||||
margin: 4px 32px 0 0;
|
||||
margin: 4px 32px 12px 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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 {
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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 {
|
||||
|
@ -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.
|
||||
|
@ -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>
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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:
|
||||
|
@ -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.
|
||||
|
@ -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:
|
||||
|
@ -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).
|
||||
|
||||
|
@ -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)
|
||||
|
@ -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`
|
||||
|
||||
|
@ -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. |
|
||||
|
@ -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.
|
||||
|
||||
|
@ -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.
|
||||
|
||||
|
@ -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',
|
||||
|
@ -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
|
||||
|
@ -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.
|
||||
|
||||
|
@ -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">
|
@ -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
|
||||
|
@ -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"
|
||||

|
||||
@ -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.
|
||||
|
@ -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.
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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.
|
||||
|
@ -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.
|
||||
|
@ -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.
|
||||
|
@ -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.
|
||||
|
@ -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:
|
||||
|
@ -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).
|
||||
|
@ -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
|
||||
|
@ -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.
|
||||
|
@ -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`.
|
||||
|
@ -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 %}
|
||||
|
||||
|
@ -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.
|
||||
|
@ -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**.
|
||||
|
||||
|
@ -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.
|
||||
|
@ -9,6 +9,7 @@ ha_iot_class: Cloud Polling
|
||||
ha_codeowners:
|
||||
- '@indykoning'
|
||||
- '@muppet3000'
|
||||
- '@JasperPlant'
|
||||
ha_domain: growatt_server
|
||||
ha_platforms:
|
||||
- sensor
|
||||
|
@ -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
|
||||
|
@ -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:
|
||||
|
@ -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.
|
||||
|
||||
|
@ -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
|
||||
|
@ -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:
|
||||
|
@ -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:
|
||||
|
||||
|
@ -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.
|
||||
|
@ -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.
|
||||
|
@ -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 %}
|
||||
|
@ -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.
|
||||
|
||||
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
|
@ -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.
|
||||
|
@ -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:
|
||||
|
@ -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
|
||||
|
@ -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`).
|
||||
|
@ -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:
|
||||
|
@ -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.
|
||||
|
@ -105,6 +105,7 @@ sources:
|
||||
#### VSX-824
|
||||
|
||||
```yaml
|
||||
port: 8102
|
||||
sources:
|
||||
'CD': '01'
|
||||
'Tuner': '02'
|
||||
|
@ -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/)
|
||||
|
@ -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'>
|
||||
|
||||
|
@ -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:
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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.
|
||||
|
@ -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:
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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 %}
|
||||
|
||||
|
@ -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
|
||||
```
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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.
|
||||
|
@ -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).
|
||||
|
@ -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)."
|
||||
|
@ -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`
|
||||
|
||||
|
||||
|
||||
|
@ -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)
|
||||
|
@ -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.
|
||||
|
@ -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 |
|
||||
|
||||
|
@ -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
|
||||
|
@ -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.
|
||||
|
@ -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.
|
||||
|
@ -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'>
|
||||
|
||||
|
@ -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`.
|
||||
|
@ -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">
|
||||
|
@ -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'>
|
||||
|
@ -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 %}
|
||||
|
@ -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:
|
||||
|
@ -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>
|
||||
|
@ -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" />
|
||||
|
@ -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
Loading…
x
Reference in New Issue
Block a user