Merge remote-tracking branch 'upstream/current' into new

This commit is contained in:
c0ffeeca7 2023-05-12 15:08:43 +02:00
commit c45b4c3ca4
314 changed files with 6830 additions and 2124 deletions

View File

@ -8,7 +8,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Check out files from GitHub - name: Check out files from GitHub
uses: actions/checkout@v3.5.0 uses: actions/checkout@v3.5.2
- name: Setting up Node.js - name: Setting up Node.js
uses: actions/setup-node@v3.6.0 uses: actions/setup-node@v3.6.0
with: with:
@ -25,7 +25,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Check out files from GitHub - name: Check out files from GitHub
uses: actions/checkout@v3.5.0 uses: actions/checkout@v3.5.2
- name: Setting up Node.js - name: Setting up Node.js
uses: actions/setup-node@v3.6.0 uses: actions/setup-node@v3.6.0
with: with:

View File

@ -40,6 +40,8 @@ source/_integrations/amp_motorization.markdown @starkillerOG
source/_integrations/analytics.markdown @home-assistant/core @ludeeus source/_integrations/analytics.markdown @home-assistant/core @ludeeus
source/_integrations/android_ip_webcam.markdown @engrbm87 source/_integrations/android_ip_webcam.markdown @engrbm87
source/_integrations/androidtv.markdown @JeffLIrion @ollo69 source/_integrations/androidtv.markdown @JeffLIrion @ollo69
source/_integrations/androidtv_remote.markdown @tronikos
source/_integrations/anova.markdown @Lash-L
source/_integrations/anthemav.markdown @hyralex source/_integrations/anthemav.markdown @hyralex
source/_integrations/anwb_energie.markdown @klaasnicolaas source/_integrations/anwb_energie.markdown @klaasnicolaas
source/_integrations/apache_kafka.markdown @bachya source/_integrations/apache_kafka.markdown @bachya
@ -53,6 +55,7 @@ source/_integrations/aranet.markdown @aschmitz
source/_integrations/arcam_fmj.markdown @elupus source/_integrations/arcam_fmj.markdown @elupus
source/_integrations/arris_tg2492lg.markdown @vanbalken source/_integrations/arris_tg2492lg.markdown @vanbalken
source/_integrations/aseko_pool_live.markdown @milanmeu source/_integrations/aseko_pool_live.markdown @milanmeu
source/_integrations/assist_pipeline.markdown @balloob @synesthesiam
source/_integrations/asuswrt.markdown @kennedyshead @ollo69 source/_integrations/asuswrt.markdown @kennedyshead @ollo69
source/_integrations/atag.markdown @MatsNL source/_integrations/atag.markdown @MatsNL
source/_integrations/aten_pe.markdown @mtdcr source/_integrations/aten_pe.markdown @mtdcr
@ -94,6 +97,7 @@ source/_integrations/braviatv.markdown @bieniu @Drafteed
source/_integrations/brel_home.markdown @starkillerOG source/_integrations/brel_home.markdown @starkillerOG
source/_integrations/broadlink.markdown @danielhiversen @felipediel @L-I-Am source/_integrations/broadlink.markdown @danielhiversen @felipediel @L-I-Am
source/_integrations/brother.markdown @bieniu source/_integrations/brother.markdown @bieniu
source/_integrations/brottsplatskartan.markdown @gjohansson-ST
source/_integrations/brunt.markdown @eavanvalkenburg source/_integrations/brunt.markdown @eavanvalkenburg
source/_integrations/bsblan.markdown @liudger source/_integrations/bsblan.markdown @liudger
source/_integrations/bswitch.markdown @jafar-atili source/_integrations/bswitch.markdown @jafar-atili
@ -123,7 +127,6 @@ source/_integrations/configurator.markdown @home-assistant/core
source/_integrations/control4.markdown @lawtancool source/_integrations/control4.markdown @lawtancool
source/_integrations/conversation.markdown @home-assistant/core @synesthesiam source/_integrations/conversation.markdown @home-assistant/core @synesthesiam
source/_integrations/coolmaster.markdown @OnFreund source/_integrations/coolmaster.markdown @OnFreund
source/_integrations/coronavirus.markdown @home-assistant/core
source/_integrations/counter.markdown @fabaff source/_integrations/counter.markdown @fabaff
source/_integrations/cover.markdown @home-assistant/core source/_integrations/cover.markdown @home-assistant/core
source/_integrations/cozytouch.markdown @imicknl @vlebourl @tetienne @nyroDev source/_integrations/cozytouch.markdown @imicknl @vlebourl @tetienne @nyroDev
@ -163,7 +166,7 @@ source/_integrations/dormakaba_dkey.markdown @emontnemery
source/_integrations/dsmr.markdown @Robbie1221 @frenck source/_integrations/dsmr.markdown @Robbie1221 @frenck
source/_integrations/dsmr_reader.markdown @depl0y @glodenox source/_integrations/dsmr_reader.markdown @depl0y @glodenox
source/_integrations/dunehd.markdown @bieniu source/_integrations/dunehd.markdown @bieniu
source/_integrations/dwd_weather_warnings.markdown @runningman84 @stephan192 @Hummel95 source/_integrations/dwd_weather_warnings.markdown @runningman84 @stephan192 @Hummel95 @andarotajo
source/_integrations/dynalite.markdown @ziv1234 source/_integrations/dynalite.markdown @ziv1234
source/_integrations/easyenergy.markdown @klaasnicolaas source/_integrations/easyenergy.markdown @klaasnicolaas
source/_integrations/ecobee.markdown @marthoc @marcolivierarsenault source/_integrations/ecobee.markdown @marthoc @marcolivierarsenault
@ -312,7 +315,7 @@ source/_integrations/icloud.markdown @Quentame @nzapponi
source/_integrations/ign_sismologia.markdown @exxamalte source/_integrations/ign_sismologia.markdown @exxamalte
source/_integrations/image_processing.markdown @home-assistant/core source/_integrations/image_processing.markdown @home-assistant/core
source/_integrations/image_upload.markdown @home-assistant/core source/_integrations/image_upload.markdown @home-assistant/core
source/_integrations/imap.markdown @engrbm87 source/_integrations/imap.markdown @engrbm87 @jbouwh
source/_integrations/incomfort.markdown @zxdavb source/_integrations/incomfort.markdown @zxdavb
source/_integrations/influxdb.markdown @mdegat01 source/_integrations/influxdb.markdown @mdegat01
source/_integrations/inkbird.markdown @bdraco source/_integrations/inkbird.markdown @bdraco
@ -371,7 +374,7 @@ source/_integrations/leviton_z_wave.markdown @home-assistant/z-wave
source/_integrations/lg_netcast.markdown @Drafteed source/_integrations/lg_netcast.markdown @Drafteed
source/_integrations/lidarr.markdown @tkdrob source/_integrations/lidarr.markdown @tkdrob
source/_integrations/life360.markdown @pnbruckner source/_integrations/life360.markdown @pnbruckner
source/_integrations/lifx.markdown @bdraco @Djelibeybi source/_integrations/lifx.markdown @bdraco
source/_integrations/light.markdown @home-assistant/core source/_integrations/light.markdown @home-assistant/core
source/_integrations/linux_battery.markdown @fabaff source/_integrations/linux_battery.markdown @fabaff
source/_integrations/litejet.markdown @joncar source/_integrations/litejet.markdown @joncar
@ -421,6 +424,7 @@ source/_integrations/modbus.markdown @adamchengtkc @janiversen @vzahradnik
source/_integrations/modem_callerid.markdown @tkdrob source/_integrations/modem_callerid.markdown @tkdrob
source/_integrations/modern_forms.markdown @wonderslug source/_integrations/modern_forms.markdown @wonderslug
source/_integrations/moehlenhoff_alpha2.markdown @j-a-n source/_integrations/moehlenhoff_alpha2.markdown @j-a-n
source/_integrations/monessen.markdown @jeeftor
source/_integrations/monoprice.markdown @etsinko @OnFreund source/_integrations/monoprice.markdown @etsinko @OnFreund
source/_integrations/moon.markdown @fabaff @frenck source/_integrations/moon.markdown @fabaff @frenck
source/_integrations/mopeka.markdown @bdraco source/_integrations/mopeka.markdown @bdraco
@ -467,7 +471,7 @@ source/_integrations/nuheat.markdown @tstabrawa
source/_integrations/nuki.markdown @pschmitt @pvizeli @pree source/_integrations/nuki.markdown @pschmitt @pvizeli @pree
source/_integrations/numato.markdown @clssn source/_integrations/numato.markdown @clssn
source/_integrations/number.markdown @home-assistant/core @Shulyaka source/_integrations/number.markdown @home-assistant/core @Shulyaka
source/_integrations/nut.markdown @bdraco @ollo69 source/_integrations/nut.markdown @bdraco @ollo69 @pestevez
source/_integrations/nutrichef.markdown @bdraco source/_integrations/nutrichef.markdown @bdraco
source/_integrations/nws.markdown @MatthewFlamm @kamiyo source/_integrations/nws.markdown @MatthewFlamm @kamiyo
source/_integrations/nzbget.markdown @chriscla source/_integrations/nzbget.markdown @chriscla
@ -508,7 +512,7 @@ source/_integrations/picnic.markdown @corneyl
source/_integrations/pilight.markdown @trekky12 source/_integrations/pilight.markdown @trekky12
source/_integrations/plaato.markdown @JohNan source/_integrations/plaato.markdown @JohNan
source/_integrations/plex.markdown @jjlawren source/_integrations/plex.markdown @jjlawren
source/_integrations/plugwise.markdown @CoMPaTech @bouwew @brefra @frenck source/_integrations/plugwise.markdown @CoMPaTech @bouwew @frenck
source/_integrations/plum_lightpad.markdown @ColinHarrington @prystupa source/_integrations/plum_lightpad.markdown @ColinHarrington @prystupa
source/_integrations/point.markdown @fredrike source/_integrations/point.markdown @fredrike
source/_integrations/poolsense.markdown @haemishkyd source/_integrations/poolsense.markdown @haemishkyd
@ -544,6 +548,7 @@ source/_integrations/raincloud.markdown @vanstinator
source/_integrations/rainforest_eagle.markdown @gtdiehl @jcalbert @hastarin source/_integrations/rainforest_eagle.markdown @gtdiehl @jcalbert @hastarin
source/_integrations/rainmachine.markdown @bachya source/_integrations/rainmachine.markdown @bachya
source/_integrations/random.markdown @fabaff source/_integrations/random.markdown @fabaff
source/_integrations/rapt_ble.markdown @sairon
source/_integrations/raven_rock_mfg.markdown @starkillerOG source/_integrations/raven_rock_mfg.markdown @starkillerOG
source/_integrations/rdw.markdown @frenck source/_integrations/rdw.markdown @frenck
source/_integrations/recollect_waste.markdown @bachya source/_integrations/recollect_waste.markdown @bachya
@ -554,6 +559,7 @@ source/_integrations/renault.markdown @epenet
source/_integrations/reolink.markdown @starkillerOG source/_integrations/reolink.markdown @starkillerOG
source/_integrations/repairs.markdown @home-assistant/core source/_integrations/repairs.markdown @home-assistant/core
source/_integrations/repetier.markdown @MTrab @ShadowBr0ther source/_integrations/repetier.markdown @MTrab @ShadowBr0ther
source/_integrations/rest.markdown @epenet
source/_integrations/rexel.markdown @imicknl @vlebourl @tetienne @nyroDev source/_integrations/rexel.markdown @imicknl @vlebourl @tetienne @nyroDev
source/_integrations/rflink.markdown @javicalle source/_integrations/rflink.markdown @javicalle
source/_integrations/rfxtrx.markdown @danielhiversen @elupus @RobBie1221 source/_integrations/rfxtrx.markdown @danielhiversen @elupus @RobBie1221
@ -562,7 +568,7 @@ source/_integrations/ridwell.markdown @bachya
source/_integrations/risco.markdown @OnFreund source/_integrations/risco.markdown @OnFreund
source/_integrations/rituals_perfume_genie.markdown @milanmeu source/_integrations/rituals_perfume_genie.markdown @milanmeu
source/_integrations/rmvtransport.markdown @cgtobi source/_integrations/rmvtransport.markdown @cgtobi
source/_integrations/roborock.markdown @rytilahti @syssi @starkillerOG source/_integrations/roborock.markdown @humbertogontijo @Lash-L
source/_integrations/roku.markdown @ctalkington source/_integrations/roku.markdown @ctalkington
source/_integrations/roomba.markdown @pschmitt @cyr-ius @shenxn source/_integrations/roomba.markdown @pschmitt @cyr-ius @shenxn
source/_integrations/roon.markdown @pavoni source/_integrations/roon.markdown @pavoni
@ -648,7 +654,7 @@ source/_integrations/speedtestdotnet.markdown @rohankapoorcom @engrbm87
source/_integrations/spider.markdown @peternijssen source/_integrations/spider.markdown @peternijssen
source/_integrations/splunk.markdown @Bre77 source/_integrations/splunk.markdown @Bre77
source/_integrations/spotify.markdown @frenck source/_integrations/spotify.markdown @frenck
source/_integrations/sql.markdown @dgomes @gjohansson-ST source/_integrations/sql.markdown @dgomes @gjohansson-ST @dougiteixeira
source/_integrations/squeezebox.markdown @rajlaud source/_integrations/squeezebox.markdown @rajlaud
source/_integrations/srp_energy.markdown @briglx source/_integrations/srp_energy.markdown @briglx
source/_integrations/starline.markdown @anonym-tsk source/_integrations/starline.markdown @anonym-tsk
@ -660,7 +666,7 @@ source/_integrations/stiebel_eltron.markdown @fucm
source/_integrations/stookalert.markdown @fwestenberg @frenck source/_integrations/stookalert.markdown @fwestenberg @frenck
source/_integrations/stookwijzer.markdown @fwestenberg source/_integrations/stookwijzer.markdown @fwestenberg
source/_integrations/stream.markdown @hunterjm @uvjustin @allenporter source/_integrations/stream.markdown @hunterjm @uvjustin @allenporter
source/_integrations/stt.markdown @pvizeli source/_integrations/stt.markdown @home-assistant/core @pvizeli
source/_integrations/subaru.markdown @G-Two source/_integrations/subaru.markdown @G-Two
source/_integrations/suez_water.markdown @ooii source/_integrations/suez_water.markdown @ooii
source/_integrations/sun.markdown @Swamp-Ig source/_integrations/sun.markdown @Swamp-Ig
@ -714,7 +720,7 @@ source/_integrations/trafikverket_ferry.markdown @gjohansson-ST
source/_integrations/trafikverket_train.markdown @endor-force @gjohansson-ST source/_integrations/trafikverket_train.markdown @endor-force @gjohansson-ST
source/_integrations/trafikverket_weatherstation.markdown @endor-force @gjohansson-ST source/_integrations/trafikverket_weatherstation.markdown @endor-force @gjohansson-ST
source/_integrations/transmission.markdown @engrbm87 @JPHutchins source/_integrations/transmission.markdown @engrbm87 @JPHutchins
source/_integrations/tts.markdown @pvizeli source/_integrations/tts.markdown @home-assistant/core @pvizeli
source/_integrations/tuya.markdown @Tuya @zlinoliver @frenck source/_integrations/tuya.markdown @Tuya @zlinoliver @frenck
source/_integrations/twentemilieu.markdown @frenck source/_integrations/twentemilieu.markdown @frenck
source/_integrations/twinkly.markdown @dr1rrb @Robbie1221 source/_integrations/twinkly.markdown @dr1rrb @Robbie1221
@ -722,7 +728,7 @@ source/_integrations/ubiwizz.markdown @imicknl @vlebourl @tetienne @nyroDev
source/_integrations/ukraine_alarm.markdown @PaulAnnekov source/_integrations/ukraine_alarm.markdown @PaulAnnekov
source/_integrations/unifi.markdown @Kane610 source/_integrations/unifi.markdown @Kane610
source/_integrations/unifiled.markdown @florisvdk source/_integrations/unifiled.markdown @florisvdk
source/_integrations/unifiprotect.markdown @briis @AngellusMortis @bdraco source/_integrations/unifiprotect.markdown @AngellusMortis @bdraco
source/_integrations/upb.markdown @gwww source/_integrations/upb.markdown @gwww
source/_integrations/upc_connect.markdown @pvizeli @fabaff source/_integrations/upc_connect.markdown @pvizeli @fabaff
source/_integrations/upcloud.markdown @scop source/_integrations/upcloud.markdown @scop
@ -744,12 +750,12 @@ source/_integrations/vermont_castings.markdown @jeeftor
source/_integrations/versasense.markdown @flamm3blemuff1n source/_integrations/versasense.markdown @flamm3blemuff1n
source/_integrations/version.markdown @ludeeus source/_integrations/version.markdown @ludeeus
source/_integrations/vesync.markdown @markperdue @webdjoe @thegardenmonkey source/_integrations/vesync.markdown @markperdue @webdjoe @thegardenmonkey
source/_integrations/vicare.markdown @oischinger
source/_integrations/vilfo.markdown @ManneW source/_integrations/vilfo.markdown @ManneW
source/_integrations/vivotek.markdown @HarlemSquirrel source/_integrations/vivotek.markdown @HarlemSquirrel
source/_integrations/vizio.markdown @raman325 source/_integrations/vizio.markdown @raman325
source/_integrations/vlc_telnet.markdown @rodripf @MartinHjelmare source/_integrations/vlc_telnet.markdown @rodripf @MartinHjelmare
source/_integrations/voice_assistant.markdown @balloob @synesthesiam source/_integrations/voice_assistant.markdown @balloob @synesthesiam
source/_integrations/voip.markdown @balloob @synesthesiam
source/_integrations/volumio.markdown @OnFreund source/_integrations/volumio.markdown @OnFreund
source/_integrations/volvooncall.markdown @molobrakos source/_integrations/volvooncall.markdown @molobrakos
source/_integrations/vulcan.markdown @Antoni-Czaplicki source/_integrations/vulcan.markdown @Antoni-Czaplicki
@ -777,8 +783,8 @@ source/_integrations/wolflink.markdown @adamkrol93
source/_integrations/workday.markdown @fabaff @gjohansson-ST source/_integrations/workday.markdown @fabaff @gjohansson-ST
source/_integrations/worldclock.markdown @fabaff source/_integrations/worldclock.markdown @fabaff
source/_integrations/ws66i.markdown @ssaenger source/_integrations/ws66i.markdown @ssaenger
source/_integrations/wyoming.markdown @balloob @synesthesiam
source/_integrations/xbox.markdown @hunterjm source/_integrations/xbox.markdown @hunterjm
source/_integrations/xbox_live.markdown @MartinHjelmare
source/_integrations/xiaomi_aqara.markdown @danielhiversen @syssi source/_integrations/xiaomi_aqara.markdown @danielhiversen @syssi
source/_integrations/xiaomi_ble.markdown @Jc2k @Ernst79 source/_integrations/xiaomi_ble.markdown @Jc2k @Ernst79
source/_integrations/xiaomi_miio.markdown @rytilahti @syssi @starkillerOG source/_integrations/xiaomi_miio.markdown @rytilahti @syssi @starkillerOG

View File

@ -5,7 +5,7 @@ ruby '> 2.5.0'
group :development do group :development do
gem 'rake', '13.0.6' gem 'rake', '13.0.6'
gem 'jekyll', '4.3.2' gem 'jekyll', '4.3.2'
gem 'stringex', '2.8.5' gem 'stringex', '2.8.6'
end end
group :jekyll_plugins do group :jekyll_plugins do
@ -16,8 +16,8 @@ group :jekyll_plugins do
gem 'jekyll-postcss', '0.5.0' gem 'jekyll-postcss', '0.5.0'
end end
gem 'sinatra', '3.0.5' gem 'sinatra', '3.0.6'
gem 'nokogiri', '1.14.2' gem 'nokogiri', '1.14.3'
# Windows and JRuby does not include zoneinfo files, so bundle the tzinfo-data gem # Windows and JRuby does not include zoneinfo files, so bundle the tzinfo-data gem
# and associated library # and associated library

View File

@ -1,7 +1,7 @@
GEM GEM
remote: https://rubygems.org/ remote: https://rubygems.org/
specs: specs:
addressable (2.8.3) addressable (2.8.4)
public_suffix (>= 2.0.2, < 6.0) public_suffix (>= 2.0.2, < 6.0)
colorator (1.1.0) colorator (1.1.0)
commonmarker (0.23.8) commonmarker (0.23.8)
@ -17,7 +17,7 @@ GEM
google-protobuf (3.22.2) google-protobuf (3.22.2)
google-protobuf (3.22.2-x64-mingw32) google-protobuf (3.22.2-x64-mingw32)
http_parser.rb (0.8.0) http_parser.rb (0.8.0)
i18n (1.12.0) i18n (1.13.0)
concurrent-ruby (~> 1.0) concurrent-ruby (~> 1.0)
jekyll (4.3.2) jekyll (4.3.2)
addressable (~> 2.4) addressable (~> 2.4)
@ -60,17 +60,17 @@ GEM
mini_portile2 (2.8.1) mini_portile2 (2.8.1)
mustermann (3.0.0) mustermann (3.0.0)
ruby2_keywords (~> 0.0.1) ruby2_keywords (~> 0.0.1)
nokogiri (1.14.2) nokogiri (1.14.3)
mini_portile2 (~> 2.8.0) mini_portile2 (~> 2.8.0)
racc (~> 1.4) racc (~> 1.4)
nokogiri (1.14.2-x64-mingw32) nokogiri (1.14.3-x64-mingw32)
racc (~> 1.4) racc (~> 1.4)
pathutil (0.16.2) pathutil (0.16.2)
forwardable-extended (~> 2.6) forwardable-extended (~> 2.6)
public_suffix (5.0.1) public_suffix (5.0.1)
racc (1.6.2) racc (1.6.2)
rack (2.2.6.4) rack (2.2.7)
rack-protection (3.0.5) rack-protection (3.0.6)
rack rack
rake (13.0.6) rake (13.0.6)
rb-fsevent (0.11.2) rb-fsevent (0.11.2)
@ -80,17 +80,17 @@ GEM
rouge (4.1.0) rouge (4.1.0)
ruby2_keywords (0.0.5) ruby2_keywords (0.0.5)
safe_yaml (1.0.5) safe_yaml (1.0.5)
sass-embedded (1.60.0) sass-embedded (1.62.1)
google-protobuf (~> 3.21) google-protobuf (~> 3.21)
rake (>= 10.0.0) rake (>= 10.0.0)
sass-embedded (1.60.0-x64-mingw32) sass-embedded (1.62.1-x64-mingw32)
google-protobuf (~> 3.21) google-protobuf (~> 3.21)
sinatra (3.0.5) sinatra (3.0.6)
mustermann (~> 3.0) mustermann (~> 3.0)
rack (~> 2.2, >= 2.2.4) rack (~> 2.2, >= 2.2.4)
rack-protection (= 3.0.5) rack-protection (= 3.0.6)
tilt (~> 2.0) tilt (~> 2.0)
stringex (2.8.5) stringex (2.8.6)
terminal-table (3.0.2) terminal-table (3.0.2)
unicode-display_width (>= 1.1.1, < 3) unicode-display_width (>= 1.1.1, < 3)
tilt (2.1.0) tilt (2.1.0)
@ -112,10 +112,10 @@ DEPENDENCIES
jekyll-postcss (= 0.5.0) jekyll-postcss (= 0.5.0)
jekyll-sitemap (= 1.4.0) jekyll-sitemap (= 1.4.0)
jekyll-toc (= 0.18.0) jekyll-toc (= 0.18.0)
nokogiri (= 1.14.2) nokogiri (= 1.14.3)
rake (= 13.0.6) rake (= 13.0.6)
sinatra (= 3.0.5) sinatra (= 3.0.6)
stringex (= 2.8.5) stringex (= 2.8.6)
tzinfo (~> 2.0) tzinfo (~> 2.0)
tzinfo-data tzinfo-data

View File

@ -121,9 +121,9 @@ social:
# Home Assistant release details # Home Assistant release details
current_major_version: 2023 current_major_version: 2023
current_minor_version: 4 current_minor_version: 5
current_patch_version: 0 current_patch_version: 2
date_released: 2023-04-05 date_released: 2023-05-05
# Either # or the anchor link to latest release notes in the blog post. # Either # or the anchor link to latest release notes in the blog post.
# Must be prefixed with a # and have double quotes around it. # Must be prefixed with a # and have double quotes around it.
@ -214,7 +214,7 @@ installation:
types: types:
odroid: odroid:
board: ODROID board: ODROID
installation_media: "eMMC module/SD card" installation_media: "eMMC module or SD card"
variants: variants:
- name: "ODROID-N2" - name: "ODROID-N2"
key: "odroid-n2" key: "odroid-n2"
@ -224,8 +224,8 @@ installation:
key: "odroid-c2" key: "odroid-c2"
- name: "ODROID-C4" - name: "ODROID-C4"
key: "odroid-c4" key: "odroid-c4"
- name: "ODROID-XU4" - name: "ODROID-M1"
key: "odroid-xu4" key: "odroid-m1"
raspberrypi: raspberrypi:
board: Raspberry Pi board: Raspberry Pi
@ -238,7 +238,7 @@ installation:
tinkerboard: tinkerboard:
board: ASUS Tinkerboard board: ASUS Tinkerboard
installation_media: "eMMC module/SD card" installation_media: "eMMC module or SD card"
variants: variants:
- name: "ASUS Tinkerboard" - name: "ASUS Tinkerboard"
key: "tinker" key: "tinker"

14
package-lock.json generated
View File

@ -1850,20 +1850,6 @@
"integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
"dev": true "dev": true
}, },
"node_modules/fsevents": {
"version": "2.3.2",
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
"integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
"dev": true,
"hasInstallScript": true,
"optional": true,
"os": [
"darwin"
],
"engines": {
"node": "^8.16.0 || ^10.6.0 || >=11.0.0"
}
},
"node_modules/function-bind": { "node_modules/function-bind": {
"version": "1.1.1", "version": "1.1.1",
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",

View File

@ -227,7 +227,7 @@ entities:
required: false required: false
description: If false, the button name is not shown. description: If false, the button name is not shown.
type: boolean type: boolean
default: "true" default: "false"
show_icon: show_icon:
required: false required: false
description: If false, the icon is not shown. description: If false, the icon is not shown.

View File

@ -5,7 +5,7 @@ sidebar_label: History Graph
description: "The History Graph card allows you to display a graph for each of the entities listed." description: "The History Graph card allows you to display a graph for each of the entities listed."
--- ---
The History Graph card allows you to display a graph for each of the entities listed. The History Graph card allows you to display a graph for each of up to eight entities.
<p class='img'> <p class='img'>
<img src='/images/dashboards/history_graph.png' alt='Screenshot of the history graph card for entities without a unit_of_measurement'> <img src='/images/dashboards/history_graph.png' alt='Screenshot of the history graph card for entities without a unit_of_measurement'>

View File

@ -370,7 +370,7 @@ conditions:
type: string type: string
elements: elements:
required: true required: true
description: One or more elements of any type to show when conditions are met. See below for an example. description: One or more elements of any of the [listed types](#elements) to show when conditions are met. See below for an example.
type: list type: list
{% endconfiguration %} {% endconfiguration %}

View File

@ -8,8 +8,8 @@ description: "The tile card gives you a quick overview of your entity. The card
The tile card gives you a quick overview of your entity. The card allows you to toggle the entity and show the more info dialog. A badge is shown for some entities like the [climate](/integrations/climate) or [person](/integrations/person) entities. The tile card gives you a quick overview of your entity. The card allows you to toggle the entity and show the more info dialog. A badge is shown for some entities like the [climate](/integrations/climate) or [person](/integrations/person) entities.
<p class='img'> <p class='img'>
<img src='/images/dashboards/tile_card.png' alt='Screenshot of the tile card'> <img src='/images/dashboards/tile_card.png' alt='Screenshot of tile cards'>
Screenshot of the Tile card. Screenshot of Tile cards.
</p> </p>
To add the Tile card to your user interface, click the menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the "Add Card" button in the bottom right corner and select **Tile** from the card picker. To add the Tile card to your user interface, click the menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the "Add Card" button in the bottom right corner and select **Tile** from the card picker.

View File

@ -9,12 +9,18 @@
# #
- term: Action - term: Action
definition: >- definition: |-
An action is an command that can be fired. For example, turning on a light. Actions are used in several places in Home Assistant. As part of a script or automation, actions define what is going to happen once a trigger is activated. In scripts, an action is called *sequence*.
Actions used in many places, most notably in automations and scripts.
Actions use service calls and/or scenes to interact with entities and cause these entities to do something. Actions can also include conditions and a delay. An action can call multiple services at the same time. For example, if your presence is detected in a room, an action may call one service to turn on a light and call another service to start playing music after a delay.
Actions are also used on the dashboard, for example as tap or hold action on a UI element. When triggered, the action calls a service.
aliases: aliases:
- actions - actions
link: /docs/automation/action/ link: /docs/automation/action/
excerpt: >
Actions are used in several places in Home Assistant. As part of a script or automation, actions define what is going to happen once a trigger is activated. In scripts, an action is called *sequence*.
- term: Add-on - term: Add-on
definition: >- definition: >-
@ -26,6 +32,16 @@
Add-ons are additional standalone third-party software packages that can be Add-ons are additional standalone third-party software packages that can be
installed on Home Assistant OS. installed on Home Assistant OS.
- term: Area
definition: >-
Locations within your home such as living room, dance floor, etc.
Devices can be associated to an area for easier sorting and automatically
generated cards, such as the [Area card](/dashboards/area/).
excerpt: >-
Places within your home such as rooms, spaces, etc.
aliases:
- areas
- term: Automation - term: Automation
definition: >- definition: >-
Automations connect one or more triggers to one or more actions in a Automations connect one or more triggers to one or more actions in a
@ -56,6 +72,8 @@
Conditions are an optional part of an automation that will prevent an Conditions are an optional part of an automation that will prevent an
action from firing if they are not met. action from firing if they are not met.
link: /docs/scripts/conditions/ link: /docs/scripts/conditions/
aliases:
- conditions
- term: Cover - term: Cover
definition: >- definition: >-
@ -81,6 +99,8 @@
Devices have properties such as ID, manufacturer, name, model, hardware version, firmware version, connections, etc. Devices have properties such as ID, manufacturer, name, model, hardware version, firmware version, connections, etc.
excerpt: > excerpt: >
A device is a model representing a physical or logical unit that contains entities. A device is a model representing a physical or logical unit that contains entities.
aliases:
- devices
- term: Device tracker - term: Device tracker
definition: >- definition: >-
@ -128,11 +148,15 @@
link: /docs/configuration/state_object/ link: /docs/configuration/state_object/
excerpt: > excerpt: >
An entity represents a sensor, actor, or function in Home Assistant. Entities are used to monitor physical properties or to control other entities. An entity is usually part of a device or a service. An entity represents a sensor, actor, or function in Home Assistant. Entities are used to monitor physical properties or to control other entities. An entity is usually part of a device or a service.
aliases:
- entities
- term: Event - term: Event
definition: >- definition: >-
An event is when something happens. An event is when something happens.
link: /docs/configuration/events/ link: /docs/configuration/events/
aliases:
- events
- term: Frontend - term: Frontend
definition: >- definition: >-
@ -206,6 +230,19 @@
Integrations connect and integrates Home Assistant with your devices, Integrations connect and integrates Home Assistant with your devices,
services, and more. services, and more.
link: /integrations/ link: /integrations/
aliases:
- integrations
- term: Intent
definition: >-
Intent is a term used with voice assistants. The intent is what Home Assistant thinks you want it to do when it extracts a command from your voice or text utterance. Currently, the following intents are supported out of the box: HassTurnOn, HassTurnOff, HassGetState, and HassLightSet.
These intents allow you to turn things on or off, inquire about a state, or change the brightness or color of a light.
excerpt: >
Intent is a term used with voice assistants. The intent is what Home Assistant thinks you want it to do when it extracts a command from your voice or text utterance.
link: https://developers.home-assistant.io/docs/intent_builtin
aliases:
- Intents
- term: Lovelace - term: Lovelace
definition: >- definition: >-
@ -259,12 +296,16 @@
Scripts are components that allow users to specify a sequence of actions Scripts are components that allow users to specify a sequence of actions
to be executed by Home Assistant when turned on. to be executed by Home Assistant when turned on.
link: /docs/scripts/ link: /docs/scripts/
aliases:
- scripts
- term: Sensor - term: Sensor
definition: >- definition: >-
Sensors return information about a thing, for instance the level of water Sensors return information about a thing, for instance the level of water
in a tank. in a tank.
link: /integrations/sensor/ link: /integrations/sensor/
aliases:
- sensors
- term: Selectors - term: Selectors
definition: >- definition: >-
@ -296,8 +337,9 @@
A service carries out one specific task, for example: turn on the light in the A service carries out one specific task, for example: turn on the light in the
living room. A service has targets and data and can be called by actions, a living room. A service has targets and data and can be called by actions, a
dashboard, or via voice command. dashboard, or via voice command.
link: /docs/scripts/service-calls/ link: /docs/scripts/service-calls/
aliases:
- services
- term: State - term: State
definition: |- definition: |-
@ -351,3 +393,5 @@
definition: >- definition: >-
Zones are areas that can be used for presence detection. Zones are areas that can be used for presence detection.
link: /integrations/zone/ link: /integrations/zone/
aliases:
- zones

View File

@ -3,7 +3,7 @@ title: "Understanding Automations"
description: "A breakdown of what an automation consists of." description: "A breakdown of what an automation consists of."
--- ---
All automations are made up of a trigger and an action. Optionally combined with a condition. Take for example the automation: All {% term automations %} are made up of a {% term trigger %} and an {% term action %}. Optionally combined with a {% term condition %}. Take for example the automation:
> When Paulus arrives home and it is after sunset: Turn the lights on in the living room. > When Paulus arrives home and it is after sunset: Turn the lights on in the living room.
@ -15,7 +15,7 @@ We can break up this automation into the following three parts:
(action) Turn the lights on in the living room (action) Turn the lights on in the living room
``` ```
The first part is the [trigger](/docs/automation/trigger/) of the automation rule. Triggers describe events that should trigger the automation rule. In this case, it is a person arriving home, which can be observed in Home Assistant by observing the state of Paulus changing from `not_home` to `home`. The first part is the [trigger](/docs/automation/trigger/) of the automation rule. Triggers describe {% term events %} that should trigger the automation rule. In this case, it is a person arriving home, which can be observed in Home Assistant using {% term devices %}/{% term sensors %} by observing the state of Paulus changing from `not_home` to `home`.
The second part is the [condition](/docs/automation/condition/). Conditions are optional tests that can limit an automation rule to only work in your specific use cases. A condition will test against the current state of the system. This includes the current time, devices, people and other things like the sun. In this case, we only want to act when the sun has set. The second part is the [condition](/docs/automation/condition/). Conditions are optional tests that can limit an automation rule to only work in your specific use cases. A condition will test against the current state of the system. This includes the current time, devices, people and other things like the sun. In this case, we only want to act when the sun has set.
@ -27,7 +27,7 @@ The difference between a condition and a trigger can be confusing as they are ve
## Exploring the internal state ## Exploring the internal state
Automation rules interact directly with the internal state of Home Assistant, so you'll need to familiarize yourself with it. Home Assistant exposes its current state via the developer tools. These are available at the bottom of the sidebar in the frontend. **{% my developer_states title="Developer Tools -> States" %}** will show all currently available states. An entity can be anything. A light, a switch, a person and even the sun. A state consists of the following parts: Automation rules interact directly with the internal state of Home Assistant, so you'll need to familiarize yourself with it. Home Assistant exposes its current state via the developer tools. These are available at the bottom of the sidebar in the frontend. **{% my developer_states title="Developer Tools > States" %}** will show all currently available states. An entity can be anything. A light, a switch, a person and even the sun. A state consists of the following parts:
| Name | Description | Example | | Name | Description | Example |
| ---- | ----- | ---- | | ---- | ----- | ---- |
@ -37,7 +37,7 @@ Automation rules interact directly with the internal state of Home Assistant, so
State changes can be used as the source of triggers and the current state can be used in conditions. State changes can be used as the source of triggers and the current state can be used in conditions.
Actions are all about calling *services*. To explore the available *services* open the **{% my developer_services title="Developer Tools -> Services" %}**. *Services* allow changing anything. For example turn on a light, run a script or enable a scene. Each *service* has a domain and a name. For example the *service* {% my developer_call_service service="light.turn_on" %} is capable of turning on any light in your system. Parameters can be passed to a *service* to indicate, for example, which device to activate or which color to use. Actions are all about calling *services*. To explore the available *services* open the **{% my developer_services title="Developer Tools > Services" %}**. *Services* allow changing anything. For example turn on a light, run a script or enable a scene. Each *service* has a domain and a name. For example the *service* {% my developer_call_service service="light.turn_on" %} is capable of turning on any light in your system. Parameters can be passed to a *service* to indicate, for example, which device to activate or which color to use.
## Creating automations ## Creating automations

View File

@ -5,29 +5,25 @@ description: "Instructions on how to use the automation editor."
The automation editor is an easy way of creating and editing automations from the UI. This page uses the [Random sensor](/integrations/random#sensor) as an example, though any other sensor with a numeric value can be used as well. The automation editor is an easy way of creating and editing automations from the UI. This page uses the [Random sensor](/integrations/random#sensor) as an example, though any other sensor with a numeric value can be used as well.
From the UI, choose **{% my config %}** which is located in the sidebar, then click on **{% my automations %}** to go to the automation editor. Press the **Create Automation** button in the lower right corner to get started. You can create an automation based on a [blueprint](/docs/automation/using_blueprints/) or start from scratch. From the UI, choose **{% my config %}** which is located in the sidebar, then click on **{% my automations %}** to go to the automation editor. Press the **Create Automation** button in the lower right corner to get started. You can create an automation based on a [blueprint](/docs/automation/using_blueprints/) or start from scratch. Select **Create new automation**.
<p class='img'> ![Create automation dialogue box](/images/docs/automation-editor/create-automation.png)
<img src='/images/docs/automation-editor/create-automation.png' />
</p>
Select **Start with an empty automation** and choose a meaningful name for your new automation. Click on the **Add Trigger** button and select **Nurmeric state**.
<p class='img'> ![Add trigger](/images/docs/automation-editor/add-trigger-to-automation.png)
<img src='/images/docs/automation-editor/new-automation.png' />
</p>
If the value of the sensor is greater than 10, then the automation should trigger. If the value of the sensor is greater than 10, then the automation should trigger.
<p class='img'> ![Automation trigger](/images/docs/automation-editor/new-trigger.png)
<img src='/images/docs/automation-editor/new-trigger.png' />
</p> Click on the **Add Action** button and select **Call service**.
![Add trigger](/images/docs/automation-editor/new-action.png)
The action for this automation creates a [persistent notification](/integrations/persistent_notification/). The action for this automation creates a [persistent notification](/integrations/persistent_notification/).
<p class='img'> ![Automation action](/images/docs/automation-editor/send-notification.png)
<img src='/images/docs/automation-editor/new-action.png' />
</p>
As the message we want a simple text that is shown as part of the notification. As the message we want a simple text that is shown as part of the notification.
@ -35,6 +31,10 @@ As the message we want a simple text that is shown as part of the notification.
message: Sensor value greater than 10 message: Sensor value greater than 10
``` ```
Press the **Save** button, and the save dialogue will appear. Give your automation a meaningful name and press the **Save** button again.
![New automation editor](/images/docs/automation-editor/new-automation.png)
Automations created or edited via the user interface are activated immediately after saving the automation. Read the documentation for [Automating Home Assistant](/getting-started/automation/) to learn more about automations. Automations created or edited via the user interface are activated immediately after saving the automation. Read the documentation for [Automating Home Assistant](/getting-started/automation/) to learn more about automations.
## Troubleshooting missing automations ## Troubleshooting missing automations

View File

@ -13,19 +13,25 @@ The variable `this` is the [state object](/docs/configuration/state_object) of t
## Available Trigger Data ## Available Trigger Data
The following tables show the available trigger data per platform. The variable `trigger` is an object that contains details about which trigger triggered the automation.
Templates can use the data to modify the actions performed by the automation or displayed in a message. For example, you could create an automation that multiple sensors can trigger and then use the sensor's location to specify a light to activate; or you could send a notification containing the friendly name of the sensor that triggered it.
Each [trigger platform](/docs/automation/trigger/#event-trigger) can include additional data specific to that platform.
### All ### All
The following describes trigger data associated with all platforms. Triggers from all platforms will include the following data.
| Template variable | Data | | Template variable | Data |
| ---- | ---- | | ---- | ---- |
| `trigger.id` | Optional trigger `id`, or index of the trigger. | `trigger.id` | The [`id` of the trigger](/docs/automation/trigger/#trigger-id).
| `trigger.idx` | Index of the trigger. (The first trigger idx is `0`.) | `trigger.idx` | Index of the trigger. (The first trigger idx is `0`.)
### Calendar ### Calendar
These are the properties available for a [Calendar trigger](/docs/automation/trigger/#calendar-trigger).
| Template variable | Data | | Template variable | Data |
| ------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------- | | ------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------- |
| `trigger.platform` | Hardcoded: `calendar` | | `trigger.platform` | Hardcoded: `calendar` |
@ -41,6 +47,8 @@ The following describes trigger data associated with all platforms.
### Device ### Device
These are the properties available for a [Device trigger](/docs/automation/trigger/#device-trigger).
Inherites template variables from [event](#event) or [state](#state) template based on the type of trigger selected for the device. Inherites template variables from [event](#event) or [state](#state) template based on the type of trigger selected for the device.
| Template variable | Data | | Template variable | Data |
@ -49,6 +57,8 @@ Inherites template variables from [event](#event) or [state](#state) template ba
### Event ### Event
These are the properties available for a [Event trigger](/docs/automation/trigger/#event-trigger).
| Template variable | Data | | Template variable | Data |
| ---- | ---- | | ---- | ---- |
| `trigger.platform` | Hardcoded: `event`. | `trigger.platform` | Hardcoded: `event`.
@ -58,6 +68,8 @@ Inherites template variables from [event](#event) or [state](#state) template ba
### MQTT ### MQTT
These are the properties available for a [MQTT trigger](/docs/automation/trigger/#mqtt-trigger).
| Template variable | Data | | Template variable | Data |
| ---- | ---- | | ---- | ---- |
| `trigger.platform` | Hardcoded: `mqtt`. | `trigger.platform` | Hardcoded: `mqtt`.
@ -68,6 +80,8 @@ Inherites template variables from [event](#event) or [state](#state) template ba
### Numeric State ### Numeric State
These are the properties available for a [Numeric State trigger](/docs/automation/trigger/#numeric-state-trigger).
| Template variable | Data | | Template variable | Data |
| ---- | ---- | | ---- | ---- |
| `trigger.platform` | Hardcoded: `numeric_state` | `trigger.platform` | Hardcoded: `numeric_state`
@ -80,6 +94,8 @@ Inherites template variables from [event](#event) or [state](#state) template ba
### State ### State
These are the properties available for a [State trigger](/docs/automation/trigger/#state-trigger).
| Template variable | Data | | Template variable | Data |
| ---- | ---- | | ---- | ---- |
| `trigger.platform` | Hardcoded: `state` | `trigger.platform` | Hardcoded: `state`
@ -90,6 +106,8 @@ Inherites template variables from [event](#event) or [state](#state) template ba
### Sun ### Sun
These are the properties available for a [Sun trigger](/docs/automation/trigger/#sun-trigger).
| Template variable | Data | | Template variable | Data |
| ---- | ---- | | ---- | ---- |
| `trigger.platform` | Hardcoded: `sun` | `trigger.platform` | Hardcoded: `sun`
@ -98,6 +116,8 @@ Inherites template variables from [event](#event) or [state](#state) template ba
### Template ### Template
These are the properties available for a [Template trigger](/docs/automation/trigger/#template-trigger).
| Template variable | Data | | Template variable | Data |
| ---- | ---- | | ---- | ---- |
| `trigger.platform` | Hardcoded: `template` | `trigger.platform` | Hardcoded: `template`
@ -108,6 +128,8 @@ Inherites template variables from [event](#event) or [state](#state) template ba
### Time ### Time
These are the properties available for a [Time trigger](/docs/automation/trigger/#time-trigger).
| Template variable | Data | | Template variable | Data |
| ---- | ---- | | ---- | ---- |
| `trigger.platform` | Hardcoded: `time` | `trigger.platform` | Hardcoded: `time`
@ -115,6 +137,8 @@ Inherites template variables from [event](#event) or [state](#state) template ba
### Time Pattern ### Time Pattern
These are the properties available for a [Time Pattern trigger](/docs/automation/trigger/#time-pattern-trigger).
| Template variable | Data | | Template variable | Data |
| ---- | ---- | | ---- | ---- |
| `trigger.platform` | Hardcoded: `time_pattern` | `trigger.platform` | Hardcoded: `time_pattern`
@ -122,6 +146,8 @@ Inherites template variables from [event](#event) or [state](#state) template ba
### Webhook ### Webhook
These are the properties available for a [Webhook trigger](/docs/automation/trigger/#webhook-trigger).
| Template variable | Data | | Template variable | Data |
| ---- | ---- | | ---- | ---- |
| `trigger.platform` | Hardcoded: `webhook` | `trigger.platform` | Hardcoded: `webhook`
@ -132,6 +158,8 @@ Inherites template variables from [event](#event) or [state](#state) template ba
### Zone ### Zone
These are the properties available for a [Zone trigger](/docs/automation/trigger/#zone-trigger).
| Template variable | Data | | Template variable | Data |
| ---- | ---- | | ---- | ---- |
| `trigger.platform` | Hardcoded: `zone` | `trigger.platform` | Hardcoded: `zone`

View File

@ -786,6 +786,10 @@ automation:
trigger: trigger:
- platform: webhook - platform: webhook
webhook_id: "some_hook_id" webhook_id: "some_hook_id"
allowed_methods:
- POST
- PUT
local_only: true
``` ```
You can run this automation by sending an HTTP POST request to `http://your-home-assistant:8123/api/webhook/some_hook_id`. Here is an example using the **curl** command line program, with an example form data payload: You can run this automation by sending an HTTP POST request to `http://your-home-assistant:8123/api/webhook/some_hook_id`. Here is an example using the **curl** command line program, with an example form data payload:
@ -794,7 +798,9 @@ You can run this automation by sending an HTTP POST request to `http://your-home
curl -X POST -d 'key=value&key2=value2' https://your-home-assistant:8123/api/webhook/some_hook_id curl -X POST -d 'key=value&key2=value2' https://your-home-assistant:8123/api/webhook/some_hook_id
``` ```
Webhooks support HTTP POST, PUT, and HEAD requests; POST requests are recommended. HTTP GET requests are not supported. Webhooks support HTTP POST, PUT, HEAD, and GET requests; PUT requests are recommended. HTTP GET and HEAD requests are not enabled by default but can be enabled by adding them to the `allowed_methods` option. The request methods can also be configured in the UI by clicking the settings gear menu button beside the Webhook ID.
By default, webhook triggers can only be accessed from devices on the same network as Home Assistant or via [Nabu Casa Cloud webhooks](https://www.nabucasa.com/config/webhooks/). The `local_only` option should be set to `false` to allow webhooks to be triggered directly via the internet. This option can also be configured in the UI by clicking the settings gear menu button beside the Webhook ID.
Remember to use an HTTPS URL if you've secured your Home Assistant installation with SSL/TLS. Remember to use an HTTPS URL if you've secured your Home Assistant installation with SSL/TLS.
@ -817,6 +823,7 @@ Webhook endpoints don't require authentication, other than knowing a valid webho
- Do not use webhooks to trigger automations that are destructive, or that can create safety issues. For example, do not use a webhook to unlock a lock, or open a garage door. - Do not use webhooks to trigger automations that are destructive, or that can create safety issues. For example, do not use a webhook to unlock a lock, or open a garage door.
- Treat a webhook ID like a password: use a unique, non-guessable value, and keep it secret. - Treat a webhook ID like a password: use a unique, non-guessable value, and keep it secret.
- Do not copy-and-paste webhook IDs from public sources, including blueprints. Always create your own. - Do not copy-and-paste webhook IDs from public sources, including blueprints. Always create your own.
- Keep the `local_only` option enabled for webhooks if access from the internet is not required.
## Zone trigger ## Zone trigger

View File

@ -19,6 +19,7 @@ The following selectors are currently available:
- [Add-on selector](#add-on-selector) - [Add-on selector](#add-on-selector)
- [Area selector](#area-selector) - [Area selector](#area-selector)
- [Attribute selector](#attribute-selector) - [Attribute selector](#attribute-selector)
- [Assist pipeline selector](#assist-pipeline-selector)
- [Boolean selector](#boolean-selector) - [Boolean selector](#boolean-selector)
- [Color temperature selector](#color-temperature-selector) - [Color temperature selector](#color-temperature-selector)
- [Config entry selector](#config-entry-selector) - [Config entry selector](#config-entry-selector)
@ -29,6 +30,7 @@ The following selectors are currently available:
- [Duration selector](#duration-selector) - [Duration selector](#duration-selector)
- [Entity selector](#entity-selector) - [Entity selector](#entity-selector)
- [Icon selector](#icon-selector) - [Icon selector](#icon-selector)
- [Language selector](#language-selector)
- [Location selector](#location-selector) - [Location selector](#location-selector)
- [Media selector](#media-selector) - [Media selector](#media-selector)
- [Number selector](#number-selector) - [Number selector](#number-selector)
@ -245,6 +247,18 @@ The output of this selector is the selected attribute key (not the translated or
prettified name shown in the frontend). prettified name shown in the frontend).
For example: `next_dawn`. For example: `next_dawn`.
## Assist pipeline selector
The assist pipeline selector shows all available assist pipelines (assistants) of which one can be selected.
![Screenshot of an assist pipeline selector](/images/blueprints/selector-assist-pipeline.png)
This selector does not have any other options; therefore, it only has its key.
```yaml
assist_pipeline:
```
## Boolean selector ## Boolean selector
The boolean selector shows a toggle that allows the user to turn on or off The boolean selector shows a toggle that allows the user to turn on or off
@ -640,6 +654,38 @@ placeholder:
The output of this selector is a string containing the selected icon, The output of this selector is a string containing the selected icon,
for example: `mdi:bell`. for example: `mdi:bell`.
## Language selector
The language selector allows a user to pick a language from a list of languages.
![Screenshot of an language selector](/images/blueprints/selector-language.png)
```yaml
language:
```
{% configuration entity %}
languages:
description: A list of languages to pick from, this should be RFC 5646 languages codes.
type: list
default: The available languages in the Home Assistant frontend
required: false
native_name:
description: >
Should the name of the languages be shown in the language of the user, or in the language itself.
type: boolean
default: false
required: false
no_sort:
description: >
Should the options be sorted by name, if set to true, the order of the provided languages is kept.
type: boolean
default: false
required: false
{% endconfiguration %}
The output of this selector is a RFC 5646 language code.
## Location selector ## Location selector
The location selector allow a user to pick a location from a map and returns The location selector allow a user to pick a location from a map and returns

View File

@ -40,6 +40,6 @@ If you can't see your integration listed there, you will need to restart Home As
## Migrating to a new system ## Migrating to a new system
The preferred way of migrating to a new system is by {% my supervisor_backups title="making a backup" %}. The preferred way of migrating to a new system is by {% my supervisor_backups title="making a backup" %}. Once you have created the backup on the old system, you can download it to the system that is running the Home Assistant frontend. When setting up the new system, you may use the backup. Alternatively, you can upload it to your new system using the *Upload backup* menu option of the *Backups* menu. Then, a restore of the uploaded backup on the new system concludes the migration.
If you run the container or core installation methods, you will need to manually make a backup of your configuration folder. Be aware that some of the files you need start with `.`, which is hidden by default from both `ls` (in SSH), in Windows Explorer, and macOS Finder. You'll need to ensure that you're viewing all files before you copy them. If you run the container or core installation methods, you will need to manually make a backup of your configuration folder. Be aware that some of the files you need start with `.`, which is hidden by default from both `ls` (in SSH), in Windows Explorer, and macOS Finder. You'll need to ensure that you're viewing all files before you copy them.

View File

@ -150,6 +150,8 @@ Print out a list of all the sensor states:
{% endfor %} {% endfor %}
``` ```
{% endraw %}
Print out a list of all the sensor states sorted by `entity_id`: Print out a list of all the sensor states sorted by `entity_id`:
{% raw %} {% raw %}
@ -655,13 +657,14 @@ To fix it, enforce the ISO conversion via `isoformat()`:
The `to_json` filter serializes an object to a JSON string. In some cases, it may be necessary to format a JSON string for use with a webhook, as a parameter for command-line utilities or any number of other applications. This can be complicated in a template, especially when dealing with escaping special characters. Using the `to_json` filter, this is handled automatically. The `to_json` filter serializes an object to a JSON string. In some cases, it may be necessary to format a JSON string for use with a webhook, as a parameter for command-line utilities or any number of other applications. This can be complicated in a template, especially when dealing with escaping special characters. Using the `to_json` filter, this is handled automatically.
Similarly to the Python equivalent, the filter accepts an `ensure_ascii` parameter, defaulting to `True`. If `ensure_ascii` is `True`, the output is guaranteed to have all incoming non-ASCII characters escaped. If `ensure_ascii` is false, these characters will be output as-is. `to_json` also accepts boolean arguments for `pretty_print`, which will pretty print the JSON with a 2-space indent to make it more human-readable, and `sort_keys`, which will sort the keys of the JSON object, ensuring that the resulting string is consistent for the same input.
If you need to generate JSON that will be used by a parser that lacks support for Unicode characters, you can add `ensure_ascii=True` to have `to_json` generate Unicode escape sequences in strings.
The `from_json` filter operates similarly, but in the other direction, de-serializing a JSON string back into an object. The `from_json` filter operates similarly, but in the other direction, de-serializing a JSON string back into an object.
### To/From JSON examples
In this example, the special character '°' will be automatically escaped in order to produce valid JSON. The difference between the stringified object and the actual JSON is evident. ### To/From JSON examples
#### Template #### Template
@ -670,7 +673,7 @@ In this example, the special character '°' will be automatically escaped in ord
```text ```text
{% set temp = {'temperature': 25, 'unit': '°C'} %} {% set temp = {'temperature': 25, 'unit': '°C'} %}
stringified object: {{ temp }} stringified object: {{ temp }}
object|to_json: {{ temp|to_json(ensure_ascii=False) }} object|to_json: {{ temp|to_json(sort_keys=True) }}
``` ```
{% endraw %} {% endraw %}
@ -681,7 +684,7 @@ object|to_json: {{ temp|to_json(ensure_ascii=False) }}
```text ```text
stringified object: {'temperature': 25, 'unit': '°C'} stringified object: {'temperature': 25, 'unit': '°C'}
object|to_json: {"temperature": 25, "unit": "\u00b0C"} object|to_json: {"temperature": 25, "unit": "°C"}
``` ```
{% endraw %} {% endraw %}
@ -693,7 +696,7 @@ Conversely, `from_json` can be used to de-serialize a JSON string back into an o
{% raw %} {% raw %}
```text ```text
{% set temp = '{"temperature": 25, "unit": "\u00b0C"}'|from_json %} {% set temp = '{"temperature": 25, "unit": "°C"}'|from_json %}
The temperature is {{ temp.temperature }}{{ temp.unit }} The temperature is {{ temp.temperature }}{{ temp.unit }}
``` ```

View File

@ -29,3 +29,6 @@ We have worked with creator [Marcel Zuidwijk](https://www.zuidwijk.com) to devel
![Photo of the AI-on-the-edge-device Workflow](/images/docs/energy/ai-on-the-edge-device.jpg) ![Photo of the AI-on-the-edge-device Workflow](/images/docs/energy/ai-on-the-edge-device.jpg)
#### Read the Gas Meter using a magnetometer
[Diaphragm gas meters](https://en.wikipedia.org/wiki/Gas_meter#Diaphragm/bellows_meters) are the most common type of gas meter, and their movement can frequently be observed with a magnetometer. The [QMC5883L](https://esphome.io/components/sensor/qmc5883l.html) is a common and inexpensive option that ESPHome supports. Many posts on the forums of users having luck with this method, such as [this one](https://community.home-assistant.io/t/water-gas-meter-monitoring-via-magnetometer-sine-wave-to-pulse-issue/245904).

View File

@ -17,17 +17,8 @@ Depending on what protocols you use at home, you can use Zigbee, Z-Wave or Wi-Fi
Smart relays sit behind your "normal" switches and make them smart. It allows you to control the devices via Home Assistant and via the connected buttons/switches. Smart relays sit behind your "normal" switches and make them smart. It allows you to control the devices via Home Assistant and via the connected buttons/switches.
{% comment %}
We recommend the Shelly brand because they have a local API that updates Home Assistant as soon as something happens and it has a high quality integration:
- [Shelly 1PM](https://shop.shelly.cloud/shelly-1pm-wifi-smart-home-automation-1?tracking=A7FsiPIfUWsFpnfKHa8SRyUYLXjr2hPq)
- [Shelly 2.5](https://shop.shelly.cloud/shelly-2.5-ce-ul-wifi-smart-home-automation?tracking=A7FsiPIfUWsFpnfKHa8SRyUYLXjr2hPq)
{% endcomment %}
## Devices with power (W) sensors ## Devices with power (W) sensors
Some smart devices, such as air conditioning, boilers, and others, may provide a power sensor, measured in Watts. You can use the [Integration (Riemann sum integral) integration](/integrations/integration/#energy) to calculate the energy your device is using. You can then use the energy sensor in the Energy Dashboard, as individual devices. Some smart devices, such as air conditioning, boilers, and others, may provide a power sensor, measured in Watts. You can use the [Integration (Riemann sum integral) integration](/integrations/integration/#energy) to calculate the energy your device is using. You can then use the energy sensor in the Energy Dashboard, as individual devices.
<img src='/images/docs/energy/devices.png' alt='Graphic showing energy flowing from the home to individual devices.' style='border: 0;box-shadow: none; display: block; max-height: 400px; margin: 0 auto;'> <img src='/images/docs/energy/devices.png' alt='Graphic showing energy flowing from the home to individual devices.' style='border: 0;box-shadow: none; display: block; max-height: 400px; margin: 0 auto;'>
_Disclaimer: Some links on this page are affiliate links._

View File

@ -3,23 +3,27 @@ title: "Scenes Editor"
description: "Instructions on how to use the scenes editor." description: "Instructions on how to use the scenes editor."
--- ---
In Home Assistant 0.102 we introduced the first version of our scene editor. If you just created a new configuration with Home Assistant, then you're all set! Go to the UI and enjoy.
From the UI choose **Settings** which is located in the sidebar, then click on **Automations & Scenes** to go to the scene editor. Press the **Add Scene** button in the lower right corner to get started. From the UI choose **Settings** which is located in the sidebar, then click on **Automations & Scenes** to go to the scene editor. Press the **Add Scene** button in the lower right corner to get started.
Choose a meaningful name for your scene. Choose a meaningful name for your scene.
<p class='img'> ![Scene editor](/images/docs/scenes/editor.png)
<img src='/images/docs/scenes/editor.png' />
</p>
Select all the devices (or entities when advanced mode is enabled on your user profile) you want to include in your scene. Select all the {% term devices %} (or {% term entities %} when advanced mode is enabled on your user profile) you want to include in your scene.
The state of your devices will be saved, so it can be restored when you are finished creating your scene. The state of your devices will be saved, so it can be restored when you are finished creating your scene.
Set the state of the devices to how you want them to be in your scene, this can be done by clicking on it and edit the state from the popup, or any other method that changes the state. Set the state of the devices to how you want them to be in your scene, this can be done by clicking on it and edit the state from the popup, or any other method that changes the state.
On the moment you save the scene, all the states of your devices are stored in the scene. On the moment you save the scene, all the states of your devices are stored in the scene.
When you leave the editor the states of the devices are restored to the state from before you started editing. When you leave the editor the states of the devices are restored to the state from before you started editing.
The menu on the top-right has options to **Duplicate scene** and **Delete scene**. The menu on the top-right has options to **Duplicate scene** and **Delete scene**.
A scene can be called in {% term automation %} action and {% term scripts %} using a turn on scene {% term service %}:
```yaml
service: scene.turn_on
target:
entity_id: scene.my_unique_id
```
## Updating your configuration to use the editor ## Updating your configuration to use the editor
First, check that you have activated the configuration editor. First, check that you have activated the configuration editor.

View File

@ -761,7 +761,7 @@ on each other and order doesn't matter. For those cases, the `parallel` action
can be used to run the actions in the sequence in parallel, meaning all can be used to run the actions in the sequence in parallel, meaning all
the actions are started at the same time. the actions are started at the same time.
The following example shows sending messages out at the time (in parallel): The following example shows sending messages out at the same time (in parallel):
```yaml ```yaml
automation: automation:
@ -779,7 +779,7 @@ automation:
message: "These messages are sent at the same time!" message: "These messages are sent at the same time!"
``` ```
It is also possible to run a group of actions sequantially inside the parallel It is also possible to run a group of actions sequentially inside the parallel
actions. The example below demonstrates that: actions. The example below demonstrates that:
```yaml ```yaml

View File

@ -120,3 +120,18 @@ You should also check the README for details on the overlays. You might find it
If you've installed the Z-Wave.Me Z-Way software. In order to use Z-Wave JS instead of Z-Way, you'll need to ensure you disable it before you install Home Assistant, or you won't be able to access the board. Do this with `sudo /etc/init.d/z-way-server stop; sudo update-rc.d z-way-server disable`. Alternatively, you could use the [Z-Wave.Me](/integrations/zwave_me) integration. If you've installed the Z-Wave.Me Z-Way software. In order to use Z-Wave JS instead of Z-Way, you'll need to ensure you disable it before you install Home Assistant, or you won't be able to access the board. Do this with `sudo /etc/init.d/z-way-server stop; sudo update-rc.d z-way-server disable`. Alternatively, you could use the [Z-Wave.Me](/integrations/zwave_me) integration.
</div> </div>
#### Setting up a Raspberry Pi Z-Wave module on Home Assistant Yellow
This procedure has been tested with the following modules:
* Aeotec Z-Pi 7 Raspberry Pi HAT/Shield
* Z-Wave.Me RaZberry 7
* Z-Wave.Me RaZberry 7 Pro
1. Make sure the module is properly seated on the Home Assistant Yellow.
![Aeotec Z-Pi 7 on Home Assistant Yellow](/images/docs/z-wave/zpi-7-yellow.jpg).
1. Carefully [close the case](https://yellow.home-assistant.io/guides/add-ssd-existing-installation/#reassembling-top-part) and power up Home Assistant Yellow.
1. Follow the procedure on [setting up a Z-Wave JS server](/integrations/zwave_js/#setting-up-a-z-wave-js-server).
1. In step 2, follow the manual setup steps to install the Z-Wave integration.
1. in Step 4, you will be prompted to choose a **Device path**. Choose **ttyAMA0**.

View File

@ -0,0 +1,6 @@
---
title: "Configuration.yaml by ntalekt"
description: "Unifi, ZHA, Pentair, Tuya, Tasmota"
ha_category: Example configuration.yaml
ha_external_link: https://github.com/ntalekt/homeassistant
---

View File

@ -46,6 +46,13 @@
<li>{% active_link /docs/assist/apple/ Assist for Apple devices %}</li> <li>{% active_link /docs/assist/apple/ Assist for Apple devices %}</li>
<li>{% active_link /docs/assist/builtin_sentences/ Built-in sentences %}</li> <li>{% active_link /docs/assist/builtin_sentences/ Built-in sentences %}</li>
<li>{% active_link /docs/assist/custom_sentences/ Custom sentences %}</li> <li>{% active_link /docs/assist/custom_sentences/ Custom sentences %}</li>
<li>{% active_link /docs/assist/voice_remote_expose_devices/ Exposing devices to your voice assistant %}</li>
<li>{% active_link /docs/assist/voice_remote_local_assistant/ Configuring a local assistant %}</li>
<li>{% active_link /docs/assist/troubleshooting/ Troubleshooting Assist %}</li>
<li>{% active_link /docs/assist/voice_remote_local_assistant/ Configuring a local assistant %}</li>
<li>{% active_link /projects/worlds-most-private-voice-assistant/ Tutorial: World's most private voice assistant %}</li>
<li>{% active_link /projects/thirteen-usd-voice-remote/ Tutorial: $13 voice remote %}
</li>
</ul> </ul>
</li> </li>
<li> <li>
@ -177,6 +184,16 @@
<li>{% active_link /integrations/mqtt/#logging Logging %}</li> <li>{% active_link /integrations/mqtt/#logging Logging %}</li>
</ul> </ul>
</li> </li>
<li>
<b>Hardware</b>
<ul>
<li>
<a href="https://yellow.home-assistant.io/">Home Assistant Yellow</a>
</li>
<li>
<a href="https://skyconnect.home-assistant.io/">Home Assistant SkyConnect</a>
</ul>
</li>
</ul> </ul>
</div> </div>
</section> </section>

View File

@ -5,6 +5,7 @@
<li>{% active_link /installation/ Installation %}</li> <li>{% active_link /installation/ Installation %}</li>
<li>{% active_link /getting-started/onboarding/ Onboarding %}</li> <li>{% active_link /getting-started/onboarding/ Onboarding %}</li>
<li>{% active_link /getting-started/concepts-terminology/ Concepts and terminology %}</li> <li>{% active_link /getting-started/concepts-terminology/ Concepts and terminology %}</li>
<li>{% active_link /getting-started/integration/ Integration %}</li>
<li>{% active_link /getting-started/automation/ Automation %}</li> <li>{% active_link /getting-started/automation/ Automation %}</li>
<li> <li>
{% active_link /getting-started/presence-detection/ Presence detection {% active_link /getting-started/presence-detection/ Presence detection

View File

@ -11,6 +11,7 @@ To flash your eMMC using Petitboot and OTG-USB, you will need the following item
- HDMI cable and monitor - HDMI cable and monitor
- USB keyboard - USB keyboard
- USB 2.0 to micro-USB cable - USB 2.0 to micro-USB cable
- If your board came in a Home Assistant Blue: No.2 hex key to open the case
#### Enabling SPI boot mode #### Enabling SPI boot mode
@ -45,13 +46,13 @@ You can safely ignore this message and proceed with the installation
</div> </div>
2. Use the following command at the console to confirm the storage device node: 1. Use the following command at the console to confirm the storage device node:
```bash ```bash
ls /dev/mmc* ls /dev/mmc*
``` ```
3. Set the storage device on the ODROID-N2+ as a mass storage device using the `ums` command (USB Mass storage mode). 1. Set the storage device on the ODROID-N2+ as a mass storage device using the `ums` command (USB Mass storage mode).
This will configure the ODROID-N2+ and OTG to act as a memory card reader: This will configure the ODROID-N2+ and OTG to act as a memory card reader:
```bash ```bash
@ -60,10 +61,19 @@ This will configure the ODROID-N2+ and OTG to act as a memory card reader:
#### Flashing Home Assistant #### Flashing Home Assistant
Connect the ODROID-N2+ to your PC via the micro-USB port at the front of the ODROID-N2+. When the ODROID-N2 is recognized as a USB connected storage device, you can flash the eMMC with [Etcher](https://www.balena.io/etcher/) using the latest stable version of Home Assistant OS for the [ODROID-N2+](https://github.com/home-assistant/operating-system/releases/download/{{site.data.version_data.hassos['odroid-n2']}}/haos_odroid-n2-{{site.data.version_data.hassos['odroid-n2']}}.img.xz) (haos_odroid-n2-{{site.data.version_data.hassos['odroid-n2']}}.img.xz). 1. Connect the ODROID-N2+ to your PC via the micro-USB port at the front of the ODROID-N2+.
1. When the ODROID-N2 is recognized as a USB connected storage device, you can flash the eMMC with [Etcher](https://www.balena.io/etcher/).
* Use the latest stable version of Home Assistant OS for the [ODROID-N2+](https://github.com/home-assistant/operating-system/releases/download/{{site.data.version_data.hassos['odroid-n2']}}/haos_odroid-n2-{{site.data.version_data.hassos['odroid-n2']}}.img.xz) (haos_odroid-n2-{{site.data.version_data.hassos['odroid-n2']}}.img.xz).
When the flash process is complete, disconnect the ODROID-N2+ from your PC and remove the power cable. Remove the USB and HDMI cable, and make sure to toggle the boot mode switch back to MMC. 1. When the flash process is complete, disconnect the ODROID-N2+ from your PC.
* Remove the power cable.
* Remove the USB and HDMI cables.
* Make sure to toggle the boot mode switch back to MMC.
Once it is back in its case, connect your ODROID-N2+ to your network with an Ethernet cable and plug in power. 1. Put the ODROID back in its case.
1. Connect your ODROID-N2+ to your network with an Ethernet cable and plug in power.
If your router supports mDNS, you will be able to reach your installation on `http://homeassistant.local:8123`. If your network doesnt support mDNS, youll have to use the IP address of your ODROID-N2+ instead of `homeassistant.local`. For example, `http://192.168.0.9:8123`. You should be able to find the IP address of your ODROID-N2+ from the admin interface of your router. 1. If your router supports mDNS, you can reach your installation at `http://homeassistant.local:8123`.
* If your network doesnt support mDNS, youll have to use the IP address of your ODROID-N2+ instead of `homeassistant.local`. For example, `http://192.168.0.9:8123`.
* You should be able to find the IP address of your ODROID-N2+ from the admin interface of your router.
1. Continue with [onboarding](/getting-started/onboarding/).

View File

@ -11,7 +11,7 @@ This guide assumes that you already have an operating system setup and a contain
If you are using Docker then you need to be on at least version 19.03.9, ideally an even higher version, and `libseccomp` 2.4.2 or newer. If you are using Docker then you need to be on at least version 19.03.9, ideally an even higher version, and `libseccomp` 2.4.2 or newer.
</div> </div>
### Platform Installation ### Platform installation
Installation with Docker is straightforward. Adjust the following command so that: Installation with Docker is straightforward. Adjust the following command so that:
@ -32,10 +32,10 @@ Once the Home Assistant Container is running Home Assistant should be accessible
### Restart Home Assistant ### Restart Home Assistant
If you change the configuration you have to restart the server. To do that you have 3 options. If you change the configuration, you have to restart the server. To do that you have 3 options.
1. In your Home Assistant UI go to the **Settings** -> **System** and click the "Restart" button. 1. In your Home Assistant UI, go to the **Settings** > **System** and click the **Restart** button.
2. You can go to the **Developer Tools** -> **Services**, select the service `homeassistant.restart` and click "Call Service". 2. You can go to the **Developer Tools** > **Services**, select the service `homeassistant.restart` and select **Call Service**.
3. Restart it from a terminal. 3. Restart it from a terminal.
{% tabbed_block %} {% tabbed_block %}
@ -56,7 +56,7 @@ If you change the configuration you have to restart the server. To do that you h
{% endtabbed_block %} {% endtabbed_block %}
### Docker Compose ### Docker compose
<div class="note tip"> <div class="note tip">
@ -74,11 +74,11 @@ Start it by running:
docker compose up -d docker compose up -d
``` ```
Once the Home Assistant Container is running Home Assistant should be accessible using `http://<host>:8123` (replace <host> with the hostname or IP of the system). You can continue with onboarding. Once the Home Assistant Container is running, Home Assistant should be accessible using `http://<host>:8123` (replace <host> with the hostname or IP of the system). You can continue with onboarding.
{% include getting-started/next_step.html step="Onboarding" link="/getting-started/onboarding/" %} {% include getting-started/next_step.html step="Onboarding" link="/getting-started/onboarding/" %}
### Exposing Devices ### Exposing devices
In order to use Zigbee or other integrations that require access to devices, you need to map the appropriate device into the container. Ensure the user that is running the container has the correct privileges to access the `/dev/tty*` file, then add the device mapping to your container instructions: In order to use Zigbee or other integrations that require access to devices, you need to map the appropriate device into the container. Ensure the user that is running the container has the correct privileges to access the `/dev/tty*` file, then add the device mapping to your container instructions:

View File

@ -99,6 +99,6 @@ If this address doesn't work you may also try `http://localhost:8123` or `http:/
<div class='note'> <div class='note'>
When you run the `hass` command for the first time, it will download, install and cache the necessary libraries/dependencies. This procedure may take anywhere between 5 to 10 minutes. During that time, you may get "site cannot be reached" error when accessing the web interface. This will only happen for the first time, and subsequent restarts will be much faster. When you run the `hass` command for the first time, it will download, install and cache the necessary libraries/dependencies. This procedure may take anywhere between 5 to 10 minutes. During that time, you may get a **site cannot be reached** error when accessing the web interface. This will only happen the first time. Subsequent restarts will be much faster.
</div> </div>

View File

@ -6,25 +6,11 @@
Follow this guide if you want to get started with Home Assistant easily or if you have little to no Linux experience. Follow this guide if you want to get started with Home Assistant easily or if you have little to no Linux experience.
{% if page.installation_type == 'raspberrypi' %}
### Suggested Hardware
We will need a few things to get started with installing Home Assistant. Links below lead to Amazon US. If youre not in the US, you should be able to find these items in web stores in your country.
- [Raspberry Pi 4](https://amzn.to/2S0Gcl1) (Raspberry Pi 3 is ok too, if you have one laying around). Raspberry Pi are currently hard to come by, use [RPilocator](https://rpilocator.com/?cat=PI4) to find official distributors with stock.
- [Power Supply for Raspberry Pi 4](https://amzn.to/2ReZ2Vq) or [Power Supply for Raspberry Pi 3](https://amzn.to/2R8yG7h)
- [Micro SD Card](https://amzn.to/2X0Z2di). Ideally get one that is [Application Class 2](https://www.sdcard.org/developers/overview/application/index.html) as they handle small I/O much more consistently than cards not optimized to host applications. A 32 GB or bigger card is recommended.
- SD Card reader. This is already part of most laptops, but you can purchase a [standalone USB adapter](https://amzn.to/2WWxntY) if you don't have one. The brand doesn't matter, just pick the cheapest.
- [Ethernet cable](https://amzn.com/dp/B00N2VISLW). Required for installation. After installation, Home Assistant can work with Wi-Fi, but an Ethernet connection is more reliable and highly recommended.
{% endif %}
{% if page.installation_type == 'odroid' %} {% if page.installation_type == 'odroid' %}
### Suggested Hardware ### Suggested hardware
We will need a few things to get started with installing Home Assistant. Links below lead to Ameridroid. If youre not in the US, you should be able to find these items in web stores in your country. We will need a few things to get started with installing Home Assistant. The links below lead to Ameridroid. If youre not in the US, you should be able to find these items in web stores in your country.
To get started we suggest the ODROID N2+, it's the most powerful ODROID. It's fast and with built-in eMMC one of the best boards to run Home Assistant. It's also the board that powers our [Home Assistant Blue](/blue/). To get started we suggest the ODROID N2+, it's the most powerful ODROID. It's fast and with built-in eMMC one of the best boards to run Home Assistant. It's also the board that powers our [Home Assistant Blue](/blue/).
@ -34,15 +20,15 @@ To get started we suggest the ODROID N2+, it's the most powerful ODROID. It's fa
- [eMMC Module](https://ameridroid.com/products/emmc-module-n2-linux-red-dot?ref=eeb6nfw07e) - [eMMC Module](https://ameridroid.com/products/emmc-module-n2-linux-red-dot?ref=eeb6nfw07e)
- [Case](https://ameridroid.com/products/odroid-n2-case?ref=eeb6nfw07e) - [Case](https://ameridroid.com/products/odroid-n2-case?ref=eeb6nfw07e)
If unavailable, we also recommend the [ODROID C4](https://ameridroid.com/products/odroid-c4?ref=eeb6nfw07e) or [ODROID XU4](https://ameridroid.com/products/odroid-xu4?ref=eeb6nfw07e). If unavailable, we also recommend the [ODROID C4](https://ameridroid.com/products/odroid-c4?ref=eeb6nfw07e) or [ODROID M1](https://ameridroid.com/products/odroid-M1?ref=eeb6nfw07e).
{% endif %} {% endif %}
{% if page.installation_type == 'tinkerboard' %} {% if page.installation_type == 'tinkerboard' %}
### Suggested Hardware ### Suggested hardware
We will need a few things to get started with installing Home Assistant. Links below lead to Amazon US. If youre not in the US, you should be able to find it in web stores in your country. We will need a few things to get started with installing Home Assistant. The links below lead to Amazon US. If youre not in the US, you should be able to find it in web stores in your country.
- [Asus Tinkerboard S](https://amzn.to/3fFIcbI) - [Asus Tinkerboard S](https://amzn.to/3fFIcbI)
@ -111,13 +97,15 @@ sudo apt install libfuse2
1. Attach the Home Assistant boot medium ({{site.installation.types[page.installation_type].installation_media}}) to your computer. 1. Attach the Home Assistant boot medium ({{site.installation.types[page.installation_type].installation_media}}) to your computer.
{% if page.installation_type == 'odroid' %} {% if page.installation_type == 'odroid' %}
If you are using ODROID M1, note that booting from NVMe is not supported. If you want to boot from eMMC, [update the firmware](https://github.com/home-assistant/operating-system/blob/dev/Documentation/boards/hardkernel/odroid-m1.md) before installing the image.
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). 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 %} {% endif %}
2. Download and start <a href="https://www.balena.io/etcher" target="_blank">Balena Etcher</a>. You may need to run it with administrator privileges on Windows. 1. Download and start <a href="https://www.balena.io/etcher" target="_blank">Balena Etcher</a>. You may need to run it with administrator privileges on Windows.
3. Select "Flash from URL". 1. Select **Flash from URL**.
![Screenshot of the Etcher software showing flash from URL selected.](/images/installation/etcher1.png) ![Screenshot of the Etcher software showing flash from URL selected.](/images/installation/etcher1.png)
4. Copy the URL for the {{site.installation.types[page.installation_type].board}} image which is: 1. Copy the URL for the image. If there are multiple links below, make sure to select the correct link for your version of {{site.installation.types[page.installation_type].board}}:
{% if site.installation.types[page.installation_type].variants.size > 1 %} {% if site.installation.types[page.installation_type].variants.size > 1 %}
{% tabbed_block %} {% tabbed_block %}
{% for variant in site.installation.types[page.installation_type].variants %} {% for variant in site.installation.types[page.installation_type].variants %}
@ -148,15 +136,15 @@ sudo apt install libfuse2
_Select and copy the URL or use the "copy" button that appear when you hover it._ _Select and copy the URL or use the "copy" button that appear when you hover it._
1. Paste the URL for the {{site.installation.types[page.installation_type].board}} image into Balena Etcher and click "OK" 5. Paste the URL for the {{site.installation.types[page.installation_type].board}} image into Balena Etcher and select **OK**.
![Screenshot of the Etcher software showing the URL bar with a URL pasted in.](/images/installation/etcher2.png) ![Screenshot of the Etcher software showing the URL bar with a URL pasted in.](/images/installation/etcher2.png)
1. When Balena Etcher has downloaded the image, click "Select target" 1. When Balena Etcher has downloaded the image, click **Select target**.
![Screenshot of the Etcher software showing the select target button highlighted.](/images/installation/etcher3.png) ![Screenshot of the Etcher software showing the select target button highlighted.](/images/installation/etcher3.png)
1. Select the boot medium ({{site.installation.types[page.installation_type].installation_media}}) you want to use for your installation 1. Select the boot medium ({{site.installation.types[page.installation_type].installation_media}}) you want to use for your installation.
![Screenshot of the Etcher software showing teh targets available.](/images/installation/etcher4.png) ![Screenshot of the Etcher software showing teh targets available.](/images/installation/etcher4.png)
1. Click on "Flash!" to start writing the image 1. Select **Flash!** to start writing the image.
![Screenshot of the Etcher software showing the Flash button highlighted.](/images/installation/etcher5.png) ![Screenshot of the Etcher software showing the Flash button highlighted.](/images/installation/etcher5.png)
1. When Balena Etcher has finished writing the image you will see a confirmation 1. When Balena Etcher has finished writing the image, you will see a confirmation.
![Screenshot of the Etcher software showing that the installation has completed.](/images/installation/etcher6.png) ![Screenshot of the Etcher software showing that the installation has completed.](/images/installation/etcher6.png)
### Start up your {{site.installation.types[page.installation_type].board}} ### Start up your {{site.installation.types[page.installation_type].board}}
@ -168,7 +156,7 @@ _Select and copy the URL or use the "copy" button that appear when you hover it.
- If you used a live operating system (e.g. Ubuntu), shut it down and remove the live operating system USB device. - If you used a live operating system (e.g. Ubuntu), shut it down and remove the live operating system USB device.
1. Plug in an Ethernet cable that is connected to the network. 1. Plug in an Ethernet cable that is connected to the network.
2. Power the system on. If you have a screen connected to the {{site.installation.types[page.installation_type].board}} system, after a minute or so the Home Assistant welcome banner will appear in the console. 1. Power the system on. If you have a screen connected to the {{site.installation.types[page.installation_type].board}} system, after a minute or so the Home Assistant welcome banner will appear in the console.
<div class="note"> <div class="note">
@ -223,9 +211,11 @@ If you are running an older Windows version or have a stricter network configura
- [Hyper-V][vhdx] (.vhdx) - [Hyper-V][vhdx] (.vhdx)
{% endif %} {% endif %}
Follow this guide if you already are running a supported virtual machine hypervisor. If you are not familiar with virtual machines we recommend installation Home Assistant OS directly on a [Raspberry Pi](/installation/raspberrypi) or an [ODROID](/installation/odroid). After downloading, decompress the image. If the image comes in a ZIP file, for example, unzip it.
### Create the Virtual Machine Follow this guide if you already are running a supported virtual machine hypervisor. If you are not familiar with virtual machines, we recommend installing Home Assistant OS directly on a [Home Assistant Yellow](/installation/yellow), a [Raspberry Pi](/installation/raspberrypi), or an [ODROID](/installation/odroid).
### Create the virtual machine
Load the appliance image into your virtual machine hypervisor. (Note: You are free to assign as much resources as you wish to the VM, please assign enough based on your add-on needs). Load the appliance image into your virtual machine hypervisor. (Note: You are free to assign as much resources as you wish to the VM, please assign enough based on your add-on needs).
@ -243,19 +233,19 @@ _All these can be extended if your usage calls for more resources._
- title: VirtualBox - title: VirtualBox
content: | content: |
1. Create a new virtual machine 1. Create a new virtual machine.
2. Select Type "Linux" and Version "Linux 2.6 / 3.x / 4.x (64-bit)" 1. Select type **Linux** and version **Linux 2.6 / 3.x / 4.x (64-bit)**.
3. Select "Use an existing virtual hard disk file", select the unzipped VDI file from above 1. Select **Use an existing virtual hard disk file**, select the unzipped VDI file from above.
4. Edit the "Settings" of the VM and go "System" then "Motherboard" and select "Enable EFI" 1. Edit the **Settings** of the VM and go to **System** > **Motherboard**. Select **Enable EFI**.
5. Then go to "Network" "Adapter 1" choose "Bridged Adapter" and choose your Network adapter 1. Then go to **Network** > **Adapter 1**. Choose **Bridged Adapter** and choose your network adapter.
<div class="note warning"> <div class="note warning">
Please keep in mind that the bridged adapter only functions over a hardwired Ethernet connection. Please keep in mind that the bridged adapter only functions over a hardwired Ethernet connection.
Using Wi-Fi on your VirtualBox host is unsupported. Using Wi-Fi on your VirtualBox host is unsupported.
</div> </div>
6. Then go to "Audio" and choose "Intel HD Audio" as Audio Controller. 6. Then go to **Audio** and choose **Intel HD Audio** as audio controller.
<div class="note info"> <div class="note info">
By default VirtualBox does not free up unused disk space. To automatically shrink the vdi disk image By default, VirtualBox does not free up unused disk space. To automatically shrink the vdi disk image
the `discard` option must be enabled: the `discard` option must be enabled:
```bash ```bash
VBoxManage storageattach <VM name> --storagectl "SATA" --port 0 --device 0 --nonrotational on --discard on VBoxManage storageattach <VM name> --storagectl "SATA" --port 0 --device 0 --nonrotational on --discard on
@ -265,16 +255,16 @@ _All these can be extended if your usage calls for more resources._
- title: KVM (virt-manager) - title: KVM (virt-manager)
content: | content: |
1. Create a new virtual machine in `virt-manager` 1. Create a new virtual machine in `virt-manager`.
2. Select "Import existing disk image", provide the path to the QCOW2 image above 1 Select **Import existing disk image**, provide the path to the QCOW2 image above.
3. Choose "Generic Default" for the operating system 1. Choose **Generic Default** for the operating system.
4. Check the box for "Customize configuration before install" 1. Check the box for **Customize configuration before install**.
5. Select your bridge under "Network Selection" 1. Under **Network Selection**, select your bridge.
6. Under customization select "Overview" -> "Firmware" -> "UEFI x86_64: ...". Make sure to select a non-secureboot version of OVMF (does not contain the word `secure`, `secboot`, etc.), e.g., `/usr/share/edk2/ovmf/OVMF_CODE.fd`. 6. Under customization select **Overview** > **Firmware** > **UEFI x86_64: ...**. Make sure to select a non-secureboot version of OVMF (does not contain the word `secure`, `secboot`, etc.), e.g., `/usr/share/edk2/ovmf/OVMF_CODE.fd`.
7. Click "Add Hardware" (bottom left), and select "Channel" 1. Click **Add Hardware** (bottom left), and select **Channel**.
8. Select device type: "unix" 1. Select device type: **unix**.
9. Select name: "org.qemu.guest_agent.0" 1. Select name: **org.qemu.guest_agent.0**.
10. Finally select "Begin Installation" (upper left corner) 1. Finally, select **Begin Installation** (upper left corner).
- title: KVM (virt-install) - title: KVM (virt-install)
content: | content: |
@ -309,13 +299,13 @@ _All these can be extended if your usage calls for more resources._
- title: Vmware Workstation - title: Vmware Workstation
content: | content: |
1. Create a new virtual machine 1. Create a new virtual machine.
2. Select “Custom”, make it compatible with the default of Workstation and ESX 1. Select **Custom**, make it compatible with the default of Workstation and ESX.
3. Choose “I will install the operating system later”, select “Linux” -> “Other Linux 5.x or later kernel 64-bit” 1. Choose **I will install the operating system later**, select **Linux** > **Other Linux 5.x or later kernel 64-bit**.
4. Select “Use Bridged Networking” 1. Select **Use Bridged Networking**.
5. Select “Use an existing virtual disk” and select the VMDK file above, 1. Select **Use an existing virtual disk** and select the VMDK file above.
After creation of VM go to “Settings” and “Options” then “Advanced” and select “Firmware type” to “UEFI”. After the VM has been created, go to **Settings** > **Options** > **Advanced**. Under **Firmware type** select **UEFI**.
{% elsif page.installation_type == 'alternative' %} {% elsif page.installation_type == 'alternative' %}
@ -330,25 +320,25 @@ _All these can be extended if your usage calls for more resources._
Hyper-V does not have USB support Hyper-V does not have USB support
</div> </div>
1. Create a new virtual machine 1. Create a new virtual machine.
2. Select “Generation 2” 1. Select **Generation 2**.
3. Select “Connection -> “Your Virtual Switch that is bridged” 1. Select **Connection** > **Your Virtual Switch that is bridged**.
4. Select “Use an existing virtual hard disk” and select the VHDX file from above 1. Select **Use an existing virtual hard disk** and select the VHDX file from above.
After creation go to “Settings” -> “Security” and deselect “Enable Secure Boot”. After creation, go to **Settings** > **Security** and deselect **Enable Secure Boot**.
{% endif %} {% endif %}
{% endtabbed_block %} {% endtabbed_block %}
### Start up your Virtual Machine ### Start up your virtual machine
1. Start the Virtual Machine 1. Start the virtual machine.
2. Observe the boot process of Home Assistant Operating System 1. Observe the boot process of the Home Assistant Operating System.
3. Once completed you will be able to reach Home Assistant on <a href="http://homeassistant.local:8123" target="_blank">homeassistant.local:8123</a>. If you are running an older Windows version or have a stricter network configuration, you might need to access Home Assistant at <a href="http://homeassistant:8123" target="_blank">homeassistant:8123</a> or `http://X.X.X.X:8123` (replace X.X.X.X with your {{site.installation.types[page.installation_type].board}}s IP address). 1. Once completed, you will be able to reach Home Assistant on <a href="http://homeassistant.local:8123" target="_blank">homeassistant.local:8123</a>. If you are running an older Windows version or have a stricter network configuration, you might need to access Home Assistant at <a href="http://homeassistant:8123" target="_blank">homeassistant:8123</a> or `http://X.X.X.X:8123` (replace X.X.X.X with your {{site.installation.types[page.installation_type].board}}s IP address).
{% endif %} {% endif %}
With the Home Assistant Operating System installed and accessible you can continue with onboarding. With the Home Assistant Operating System installed and accessible, you can continue with onboarding.
{% include getting-started/next_step.html step="Onboarding" link="/getting-started/onboarding/" %} {% include getting-started/next_step.html step="Onboarding" link="/getting-started/onboarding/" %}

View File

@ -10,8 +10,7 @@ interface, by using this My button:
{% if include.discovery or page.ha_dhcp or page.ha_homekit or page.ha_ssdp or page.ha_zeroconf or page.ha_mqtt %} {% if include.discovery or page.ha_dhcp or page.ha_homekit or page.ha_ssdp or page.ha_zeroconf or page.ha_mqtt %}
{{ name }} can be auto-discovered by Home Assistant. If an instance was found, {{ name }} can be auto-discovered by Home Assistant. If an instance was found,
it will be shown as _"Discovered"_, which you can select to set it up right it will be shown as **Discovered**. You can then set it up right away.
away.
{% endif %} {% endif %}
{% details "Manual configuration steps" %} {% details "Manual configuration steps" %}
@ -24,17 +23,17 @@ manually:
{% endif %} {% endif %}
- Browse to your Home Assistant instance. - Browse to your Home Assistant instance.
- In the sidebar click on _**{% my config icon %}**_. - In the sidebar, select **{% my config icon %}**.
- From the configuration menu select: _**{% my integrations %}**_. - From the configuration menu, select **{% my integrations %}**.
{% if page.ha_integration_type == 'helper' %} {% if page.ha_integration_type == 'helper' %}
- In top of the screen click the tab: _**{% my helpers %}**_. - In top of the screen, select the tab: **{% my helpers %}**.
- In the bottom right, click on the - In the bottom right, select the
_**{% my config_flow_start icon domain=domain title="Create helper" %}**_ button. **{% my config_flow_start icon domain=domain title="Create helper" %}** button.
{% else %} {% else %}
- In the bottom right, click on the - In the bottom right, select the
_**{% my config_flow_start icon domain=domain %}**_ button. **{% my config_flow_start icon domain=domain %}** button.
{% endif %} {% endif %}
- From the list, search and select _**"{{ name }}"**_. - From the list, search and select **{{ name }}**.
- Follow the instruction on screen to complete the set up. - Follow the instructions on screen to complete the setup.
{% enddetails %} {% enddetails %}

View File

@ -15,6 +15,8 @@
{% include asides/getting_started_navigation.html %} {% include asides/getting_started_navigation.html %}
{% elsif root == 'docs' %} {% elsif root == 'docs' %}
{% include asides/docs_navigation.html %} {% include asides/docs_navigation.html %}
{% elsif root == 'projects' %}
{% include asides/docs_navigation.html %}
{% elsif root == 'faq' %} {% elsif root == 'faq' %}
{% include asides/faq_navigation.html %} {% include asides/faq_navigation.html %}
{% elsif root == 'hassio' or root == 'addons' %} {% elsif root == 'hassio' or root == 'addons' %}

View File

@ -20,7 +20,7 @@ ha_platforms:
ha_integration_type: integration ha_integration_type: integration
--- ---
The ADS (automation device specification) describes a device-independent and fieldbus independent interface for communication between [Beckhoff](https://www.beckhoff.com/) automation devices running [TwinCAT](https://www.beckhoff.hu/english.asp?twincat/default.htm) and other devices implementing this interface. The ADS (automation device specification) describes a device-independent and fieldbus independent interface for communication between [Beckhoff](https://www.beckhoff.com/) automation devices running [TwinCAT](https://www.beckhoff.com/en-en/products/automation/twincat/) and other devices implementing this interface.
There is currently support for the following device types within Home Assistant: There is currently support for the following device types within Home Assistant:

View File

@ -36,11 +36,19 @@ The wall-mounted Android tablet running the [MyPlace](https://play.google.com/st
### Climate ### Climate
The integration will create a climate entity for each air conditioning system found and for each zone that is temperature-controlled. The integration will create a climate entity for each air conditioning system found and for each zone that is temperature-controlled. The main climate entity will change its supported features and modes based on the [MyComfort](https://www.advantageair.com.au/wp-content/uploads/2019/10/MyComfort.pdf) temperature mode currently set.
- MyZone (default) - Use the MyZone select platform to pick which zone will be used for temperature control. Setting this to "Inactive" will use the return air vent temperature. e-zone systems do not support any MyComfort temperature modes, so will always be in the MyZone preset with MyZone set as "Inactive".
- MyTemp - Use the main climate entity to change between cool, heat, and off. Use the zone climate entities to set the desired temperature in each zone.
- MyAuto - Uses the average temperature of all zones for temperature control. When set to the Heat/Cool mode, you can adjust the heating and cooling target temperatures separately, and the MyAir system will automatically switch between heating and cooling as required.
If you change MyComfort mode, you will need to restart Home Assistant or reload the integration.
### Cover ### Cover
The integration will create a cover entity for each zone that is not temperature controlled, allowing you to adjust the opening level manually from 0% to 100% in 5% increments. The integration will create a cover entity for each air conditioning zone that is not temperature controlled, allowing you to adjust the opening level manually from 0% to 100% in 5% increments.
With MyPlace, any blinds and/or garage doors will be created as cover entities.
### Sensor ### Sensor
@ -53,23 +61,25 @@ The integration will create sensor entities for a variety of aspects:
### Binary Sensor ### Binary Sensor
The `advantage_air` binary sensor platform will create a binary sensor for each zone that has a motion sensor. The integration will create a binary sensor for each zone that has a motion sensor.
### Switch ### Switch
The `advantage_air` switch platform will create a switch entity to toggle fresh air mode, if it is supported. The integration will create a switch entity to toggle air conditioning fresh air mode, if it is supported.
With MyPlace, any relays will be created as switch entities.
### Select ### Select
The `advantage_air` select platform allows you to change the zone used for the "MyZone" feature. The MyZone select entity that allows you to change the zone used for the "MyZone" feature. Set this to "Inactive" to use the return air vent temperature.
### Update ### Update
The `advantage_air` update platform shows if the controller app requires an update. The update platform shows if the controller app requires an update.
### Light ### Light
The `advantage_air` light platform will create a light entity for each light in MyLights tab of the MyPlace app. With MyLights or MyPlace, light entities will be created for each light.
## Services ## Services

View File

@ -98,7 +98,7 @@ code_trigger_required:
command_template: command_template:
description: "The [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) used for the command payload. Available variables: `action` and `code`." description: "The [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) used for the command payload. Available variables: `action` and `code`."
required: false required: false
type: string type: template
default: action default: action
command_topic: command_topic:
description: The MQTT topic to publish commands to change the alarm state. description: The MQTT topic to publish commands to change the alarm state.

View File

@ -289,7 +289,7 @@ elements:
tap_action: tap_action:
action: call-service action: call-service
service: amcrest.ptz_control service: amcrest.ptz_control
data: service_data:
entity_id: camera.lakehouse entity_id: camera.lakehouse
movement: up movement: up
- type: icon - type: icon
@ -301,7 +301,7 @@ elements:
tap_action: tap_action:
action: call-service action: call-service
service: amcrest.ptz_control service: amcrest.ptz_control
data: service_data:
entity_id: camera.lakehouse entity_id: camera.lakehouse
movement: down movement: down
- type: icon - type: icon
@ -313,7 +313,7 @@ elements:
tap_action: tap_action:
action: call-service action: call-service
service: amcrest.ptz_control service: amcrest.ptz_control
data: service_data:
entity_id: camera.lakehouse entity_id: camera.lakehouse
movement: left movement: left
- type: icon - type: icon
@ -325,7 +325,7 @@ elements:
tap_action: tap_action:
action: call-service action: call-service
service: amcrest.ptz_control service: amcrest.ptz_control
data: service_data:
entity_id: camera.lakehouse entity_id: camera.lakehouse
movement: right movement: right
- type: icon - type: icon
@ -337,7 +337,7 @@ elements:
tap_action: tap_action:
action: call-service action: call-service
service: amcrest.ptz_control service: amcrest.ptz_control
data: service_data:
entity_id: camera.lakehouse entity_id: camera.lakehouse
movement: left_up movement: left_up
- type: icon - type: icon
@ -349,7 +349,7 @@ elements:
tap_action: tap_action:
action: call-service action: call-service
service: amcrest.ptz_control service: amcrest.ptz_control
data: service_data:
entity_id: camera.lakehouse entity_id: camera.lakehouse
movement: right_up movement: right_up
- type: icon - type: icon
@ -361,7 +361,7 @@ elements:
tap_action: tap_action:
action: call-service action: call-service
service: amcrest.ptz_control service: amcrest.ptz_control
data: service_data:
entity_id: camera.lakehouse entity_id: camera.lakehouse
movement: left_down movement: left_down
- type: icon - type: icon
@ -373,7 +373,7 @@ elements:
tap_action: tap_action:
action: call-service action: call-service
service: amcrest.ptz_control service: amcrest.ptz_control
data: service_data:
entity_id: camera.lakehouse entity_id: camera.lakehouse
movement: right_down movement: right_down
- type: icon - type: icon
@ -385,7 +385,7 @@ elements:
tap_action: tap_action:
action: call-service action: call-service
service: amcrest.ptz_control service: amcrest.ptz_control
data: service_data:
entity_id: camera.lakehouse entity_id: camera.lakehouse
movement: zoom_in movement: zoom_in
hold_action: hold_action:

View File

@ -1,6 +1,6 @@
--- ---
title: Android TV title: Android Debug Bridge
description: Instructions on how to integrate Android TV and Fire TV devices into Home Assistant. description: Instructions on how to integrate Android and Fire TV devices into Home Assistant.
ha_category: ha_category:
- Media Player - Media Player
ha_release: 0.7.6 ha_release: 0.7.6
@ -16,7 +16,7 @@ ha_platforms:
ha_integration_type: device ha_integration_type: device
--- ---
The `androidtv` platform allows you to control an Android TV device or [Amazon Fire TV](https://www.amazon.com/b/?node=8521791011) device. The Android Debug Bridge integration allows you to control an Android device or [Amazon Fire TV](https://www.amazon.com/b/?node=8521791011) device.
<div class='note'> <div class='note'>
@ -26,7 +26,7 @@ When setting up this integration, it is recommended that you do NOT use an ADB s
## Device preparation ## Device preparation
To set up your device, you will need to find its IP address and enable ADB debugging. For Android TV devices, please consult the documentation for your device. To set up your device, you will need to find its IP address and enable ADB debugging. For Android devices, please consult the documentation for your device.
For Fire TV devices, the instructions are as follows: For Fire TV devices, the instructions are as follows:
@ -62,11 +62,11 @@ Configure State Detection Rules:
## ADB Setup ## ADB Setup
This integration works by sending ADB commands to your Android TV / Fire TV device. There are two ways to accomplish this. This integration works by sending ADB commands to your Android / Fire TV device. There are two ways to accomplish this.
<div class='note'> <div class='note'>
When connecting to your device for the first time, a dialog will appear on your Android TV / Fire TV asking you to approve the connection. Check the box that says "always allow connections from this device" and hit OK. When connecting to your device for the first time, a dialog will appear on your Android / Fire TV asking you to approve the connection. Check the box that says "always allow connections from this device" and hit OK.
</div> </div>
@ -84,7 +84,7 @@ Prior to Home Assistant 0.101, this approach did not work well for newer devices
### 2. ADB Server ### 2. ADB Server
The second option is to use an ADB server to connect to your Android TV and Fire TV devices. The second option is to use an ADB server to connect to your Android and Fire TV devices.
<div class='note'> <div class='note'>
@ -92,21 +92,21 @@ To configure ADB server on integration setup, you need to enable [advanced mode]
</div> </div>
Using this approach, Home Assistant will send the ADB commands to the server, which will then send them to the Android TV / Fire TV device and report back to Home Assistant. To use this option, add the `adb_server_ip` option to your configuration. If you are running the server on the same machine as Home Assistant, you can use `127.0.0.1` for this value. Using this approach, Home Assistant will send the ADB commands to the server, which will then send them to the Android / Fire TV device and report back to Home Assistant. To use this option, add the `adb_server_ip` option to your configuration. If you are running the server on the same machine as Home Assistant, you can use `127.0.0.1` for this value.
## ADB Troubleshooting ## ADB Troubleshooting
If the setup for your Android TV or Fire TV device fails, then there is probably an issue with your ADB connection. Here are some possible causes. If the setup for your Android or Fire TV device fails, then there is probably an issue with your ADB connection. Here are some possible causes.
1. You have the wrong IP address for the device. 1. You have the wrong IP address for the device.
2. ADB is not enabled on your device. 2. ADB is not enabled on your device.
3. You are already connected to the Android TV / Fire TV via ADB from another device. Only one device can be connected, so disconnect the other device, restart the Android TV / Fire TV (for good measure), and then restart Home Assistant. 3. You are already connected to the Android / Fire TV via ADB from another device. Only one device can be connected, so disconnect the other device, restart the Android / Fire TV (for good measure), and then restart Home Assistant.
4. You need to approve the ADB connection; see the note in the [ADB Setup](#adb-setup) section above. 4. You need to approve the ADB connection; see the note in the [ADB Setup](#adb-setup) section above.
5. Some Android TV devices (e.g., Philips TVs running Android TV) only accept the initial ADB connection request over their Wi-Fi interface. If you have the TV wired, you need to connect it to Wi-Fi and try the initial connection again. Once the authentication has been granted via Wi-Fi, you can connect to the TV over the wired interface as well. 5. Some Android devices (e.g., Philips TVs running Android TV) only accept the initial ADB connection request over their Wi-Fi interface. If you have the TV wired, you need to connect it to Wi-Fi and try the initial connection again. Once the authentication has been granted via Wi-Fi, you can connect to the TV over the wired interface as well.
6. If your device drops off WiFi, breaking the ADB connection and causing the entity to become unavailable in Home Assistant, you could install a wake lock utility (such as [Wakelock](https://github.com/d4rken/wakelock-revamp)) to prevent this from happening. Some users have reported this problem with Xiaomi Mi Box devices. 6. If your device drops off WiFi, breaking the ADB connection and causing the entity to become unavailable in Home Assistant, you could install a wake lock utility (such as [Wakelock](https://github.com/d4rken/wakelock-revamp)) to prevent this from happening. Some users have reported this problem with Xiaomi Mi Box devices.
@ -138,11 +138,11 @@ stop_netflix:
### `androidtv.adb_command` ### `androidtv.adb_command`
The service `androidtv.adb_command` allows you to send either keys or ADB shell commands to your Android TV / Fire TV device. If there is any output, it will be stored in the `'adb_response'` attribute (i.e., `state_attr('media_player.android_tv_living_room', 'adb_response')` in a template) and logged at the INFO level. The service `androidtv.adb_command` allows you to send either keys or ADB shell commands to your Android / Fire TV device. If there is any output, it will be stored in the `'adb_response'` attribute (i.e., `state_attr('media_player.android_tv_living_room', 'adb_response')` in a template) and logged at the INFO level.
| Service data attribute | Optional | Description | | Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- | | ---------------------- | -------- | ----------- |
| `entity_id` | no | Name(s) of Android TV / Fire TV entities. | `entity_id` | no | Name(s) of Android / Fire TV entities.
| `command` | no | Either a key command or an ADB shell command. | `command` | no | Either a key command or an ADB shell command.
In an [action](/getting-started/automation-action/) of your [automation setup](/getting-started/automation/) it could look like this: In an [action](/getting-started/automation-action/) of your [automation setup](/getting-started/automation/) it could look like this:
@ -177,14 +177,14 @@ A list of various intents can be found [here](https://gist.github.com/mcfrojd/9e
### `androidtv.learn_sendevent` (for faster ADB commands) ### `androidtv.learn_sendevent` (for faster ADB commands)
When sending commands like UP, DOWN, HOME, etc. via ADB, the device can be slow to respond. The problem isn't ADB, but rather the Android command `input` that is used to perform those actions. A faster way to send these commands is using the Android `sendevent` command. The challenge is that these commands are device-specific. To assist users in learning commands for their device, the Android TV integration provides the `androidtv.learn_sendevent` service. Its usage is as follows: When sending commands like UP, DOWN, HOME, etc. via ADB, the device can be slow to respond. The problem isn't ADB, but rather the Android command `input` that is used to perform those actions. A faster way to send these commands is using the Android `sendevent` command. The challenge is that these commands are device-specific. To assist users in learning commands for their device, the Android debug bridge integration provides the `androidtv.learn_sendevent` service. Its usage is as follows:
| Service data attribute | Optional | Description | | Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- | | ---------------------- | -------- | ----------- |
| `entity_id` | no | Name(s) of Android TV / Fire TV entities. | `entity_id` | no | Name(s) of Android / Fire TV entities.
1. Call the `androidtv.learn_sendevent` service. 1. Call the `androidtv.learn_sendevent` service.
2. Within 8 seconds, hit a single button on your Android TV / Fire TV remote. 2. Within 8 seconds, hit a single button on your Android / Fire TV remote.
3. After 8 seconds, a persistent notification will appear that contains the equivalent command that can be sent via the `androidtv.adb_command` service. This command can also be found in the `adb_response` attribute of the media player in Home Assistant, and it will be logged at the INFO level. 3. After 8 seconds, a persistent notification will appear that contains the equivalent command that can be sent via the `androidtv.adb_command` service. This command can also be found in the `adb_response` attribute of the media player in Home Assistant, and it will be logged at the INFO level.
As an example, a service call in a [script](/docs/scripts) could be changed from this: As an example, a service call in a [script](/docs/scripts) could be changed from this:
@ -211,25 +211,25 @@ to this:
### `androidtv.download` and `androidtv.upload` ### `androidtv.download` and `androidtv.upload`
You can use the `androidtv.download` service to download a file from your Android TV / Fire TV device to your Home Assistant instance. You can use the `androidtv.download` service to download a file from your Android / Fire TV device to your Home Assistant instance.
| Service data attribute | Optional | Description | | Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- | | ---------------------- | -------- | ----------- |
| `entity_id` | no | Name of Android TV / Fire TV entity. | `entity_id` | no | Name of Android / Fire TV entity.
| `device_path` | no | The filepath on the Android TV / Fire TV device. | `device_path` | no | The filepath on the Android / Fire TV device.
| `local_path` | no | The filepath on your Home Assistant instance. | `local_path` | no | The filepath on your Home Assistant instance.
Similarly, you can use the `androidtv.upload` service to upload a file from Home Assistant instance to Android TV / Fire TV devices. Similarly, you can use the `androidtv.upload` service to upload a file from Home Assistant instance to Android / Fire TV devices.
| Service data attribute | Optional | Description | | Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- | | ---------------------- | -------- | ----------- |
| `entity_id` | no | Name(s) of Android TV / Fire TV entities. | `entity_id` | no | Name(s) of Android / Fire TV entities.
| `device_path` | no | The filepath on the Android TV / Fire TV device. | `device_path` | no | The filepath on the Android / Fire TV device.
| `local_path` | no | The filepath on your Home Assistant instance. | `local_path` | no | The filepath on your Home Assistant instance.
## Custom State Detection ## Custom State Detection
The Android TV integration works by polling the Android TV / Fire TV device at a regular interval and collecting a handful of properties. Unfortunately, there is no standard API for determining the state of the device to which all apps adhere. Instead, the backend `androidtv` package uses three of the properties that it collects to determine the state: `audio_state`, `media_session_state`, and `wake_lock_size`. The correct logic for determining the state differs depending on the current app, and the backend `androidtv` package implements app-specific state detection logic for a handful of apps. Of course, it is not feasible to implement custom logic for each and every app in the `androidtv` package. Moreover, the correct state detection logic may differ across devices and device configurations. The Android Debug Bridge integration works by polling the Android / Fire TV device at a regular interval and collecting a handful of properties. Unfortunately, there is no standard API for determining the state of the device to which all apps adhere. Instead, the backend `androidtv` package uses three of the properties that it collects to determine the state: `audio_state`, `media_session_state`, and `wake_lock_size`. The correct logic for determining the state differs depending on the current app, and the backend `androidtv` package implements app-specific state detection logic for a handful of apps. Of course, it is not feasible to implement custom logic for each and every app in the `androidtv` package. Moreover, the correct state detection logic may differ across devices and device configurations.
The solution to this problem is the `state_detection_rules` configuration parameter, which allows you to provide your own rules for state detection. The keys are app IDs, and the values are lists of rules that are evaluated in order. Valid rules are: The solution to this problem is the `state_detection_rules` configuration parameter, which allows you to provide your own rules for state detection. The keys are app IDs, and the values are lists of rules that are evaluated in order. Valid rules are:

View File

@ -0,0 +1,361 @@
---
title: Android TV Remote
description: Instructions on how to integrate Android TV remotes into Home Assistant.
ha_category:
- Remote
ha_release: 2023.5
ha_iot_class: Local Push
ha_config_flow: true
ha_codeowners:
- '@tronikos'
ha_quality_scale: platinum
ha_domain: androidtv_remote
ha_zeroconf: true
ha_platforms:
- diagnostics
- remote
ha_integration_type: device
---
The Android TV Remote integration allows you to control an Android TV device by sending [commands](https://github.com/tronikos/androidtvremote2/blob/main/TvKeys.txt) and launching apps. For this to work, the Android TV device needs to have [Android TV Remote Service](https://play.google.com/store/apps/details?id=com.google.android.tv.remote.service) which is pre-installed on most devices.
For a quick introduction on how to get started with Android TV Remote, check out this video:
<lite-youtube videoid="htbnf5YxAuw" videotitle="Android TV Remote Integration with Home Assistant"></lite-youtube>
{% include integrations/config_flow.md %}
## Entity
This integration adds a `remote` entity which turns on/off the Android TV device.
The entity has the `current_activity` attribute that shows the current foreground app on the Android TV.
## Services
You can use the `remote.turn_off`, `remote.turn_on`, `remote.toggle`, and `remote.send_command` services from the [remote](/integrations/remote/) platform.
For a list of the most common commands that you can send to the Android TV via `remote.send_command`, see: [TvKeys](https://github.com/tronikos/androidtvremote2/blob/main/TvKeys.txt).
For a full list, see [here](https://github.com/tronikos/androidtvremote2/blob/main/src/androidtvremote2/remotemessage.proto#L90).
If `activity` is specified in `remote.turn_on`, it will open the specified URL in the associated app.
Examples of URLs to pass as activity for some popular apps:
| App | URL |
| --- | --- |
| YouTube | https://www.youtube.com
| Netflix | https://www.netflix.com/title
| Prime Video | https://app.primevideo.com
| Disney+ | https://www.disneyplus.com
Examples of service calls:
```yaml
# Open the currently selected item on the Android TV
service: remote.send_command
data:
command: DPAD_CENTER
target:
entity_id: remote.living_room_tv
```
```yaml
# Long press on the currently selected item on the Android TV
service: remote.send_command
data:
command: DPAD_CENTER
hold_secs: 0.5
target:
entity_id: remote.living_room_tv
```
```yaml
# Launch YouTube
service: remote.turn_on
data:
activity: https://www.youtube.com
target:
entity_id: remote.living_room_tv
```
```yaml
# Open a specific YouTube video:
service: remote.turn_on
data:
activity: https://www.youtube.com/watch?v=dQw4w9WgXcQ
target:
entity_id: remote.living_room_tv
```
## Dashboard example
You have to manually create buttons in Lovelace to send commands to the Android TV device or launch apps on it.
Below is an example for you to start with. Many of the buttons support long press.
![Screenshot Android TV Remote example](/images/integrations/androidtv_remote/lovelace_example.png)
{% details "Lovelace example" %}
Replace all instances of `living_room_tv` with your entity ID.
```yaml
type: vertical-stack
cards:
- type: entities
entities:
- entity: remote.living_room_tv
- square: true
columns: 3
type: grid
cards:
- type: button
show_icon: false
tap_action:
action: none
hold_action:
action: none
- type: button
icon: mdi:arrow-up-bold
tap_action:
action: call-service
service: remote.send_command
data:
command: DPAD_UP
target:
entity_id: remote.living_room_tv
hold_action:
action: none
- type: button
show_icon: false
tap_action:
action: none
hold_action:
action: none
- type: button
icon: mdi:arrow-left-bold
tap_action:
action: call-service
service: remote.send_command
data:
command: DPAD_LEFT
target:
entity_id: remote.living_room_tv
hold_action:
action: none
- type: button
icon: mdi:circle
tap_action:
action: call-service
service: remote.send_command
data:
command: DPAD_CENTER
target:
entity_id: remote.living_room_tv
hold_action:
action: call-service
service: remote.send_command
data:
command: DPAD_CENTER
hold_secs: 0.5
target:
entity_id: remote.living_room_tv
- type: button
icon: mdi:arrow-right-bold
tap_action:
action: call-service
service: remote.send_command
data:
command: DPAD_RIGHT
target:
entity_id: remote.living_room_tv
hold_action:
action: none
- type: button
icon: mdi:arrow-left
tap_action:
action: call-service
service: remote.send_command
data:
command: BACK
target:
entity_id: remote.living_room_tv
hold_action:
action: call-service
service: remote.send_command
data:
command: BACK
hold_secs: 0.5
target:
entity_id: remote.living_room_tv
- type: button
icon: mdi:arrow-down-bold
tap_action:
action: call-service
service: remote.send_command
data:
command: DPAD_DOWN
target:
entity_id: remote.living_room_tv
hold_action:
action: none
- type: button
icon: mdi:home-outline
tap_action:
action: call-service
service: remote.send_command
data:
command: HOME
target:
entity_id: remote.living_room_tv
hold_action:
action: call-service
service: remote.send_command
data:
command: HOME
hold_secs: 0.5
target:
entity_id: remote.living_room_tv
- square: false
columns: 3
type: grid
cards:
- type: button
icon: mdi:skip-previous
tap_action:
action: call-service
service: remote.send_command
data:
command: MEDIA_PREVIOUS
target:
entity_id: remote.living_room_tv
hold_action:
action: call-service
service: remote.send_command
data:
command: MEDIA_REWIND
target:
entity_id: remote.living_room_tv
- type: button
icon: mdi:play-pause
tap_action:
action: call-service
service: remote.send_command
data:
command: MEDIA_PLAY_PAUSE
target:
entity_id: remote.living_room_tv
hold_action:
action: call-service
service: remote.send_command
data:
command: MEDIA_STOP
target:
entity_id: remote.living_room_tv
- type: button
icon: mdi:skip-next
tap_action:
action: call-service
service: remote.send_command
data:
command: MEDIA_NEXT
target:
entity_id: remote.living_room_tv
hold_action:
action: call-service
service: remote.send_command
data:
command: MEDIA_FAST_FORWARD
target:
entity_id: remote.living_room_tv
- type: button
icon: mdi:volume-off
tap_action:
action: call-service
service: remote.send_command
data:
command: MUTE
target:
entity_id: remote.living_room_tv
hold_action:
action: none
- type: button
icon: mdi:volume-medium
tap_action:
action: call-service
service: remote.send_command
data:
command: VOLUME_DOWN
target:
entity_id: remote.living_room_tv
hold_action:
action: none
- type: button
icon: mdi:volume-high
tap_action:
action: call-service
service: remote.send_command
data:
command: VOLUME_UP
target:
entity_id: remote.living_room_tv
hold_action:
action: none
- square: false
columns: 4
type: grid
cards:
- type: button
icon: mdi:youtube
tap_action:
action: call-service
service: remote.turn_on
data:
activity: https://www.youtube.com
target:
entity_id: remote.living_room_tv
hold_action:
action: none
- type: button
icon: mdi:netflix
tap_action:
action: call-service
service: remote.turn_on
data:
activity: https://www.netflix.com/title
target:
entity_id: remote.living_room_tv
hold_action:
action: none
- type: picture
image: >-
https://upload.wikimedia.org/wikipedia/commons/thumb/1/11/Amazon_Prime_Video_logo.svg/450px-Amazon_Prime_Video_logo.svg.png
tap_action:
action: call-service
service: remote.turn_on
data:
activity: https://app.primevideo.com
target:
entity_id: remote.living_room_tv
hold_action:
action: none
- type: picture
image: >-
https://upload.wikimedia.org/wikipedia/commons/thumb/3/3e/Disney%2B_logo.svg/440px-Disney%2B_logo.svg.png
tap_action:
action: call-service
service: remote.turn_on
data:
activity: https://www.disneyplus.com
target:
entity_id: remote.living_room_tv
hold_action:
action: none
- type: entity
entity: remote.living_room_tv
attribute: current_activity
- type: media-control
entity: media_player.living_room_tv
```
{% enddetails %}

View File

@ -0,0 +1,40 @@
---
title: Anova
description: Instructions on how to integrate Anova Wi-Fi Sous Vide into home assistant.
ha_category:
- Sensor
ha_iot_class: Cloud Polling
ha_config_flow: true
ha_release: 2023.5
ha_codeowners:
- '@Lash-L'
ha_domain: anova
ha_integration_type: integration
ha_platforms:
- sensor
---
The Anova sensor platform allows you to control [Anova](https://anovaculinary.com/pages/find-your-anova-precision-cooker) sous vides with Wi-Fi capability.
Supported devices (tested):
- AN500-10 (Anova Precision Cooker)
- AN500-US00 (Anova Precision Cooker)
- AN600-10 (Anova Precision Cooker Pro)
The 'nano' versions of the sous vide are not supported, but as long as your app is connected to the sous vide, the data should update. They would be better served using BLE instead of API calls.
To add this platform to your installation, You will need your Anova username and password, and you need to have at least one sous vide connected to your account.
{% include integrations/config_flow.md %}
## Sensor
- Cook Time - How long the sous vide has been cooking in seconds
- Mode - The current mode of the sous vide ("Idle", "Cook", "Low water").
- State - The current state of the sous vide ("Preheating", "Cooking", "Maintaining").
- Target Temperature - The temperature the sous vide is set to heat to.
- Cook Time Remaining - How long is left in the cook in seconds.
- Heater Temperature - The current temperature of the heater.
- Triac Temperature - The current temperature of the triac.
- Water Temperature - The current temperature of the water.

View File

@ -15,7 +15,7 @@ ha_platforms:
ha_integration_type: integration ha_integration_type: integration
--- ---
The `arcam_fmj` integration allows you to control [Arcam FMJ Receivers](https://www.arcam.co.uk/range/fmj.htm) from Home Assistant. The `arcam_fmj` integration allows you to control [Arcam Receivers and Processors](https://www.arcam.co.uk/range/fmj.htm) from Home Assistant.
Supported devices: Supported devices:
@ -41,11 +41,19 @@ Supported devices:
- SA 30 - SA 30
- SR 250 - SR 250
This integration may also work with [JBL](https://www.jblsynthesis.com/products/electronics/) and [AudioControl](https://www.audiocontrol.com/home-audio/) receivers and processors as they share the same firmware as Arcam.
- SDP-55/58
{% include integrations/config_flow.md %} {% include integrations/config_flow.md %}
## Power state ## Power state
Arcam FMJ receivers turn off their network port when in standby, the component will try to reconnect to the receiver every 5 seconds. This means powering on the first zone is not possible over the built-in network connection. Two options for complete power control exists: IR or Serial gateway. Arcam receivers turn off their network port when in standby, the component will try to reconnect to the receiver every 5 seconds. This means powering on the first zone is not possible over the built-in network connection.
Note: Some newer models offer the ability to configure the device to keep the network port active when in standby mode. This can be found under **HDMI Settings** > **HDMI Bypass & IP**. Enabling **HDMI & IP On** will allow full power control from Home Assistant.
Two other options for complete power control exists: IR or Serial gateway.
### IR command ### IR command

View File

@ -0,0 +1,28 @@
---
title: Assist pipeline
description: Assist pipeline integration.
ha_category:
- Voice
ha_iot_class: Local Push
ha_release: '2023.5'
ha_codeowners:
- '@balloob'
- '@synesthesiam'
ha_domain: assist_pipeline
ha_integration_type: integration
ha_quality_scale: internal
ha_platforms:
- select
---
The Assist pipeline integration provides the foundation for the [Assist](/docs/assist/) voice assistant in Home Assistant.
For most users, there is no need to install this integration manually. The Assist pipeline integration is part of the default configuration and is set up automatically if needed by other integrations.
If you are not using the default integration, you need to add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
assist_pipeline:
```
For more information, refer to the procedure on [configuring a pipeline](/docs/assist/voice_remote_local_assistant/).

View File

@ -36,12 +36,10 @@ state over the other. This is set by the binary sensor's device class.
Here are a few examples of this representation in the UI: Here are a few examples of this representation in the UI:
<p class='img'> ![List of binary sensors](/images/screenshots/binary_sensor_classes_icons.png)
<img src='/images/screenshots/binary_sensor_classes_icons.png' />
Example of various device classes icons in `on` and `off` state. The on image Example of various device classes icons in `on` and `off` state. The on image
in this example has `state_color: true` specified in the Entities card in this example has `state_color: true` specified in the Entities card
configuration to receive the icon coloring. configuration to receive the icon coloring.
</p>
The full list of supported binary sensor device classes is below The full list of supported binary sensor device classes is below
*(note: these may also be modified in the [customizing section](/docs/configuration/customizing-devices)).* *(note: these may also be modified in the [customizing section](/docs/configuration/customizing-devices)).*

View File

@ -114,7 +114,8 @@ device:
required: false required: false
type: string type: string
device_class: device_class:
description: Sets the [class of the device](/integrations/binary_sensor/#device-class), changing the device state and icon that is displayed on the frontend. description: Sets the [class of the device](/integrations/binary_sensor/#device-class), changing the device state and icon that is displayed on the frontend. The `device_class` can be `null`.
default: None
required: false required: false
type: string type: string
enabled_by_default: enabled_by_default:
@ -202,7 +203,7 @@ unique_id:
value_template: value_template:
description: "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) that returns a string to be compared to `payload_on`/`payload_off` or an empty string, in which case the MQTT message will be removed. Remove this option when `payload_on` and `payload_off` are sufficient to match your payloads (i.e no pre-processing of original message is required)." description: "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) that returns a string to be compared to `payload_on`/`payload_off` or an empty string, in which case the MQTT message will be removed. Remove this option when `payload_on` and `payload_off` are sufficient to match your payloads (i.e no pre-processing of original message is required)."
required: false required: false
type: string type: template
{% endconfiguration %} {% endconfiguration %}
## Examples ## Examples

View File

@ -86,6 +86,7 @@ If you experience an unreliable Bluetooth connection, installing a short USB ext
- DIGITUS DN-30210-1 (CSR8510A10) - DIGITUS DN-30210-1 (CSR8510A10)
- Enbiawit BT403 (CSR8510A10) - Enbiawit BT403 (CSR8510A10)
- Feasycom FSC-BP119 (CSR8510A10) 📶 - Feasycom FSC-BP119 (CSR8510A10) 📶
- Gold Touch E-USB-BT4 (CSR8510A10)
- HIDEEZ BT0015-01 (CSR8510A10) - HIDEEZ BT0015-01 (CSR8510A10)
- Maxesla CSR 4.0 (CSR8510A10) - Maxesla CSR 4.0 (CSR8510A10)
- Nuu You BT40 (CSR8510A10) - Nuu You BT40 (CSR8510A10)

View File

@ -7,7 +7,9 @@ ha_category:
- Car - Car
- Lock - Lock
- Notifications - Notifications
- Number
- Presence Detection - Presence Detection
- Select
- Sensor - Sensor
ha_release: 0.64 ha_release: 0.64
ha_iot_class: Cloud Polling ha_iot_class: Cloud Polling
@ -23,6 +25,8 @@ ha_platforms:
- diagnostics - diagnostics
- lock - lock
- notify - notify
- number
- select
- sensor - sensor
ha_integration_type: integration ha_integration_type: integration
--- ---
@ -45,6 +49,8 @@ This integration provides the following platforms:
- Sensors: Mileage, remaining range, remaining fuel, charging time remaining (electric cars), charging status (electric cars), remaining range electric (electric cars). - Sensors: Mileage, remaining range, remaining fuel, charging time remaining (electric cars), charging status (electric cars), remaining range electric (electric cars).
- [Notifications](/integrations/bmw_connected_drive/#notifications): Send Points of Interest (POI) to your car. - [Notifications](/integrations/bmw_connected_drive/#notifications): Send Points of Interest (POI) to your car.
- [Buttons](/integrations/bmw_connected_drive/#buttons): Turn on air condition, sound the horn, flash the lights, update the vehicle location and update the state. - [Buttons](/integrations/bmw_connected_drive/#buttons): Turn on air condition, sound the horn, flash the lights, update the vehicle location and update the state.
- [Selects](/integrations/bmw_connected_drive/#selects): Display and control charging related settings for (PH)EVs.
- [Numbers](/integrations/bmw_connected_drive/#numbers): Display and control numeric charging related settings for (PH)EVs.
## Configuration ## Configuration
@ -134,6 +140,23 @@ The `button.<your_vehicle>_find_vehicle` button requests the vehicle to update t
The `button.<vehicle_model>_refresh_from_cloud` button fetches the last state of the vehicles of all your accounts from the BMW server. This does *not* trigger an update from the vehicle; it gets the data from the BMW servers. So this service does *not* interact with your vehicles. The `button.<vehicle_model>_refresh_from_cloud` button fetches the last state of the vehicles of all your accounts from the BMW server. This does *not* trigger an update from the vehicle; it gets the data from the BMW servers. So this service does *not* interact with your vehicles.
## Selects
If you have a (PH)EV, you can control the charging process through Home Assistant. The selects are created automatically depending on your vehicle's capabilities and can be pressed/executed from the UI or using the `select.select_option` service. For more information, please see the [select documentation](/integrations/select/).
Using these selects will impact the state of your vehicle. Use them with care!
- **Charging Mode**: Vehicle can be set to `IMMEDIATE_CHARGING` (charge as soon as plugged in) or `DELAYED_CHARGING` (charge only if within charging window). It can be used to start/stop charging if the charging window is set accordingly.
- **AC Charging Limit**: The maximum current a vehicle will charge with. Not available on all EVs.
## Numbers
If you have a (PH)EV, you can control the charging process through Home Assistant. The number entities are created automatically depending on your vehicle's capabilities and can be changed from the UI or using the `number.set_value` service. For more information, please see the [number documentation](/integrations/number/).
Using these selects will impact the state of your vehicle, use them with care!
- **Target SoC**: Vehicle will charge until this battery level is reached. Not available on all EVs.
## Disclaimer ## Disclaimer
This software is not affiliated with or endorsed by BMW Group. This software is not affiliated with or endorsed by BMW Group.

View File

@ -2,9 +2,13 @@
title: Brottsplatskartan title: Brottsplatskartan
description: Instructions on how to integrate brottsplatskartan.se into Home Assistant. description: Instructions on how to integrate brottsplatskartan.se into Home Assistant.
ha_category: ha_category:
- Sensor
- Social - Social
ha_release: 0.85 ha_release: 0.85
ha_iot_class: Cloud Polling ha_iot_class: Cloud Polling
ha_config_flow: true
ha_codeowners:
- '@gjohansson-ST'
ha_domain: brottsplatskartan ha_domain: brottsplatskartan
ha_platforms: ha_platforms:
- sensor - sensor
@ -13,36 +17,7 @@ ha_integration_type: integration
The `brottsplatskartan` sensor allows one to track reported incidents occurring in a given area. Incidents include anything reported to [Brottsplatskartan](https://brottsplatskartan.se). The sensor only counts incidents from the current day. The `brottsplatskartan` sensor allows one to track reported incidents occurring in a given area. Incidents include anything reported to [Brottsplatskartan](https://brottsplatskartan.se). The sensor only counts incidents from the current day.
## Configuration {% include integrations/config_flow.md %}
To enable this sensor, add the following lines to your `configuration.yaml`.
```yaml
sensor:
- platform: brottsplatskartan
```
{% configuration %}
name:
description: Custom name for the sensor.
required: false
type: string
default: Brottsplatskartan
area:
description: Area for sensor to monitor
required: false
type: string
latitude:
description: Latitude for sensor.
required: false
type: float
default: Your home zone latitude defined in your configuration.
longitude:
description: Longitude for sensor.
required: false
type: float
default: Your home zone longitude defined in your configuration.
{% endconfiguration %}
## Notes ## Notes

View File

@ -112,8 +112,9 @@ device:
required: false required: false
type: string type: string
device_class: device_class:
description: The [type/class](/integrations/button/#device-class) of the button to set the icon in the frontend. description: The [type/class](/integrations/button/#device-class) of the button to set the icon in the frontend. The `device_class` can be `null`.
required: false required: false
default: None
type: device_class type: device_class
default: None default: None
enabled_by_default: enabled_by_default:

View File

@ -180,3 +180,17 @@ data:
start_date: "2022-10-01" start_date: "2022-10-01"
end_date: "2022-10-02" end_date: "2022-10-02"
``` ```
Home Assistant Calendars do not allow zero duration Calendar events. The following would create a one minute long event starting "now". This could be used to record an external event in a Calendar.
{% raw %}
```yaml
service: calendar.create_event
target:
entity_id: calendar.device_automation_schedules
data:
summary: "Example"
start_date_time: "{{ now() }}"
end_date_time: "{{ now() + timedelta(minutes=1) }}"
```
{% endraw %}

View File

@ -290,7 +290,7 @@ preset_mode_state_topic:
preset_mode_value_template: preset_mode_value_template:
description: Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract the `preset_mode` value from the payload received on `preset_mode_state_topic`. description: Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract the `preset_mode` value from the payload received on `preset_mode_state_topic`.
required: false required: false
type: string type: template
preset_modes: preset_modes:
description: List of preset modes this climate is supporting. Common examples include `eco`, `away`, `boost`, `comfort`, `home`, `sleep` and `activity`. description: List of preset modes this climate is supporting. Common examples include `eco`, `away`, `boost`, `comfort`, `home`, `sleep` and `activity`.
required: false required: false
@ -342,7 +342,7 @@ target_humidity_state_topic:
target_humidity_state_template: target_humidity_state_template:
description: Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract a value for the climate `target_humidity` state. description: Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract a value for the climate `target_humidity` state.
required: false required: false
type: string type: template
temperature_command_template: temperature_command_template:
description: A template to render the value sent to the `temperature_command_topic` with. description: A template to render the value sent to the `temperature_command_topic` with.
required: false required: false

View File

@ -1,8 +1,11 @@
--- ---
title: Command Line title: Command Line
description: Instructions on how to integrate Command binary sensors within Home Assistant. description: Instructions on how to integrate the Command Line utility within Home Assistant.
ha_category: ha_category:
- Binary Sensor - Binary Sensor
- Cover
- Notifications
- Sensor
- Utility - Utility
ha_release: 0.12 ha_release: 0.12
ha_iot_class: Local Polling ha_iot_class: Local Polling
@ -16,9 +19,9 @@ ha_platforms:
ha_integration_type: integration ha_integration_type: integration
--- ---
The `command_line` binary sensor platform issues specific commands to get data. The `command_line` offers functionality that issues specific commands to get data or to control a device.
## Configuration ## Binary sensor
To use your Command binary sensor in your installation, add the following to your `configuration.yaml` file: To use your Command binary sensor in your installation, add the following to your `configuration.yaml` file:
@ -40,45 +43,282 @@ command:
description: The action to take to get the value. description: The action to take to get the value.
required: true required: true
type: string type: string
command_timeout:
description: Defines number of seconds for command timeout.
required: false
type: integer
default: 15
device_class:
description: Sets the [class of the device](/integrations/binary_sensor/), changing the device state and icon that is displayed on the frontend.
required: false
type: string
name: name:
description: Let you overwrite the name of the device. description: Let you overwrite the name of the device.
required: false required: false
type: string type: string
default: "*name* from the device" default: "*name* from the device"
device_class:
description: Sets the [class of the device](/integrations/binary_sensor/), changing the device state and icon that is displayed on the frontend.
required: false
type: string
payload_on: payload_on:
description: The payload that represents enabled state. description: The payload that represents enabled state.
required: false required: false
type: string type: string
default: 'ON' default: 'ON'
unique_id:
description: An ID that uniquely identifies this binary sensor. Set this to a unique value to allow customization through the UI.
required: false
type: string
payload_off: payload_off:
description: The payload that represents disabled state. description: The payload that represents disabled state.
required: false required: false
type: string type: string
default: 'OFF' default: 'OFF'
scan_interval:
description: Defines number of seconds for polling interval.
required: false
type: integer
default: 60
value_template: value_template:
description: Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract a value from the payload. description: Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract a value from the payload.
required: false required: false
type: string type: string
{% endconfiguration %}
## Cover
A `command_line`cover platform that issues specific commands when it is moved up, down and stopped. It allows anyone to integrate any type of cover into Home Assistant that can be controlled from the command line.
To enable a command line cover in your installation, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
cover:
- platform: command_line
covers:
garage_door:
command_open: move_command up garage
command_close: move_command down garage
command_stop: move_command stop garage
```
{% configuration %}
covers:
description: The array that contains all command line covers.
required: true
type: list
keys:
identifier:
description: Name of the command line cover as slug. Multiple entries are possible.
required: true
type: list
keys:
command_close:
description: The action to close the cover.
required: true
default: true
type: string
command_open:
description: The command to open the cover.
required: true
default: true
type: string
command_state:
description: If given, this will act as a sensor that runs in the background and updates the state of the cover. If the command returns a `0` the indicates the cover is fully closed, whereas a 100 indicates the cover is fully open.
required: false
type: string
command_stop:
description: The action to stop the cover.
required: true
default: true
type: string
command_timeout:
description: Defines number of seconds for command timeout.
required: false
type: integer
default: 15
friendly_name:
description: The name used to display the cover in the frontend.
required: false
type: string
scan_interval:
description: Defines number of seconds for polling interval.
required: false
type: integer
default: 60
unique_id:
description: An ID that uniquely identifies this cover. Set this to a unique value to allow customization through the UI.
required: false
type: string
value_template:
description: if specified, `command_state` will ignore the result code of the command but the template evaluating will indicate the position of the cover. For example, if your `command_state` returns a string "open", using `value_template` as in the example configuration above will allow you to translate that into the valid state `100`.
required: false
default: "'{% raw %}{{ value }}{% endraw%}'"
type: template
{% endconfiguration %}
## Notify
The `command_line` platform allows you to use external tools for notifications from Home Assistant. The message will be passed in as STDIN.
To enable those notifications in your installation, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
notify:
- name: NOTIFIER_NAME
platform: command_line
command: "espeak -vmb/mb-us1"
```
{% configuration %}
name:
description: Setting the optional parameter `name` allows multiple notifiers to be created. The notifier will bind to the service `notify.NOTIFIER_NAME`.
required: false
default: notify
type: string
command:
description: The action to take.
required: true
type: string
command_timeout:
description: Defines number of seconds for command timeout.
required: false
type: integer
default: 15
{% endconfiguration %}
To use notifications, please see the [getting started with automation page](/getting-started/automation/).
## Sensor
To enable it, add the following lines to your `configuration.yaml`:
```yaml
# Example configuration.yaml entry
sensor:
- platform: command_line
command: SENSOR_COMMAND
```
{% configuration %}
command:
description: The action to take to get the value.
required: true
type: string
command_timeout:
description: Defines number of seconds for command timeout
required: false
type: integer
default: 15
json_attributes:
description: Defines a list of keys to extract values from a JSON dictionary result and then set as sensor attributes.
required: false
type: [string, list]
name:
description: Name of the command sensor.
required: false
type: string
unique_id:
description: An ID that uniquely identifies this sensor. Set this to a unique value to allow customization through the UI.
required: false
type: string
scan_interval: scan_interval:
description: Defines number of seconds for polling interval. description: Defines number of seconds for polling interval.
required: false required: false
type: integer type: integer
default: 60 default: 60
command_timeout: unit_of_measurement:
description: Defines the unit of measurement of the sensor, if any.
required: false
type: string
value_template:
description: "Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract a value from the payload."
required: false
type: string
{% endconfiguration %}
## Switch
The `command_line` switch platform issues specific commands when it is turned on
and off. This might very well become our most powerful platform as it allows
anyone to integrate any type of switch into Home Assistant that can be
controlled from the command line, including calling other scripts!
To enable it, add the following lines to your `configuration.yaml`:
```yaml
# Example configuration.yaml entry
switch:
- platform: command_line
switches:
kitchen_light:
command_on: switch_command on kitchen
command_off: switch_command off kitchen
```
{% configuration %}
switches:
description: The array that contains all command switches.
required: true
type: map
keys:
identifier:
description: Name of the command switch as slug. Multiple entries are possible.
required: true
type: map
keys:
command_on:
description: The action to take for on.
required: true
type: string
command_off:
description: The action to take for off.
required: true
type: string
command_state:
description: "If given, this command will be run. Returning a result code `0` will indicate that the switch is on."
required: false
type: string
command_timeout:
description: Defines number of seconds for command timeout. description: Defines number of seconds for command timeout.
required: false required: false
type: integer type: integer
default: 15 default: 15
unique_id: friendly_name:
description: An ID that uniquely identifies this binary sensor. Set this to a unique value to allow customization through the UI. description: The name used to display the switch in the frontend.
required: false
type: string
icon_template:
description: Defines a template for the icon of the entity.
required: false
type: template
scan_interval:
description: Defines number of seconds for polling interval.
required: false
type: integer
default: 60
unique_id:
description: An ID that uniquely identifies this switch. Set this to a unique value to allow customization through the UI.
required: false
type: string
value_template:
description: "If specified, `command_state` will ignore the result code of the command but the template evaluating to `true` will indicate the switch is on."
required: false required: false
type: string type: string
{% endconfiguration %} {% endconfiguration %}
A note on `friendly_name`:
When set, the `friendly_name` had been previously used for API calls and backend
configuration instead of the `object_id` ("identifier"), but
[this behavior is changing](https://github.com/home-assistant/home-assistant/pull/4343)
to make the `friendly_name` for display purposes only. This allows users to set
an `identifier` that emphasizes uniqueness and predictability for API and configuration
purposes but have a prettier `friendly_name` still show up in the UI. As an
additional benefit, if a user wanted to change the `friendly_name` / display
name (e.g., from "Kitchen Lightswitch" to "Kitchen Switch" or
"Living Room Light", or remove the `friendly_name` altogether), they could
do so without needing to change existing automations or API calls.
See aREST device below for an example.
## Execution ## Execution
The `command` is executed within the [configuration directory](/docs/configuration/). The `command` is executed within the [configuration directory](/docs/configuration/).
@ -91,9 +331,9 @@ If you are using [Home Assistant Operating System](https://github.com/home-assis
With a `0` exit code, the output (stdout) of the command is used as `value`. In case a command results in a non `0` exit code or is terminated by the `command_timeout`, the result is only logged to Home Assistant log and the sensors value is not updated. With a `0` exit code, the output (stdout) of the command is used as `value`. In case a command results in a non `0` exit code or is terminated by the `command_timeout`, the result is only logged to Home Assistant log and the sensors value is not updated.
## Examples ## Examples binary sensor platform
In this section you find some real-life examples of how to use this sensor. In this section you find some real-life examples of how to use the command_line sensor.
### SickRage ### SickRage
@ -160,6 +400,279 @@ binary_sensor:
payload_off: "inactive" payload_off: "inactive"
``` ```
## Example cover platform
{% raw %}
```yaml
# Example configuration.yaml entry
cover:
- platform: command_line
covers:
garage_door:
command_open: move_command up garage
command_close: move_command down garage
command_stop: move_command stop garage
command_state: state_command garage
value_template: >
{% if value == 'open' %}
100
{% elif value == 'closed' %}
0
{% endif %}
```
## Examples sensor platform
In this section you find some real-life examples of how to use this sensor.
### CPU temperature
Thanks to the [`proc`](https://en.wikipedia.org/wiki/Procfs) file system, various details about a system can be retrieved. Here the CPU temperature is of interest. Add something similar to your `configuration.yaml` file:
{% raw %}
```yaml
# Example configuration.yaml entry
sensor:
- platform: command_line
name: CPU Temperature
command: "cat /sys/class/thermal/thermal_zone0/temp"
# If errors occur, make sure configuration file is encoded as UTF-8
unit_of_measurement: "°C"
value_template: "{{ value | multiply(0.001) | round(1) }}"
```
{% endraw %}
### Monitoring failed login attempts on Home Assistant
If you'd like to know how many failed login attempts are made to Home Assistant, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
sensor:
- platform: command_line
name: badlogin
command: "grep -c 'Login attempt' /home/hass/.homeassistant/home-assistant.log"
```
Make sure to configure the [Logger integration](/integrations/logger) to monitor the [HTTP integration](/integrations/http/) at least the `warning` level.
```yaml
# Example working logger settings that works
logger:
default: critical
logs:
homeassistant.components.http: warning
```
### Details about the upstream Home Assistant release
You can see directly in the frontend (**Developer tools** -> **About**) what release of Home Assistant you are running. The Home Assistant releases are available on the [Python Package Index](https://pypi.python.org/pypi). This makes it possible to get the current release.
```yaml
sensor:
- platform: command_line
command: python3 -c "import requests; print(requests.get('https://pypi.python.org/pypi/homeassistant/json').json()['info']['version'])"
name: HA release
```
### Read value out of a remote text file
If you own devices which are storing values in text files which are accessible over HTTP then you can use the same approach as shown in the previous section. Instead of looking at the JSON response we directly grab the sensor's value.
```yaml
sensor:
- platform: command_line
command: python3 -c "import requests; print(requests.get('http://remote-host/sensor_data.txt').text)"
name: File value
```
### Use an external script
The example is doing the same as the [aREST sensor](/integrations/arest#sensor) but with an external Python script. It should give you an idea about interfacing with devices which are exposing a RESTful API.
The one-line script to retrieve a value is shown below. Of course it would be possible to use this directly in the `configuration.yaml` file but need extra care about the quotation marks.
```bash
python3 -c "import requests; print(requests.get('http://10.0.0.48/analog/2').json()['return_value'])"
```
The script (saved as `arest-value.py`) that is used looks like the example below.
```python
#!/usr/bin/python3
from requests import get
response = get("http://10.0.0.48/analog/2")
print(response.json()["return_value"])
```
To use the script you need to add something like the following to your `configuration.yaml` file.
```yaml
# Example configuration.yaml entry
sensor:
- platform: command_line
name: Brightness
command: "python3 /path/to/script/arest-value.py"
```
### Usage of templating in `command:`
[Templates](/docs/configuration/templating/) are supported in the `command` configuration variable. This could be used if you want to include the state of a specific sensor as an argument to your external script.
{% raw %}
```yaml
# Example configuration.yaml entry
sensor:
- platform: command_line
name: wind direction
command: "sh /home/pi/.homeassistant/scripts/wind_direction.sh {{ states('sensor.wind_direction') }}"
unit_of_measurement: "Direction"
```
{% endraw %}
### Usage of JSON attributes in command output
The example shows how you can retrieve multiple values with one sensor (where the additional values are attributes) by using `value_json` and `json_attributes`.
{% raw %}
```yaml
# Example configuration.yaml entry
sensor:
- platform: command_line
name: JSON time
json_attributes:
- date
- milliseconds_since_epoch
command: "python3 /home/pi/.homeassistant/scripts/datetime.py"
value_template: "{{ value_json.time }}"
```
{% endraw %}
## Example switch platform
### Change the icon when a state changes
This example demonstrates how to use template to change the icon as its state changes. This icon is referencing its own state.
{% raw %}
```yaml
switch:
- platform: command_line
switches:
driveway_sensor_motion:
friendly_name: Driveway outside sensor
command_on: >
curl -X PUT -d '{"on":true}' "http://ip_address/api/sensors/27/config/"
command_off: >
curl -X PUT -d '{"on":false}' "http://ip_address/api/sensors/27/config/"
command_state: curl http://ip_address/api/sensors/27/
value_template: >
{{value_json.config.on}}
icon_template: >
{% if value_json.config.on == true %} mdi:toggle-switch
{% else %} mdi:toggle-switch-off
{% endif %}
```
{% endraw %}
### aREST device
The example below is doing the same as the
[aREST switch](/integrations/arest#switch).
The command line tool [`curl`](https://curl.haxx.se/) is used to toggle a pin
which is controllable through REST.
{% raw %}
```yaml
# Example configuration.yaml entry
switch:
- platform: command_line
switches:
arest_pin_four:
command_on: "/usr/bin/curl -X GET http://192.168.1.10/digital/4/1"
command_off: "/usr/bin/curl -X GET http://192.168.1.10/digital/4/0"
command_state: "/usr/bin/curl -X GET http://192.168.1.10/digital/4"
value_template: '{{ value == "1" }}'
friendly_name: Kitchen Lightswitch
```
{% endraw %}
Given this example, in the UI one would see the `friendly_name` of
"Kitchen Light". However, the `identifier` is `arest_pin_four`, making the
`entity_id` `switch.arest_pin_four`, which is what one would use in
[`automation`](/integrations/automation/) or in [API calls](/developers/).
### Shutdown your local host
This switch will shutdown your system that is hosting Home Assistant.
<div class='note warning'>
This switch will shutdown your host immediately, there will be no confirmation.
</div>
```yaml
# Example configuration.yaml entry
switch:
- platform: command_line
switches:
home_assistant_system_shutdown:
command_off: "/usr/sbin/poweroff"
```
### Control your VLC player
This switch will control a local VLC media player
([Source](https://community.home-assistant.io/t/vlc-player/106)).
```yaml
# Example configuration.yaml entry
switch:
- platform: command_line
switches:
vlc:
command_on: "cvlc 1.mp3 vlc://quit &"
command_off: "pkill vlc"
```
### Control Foscam Motion Sensor
This switch will control the motion sensor of Foscam Webcams which Support CGI
Commands ([Source](https://www.iltucci.com/blog/wp-content/uploads/2018/12/Foscam-IPCamera-CGI-User-Guide-V1.0.4.pdf)).
This switch supports statecmd,
which checks the current state of motion detection.
{% raw %}
```yaml
# Example configuration.yaml entry
switch:
- platform: command_line
switches:
foscam_motion:
command_on: 'curl -k "https://ipaddress:443/cgi-bin/CGIProxy.fcgi?cmd=setMotionDetectConfig&isEnable=1&usr=admin&pwd=password"'
command_off: 'curl -k "https://ipaddress:443/cgi-bin/CGIProxy.fcgi?cmd=setMotionDetectConfig&isEnable=0&usr=admin&pwd=password"'
command_state: 'curl -k --silent "https://ipaddress:443/cgi-bin/CGIProxy.fcgi?cmd=getMotionDetectConfig&usr=admin&pwd=password" | grep -oP "(?<=isEnable>).*?(?=</isEnable>)"'
value_template: '{{ value == "1" }}'
```
{% endraw %}
- Replace admin and password with an "Admin" privileged Foscam user
- Replace ipaddress with the local IP address of your Foscam
## Services ## Services
Available services: `reload`. Available services: `reload`.

View File

@ -14,7 +14,7 @@ ha_platforms:
ha_integration_type: integration ha_integration_type: integration
--- ---
The Compensation integration consumes the state from other sensors. It exports the compensated value as state and the following values as attributes: `entity_id` and `coefficients`. A single polynomial, linear by default, is fit to all data points provided. The Compensation {% term integration %} consumes the {% term state %} from other {% term sensors %}. It exports the compensated value as state in a separate {% term entity %} and the following values as attributes: `entity_id` and `coefficients`. A single polynomial, linear by default, is fit to all data points provided.
## Configuration ## Configuration

View File

@ -33,7 +33,7 @@ In English, you can say things like "turn on kitchen lights" or "turn off lights
## Adding custom sentences ## Adding custom sentences
You can add your own [sentence templates](https://developers.home-assistant.io/docs/voice/intent-recognition/template-sentence-syntax) to teach Home Assistant about new sentences. These sentences can work with the [built-in intents](https://developers.home-assistant.io/docs/intent_builtin/) or trigger a custom action by defining custom intents with the [intent script integration](/integrations/intent_script/). You can add your own [sentence templates](https://developers.home-assistant.io/docs/voice/intent-recognition/template-sentence-syntax) to teach Home Assistant about new sentences. These sentences can work with the [built-in intents](https://developers.home-assistant.io/docs/intent_builtin/) or trigger a custom action by defining custom {% term intents %} with the [intent script integration](/integrations/intent_script/).
To get started, create a `custom_sentences/<language>` directory in your Home Assistant `config` directory where `<language>` is the [language code](https://developers.home-assistant.io/docs/voice/intent-recognition/supported-languages) of your language, such as `en` for English. These YAML files are automatically merged, and may contain intents, lists, or expansion rules. To get started, create a `custom_sentences/<language>` directory in your Home Assistant `config` directory where `<language>` is the [language code](https://developers.home-assistant.io/docs/voice/intent-recognition/supported-languages) of your language, such as `en` for English. These YAML files are automatically merged, and may contain intents, lists, or expansion rules.
@ -53,7 +53,7 @@ intents:
{% endraw %} {% endraw %}
To teach Home Assistant how to handle the custom `CustomOutsideHumidity` intent, create an `intent_script` entry in your `configuration.yaml` file: To teach Home Assistant how to handle the custom `CustomOutsideHumidity` {% term intent %}, create an `intent_script` entry in your `configuration.yaml` file:
{% raw %} {% raw %}
@ -72,7 +72,7 @@ More complex [actions](/docs/scripts/) can be done in `intent_script`, such as c
## Extending built-in intents ## Extending built-in intents
Extending the built-in intents, such as `HassTurnOn` and `HassTurnOff`, can be done as well. Extending the built-in {% term intents %}, such as `HassTurnOn` and `HassTurnOff`, can be done as well.
For example, create the file `config/custom_sentences/en/on_off.yaml` and add: For example, create the file `config/custom_sentences/en/on_off.yaml` and add:

View File

@ -1,31 +0,0 @@
---
title: Coronavirus (COVID-19)
description: Instructions on how to integrate the Coronavirus sensors within Home Assistant.
ha_category:
- Health
ha_release: 0.106
ha_iot_class: Cloud Polling
ha_config_flow: true
ha_codeowners:
- '@home-assistant/core'
ha_domain: coronavirus
ha_platforms:
- sensor
ha_integration_type: integration
---
In December 2019, an outbreak of a novel Coronavirus, also called severe acute
respiratory syndrome coronavirus-2 (SARS-CoV-2), began in the Wuhan region of
China. This virus can cause the COVID-19 disease.
This novel Coronavirus is spreading globally at a disturbing rate, which keeps
everybody on top of the news. The media worldwide is covering the spread of
the virus constantly, and a lot of people are tracking the number of cases
in their country.
The Coronavirus integration tracks the number of people that are confirmed with,
recovered from, and deceased caused by the virus in your country, or worldwide.
The data is sourced from the [Johns Hopkins University](https://www.arcgis.com/apps/opsdashboard/index.html#/bda7594740fd40299423467b48e9ecf6).
{% include integrations/config_flow.md %}

View File

@ -18,7 +18,7 @@ The `counter` integration allows one to count occurrences fired by automations.
The preferred way to configure counter helpers is via the user interface. To add one, go to The preferred way to configure counter helpers is via the user interface. To add one, go to
**{% my helpers title="Settings -> Devices & Services -> Helpers" %}** and click the add button; **{% my helpers title="Settings -> Devices & Services -> Helpers" %}** and click the add button;
next choose the "**Counter**" option. next choose the **{% my config_flow_start domain=counter title="Counter" %}** option.
To be able to add **Helpers** via the user interface you should have 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_config:` in your `configuration.yaml`, it should already be there by

View File

@ -1,102 +0,0 @@
---
title: "Command Line Cover"
description: "How to control a cover with the command line."
ha_category:
- Cover
ha_release: 0.14
ha_iot_class: Local Polling
ha_domain: command_line
---
A `command_line`cover platform that issues specific commands when it is moved up, down and stopped. It allows anyone to integrate any type of cover into Home Assistant that can be controlled from the command line.
To enable a command line cover in your installation, add the following to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
cover:
- platform: command_line
covers:
garage_door:
command_open: move_command up garage
command_close: move_command down garage
command_stop: move_command stop garage
```
{% configuration %}
covers:
description: The array that contains all command line covers.
required: true
type: list
keys:
identifier:
description: Name of the command line cover as slug. Multiple entries are possible.
required: true
type: list
keys:
command_open:
description: The command to open the cover.
required: true
default: true
type: string
command_close:
description: The action to close the cover.
required: true
default: true
type: string
command_stop:
description: The action to stop the cover.
required: true
default: true
type: string
command_state:
description: If given, this will act as a sensor that runs in the background and updates the state of the cover. If the command returns a `0` the indicates the cover is fully closed, whereas a 100 indicates the cover is fully open.
required: false
type: string
value_template:
description: if specified, `command_state` will ignore the result code of the command but the template evaluating will indicate the position of the cover. For example, if your `command_state` returns a string "open", using `value_template` as in the example configuration above will allow you to translate that into the valid state `100`.
required: false
default: "'{% raw %}{{ value }}{% endraw%}'"
type: template
friendly_name:
description: The name used to display the cover in the frontend.
required: false
type: string
command_timeout:
description: Defines number of seconds for command timeout.
required: false
type: integer
default: 15
unique_id:
description: An ID that uniquely identifies this cover. Set this to a unique value to allow customization through the UI.
required: false
type: string
{% endconfiguration %}
## Examples
In this section you find some real-life examples of how to use this sensor.
### Full configuration
{% raw %}
```yaml
# Example configuration.yaml entry
cover:
- platform: command_line
covers:
garage_door:
command_open: move_command up garage
command_close: move_command down garage
command_stop: move_command stop garage
command_state: state_command garage
value_template: >
{% if value == 'open' %}
100
{% elif value == 'closed' %}
0
{% endif %}
```
{% endraw %}

View File

@ -15,7 +15,7 @@ Home Assistant can give you an interface to control covers such as rollershutter
## Device Class ## Device Class
The way these sensors are displayed in the frontend can be modified in the [customize section](/docs/configuration/customizing-devices/). The following device classes are supported for covers: The way these {% term sensors %} are displayed in the {% term frontend %} can be modified in the [customize section](/docs/configuration/customizing-devices/). The following device classes are supported for covers:
- **None**: Generic cover. This is the default and doesn't need to be set. - **None**: Generic cover. This is the default and doesn't need to be set.
- **awning**: Control of an awning, such as an exterior retractable window, door, or patio cover. - **awning**: Control of an awning, such as an exterior retractable window, door, or patio cover.
@ -31,7 +31,8 @@ The way these sensors are displayed in the frontend can be modified in the [cust
Here are a few examples of this representation in the UI: Here are a few examples of this representation in the UI:
<p class='img'><img src='/images/screenshots/cover_classes_icons.png' />Example of various device classes icons in `open` and `closed` state. The open image in this example has `state_color: true` specified in the Entities card configuration to receive the icon coloring.</p> ![List of cover examples](/images/screenshots/cover_classes_icons.png)
Example of various device classes icons in `open` and `closed` state. The open image in this example has `state_color: true` specified in the Entities card configuration to receive the icon coloring.
## Services ## Services
@ -43,6 +44,19 @@ Available services: `cover.open_cover`, `cover.close_cover`, `cover.stop_cover`,
| ---------------------- | -------- | ----------- | | ---------------------- | -------- | ----------- |
| `entity_id` | yes | String or list of strings that point at `entity_id`'s of covers. Use `entity_id: all` to target all. | `entity_id` | yes | String or list of strings that point at `entity_id`'s of covers. Use `entity_id: all` to target all.
#### Automation example
```yaml
automation:
trigger:
platform: time
at: "07:15:00"
action:
- service: cover.open_cover
target:
entity_id: cover.demo
```
### Service `cover.set_cover_position` ### Service `cover.set_cover_position`
Set cover position of one or multiple covers. Set cover position of one or multiple covers.

View File

@ -125,7 +125,8 @@ device:
required: false required: false
type: string type: string
device_class: device_class:
description: Sets the [class of the device](/integrations/cover/), changing the device state and icon that is displayed on the frontend. description: Sets the [class of the device](/integrations/cover/), changing the device state and icon that is displayed on the frontend. The `device_class` can be `null`.
default: None
required: false required: false
type: string type: string
enabled_by_default: enabled_by_default:
@ -207,7 +208,7 @@ position_open:
position_template: position_template:
description: "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) that can be used to extract the payload for the `position_topic` topic. Within the template the following variables are available: `entity_id`, `position_open`; `position_closed`; `tilt_min`; `tilt_max`. The `entity_id` can be used to reference the entity's attributes with help of the [states](/docs/configuration/templating/#states) template function;" description: "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) that can be used to extract the payload for the `position_topic` topic. Within the template the following variables are available: `entity_id`, `position_open`; `position_closed`; `tilt_min`; `tilt_max`. The `entity_id` can be used to reference the entity's attributes with help of the [states](/docs/configuration/templating/#states) template function;"
required: false required: false
type: string type: template
position_topic: position_topic:
description: The MQTT topic subscribed to receive cover position messages. description: The MQTT topic subscribed to receive cover position messages.
required: false required: false
@ -225,7 +226,7 @@ retain:
set_position_template: set_position_template:
description: "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to define the position to be sent to the `set_position_topic` topic. Incoming position value is available for use in the template `{% raw %}{{ position }}{% endraw %}`. Within the template the following variables are available: `entity_id`, `position`, the target position in percent; `position_open`; `position_closed`; `tilt_min`; `tilt_max`. The `entity_id` can be used to reference the entity's attributes with help of the [states](/docs/configuration/templating/#states) template function;" description: "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to define the position to be sent to the `set_position_topic` topic. Incoming position value is available for use in the template `{% raw %}{{ position }}{% endraw %}`. Within the template the following variables are available: `entity_id`, `position`, the target position in percent; `position_open`; `position_closed`; `tilt_min`; `tilt_max`. The `entity_id` can be used to reference the entity's attributes with help of the [states](/docs/configuration/templating/#states) template function;"
required: false required: false
type: string type: template
set_position_topic: set_position_topic:
description: "The MQTT topic to publish position commands to. You need to set position_topic as well if you want to use position topic. Use template if position topic wants different values than within range `position_closed` - `position_open`. If template is not defined and `position_closed != 100` and `position_open != 0` then proper position value is calculated from percentage position." description: "The MQTT topic to publish position commands to. You need to set position_topic as well if you want to use position topic. Use template if position topic wants different values than within range `position_closed` - `position_open`. If template is not defined and `position_closed != 100` and `position_open != 0` then proper position value is calculated from percentage position."
required: false required: false
@ -267,7 +268,7 @@ tilt_closed_value:
tilt_command_template: tilt_command_template:
description: "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) that can be used to extract the payload for the `tilt_command_topic` topic. Within the template the following variables are available: `entity_id`, `tilt_position`, the target tilt position in percent; `position_open`; `position_closed`; `tilt_min`; `tilt_max`. The `entity_id` can be used to reference the entity's attributes with help of the [states](/docs/configuration/templating/#states) template function;" description: "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) that can be used to extract the payload for the `tilt_command_topic` topic. Within the template the following variables are available: `entity_id`, `tilt_position`, the target tilt position in percent; `position_open`; `position_closed`; `tilt_min`; `tilt_max`. The `entity_id` can be used to reference the entity's attributes with help of the [states](/docs/configuration/templating/#states) template function;"
required: false required: false
type: string type: template
tilt_command_topic: tilt_command_topic:
description: The MQTT topic to publish commands to control the cover tilt. description: The MQTT topic to publish commands to control the cover tilt.
required: false required: false
@ -295,7 +296,7 @@ tilt_optimistic:
tilt_status_template: tilt_status_template:
description: "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) that can be used to extract the payload for the `tilt_status_topic` topic. Within the template the following variables are available: `entity_id`, `position_open`; `position_closed`; `tilt_min`; `tilt_max`. The `entity_id` can be used to reference the entity's attributes with help of the [states](/docs/configuration/templating/#states) template function;" description: "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) that can be used to extract the payload for the `tilt_status_topic` topic. Within the template the following variables are available: `entity_id`, `position_open`; `position_closed`; `tilt_min`; `tilt_max`. The `entity_id` can be used to reference the entity's attributes with help of the [states](/docs/configuration/templating/#states) template function;"
required: false required: false
type: string type: template
tilt_status_topic: tilt_status_topic:
description: The MQTT topic subscribed to receive tilt status update values. description: The MQTT topic subscribed to receive tilt status update values.
required: false required: false
@ -307,7 +308,7 @@ unique_id:
value_template: value_template:
description: "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) that can be used to extract the payload for the `state_topic` topic." description: "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) that can be used to extract the payload for the `state_topic` topic."
required: false required: false
type: string type: template
{% endconfiguration %} {% endconfiguration %}
<div class="note"> <div class="note">

View File

@ -54,11 +54,11 @@ cover:
required: false required: false
type: string type: string
value_template: value_template:
description: Defines a template to get the state of the cover. Valid output values from the template are `open`, `opening`, `closing` and `closed` which are directly mapped to the corresponding states. In addition, `true` is valid as a synonym to `open` and `false` as a synonym to `closed`. If [both a `value_template` and a `position_template`](#combining_value_template_and_position_template) are specified, only `opening` and `closing` are set from the `value_template`. description: Defines a template to get the state of the cover. Valid output values from the template are `open`, `opening`, `closing` and `closed` which are directly mapped to the corresponding states. In addition, `true` is valid as a synonym to `open` and `false` as a synonym to `closed`. If [both a `value_template` and a `position_template`](#combining_value_template_and_position_template) are specified, only `opening` and `closing` are set from the `value_template`. If the template produces a `None` value the state will be set to `unknown`.
required: false required: false
type: template type: template
position_template: position_template:
description: Defines a template to get the position of the cover. Legal values are numbers between `0` (closed) and `100` (open). description: Defines a template to get the position of the cover. Legal values are numbers between `0` (closed) and `100` (open). If the template produces a `None` value the current position will be set to `unknown`.
required: false required: false
type: template type: template
icon_template: icon_template:
@ -109,7 +109,7 @@ cover:
type: boolean type: boolean
default: false default: false
tilt_template: tilt_template:
description: Defines a template to get the tilt state of the cover. Legal values are numbers between `0` (closed) and `100` (open). description: Defines a template to get the tilt state of the cover. Legal values are numbers between `0` (closed) and `100` (open). If the template produces a `None` value the current tilt state will be set to `unknown`.
required: false required: false
type: template type: template
{% endconfiguration %} {% endconfiguration %}

View File

@ -14,6 +14,7 @@ ha_integration_type: system
This integration is a meta-component and configures a default set of integrations for Home Assistant to load. The integrations that will be loaded are: This integration is a meta-component and configures a default set of integrations for Home Assistant to load. The integrations that will be loaded are:
- [Automation](/integrations/automation/) (`automation`) - [Automation](/integrations/automation/) (`automation`)
- [Assist pipeline](/integrations/assist_pipeline/) (`assist_pipeline`)
- [Backup](/integrations/backup/) (`backup`) - [Backup](/integrations/backup/) (`backup`)
- [Bluetooth](/integrations/bluetooth/) (`bluetooth`) - [Bluetooth](/integrations/bluetooth/) (`bluetooth`)
- [Configuration](/integrations/config/) (`config`) - [Configuration](/integrations/config/) (`config`)

View File

@ -73,6 +73,7 @@ Known supported devices:
- Marantz AV7703 - Marantz AV7703
- Marantz AV7704 - Marantz AV7704
- Marantz CINEMA 50 - Marantz CINEMA 50
- Marantz CINEMA 70s
- Marantz M-CR510 - Marantz M-CR510
- Marantz M-CR511 - Marantz M-CR511
- Marantz M-CR603 - Marantz M-CR603
@ -80,6 +81,7 @@ Known supported devices:
- Marantz M-CR611 - Marantz M-CR611
- Marantz SR5006 - Marantz SR5006
- Marantz SR5008 - Marantz SR5008
- Marantz SR5010
- Marantz SR5011 - Marantz SR5011
- Marantz SR5015 - Marantz SR5015
- Marantz SR6007 - SR6012 - Marantz SR6007 - SR6012

View File

@ -35,27 +35,25 @@ The name you give your application on the [Discord My Apps page](https://discord
### Setting up the bot ### Setting up the bot
Bots can send messages to servers and users or attach locally available images. To add the bot to a server you are an admin on use the **Application ID** you noted above, found on the [Discord My Apps page](https://discordapp.com/developers/applications/me). Bots can send messages to servers and users or attach locally available images. To add the bot to a server you are an admin on, use the **Application ID** you noted above, found on the [Discord My Apps page](https://discordapp.com/developers/applications/me).
<p class='img'> ![Screenshot of Discord bot config](/images/screenshots/discord-bot.png)
<img src='/images/screenshots/discord-bot.png' />
</p>
Now use the Discord Authorization page with the **Application ID** of your [application](https://discordapp.com/developers/docs/topics/oauth2#bots). Next, decide what permissions your bot will have within your server. Under the 'Bot' section, select the permissions you want to grant and copy the permissions integer from the bottom field.
`https://discordapp.com/api/oauth2/authorize?client_id=[APPLICATION_ID]&scope=bot&permissions=0` ![Screenshot of Discord bot permissions](/images/screenshots/discord-bot-permissions.png)
<p class='img'> Now use the Discord Authorization page with the **Application ID** of your [application](https://discordapp.com/developers/docs/topics/oauth2#bots) and the **Permissions Integer**.
<img src='/images/screenshots/discord-auth.png' />
</p> `https://discordapp.com/api/oauth2/authorize?client_id=[APPLICATION_ID]&scope=bot&permissions=[PERMISSIONS_INTEGER]`
![Screenshot of Discord bot auth](/images/screenshots/discord-auth.png)
Wait for the confirmation which should say "Authorized". Wait for the confirmation which should say "Authorized".
Once the bot has been added to your server, get the channel ID of the channel you want the bot to operate in. In The Discord application go to **Settings** > **Advanced** > **Enable Developer Mode**. Once the bot has been added to your server, get the channel ID of the channel you want the bot to operate in. In The Discord application go to **Settings** > **Advanced** > **Enable Developer Mode**.
<p class='img'> ![Screenshot of Discord bot create prompt](/images/screenshots/discord-api.png)
<img src='/images/screenshots/discord-api.png' />
</p>
Right click channel name and copy the channel ID (**Copy ID**). Right click channel name and copy the channel ID (**Copy ID**).

View File

@ -10,6 +10,7 @@ ha_codeowners:
- '@runningman84' - '@runningman84'
- '@stephan192' - '@stephan192'
- '@Hummel95' - '@Hummel95'
- '@andarotajo'
ha_platforms: ha_platforms:
- sensor - sensor
ha_integration_type: integration ha_integration_type: integration

View File

@ -47,6 +47,18 @@ prices for electricity that you use (buy) or return (sell). Every day around
- Time of day when the price is highest - Time of day when the price is highest
- Time of day when the price is at its lowest - Time of day when the price is at its lowest
- Percentage of the current price compared to the maximum price - Percentage of the current price compared to the maximum price
- Number of hours with the current price higher or lower
Entities with the number of hours indicate how many hours there are with a price
**above** or **below** the current hourly price. If we take the graph below as an example
and it is 00:30, then there are 8 hours below the current price and 4 hours above the
current price. With this information, you could switch devices at the X cheapest number
of hours during the day.
<p class='img'>
<img src='/images/integrations/easyenergy/pricegraph.png' alt='Screenshot showing energy price graph.'>
Example showing the energy price graph.
</p>
### Gas market price ### Gas market price

View File

@ -27,7 +27,7 @@ The following steps must be performed to set up this integration. For security r
2. Pick your station -> Menu Others -> DIY Upload Servers. 2. Pick your station -> Menu Others -> DIY Upload Servers.
3. Hit next and select 'Customized' 3. Hit next and select 'Customized'
4. Pick the protocol Ecowitt, and put in the ip/hostname of your Home Assistant server. 4. Pick the protocol Ecowitt, and put in the ip/hostname of your Home Assistant server.
5. Path have to match! 5. Path has to match! If using the Ecowitt App, remove the first forward slash from the API token, as the app will prepend one.
6. Save configuration. 6. Save configuration.
Ecowitt doesn't support TLS/SSL, you can use the NGINX TLS Proxy Add-on to support HTTPS and HTTP at the same time. Ecowitt doesn't support TLS/SSL, you can use the NGINX TLS Proxy Add-on to support HTTPS and HTTP at the same time.

View File

@ -15,7 +15,7 @@ ha_codeowners:
<div class='note warning'> <div class='note warning'>
Be aware that `emulated_hue` doesn't work for new users of **Google Home** with `emulated_hue`. If you've not previously set this up and had it working, use the [Google Assistant component](/integrations/google_assistant/) or [Nabu Casa cloud](/integrations/cloud) component. Be aware that `emulated_hue` doesn't work for new users of **Google Home** with `emulated_hue`. If you've not previously set this up and had it working, use the [Google Assistant](/integrations/google_assistant/) integration or [Nabu Casa cloud](/integrations/cloud) integration.
</div> </div>
@ -41,13 +41,13 @@ If you added or upgraded to a newer Alexa device and devices are not found, you
<div class='note'> <div class='note'>
[Sleep Cycle](https://www.sleepcycle.com) and [Sleep as Android](https://sleep.urbandroid.org): smart alarm clock app can use emulated_hue to turn on and off entities. Sleep Cycle only has it implemented in the iOS app, see [Sleep Cycle support](https://support.sleepcycle.com/hc/en-us/articles/207670385-Does-Sleep-Cycle-integrates-with-Phillips-Hue-). The app requires the same configuration as Google Home and does not work if the type is defined as Alexa in the configuration. [Sleep Cycle](https://www.sleepcycle.com) and [Sleep as Android](https://sleep.urbandroid.org): smart alarm clock app can use emulated_hue to turn on and off entities. Sleep Cycle only has it implemented in the iOS app, see [Sleep Cycle support](https://support.sleepcycle.com/hc/articles/207670385-Does-Sleep-Cycle-integrates-with-Phillips-Hue-). The app requires the same configuration as Google Home and does not work if the type is defined as Alexa in the configuration.
</div> </div>
<div class='note'> <div class='note'>
Logitech Harmony remotes cannot connect to this emulator via Android and iOS mobile applications because they require the physical button on the hub to be pressed. The [MyHarmony desktop software](https://support.myharmony.com/en-us/download) must be used with the original cable to connect it, then "Scan for Devices". Logitech Harmony remotes cannot connect to this emulator via Android and iOS mobile applications because they require the physical button on the hub to be pressed. The [MyHarmony desktop software](https://support.myharmony.com/download) must be used with the original cable to connect it, then "Scan for Devices".
</div> </div>
@ -174,7 +174,7 @@ On Linux systems (Ubuntu, Debian, etc) execute the following command to allow `e
sudo setcap 'cap_net_bind_service=+ep' /srv/homeassistant/homeassistant_venv/bin/python3 sudo setcap 'cap_net_bind_service=+ep' /srv/homeassistant/homeassistant_venv/bin/python3
``` ```
Please note that your path may be different depending on your installation method. For example, if you followed the [Virtualenv instructions](/docs/installation/virtualenv/), your path will be `/srv/homeassistant/bin/python3`. Please note that your path may be different depending on your installation method. For example, if you followed the [Virtualenv instructions](/installation/linux/), your path will be `/srv/homeassistant/bin/python3`.
### License ### License

View File

@ -24,7 +24,7 @@ ha_integration_type: integration
The [EnOcean](https://en.wikipedia.org/wiki/EnOcean) standard is supported by many different vendors. There are switches and sensors of many different kinds, and typically they employ energy harvesting to get power such that no batteries are necessary. The [EnOcean](https://en.wikipedia.org/wiki/EnOcean) standard is supported by many different vendors. There are switches and sensors of many different kinds, and typically they employ energy harvesting to get power such that no batteries are necessary.
The EnOcean integration adds support for some of these devices. You will need a controller like the [USB300](https://www.enocean.com/en/enocean_modules/usb-300/) in order for it to work. The EnOcean integration adds support for some of these devices. You will need a controller like the [USB300](https://www.enocean.com/product/usb-300/) in order for it to work.
There is currently support for the following device types within Home Assistant: There is currently support for the following device types within Home Assistant:
@ -44,7 +44,7 @@ The following devices have been confirmed to work out of the box:
- EnOcean STM-330 temperature sensor - EnOcean STM-330 temperature sensor
- Hoppe SecuSignal window handle from Somfy - Hoppe SecuSignal window handle from Somfy
If you own a device not listed here, please check whether your device can talk in one of the listed [EnOcean Equipment Profiles](https://www.enocean-alliance.org/what-is-enocean/specifications/) (EEP). If it does, it will most likely work. The available profiles are usually listed somewhere in the device manual. If you own a device not listed here, please check whether your device can talk in one of the listed [EnOcean Equipment Profiles](https://www.enocean-alliance.org/specifications/) (EEP). If it does, it will most likely work. The available profiles are usually listed somewhere in the device manual.
Support for tech-in messages is not implemented. Support for tech-in messages is not implemented.
@ -58,10 +58,10 @@ This can typically be one of those batteryless wall switches.
Tested with: Tested with:
- Eltako FT55 which uses the EnOcean PTM 215 module - Eltako FT55 which uses the EnOcean PTM 215 module
- [TRIO2SYS Wall switches](https://www.trio2sys.fr/index.php/fr/produits-enocean-sans-fil-sans-pile-interoperable/emetteur-sans-fils-sans-pile-interoperable-enocean) which uses the EnOcean PTM210 DB module - [TRIO2SYS Wall switches](https://www.trio2sys.fr/index.php/produits-enocean-sans-fil-sans-pile-interoperable/emetteur-sans-fils-sans-pile-interoperable-enocean) which uses the EnOcean PTM210 DB module
- Omnio WS-CH-102 - Omnio WS-CH-102
The following [EnOcean Equipment Profiles](https://www.enocean-alliance.org/what-is-enocean/specifications/) are supported: The following [EnOcean Equipment Profiles](https://www.enocean-alliance.org/specifications/) are supported:
- F6-02-01 (Light and Blind Control - Application Style 2) - F6-02-01 (Light and Blind Control - Application Style 2)
- F6-02-02 (Light and Blind Control - Application Style 1) - F6-02-02 (Light and Blind Control - Application Style 1)
@ -107,7 +107,7 @@ Sample automation to switch lights on and off:
```yaml ```yaml
# Example automation to turn lights on/off on button release # Example automation to turn lights on/off on button release
automation: automation:
- alias: "hall light switches" - alias: "Hall light switches"
trigger: trigger:
platform: event platform: event
event_type: button_pressed event_type: button_pressed
@ -122,7 +122,7 @@ automation:
{% endraw %} {% endraw %}
You can find the `event_data` `id` by going to "Developer Tools" -> "Events" and listening to “button_pressed” events. Then hit a button on the device and you should see an event. You can find the `event_data` `id` by going to {% my developer_events title="Developer Tools -> Events" %} and listening to “button_pressed” events. Then hit a button on the device and you should see an event.
## Light ## Light
@ -207,7 +207,7 @@ sensor:
### Humidity sensor ### Humidity sensor
The following [EnOcean Equipment Profiles](https://www.enocean-alliance.org/what-is-enocean/specifications/) are supported: The following [EnOcean Equipment Profiles](https://www.enocean-alliance.org/specifications/) are supported:
- Any profile that contains the humidity value at position **DB2.7** to **DB2.0** - Any profile that contains the humidity value at position **DB2.7** to **DB2.0**
- **A5-04-01** - Temp. and Humidity Sensor, Range 0°C to +40°C and 0% to 100% - **A5-04-01** - Temp. and Humidity Sensor, Range 0°C to +40°C and 0% to 100%
@ -229,7 +229,7 @@ sensor:
This sensor has been tested with a generic STM-330 sensor, which is used in most indoor temperature sensor devices. This sensor has been tested with a generic STM-330 sensor, which is used in most indoor temperature sensor devices.
The following [EnOcean Equipment Profiles](https://www.enocean-alliance.org/what-is-enocean/specifications/) are supported: The following [EnOcean Equipment Profiles](https://www.enocean-alliance.org/specifications/) are supported:
- Any profile that contains an 8-bit temperature at position DB1.7 to DB1.0. 10-bit is not supported. - Any profile that contains an 8-bit temperature at position DB1.7 to DB1.0. 10-bit is not supported.
- **A5-02-01** to **A5-02-1B** - Temperature Sensor with various temperature ranges - **A5-02-01** to **A5-02-1B** - Temperature Sensor with various temperature ranges

View File

@ -72,6 +72,7 @@ Tested devices:
- Epson ET-2650 - Epson ET-2650
- Epson ET-4750 - Epson ET-4750
- Epson EcoTank ET-5150 (51x0) - Epson EcoTank ET-5150 (51x0)
- Epson Expression Home XP-2100
- Epson Expression Home XP-2105 - Epson Expression Home XP-2105
To make this module work you need to connect your printer to your LAN. To make this module work you need to connect your printer to your LAN.

View File

@ -20,9 +20,6 @@ The Fan integration allows you to control and monitor Fan devices.
Available services: Available services:
`fan.set_percentage`, `fan.set_preset_mode`, `fan.set_direction`, `fan.oscillate`, `fan.turn_on`, `fan.turn_off`, `fan.toggle`, `fan.increase_speed`, `fan.decrease_speed` `fan.set_percentage`, `fan.set_preset_mode`, `fan.set_direction`, `fan.oscillate`, `fan.turn_on`, `fan.turn_off`, `fan.toggle`, `fan.increase_speed`, `fan.decrease_speed`
Deprecated services:
`fan.set_speed`
<div class='note'> <div class='note'>
Not all fan services may be available for your platform. You can check which services are available for your fan(s) under **Developer Tools** -> **Services**. Not all fan services may be available for your platform. You can check which services are available for your fan(s) under **Developer Tools** -> **Services**.
@ -144,15 +141,6 @@ Turn fan device off. This is only supported if the fan device supports being tur
| `entity_id` | yes | String or list of strings that define the entity ID(s) of fan device(s) to control. To target all fan devices, use `all`. | `entity_id` | yes | String or list of strings that define the entity ID(s) of fan device(s) to control. To target all fan devices, use `all`.
### Deprecated Service `fan.set_speed`
Sets the speed for fan device.
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
| `entity_id` | yes | String or list of strings that define the entity ID(s) of fan device(s) to control. To target all fan devices, use `all`.
| `speed` | no | Speed setting
#### Automation example #### Automation example
```yaml ```yaml

View File

@ -160,6 +160,22 @@ optimistic:
required: false required: false
type: boolean type: boolean
default: "`true` if no state topic defined, else `false`." default: "`true` if no state topic defined, else `false`."
direction_command_template:
description: Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to generate the payload to send to `direction_command_topic`.
required: false
type: template
direction_command_topic:
description: The MQTT topic to publish commands to change the direction state.
required: false
type: string
direction_state_topic:
description: The MQTT topic subscribed to receive direction state updates.
required: false
type: string
direction_value_template:
description: "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract a value from the direction."
required: false
type: template
oscillation_command_template: oscillation_command_template:
description: Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to generate the payload to send to `oscillation_command_topic`. description: Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to generate the payload to send to `oscillation_command_topic`.
required: false required: false
@ -175,7 +191,7 @@ oscillation_state_topic:
oscillation_value_template: oscillation_value_template:
description: "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract a value from the oscillation." description: "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract a value from the oscillation."
required: false required: false
type: string type: template
payload_available: payload_available:
description: The payload that represents the available state. description: The payload that represents the available state.
required: false required: false
@ -231,7 +247,7 @@ percentage_state_topic:
percentage_value_template: percentage_value_template:
description: Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract the `percentage` value from the payload received on `percentage_state_topic`. description: Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract the `percentage` value from the payload received on `percentage_state_topic`.
required: false required: false
type: string type: template
preset_mode_command_template: preset_mode_command_template:
description: Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to generate the payload to send to `preset_mode_command_topic`. description: Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to generate the payload to send to `preset_mode_command_topic`.
required: false required: false
@ -247,7 +263,7 @@ preset_mode_state_topic:
preset_mode_value_template: preset_mode_value_template:
description: Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract the `preset_mode` value from the payload received on `preset_mode_state_topic`. description: Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract the `preset_mode` value from the payload received on `preset_mode_state_topic`.
required: false required: false
type: string type: template
preset_modes: preset_modes:
description: List of preset modes this fan is capable of running at. Common examples include `auto`, `smart`, `whoosh`, `eco` and `breeze`. description: List of preset modes this fan is capable of running at. Common examples include `auto`, `smart`, `whoosh`, `eco` and `breeze`.
required: false required: false
@ -280,7 +296,7 @@ state_topic:
state_value_template: state_value_template:
description: "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract a value from the state." description: "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract a value from the state."
required: false required: false
type: string type: template
unique_id: unique_id:
description: An ID that uniquely identifies this fan. If two fans have the same unique ID, Home Assistant will raise an exception. description: An ID that uniquely identifies this fan. If two fans have the same unique ID, Home Assistant will raise an exception.
required: false required: false
@ -309,6 +325,9 @@ mqtt:
- name: "Bedroom Fan" - name: "Bedroom Fan"
state_topic: "bedroom_fan/on/state" state_topic: "bedroom_fan/on/state"
command_topic: "bedroom_fan/on/set" command_topic: "bedroom_fan/on/set"
direction_state_topic: "bedroom_fan/direction/state"
direction_command_topic: "bedroom_fan/direction/set"
oscillation_command_topic: "bedroom_fan/oscillation/set"
oscillation_state_topic: "bedroom_fan/oscillation/state" oscillation_state_topic: "bedroom_fan/oscillation/state"
oscillation_command_topic: "bedroom_fan/oscillation/set" oscillation_command_topic: "bedroom_fan/oscillation/set"
percentage_state_topic: "bedroom_fan/speed/percentage_state" percentage_state_topic: "bedroom_fan/speed/percentage_state"
@ -343,6 +362,8 @@ mqtt:
- name: "Bedroom Fan" - name: "Bedroom Fan"
command_topic: "bedroom_fan/on/set" command_topic: "bedroom_fan/on/set"
command_template: "{ state: '{{ value }}'}" command_template: "{ state: '{{ value }}'}"
direction_command_template: "{{ iif(value == 'forward', 'fwd', 'rev') }}"
direction_value_template: "{{ iif(value == 'fwd', 'forward', 'reverse') }}"
oscillation_command_topic: "bedroom_fan/oscillation/set" oscillation_command_topic: "bedroom_fan/oscillation/set"
oscillation_command_template: "{ oscillation: '{{ value }}'}" oscillation_command_template: "{ oscillation: '{{ value }}'}"
percentage_command_topic: "bedroom_fan/speed/percentage" percentage_command_topic: "bedroom_fan/speed/percentage"
@ -358,3 +379,18 @@ mqtt:
``` ```
{% endraw %} {% endraw %}
This example shows how to configure a fan that doesn't use `forward` and `backward` as directions.
{% raw %}
```yaml
# Example configuration.yaml with direction templates
mqtt:
fan:
- name: "Bedroom Fan"
direction_command_template: "{{ iif(value == 'forward', 'fwd', 'rev') }}"
direction_value_template: "{{ iif(value == 'fwd', 'forward', 'reverse') }}"
```
{% endraw %}

View File

@ -1,12 +1,12 @@
--- ---
title: Amazon Fire TV title: Amazon Fire TV
description: Connect and control your Amazon Fire TV devices using the Android TV integration description: Connect and control your Amazon Fire TV devices using the Android Debug Bridge integration
ha_category: ha_category:
- Media Player - Media Player
ha_domain: fire_tv ha_domain: fire_tv
ha_integration_type: virtual ha_integration_type: virtual
ha_supporting_domain: androidtv ha_supporting_domain: androidtv
ha_supporting_integration: Android TV ha_supporting_integration: Android Debug Bridge
ha_release: 0.7.6 ha_release: 0.7.6
ha_codeowners: ha_codeowners:
- '@JeffLIrion' - '@JeffLIrion'

View File

@ -17,7 +17,7 @@ To get an overview about the available [currencies](https://fixer.io/symbols).
## Setup ## Setup
You need to create an [API key](https://fixer.io/product). The free account is limited to only EUR as a base currency, allows 250 requests per month, and updates every hour. You need to create an [API key](https://apilayer.com/marketplace/fixer-api#pricing). The free account is limited to only EUR as a base currency, allows 100 requests per month, and updates every hour.
## Configuration ## Configuration

View File

@ -83,7 +83,7 @@ These devices have been sold under at least the following brands:
- [Diode Dynamics](https://www.diodedynamics.com/) - [Diode Dynamics](https://www.diodedynamics.com/)
- [Flux LED](https://www.fluxsmartlighting.com/) - [Flux LED](https://www.fluxsmartlighting.com/)
- [FVTLED](https://fvtled.com/) - [FVTLED](https://fvtled.com/)
- [GEV LIG](https://www.gev.de/) - GEV LIG
- GEYUEYA Home - GEYUEYA Home
- GIDEALED - GIDEALED
- [GIDERWEL](https://giderwel.com/) - [GIDERWEL](https://giderwel.com/)
@ -98,7 +98,7 @@ These devices have been sold under at least the following brands:
- INDARUN - INDARUN
- iNextStation - iNextStation
- [Koopower](https://www.koopower.com/) - [Koopower](https://www.koopower.com/)
- [Lallumer](https://www.lapuretes.cn/) - Lallumer
- LEDENET - LEDENET
- [LiteWRX](https://litewrx.com/) - [LiteWRX](https://litewrx.com/)
- Lytworx - Lytworx

View File

@ -71,6 +71,7 @@ The Forecast.Solar integration mainly provides sensors that you can use in your
automations. automations.
- Estimated Energy Production - Today (in kWh) - Estimated Energy Production - Today (in kWh)
- Estimated Energy Production - Remaining Today (in kWh)
- Estimated Energy Production - Tomorrow (in kWh) - Estimated Energy Production - Tomorrow (in kWh)
- Estimated Energy Production - This Hour (in kWh) - Estimated Energy Production - This Hour (in kWh)
- Estimated Energy Production - Next Hour (in kWh) - Estimated Energy Production - Next Hour (in kWh)

View File

@ -2,6 +2,7 @@
title: Freebox title: Freebox
description: Instructions on how to integrate Freebox routers into Home Assistant. description: Instructions on how to integrate Freebox routers into Home Assistant.
ha_category: ha_category:
- Camera
- Network - Network
- Presence Detection - Presence Detection
- Sensor - Sensor
@ -15,6 +16,7 @@ ha_config_flow: true
ha_domain: freebox ha_domain: freebox
ha_platforms: ha_platforms:
- button - button
- camera
- device_tracker - device_tracker
- sensor - sensor
- switch - switch
@ -29,6 +31,7 @@ There is currently support for the following device types within Home Assistant:
* [Sensor](#sensor) with metrics for connection speed, internal temperature, free partition space and missed calls * [Sensor](#sensor) with metrics for connection speed, internal temperature, free partition space and missed calls
* [Device tracker](#presence-detection) for connected devices * [Device tracker](#presence-detection) for connected devices
* [Switch](#switch) to control Wi-Fi * [Switch](#switch) to control Wi-Fi
* [Camera](#camera)
{% include integrations/config_flow.md %} {% include integrations/config_flow.md %}
@ -79,6 +82,8 @@ The first time Home Assistant will connect to your Freebox, you will need to aut
To make the Wi-Fi switch and the reboot service working you will have to add "Modification des réglages de la Freebox" permission to Home Assistant application in "Paramètres de la Freebox" > "Gestion des accès" > "Applications". To make the Wi-Fi switch and the reboot service working you will have to add "Modification des réglages de la Freebox" permission to Home Assistant application in "Paramètres de la Freebox" > "Gestion des accès" > "Applications".
To use cameras from the Freebox Delta, you will have to add "Gestion de l'alarme et maison connectée" permission to Home Assistant application in "Paramètres de la Freebox" > "Gestion des accès" > "Applications".
### Supported routers ### Supported routers
Only the routers with Freebox OS are supported: Only the routers with Freebox OS are supported:
@ -112,6 +117,9 @@ The monitored metrics are:
* Free partition space of used disks * Free partition space of used disks
* Number of missed calls * Number of missed calls
## Camera
Cameras are only available in Freebox V7 (also known as Freebox Delta).
## Service ## Service
### Service `freebox.reboot` ### Service `freebox.reboot`

View File

@ -14,7 +14,7 @@ ha_platforms:
ha_integration_type: integration ha_integration_type: integration
--- ---
The Global Caché [GC-100](https://www.globalcache.com/products/gc-100/) can be integrated into Home Assistant. GC-100 is a TCP-controllable The Global Caché GC-100 can be integrated into Home Assistant. GC-100 is a TCP-controllable
hardware device which has an array of relays, RS232 serial ports, and flexible ports which can be programmed to be either digital inputs or IR blaster outputs. There are a variety of submodels of the GC-100 which have different amounts of each I/O type. hardware device which has an array of relays, RS232 serial ports, and flexible ports which can be programmed to be either digital inputs or IR blaster outputs. There are a variety of submodels of the GC-100 which have different amounts of each I/O type.
There is currently support for the following device types within Home Assistant: There is currently support for the following device types within Home Assistant:

View File

@ -78,13 +78,15 @@ The integration setup will next give you instructions to enter the [Application
1. Continue through the steps of selecting the account you want to authorize. 1. Continue through the steps of selecting the account you want to authorize.
2. **NOTE**: You may get a message telling you that the app has not been verified and you will need to acknowledge that in order to proceed. 2. If your Google account settings are set to a language not supported by the SDK -- which can be noticed by the authentication screen of Google being localized in that language -- the authorization will fail without a clear error. Changing the language at the bottom of the error page to one that is [supported](https://developers.google.com/assistant/sdk/reference/rpc/languages) by the SDK will allow you to continue to the link page of Home Assistant.
3. You can now see the details of what you are authorizing Home Assistant to access with two options at the bottom. Click **Continue**. 3. **NOTE**: You may get a message telling you that the app has not been verified and you will need to acknowledge that in order to proceed.
4. The page will now display _Link account to Home Assistant?_, note _Your instance URL_. If this is not correct, please refer to [My Home Assistant](/integrations/my). If everything looks good, click **Link Account**. 4. You can now see the details of what you are authorizing Home Assistant to access with two options at the bottom. Click **Continue**.
5. You may close the window, and return back to Home Assistant where you should see a _Success!_ message from Home Assistant. 5. The page will now display _Link account to Home Assistant?_, note _Your instance URL_. If this is not correct, please refer to [My Home Assistant](/integrations/my). If everything looks good, click **Link Account**.
6. You may close the window, and return back to Home Assistant where you should see a _Success!_ message from Home Assistant.
{% enddetails %} {% enddetails %}

View File

@ -145,3 +145,19 @@ Also an event `habitica_api_call_success` will be fired with the following data:
"id": "NEW_TASK_UUID"} "id": "NEW_TASK_UUID"}
} }
``` ```
## Templating
`sensor.habitica_USER_dailys`, `sensor.habitica_USER_habits`, `sensor.habitica_USER_rewards`, and `sensor.habitica_USER_todos` have state attributes listing the user's respective tasks. For example, you can see this information in **Developer Tools** -> **States** -> `sensor.habitica_USER_dailys` -> **Attributes**, or by adding a [Markdown card](/dashboards/markdown/) to a dashboard with the following code:
{% raw %}
```jinja
{% for key, value in states.sensor.habitica_USER_dailys.attributes.items() %}
{% if 'text' in value | string %}
{{ loop.index }}. {{ value.text }}
{% endif %}
{% endfor %}
```
{% endraw %}

View File

@ -68,6 +68,8 @@ For Home Assistant Host, the following sensors are available:
For each installed add-on Supervisor provides following binary sensors: For each installed add-on Supervisor provides following binary sensors:
(These entities are disabled by default and must be reenabled to appear)
| Sensor | Enabled by default | Description | | Sensor | Enabled by default | Description |
| ------- | ------------------ | ----------- | | ------- | ------------------ | ----------- |
| Update Available | no | Whether there is an update available for this add-on (This is deprecated, use the Update entities instead.) | Update Available | no | Whether there is an update available for this add-on (This is deprecated, use the Update entities instead.)

View File

@ -24,148 +24,7 @@ This integration is by default enabled, unless you've disabled or removed the [`
history: history:
``` ```
<p class='img'> ## API
<a href='/images/screenshots/component_history_24h.png'>
<img src='/images/screenshots/component_history_24h.png' />
</a>
</p>
<div class='note'>
Events are saved in a local database. Google Graphs is used to draw the graph.
Drawing is happening 100% in your browser. No data is transferred to anyone at any time.
</div>
{% configuration %}
exclude:
description: Configure which integrations should **not** be displayed.
required: false
type: map
keys:
entities:
description: The list of entity ids to be excluded from the history.
required: false
type: list
entity_globs:
description: Include all entities matching a listed pattern when creating logbook entries (e.g., `sensor.weather_*`).
required: false
type: list
domains:
description: The list of domains to be excluded from the history.
required: false
type: list
include:
description: Configure which integrations should be displayed.
required: false
type: map
keys:
entities:
description: The list of entity ids to be included in the history.
required: false
type: list
entity_globs:
description: Include all entities matching a listed pattern when creating logbook entries (e.g., `sensor.weather_*`).
required: false
type: list
domains:
description: The list of domains to be included in the history.
required: false
type: list
{% endconfiguration %}
Without any `include` or `exclude` configuration the history displays graphs for
every entity (well that's not exactly true -
`scenes` are never shown) on a given date. If you are only interested in some
of the entities you have several options:
Define domains and entities to `exclude` (aka. blocklist). This is convenient
when you are basically happy with the information displayed, but just want to
remove some entities or domains. Usually these are entities/domains which do not
change or rarely change (like `updater` or `automation`).
```yaml
# Example configuration.yaml entry with exclude
history:
exclude:
domains:
- automation
- updater
entities:
- sensor.last_boot
- sensor.date
entity_globs:
- binary_sensor.*_occupancy
```
Define domains and entities to display by using the `include` configuration
(aka. allowlist). If you have a lot of entities in your system and your
`exclude` list is getting too large, it might be better just to define the
entities or domains to `include`.
```yaml
# Example configuration.yaml entry with include
history:
include:
domains:
- sensor
- switch
- media_player
```
Use the `include` list to define the domains/entities to display, and exclude
some of them within the `exclude` list. This makes sense if you, for instance,
include the `sensor` domain, but want to exclude some specific sensors. Instead
of adding every sensor entity to the `include` `entities` list just include the
`sensor` domain and exclude the sensor entities you are not interested in.
Note that the order of any `include` `entities` will be displayed as listed in
the configuration, otherwise, the display order is arbitrary.
```yaml
# Example configuration.yaml entry with include and exclude
history:
include:
domains:
- sensor
- switch
- media_player
exclude:
entities:
- sensor.last_boot
- sensor.date
```
{% include common-tasks/filters.md %}
#### Implementation details
The history is stored in a SQLite database `home-assistant_v2.db` within your
configuration directory unless the `recorder` integration is set up differently.
- events table is all that happened while recorder integration was running.
- states table contains all the `new_state` values of `state_changed` events.
- Inside the states table you have:
- `entity_id`: the entity_id of the entity
- `state`: the state of the entity
- `attributes`: JSON of the state attributes
- `last_changed`: timestamp last time the state has changed.
- `last_updated`: timestamp anything has changed (state, attributes)
- `created`: timestamp this entry was inserted into the database
When the `history` integration queries the states table it only selects states
where the state has changed: `WHERE last_changed=last_updated`
#### On dates
SQLite databases do not support native dates. That's why all the dates are saved
in seconds since the UNIX epoch. Convert them manually using
[this site](https://www.epochconverter.com/) or in Python:
```python
from datetime import datetime
datetime.fromtimestamp(1422830502)
```
#### API
The history information is also available through the The history information is also available through the
[RESTful API](/developers/rest_api/#get-apihistory). [RESTful API](/developers/rest_api/#get-apihistory).

View File

@ -129,6 +129,11 @@ duration:
</div> </div>
### Video Tutorial
This video tutorial explains how you can use history stats. It also shows how you can create a daily bar chart graph to visualize things such as occupancy, or how long the lights are on in a particular room.
<lite-youtube videoid="BMlU4SynQBY" videotitle="How To Master Graphs to Monitor Occupancy and Device Usage in Home Assistant" posterquality="maxresdefault"></lite-youtube>
### Examples ### Examples
Here are some examples of periods you could work with, and what to write in your `configuration.yaml`: Here are some examples of periods you could work with, and what to write in your `configuration.yaml`:

View File

@ -44,6 +44,8 @@ Note that it depends on the appliance and on API permissions which of the featur
- Redirect URI: `https://my.home-assistant.io/redirect/oauth` - Redirect URI: `https://my.home-assistant.io/redirect/oauth`
*Important*: *Important*:
- **Power on** all your appliances during the integration configuration process; otherwise appliance programs list will be empty.
- To update the appliance programs list, you can reload the Home Connect integration when an appliance is turned on. If the re-initialization process is not triggered by reload, restart the Home Assistant when an appliance is turned on.
- After performing the steps above **log out** of your Home Connect Developer account. If you don't do this, the configuration steps below will fail during OAuth authentication with the message `“error”: “unauthorized_client”`. - After performing the steps above **log out** of your Home Connect Developer account. If you don't do this, the configuration steps below will fail during OAuth authentication with the message `“error”: “unauthorized_client”`.
- The provided Home Connect User Account email address **must** be all lowercase otherwise it will result in authentication failures. - The provided Home Connect User Account email address **must** be all lowercase otherwise it will result in authentication failures.
- All changes in the developer portal take 15 minutes before the change is implemented. - All changes in the developer portal take 15 minutes before the change is implemented.

View File

@ -1,5 +1,5 @@
--- ---
title: HomeKit title: HomeKit Bridge
description: Instructions on how to set up the HomeKit Bridge integration in Home Assistant. description: Instructions on how to set up the HomeKit Bridge integration in Home Assistant.
featured: true featured: true
ha_category: ha_category:
@ -253,13 +253,18 @@ homekit:
type: integer type: integer
default: 1316 default: 1316
video_codec: video_codec:
description: Only for `camera` entities. FFmpeg video codec for transcoding. `copy` option reduces CPU load when video source already encoded with `H264` (MPEG4). `h264_omx` option is only available with custom FFmpeg builds and enables GPU Hardware acceleration on Raspberry Pi. description: Only for `camera` entities. FFmpeg video codec for transcoding. `copy` option reduces CPU load when video source is already encoded with `H264` (MPEG4). `h264_v4l2m2m` can be used with supported hardware, e.g., the Raspberry Pi, to offload encoding to hardware. The `h264_omx` option is only available with custom FFmpeg builds and enables GPU Hardware acceleration on Raspberry Pi.
required: false required: false
type: string type: string
default: libx264 default: libx264
available options: copy, libx264, h264_omx available options: copy, libx264, h264_v4l2m2m, h264_omx
video_profile_names:
description: Only for `camera` entities. FFmpeg video profile names for transcoding, only relevant if `video_codec` isn't `copy`. Some encoders, e.g., the Raspberry Pi's `h264_v4l2m2m`, don't use the standard `["baseline", "main", "high"]` profile names but expects `["0", "2", "4"]` instead. Use this option to override the default names, if needed.
required: false
type: list
default: ["baseline", "main", "high"]
audio_codec: audio_codec:
description: Only for `camera` entities. FFmpeg audio codec for transcoding. `copy` option reduces CPU load when audio source already encoded with `libopus`. description: Only for `camera` entities. FFmpeg audio codec for transcoding. `copy` option reduces CPU load when audio source is already encoded with `libopus`.
required: false required: false
type: string type: string
default: libopus default: libopus

View File

@ -33,11 +33,11 @@ Home Assistant is integrated with the following devices through [https://mytotal
- Thermostats - Thermostats
- Every thermostat is exposed as a climate entity - Every thermostat is exposed as a climate entity
- Known working devices: TH6320R1004, RTH9585WF1004 - Known working devices: [TH6320R1004](https://customer.resideo.com/en-US/Pages/Product.aspx?cat=HonECC%2520Catalog&pid=TH6320R1004/U), [RTH9585WF1004](https://www.honeywellhome.com/us/en/products/air/thermostats/wifi-thermostats/wifi-color-touchscreen-thermostat-rth9585wf1004-u/)
- Sensors - Sensors
- A Temperature sensor entity. - A Temperature sensor entity.
- A Humidity sensor entity. - A Humidity sensor entity.
- Known working devices: C7089R1013 - Known working devices: [C7089R1013](https://customer.resideo.com/en-US/Pages/Product.aspx?cat=HonECC%20Catalog&pid=C7089R1013/U)
Others devices like Security systems are not currently supported by this integration Others devices like Security systems are not currently supported by this integration
@ -45,7 +45,7 @@ Others devices like Security systems are not currently supported by this integra
The climate platform integrates Honeywell US-based thermostats into Home Assistant, allowing control of the thermostat through the user interface. The current inside temperature, operating mode, and fan state are also displayed on the thermostat card. The climate platform integrates Honeywell US-based thermostats into Home Assistant, allowing control of the thermostat through the user interface. The current inside temperature, operating mode, and fan state are also displayed on the thermostat card.
All [climate services](/integrations/climate) are supported except set_swing_mode All [climate services](/integrations/climate) are supported except set_swing_mode.
## Sensor ## Sensor

View File

@ -42,7 +42,7 @@ server_port:
type: integer type: integer
default: 8123 default: 8123
ssl_certificate: ssl_certificate:
description: Path to your TLS/SSL certificate to serve Home Assistant over a secure connection. If using the [Let's Encrypt add-on](https://github.com/home-assistant/hassio-addons/tree/master/letsencrypt) this will be at `/ssl/fullchain.pem`. We recommend to use the [NGINX add-on](https://github.com/home-assistant/addons/tree/master/nginx_proxy) instead of using this option. description: Path to your TLS/SSL certificate to serve Home Assistant over a secure connection. If using the [Let's Encrypt add-on](https://github.com/home-assistant/addons/tree/master/letsencrypt) this will be at `/ssl/fullchain.pem`. We recommend to use the [NGINX add-on](https://github.com/home-assistant/addons/tree/master/nginx_proxy) instead of using this option.
required: false required: false
type: string type: string
ssl_peer_certificate: ssl_peer_certificate:
@ -50,7 +50,7 @@ ssl_peer_certificate:
required: false required: false
type: string type: string
ssl_key: ssl_key:
description: Path to your TLS/SSL key to serve Home Assistant over a secure connection. If using the [Let's Encrypt add-on](https://github.com/home-assistant/hassio-addons/tree/master/letsencrypt) this will be at `/ssl/privkey.pem`. description: Path to your TLS/SSL key to serve Home Assistant over a secure connection. If using the [Let's Encrypt add-on](https://github.com/home-assistant/addons/tree/master/letsencrypt) this will be at `/ssl/privkey.pem`.
required: false required: false
type: string type: string
cors_allowed_origins: cors_allowed_origins:
@ -118,7 +118,7 @@ http:
## APIs ## APIs
On top of the `http` integration is a [REST API](https://developers.home-assistant.io/docs/api/rest), [Python API](https://developers.home-assistant.io/docs/api_lib_index) and [WebSocket API](https://developers.home-assistant.io/docs/api/websocket) available. On top of the `http` integration is a [REST API](https://developers.home-assistant.io/docs/api/rest/), [Python API](https://developers.home-assistant.io/docs/api_lib_index/) and [WebSocket API](https://developers.home-assistant.io/docs/api/websocket/) available.
The `http` platforms are not real platforms within the meaning of the terminology used around Home Assistant. Home Assistant's [REST API](/developers/rest_api/) sends and receives messages over HTTP. The `http` platforms are not real platforms within the meaning of the terminology used around Home Assistant. Home Assistant's [REST API](/developers/rest_api/) sends and receives messages over HTTP.
@ -188,7 +188,7 @@ $ curl -X POST -H "Authorization: Bearer LONG_LIVED_ACCESS_TOKEN" \
http://localhost:8123/api/states/binary_sensor.radio http://localhost:8123/api/states/binary_sensor.radio
``` ```
To check if the sensor is working, use again `curl` to retrieve the [current state](/developers/rest_api/#get-apistatesltentity_id). To check if the sensor is working, use again `curl` to retrieve the [current state](https://developers.home-assistant.io/docs/api/rest/).
```bash ```bash
$ curl -X GET -H "Authorization: Bearer LONG_LIVED_ACCESS_TOKEN" \ $ curl -X GET -H "Authorization: Bearer LONG_LIVED_ACCESS_TOKEN" \
@ -227,7 +227,7 @@ print(response.text)
#### Using `httpie` #### Using `httpie`
[`httpie`](https://github.com/jkbrzt/httpie) is a user-friendly CLI HTTP client. [`httpie`](https://github.com/httpie/httpie) is a user-friendly CLI HTTP client.
```bash ```bash
$ http -v POST http://localhost:8123/api/states/binary_sensor.radio \ $ http -v POST http://localhost:8123/api/states/binary_sensor.radio \
@ -266,7 +266,7 @@ $ curl -X POST -H "Authorization: Bearer LONG_LIVED_ACCESS_TOKEN" \
http://localhost:8123/api/states/sensor.bathroom_temperature http://localhost:8123/api/states/sensor.bathroom_temperature
``` ```
You can then use `curl` again to retrieve the [current sensor state](/developers/rest_api/#get-apistatesltentity_id) and verify the sensor is working. You can then use `curl` again to retrieve the [current sensor state](https://developers.home-assistant.io/docs/api/rest/) and verify the sensor is working.
```bash ```bash
$ curl -X GET -H "Authorization: Bearer LONG_LIVED_ACCESS_TOKEN" \ $ curl -X GET -H "Authorization: Bearer LONG_LIVED_ACCESS_TOKEN" \

View File

@ -121,7 +121,7 @@ device:
required: false required: false
type: string type: string
device_class: device_class:
description: The device class of the MQTT device. Must be either `humidifier` or `dehumidifier`. description: The device class of the MQTT device. Must be either `humidifier`, `dehumidifier` or `null`.
required: false required: false
type: string type: string
default: humidifier default: humidifier
@ -221,7 +221,7 @@ target_humidity_state_topic:
target_humidity_state_template: target_humidity_state_template:
description: Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract a value for the humidifier `target_humidity` state. description: Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract a value for the humidifier `target_humidity` state.
required: false required: false
type: string type: template
mode_command_template: mode_command_template:
description: Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to generate the payload to send to `mode_command_topic`. description: Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to generate the payload to send to `mode_command_topic`.
required: false required: false
@ -237,7 +237,7 @@ mode_state_topic:
mode_state_template: mode_state_template:
description: Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract a value for the humidifier `mode` state. description: Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract a value for the humidifier `mode` state.
required: false required: false
type: string type: template
modes: 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. This attribute ust be configured together with the `mode_command_topic` attribute. 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. This attribute ust be configured together with the `mode_command_topic` attribute.
required: false required: false
@ -260,7 +260,7 @@ state_topic:
state_value_template: state_value_template:
description: "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract a value from the state." description: "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract a value from the state."
required: false required: false
type: string type: template
unique_id: unique_id:
description: An ID that uniquely identifies this humidifier. If two humidifiers have the same unique ID, Home Assistant will raise an exception. description: An ID that uniquely identifies this humidifier. If two humidifiers have the same unique ID, Home Assistant will raise an exception.
required: false required: false

View File

@ -178,7 +178,7 @@ Set the type for connected power source. Available options are Hardwired Power S
### Calling a Powerview Scene ### Calling a Powerview Scene
``` yaml ``` yaml
alias: "blinds closed at night" alias: "Blinds closed at night"
trigger: trigger:
platform: time platform: time
at: "18:00:00" at: "18:00:00"

View File

@ -11,6 +11,7 @@ ha_platforms:
ha_integration_type: integration ha_integration_type: integration
ha_codeowners: ha_codeowners:
- '@engrbm87' - '@engrbm87'
- '@jbouwh'
ha_config_flow: true ha_config_flow: true
--- ---
@ -49,6 +50,21 @@ Below is an example for setting up the integration to connect to your Microsoft
- Password: Your password - Password: Your password
- Charset: `US-ASCII` - Charset: `US-ASCII`
### Selecting an alternate SSL cipher list (advanced mode)
If the default IMAP server settings do not work, you might try to set an alternate SLL cipher list.
The SSL cipher list option allows to select the list of SSL ciphers to be accepted from this endpoint. `default` (_system default_), `modern` or `intermediate` (_inspired by [Mozilla Security/Server Side TLS](https://wiki.mozilla.org/Security/Server_Side_TLS)_)
<div class='note info'>
The SSL cipher list is an advanced setting. The option is available only when advanced mode is enabled (see user settings).
</div>
### Troubleshooting
Email providers may limit the number of reported emails. The number may be less than the limit (10,000 at least for Yahoo) even if you set the `IMAP search` to reduce the number of results. If you are not getting expected events and cleaning your Inbox or the configured folder is not desired, set up an email filter for the specific sender to go into a new folder. Then create a new config entry or modify the existing one with the desired folder.
### Using events ### Using events
When a new message arrives that meets the search criteria the `imap` integration will send a custom [event](/docs/automation/trigger/#event-trigger) that can be used to trigger an automation. When a new message arrives that meets the search criteria the `imap` integration will send a custom [event](/docs/automation/trigger/#event-trigger) that can be used to trigger an automation.
@ -66,7 +82,7 @@ search:
folder: folder:
description: The IMAP folder configuration description: The IMAP folder configuration
text: text:
description: The email body `text` of the the message description: The email body `text` of the the message (only the first 2048 bytes will be available)
sender: sender:
description: The `sender` of the message description: The `sender` of the message
subject: subject:

View File

@ -1,151 +0,0 @@
---
title: IMAP Email Content
description: Instructions on how to integrate IMAP email content sensor into Home Assistant.
ha_category:
- Mailbox
ha_iot_class: Cloud Push
ha_release: 0.25
ha_domain: imap_email_content
ha_platforms:
- sensor
ha_integration_type: integration
---
The `imap_email_content` integration will read emails from an IMAP email server and report them as a state change within Home Assistant. This is useful if you have a device that only reports its state via email.
## Configuration
To enable this sensor, add the following lines to your `configuration.yaml` file:
```yaml
# Example configuration.yaml entry
sensor:
- platform: imap_email_content
server: imap.gmail.com
port: 993
username: YOUR_USERNAME
password: YOUR_PASSWORD
folder: YOUR_FOLDER
senders:
- example@gmail.com
```
{% configuration %}
server:
description: The IP address or hostname of the IMAP server.
required: true
type: string
port:
description: The port where the server is accessible.
required: false
default: 993
type: integer
name:
description: Name of the IMAP sensor.
required: false
type: string
username:
description: Username for the IMAP server.
required: true
type: string
password:
description: Password for the IMAP server.
required: true
type: string
folder:
description: Folder to get mails from.
required: false
default: INBOX
type: string
senders:
description: A list of sender email addresses that are allowed to report state via email. Only emails received from these addresses will be processed.
required: true
type: string
value_template:
description: If specified this template will be used to render the state of the sensor. If a template is not supplied the message subject will be used for the sensor value. The following attributes will be supplied to the template.
required: false
type: template
keys:
from:
description: The from address of the email.
body:
description: The body of the email.
subject:
description: The subject of the email.
date:
description: The date and time the email was sent.
verify_ssl:
description: If the SSL certificate of the server needs to be verified.
required: false
type: boolean
default: true
{% endconfiguration %}
## Example - keyword spotting
The following example shows the usage of the IMAP email content sensor to scan the subject of an email for text, in this case, an email from the APC SmartConnect service which tells whether the UPS is running on battery or not.
{% raw %}
```yaml
sensor:
- platform: imap_email_content
server: imap.gmail.com
name: house_electricity
port: 993
username: MY_EMAIL_USERNAME
password: MY_EMAIL_PASSWORD
senders:
- no-reply@smartconnect.apc.com
value_template: >-
{% if 'UPS On Battery' in subject %}
power_out
{% elif 'Power Restored' in subject %}
power_on
{% endif %}
```
{% endraw %}
The same template structure can scan the date, body or sender for matching text before setting the state of the sensor.
## Example - extracting formatted text from an email using template sensors
This example shows how to extract numbers or other formatted data from an email to change the value of a template sensor to a value extracted from the email. In this example, we will be extracting energy use, cost, and billed amount from an email (from Georgia Power) and putting it into sensor values using a template sensor that runs against our IMAP email sensor already set up. A sample of the body of the email used is below:
```text
Yesterday's Energy Use: 76 kWh
Yesterday's estimated energy cost: $8
Monthly Energy use-to-date for 23 days: 1860 kWh
Monthly estimated energy cost-to-date for 23 days: $198
To view your account for details about your energy use, please click here.
```
Below is the template sensor which extracts the information from the body of the email in our IMAP email sensor (named sensor.energy_email) into 3 sensors for the energy use, daily cost, and billing cycle total.
{% raw %}
```yaml
template:
- sensor:
- name: "Previous Day Energy Use"
unit_of_measurement: "kWh"
state: >
{{ state_attr('sensor.energy_email','body')
| regex_findall_index("\*Yesterday's Energy Use:\* ([0-9]+) kWh") }}
- name: "Previous Day Cost"
unit_of_measurement: "$"
state: >
{{ state_attr('sensor.energy_email', 'body')
| regex_findall_index("\*Yesterday's estimated energy cost:\* \$([0-9.]+)") }}
- name: "Billing Cycle Total"
unit_of_measurement: "$"
state: >
{{ state_attr('sensor.energy_email', 'body')
| regex_findall_index("\ days:\* \$([0-9.]+)") }}
```
{% endraw %}
By making small changes to the regular expressions defined above, a similar structure can parse other types of data out of the body of other emails.

View File

@ -14,15 +14,15 @@ ha_integration_type: helper
The Input Boolean helper integration allows you to define boolean values that The Input Boolean helper integration allows you to define boolean values that
can be controlled via the user interface and can be used within conditions of can be controlled via the user interface and can be used within conditions of
an automation. This can for example be used to disable or enable certain an {% term automation %}. This can for example be used to disable or enable certain
automations by using them in their conditions. automations by using them in their {% term conditions %}.
## Configuration ## Configuration
The preferred way to configure input boolean helpers is via the user interface, The preferred way to configure input boolean helpers is via the user interface,
in which they are known as Toggle Helpers. To add one, go to in which they are known as Toggle Helpers. To add one, go to
**{% my helpers title="Settings -> Devices & Services -> Helpers" %}** and click the add button; **{% my helpers title="Settings > Devices & Services > Helpers" %}** and click the add button;
next choose the "**Toggle**" option. next choose the **{% my config_flow_start domain=input_boolean title="Toggle" %}** option.
To be able to add **Helpers** via the user interface you should have 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_config:` in your `configuration.yaml`, it should already be there by
@ -32,14 +32,6 @@ then you can use the UI.
Input booleans can also be configured via `configuration.yaml`: Input booleans can also be configured via `configuration.yaml`:
```yaml
# Example configuration.yaml entry
input_boolean:
notify_home:
name: Notify when someone arrives home
icon: mdi:car
```
{% configuration %} {% configuration %}
input_boolean: input_boolean:
description: Alias for the input. Multiple entries are allowed. description: Alias for the input. Multiple entries are allowed.
@ -61,9 +53,17 @@ input_boolean:
type: icon type: icon
{% endconfiguration %} {% endconfiguration %}
```yaml
# Example configuration.yaml entry
input_boolean:
notify_home:
name: Notify when someone arrives home
icon: mdi:car
```
## Services ## Services
This integration provides the following services to modify the state of the This integration provides the following {% term services %} to modify the state of the
`input_boolean` and a service to reload the configuration without restarting `input_boolean` and a service to reload the configuration without restarting
Home Assistant itself. Home Assistant itself.
@ -105,7 +105,7 @@ automation:
You can also set or change the status of an `input_boolean` by using You can also set or change the status of an `input_boolean` by using
`input_boolean.turn_on`, `input_boolean.turn_off` or `input_boolean.toggle` in `input_boolean.turn_on`, `input_boolean.turn_off` or `input_boolean.toggle` in
your automations. your automation action.
```yaml ```yaml
service: input_boolean.turn_on service: input_boolean.turn_on

View File

@ -20,7 +20,7 @@ like an automation.
The preferred way to configure button helpers is via the user interface. The preferred way to configure button helpers is via the user interface.
To add one, go to **{% my helpers title="Settings -> Devices & Services -> Helpers" %}** To add one, go to **{% my helpers title="Settings -> Devices & Services -> Helpers" %}**
and click the add button; next choose the "**Button**" option. and click the add button; next choose the **{% my config_flow_start domain=input_button title="Button" %}** option.
To be able to add **Helpers** via the user interface you should have 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_config:` in your `configuration.yaml`, it should already be there by

View File

@ -16,9 +16,9 @@ The `input_datetime` integration allows the user to define date and time values
that can be controlled via the frontend and can be used within automations and that can be controlled via the frontend and can be used within automations and
templates. templates.
The preferred way to configure input datetime is via the user interface at **Settings** -> **Devices & Services** -> **Helpers**. Click the add button and then choose the **Date and/or time** option. The preferred way to configure input datetime is via the user interface at **{% my helpers title="Settings > Devices & Services > Helpers" %}**. Click the add button and then choose the **{% my config_flow_start domain=input_datetime title="Date and/or time" %}** option.
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. To be able to add **{% my helpers title="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 `input_datetime:` to your `configuration.yaml` first, then you can use the UI. If you removed `default_config:` from your configuration, you must add `input_datetime:` to your `configuration.yaml` first, then you can use the UI.
`input_datetime` can also be configured via YAML. To add three datetime inputs to your installation, `input_datetime` can also be configured via YAML. To add three datetime inputs to your installation,

View File

@ -14,7 +14,7 @@ ha_integration_type: helper
The `input_number` integration allows the user to define values that can be controlled via the frontend and can be used within conditions of automation. The frontend can display a slider, or a numeric input box. Changes to the slider or numeric input box generate state events. These state events can be utilized as `automation` triggers as well. The `input_number` integration allows the user to define values that can be controlled via the frontend and can be used within conditions of automation. The frontend can display a slider, or a numeric input box. Changes to the slider or numeric input box generate state events. These state events can be utilized as `automation` triggers as well.
The preferred way to configure an input number is via the user interface at **Settings** -> **Devices & Services** -> **Helpers**. Click the add button and then choose the **Number** option. The preferred way to configure an input number is via the user interface at **{% my helpers title="Settings > Devices & Services > Helpers" %}**. Click the add button and then choose the **{% my config_flow_start domain=input_number title="Number" %}** option.
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. 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 you configuration, you must add `input_number:` to your `configuration.yaml` first, then you can use the UI. If you removed `default_config:` from you configuration, you must add `input_number:` to your `configuration.yaml` first, then you can use the UI.

View File

@ -14,7 +14,7 @@ ha_integration_type: helper
The `input_select` integration allows the user to define a list of values that can be selected via the frontend and can be used within conditions of an automation. When a user selects a new item, a state transition event is generated. This state event can be used in an `automation` trigger. The `input_select` integration allows the user to define a list of values that can be selected via the frontend and can be used within conditions of an automation. When a user selects a new item, a state transition event is generated. This state event can be used in an `automation` trigger.
The preferred way to configure an input select is via the user interface at **Settings** -> **Devices & Services** -> **Helpers**. Click the add button and then choose the **Dropdown** option. The preferred way to configure an input select is via the user interface at **{% my helpers title="Settings > Devices & Services > Helpers" %}**. Click the add button and then choose the **{% my config_flow_start domain=input_select title="Dropdown" %}** option.
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. 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 you configuration, you must add `input_select:` to your `configuration.yaml` first, then you can use the UI. If you removed `default_config:` from you configuration, you must add `input_select:` to your `configuration.yaml` first, then you can use the UI.

View File

@ -14,10 +14,10 @@ ha_integration_type: helper
The `input_text` integration allows the user to define values that can be controlled via the frontend and can be used within conditions of automation. Changes to the value stored in the text box generate state events. These state events can be utilized as `automation` triggers as well. It can also be configured in password mode (obscured text). The `input_text` integration allows the user to define values that can be controlled via the frontend and can be used within conditions of automation. Changes to the value stored in the text box generate state events. These state events can be utilized as `automation` triggers as well. It can also be configured in password mode (obscured text).
The preferred way to configure an input text is via the user interface at **Settings** -> **Devices & Services** -> **Helpers**. Click the add button and then choose the **Text** option. The preferred way to configure an input text is via the user interface at **{% my helpers title="Settings > Devices & Services > Helpers" %}**. Click the add button and then choose the **{% my config_flow_start domain=input_text title="Text" %}** option.
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. 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 you configuration, you must add `input_text:` to your `configuration.yaml` first, then you can use the UI. If you removed `default_config:` from your configuration, you must add `input_text:` to your `configuration.yaml` first, then you can use the UI.
It can also be configured via `configuration.yaml`: It can also be configured via `configuration.yaml`:

View File

@ -186,6 +186,6 @@ Many users tried to factory reset their Insteon Hub when the Insteon app stopped
- If you have a Hub v2 you will need the default username and password which are printed on the bottom of the Hub - If you have a Hub v2 you will need the default username and password which are printed on the bottom of the Hub
3. Add devices to the Hub using the instructions for adding devices to the INSTEON integration using the [Insteon Panel]](#insteon-panel) 3. Add devices to the Hub using the instructions for adding devices to the Insteon integration using the [Insteon Panel](#insteon-panel)
Once your devices are linked to the Hub again they will appear in Home Assistant automatically. Once your devices are linked to the Hub again they will appear in Home Assistant automatically.

View File

@ -11,9 +11,9 @@ ha_platforms:
ha_integration_type: integration ha_integration_type: integration
--- ---
The `itach` remote platform allows you to control IR devices with a [Global Caché iTach Device](https://www.globalcache.com/products/itach/ip2irspecs) and GC-100 devices. The Global Cache IR API are similar across their product line. See API documentation links at the end of this page. The `itach` remote platform allows you to control IR devices with a Global Caché iTach Device and GC-100 devices. The Global Cache IR API are similar across their product line. See API documentation links at the end of this page.
In order to utilize the digital input (binary sensor) and relay (switch) features of your Global Cache device you will need to use the [gc100 component](/integrations/gc100) and associated platforms. In order to utilize the digital input (binary sensor) and relay (switch) features of your Global Cache device you will need to use the [gc100 integration](/integrations/gc100) and associated platforms.
To use your iTach remote in your installation, you will need to know the IR commands for your devices in Pronto hex format and add the following to your `configuration.yaml` file: To use your iTach remote in your installation, you will need to know the IR commands for your devices in Pronto hex format and add the following to your `configuration.yaml` file:

View File

@ -57,7 +57,7 @@ device_names:
required: false required: false
type: string type: string
name: name:
description: The name parameter is optional but needed if you want to use multiple notification platforms. The platform will be exposed as service `notify.<name>`. The name will default to `notify` if not supplied. See the [Notifications Component](/integrations/notify) for more details. description: The name parameter is optional but needed if you want to use multiple notification platforms. The platform will be exposed as service `notify.<name>`. The name will default to `notify` if not supplied. See the [Notifications integration](/integrations/notify) for more details.
required: false required: false
type: string type: string
{% endconfiguration %} {% endconfiguration %}

View File

@ -16,7 +16,7 @@ ha_integration_type: integration
--- ---
The Kraken integration allows you to monitor exchange rates on [kraken.com](https://www.kraken.com/). The Kraken integration allows you to monitor exchange rates on [kraken.com](https://www.kraken.com/).
For a list of tradable asset pairs check [this kraken support article](https://support.kraken.com/hc/en-us/articles/201893658-Currency-pairs-available-for-trading-on-Kraken). For a list of tradable asset pairs check [this kraken support article](https://support.kraken.com/hc/articles/201893658-Currency-pairs-available-for-trading-on-Kraken).
{% include integrations/config_flow.md %} {% include integrations/config_flow.md %}

View File

@ -19,7 +19,6 @@ ha_platforms:
ha_integration_type: integration ha_integration_type: integration
ha_codeowners: ha_codeowners:
- '@bdraco' - '@bdraco'
- '@Djelibeybi'
ha_quality_scale: platinum ha_quality_scale: platinum
ha_dhcp: true ha_dhcp: true
--- ---
@ -126,7 +125,7 @@ script:
### Hardware effects ### Hardware effects
The Flame (`lifx_effect_flame`), Morph (`lifx.effect_morph`) and Move (`lifx.effect_move`) effects are hardware-based and only work on specific LIFX devices. Flame and Morph are available on the LIFX Tile and Candle, while the Move effect requires a LIFX Z, Lightstrip, or Beam. The Flame (`lifx.effect_flame`), Morph (`lifx.effect_morph`) and Move (`lifx.effect_move`) effects are hardware-based and only work on specific LIFX devices. Flame and Morph are available on the LIFX Tile and Candle, while the Move effect requires a LIFX Z, Lightstrip, or Beam.
All hardware-based effects can be stopped and started regardless of the device's power state, but the default behavior for each service is to turn the device on when starting an effect. Set the `power_on` attribute of the service to `false` to override this default. All hardware-based effects can be stopped and started regardless of the device's power state, but the default behavior for each service is to turn the device on when starting an effect. Set the `power_on` attribute of the service to `false` to override this default.

View File

@ -20,7 +20,7 @@ To set the default color, brightness and transition values when the light is tur
The `light_profiles.csv` has to have a header. The format of the header is: The `light_profiles.csv` has to have a header. The format of the header is:
```txt ```txt
profile,color_x,color_y,brightness,transition id,x,y,brightness,transition
``` ```
The field transition is optional and can be omitted. The field transition is optional and can be omitted.
@ -49,8 +49,9 @@ Most lights do not support all attributes. You can check the integration documen
| `rgb_color` | yes | A list containing three integers between 0 and 255 representing the RGB color you want the light to be. Three comma-separated integers that represent the color in RGB, within square brackets. | `rgb_color` | yes | A list containing three integers between 0 and 255 representing the RGB color you want the light to be. Three comma-separated integers that represent the color in RGB, within square brackets.
| `rgbw_color` | yes | A list containing four integers between 0 and 255 representing the RGBW color you want the light to be. Four comma-separated integers that represent the color in RGBW (red, green, blue, white), within square brackets. This attribute will be ignored by lights which do not support RGBW colors. | `rgbw_color` | yes | A list containing four integers between 0 and 255 representing the RGBW color you want the light to be. Four comma-separated integers that represent the color in RGBW (red, green, blue, white), within square brackets. This attribute will be ignored by lights which do not support RGBW colors.
| `rgbww_color` | yes | A list containing five integers between 0 and 255 representing the RGBWW color you want the light to be. Five comma-separated integers that represent the color in RGBWW (red, green, blue, cold white, warm white), within square brackets. This attribute will be ignored by lights which do not support RGBWW colors. | `rgbww_color` | yes | A list containing five integers between 0 and 255 representing the RGBWW color you want the light to be. Five comma-separated integers that represent the color in RGBWW (red, green, blue, cold white, warm white), within square brackets. This attribute will be ignored by lights which do not support RGBWW colors.
| `kelvin` | yes | An integer in Kelvin representing the color temperature you want the light to be. | `color_temp_kelvin` | yes | An integer in Kelvin representing the color temperature you want the light to be.
| `color_temp` | yes | Alternatively, you can specify the color temperature in Mireds. | `kelvin` | yes | (Deprecated) Use `color_temp_kelvin` instead.
| `color_temp` | yes | (Deprecated) Alternatively, you can specify the color temperature in Mireds.
| `color_name` | yes | A human-readable string of a color name, such as `blue` or `goldenrod`. All [CSS3 color names](https://www.w3.org/TR/css-color-3/#svg-color) are supported. | `color_name` | yes | A human-readable string of a color name, such as `blue` or `goldenrod`. All [CSS3 color names](https://www.w3.org/TR/css-color-3/#svg-color) are supported.
| `brightness` | yes | Integer between 0 and 255 for how bright the light should be, where 0 means the light is off, 1 is the minimum brightness and 255 is the maximum brightness supported by the light. | `brightness` | yes | Integer between 0 and 255 for how bright the light should be, where 0 means the light is off, 1 is the minimum brightness and 255 is the maximum brightness supported by the light.
| `brightness_pct`| yes | Alternatively, you can specify brightness in percent (a number between 0 and 100), where 0 means the light is off, 1 is the minimum brightness and 100 is the maximum brightness supported by the light. | `brightness_pct`| yes | Alternatively, you can specify brightness in percent (a number between 0 and 100), where 0 means the light is off, 1 is the minimum brightness and 100 is the maximum brightness supported by the light.

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