mirror of
https://github.com/home-assistant/home-assistant.io.git
synced 2025-07-30 04:36:51 +00:00
Merge remote-tracking branch 'upstream/current' into new
This commit is contained in:
commit
c45b4c3ca4
4
.github/workflows/test.yml
vendored
4
.github/workflows/test.yml
vendored
@ -8,7 +8,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Check out files from GitHub
|
||||
uses: actions/checkout@v3.5.0
|
||||
uses: actions/checkout@v3.5.2
|
||||
- name: Setting up Node.js
|
||||
uses: actions/setup-node@v3.6.0
|
||||
with:
|
||||
@ -25,7 +25,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Check out files from GitHub
|
||||
uses: actions/checkout@v3.5.0
|
||||
uses: actions/checkout@v3.5.2
|
||||
- name: Setting up Node.js
|
||||
uses: actions/setup-node@v3.6.0
|
||||
with:
|
||||
|
32
CODEOWNERS
32
CODEOWNERS
@ -40,6 +40,8 @@ source/_integrations/amp_motorization.markdown @starkillerOG
|
||||
source/_integrations/analytics.markdown @home-assistant/core @ludeeus
|
||||
source/_integrations/android_ip_webcam.markdown @engrbm87
|
||||
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/anwb_energie.markdown @klaasnicolaas
|
||||
source/_integrations/apache_kafka.markdown @bachya
|
||||
@ -53,6 +55,7 @@ source/_integrations/aranet.markdown @aschmitz
|
||||
source/_integrations/arcam_fmj.markdown @elupus
|
||||
source/_integrations/arris_tg2492lg.markdown @vanbalken
|
||||
source/_integrations/aseko_pool_live.markdown @milanmeu
|
||||
source/_integrations/assist_pipeline.markdown @balloob @synesthesiam
|
||||
source/_integrations/asuswrt.markdown @kennedyshead @ollo69
|
||||
source/_integrations/atag.markdown @MatsNL
|
||||
source/_integrations/aten_pe.markdown @mtdcr
|
||||
@ -94,6 +97,7 @@ source/_integrations/braviatv.markdown @bieniu @Drafteed
|
||||
source/_integrations/brel_home.markdown @starkillerOG
|
||||
source/_integrations/broadlink.markdown @danielhiversen @felipediel @L-I-Am
|
||||
source/_integrations/brother.markdown @bieniu
|
||||
source/_integrations/brottsplatskartan.markdown @gjohansson-ST
|
||||
source/_integrations/brunt.markdown @eavanvalkenburg
|
||||
source/_integrations/bsblan.markdown @liudger
|
||||
source/_integrations/bswitch.markdown @jafar-atili
|
||||
@ -123,7 +127,6 @@ source/_integrations/configurator.markdown @home-assistant/core
|
||||
source/_integrations/control4.markdown @lawtancool
|
||||
source/_integrations/conversation.markdown @home-assistant/core @synesthesiam
|
||||
source/_integrations/coolmaster.markdown @OnFreund
|
||||
source/_integrations/coronavirus.markdown @home-assistant/core
|
||||
source/_integrations/counter.markdown @fabaff
|
||||
source/_integrations/cover.markdown @home-assistant/core
|
||||
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_reader.markdown @depl0y @glodenox
|
||||
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/easyenergy.markdown @klaasnicolaas
|
||||
source/_integrations/ecobee.markdown @marthoc @marcolivierarsenault
|
||||
@ -312,7 +315,7 @@ source/_integrations/icloud.markdown @Quentame @nzapponi
|
||||
source/_integrations/ign_sismologia.markdown @exxamalte
|
||||
source/_integrations/image_processing.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/influxdb.markdown @mdegat01
|
||||
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/lidarr.markdown @tkdrob
|
||||
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/linux_battery.markdown @fabaff
|
||||
source/_integrations/litejet.markdown @joncar
|
||||
@ -421,6 +424,7 @@ source/_integrations/modbus.markdown @adamchengtkc @janiversen @vzahradnik
|
||||
source/_integrations/modem_callerid.markdown @tkdrob
|
||||
source/_integrations/modern_forms.markdown @wonderslug
|
||||
source/_integrations/moehlenhoff_alpha2.markdown @j-a-n
|
||||
source/_integrations/monessen.markdown @jeeftor
|
||||
source/_integrations/monoprice.markdown @etsinko @OnFreund
|
||||
source/_integrations/moon.markdown @fabaff @frenck
|
||||
source/_integrations/mopeka.markdown @bdraco
|
||||
@ -467,7 +471,7 @@ source/_integrations/nuheat.markdown @tstabrawa
|
||||
source/_integrations/nuki.markdown @pschmitt @pvizeli @pree
|
||||
source/_integrations/numato.markdown @clssn
|
||||
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/nws.markdown @MatthewFlamm @kamiyo
|
||||
source/_integrations/nzbget.markdown @chriscla
|
||||
@ -508,7 +512,7 @@ source/_integrations/picnic.markdown @corneyl
|
||||
source/_integrations/pilight.markdown @trekky12
|
||||
source/_integrations/plaato.markdown @JohNan
|
||||
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/point.markdown @fredrike
|
||||
source/_integrations/poolsense.markdown @haemishkyd
|
||||
@ -544,6 +548,7 @@ source/_integrations/raincloud.markdown @vanstinator
|
||||
source/_integrations/rainforest_eagle.markdown @gtdiehl @jcalbert @hastarin
|
||||
source/_integrations/rainmachine.markdown @bachya
|
||||
source/_integrations/random.markdown @fabaff
|
||||
source/_integrations/rapt_ble.markdown @sairon
|
||||
source/_integrations/raven_rock_mfg.markdown @starkillerOG
|
||||
source/_integrations/rdw.markdown @frenck
|
||||
source/_integrations/recollect_waste.markdown @bachya
|
||||
@ -554,6 +559,7 @@ source/_integrations/renault.markdown @epenet
|
||||
source/_integrations/reolink.markdown @starkillerOG
|
||||
source/_integrations/repairs.markdown @home-assistant/core
|
||||
source/_integrations/repetier.markdown @MTrab @ShadowBr0ther
|
||||
source/_integrations/rest.markdown @epenet
|
||||
source/_integrations/rexel.markdown @imicknl @vlebourl @tetienne @nyroDev
|
||||
source/_integrations/rflink.markdown @javicalle
|
||||
source/_integrations/rfxtrx.markdown @danielhiversen @elupus @RobBie1221
|
||||
@ -562,7 +568,7 @@ source/_integrations/ridwell.markdown @bachya
|
||||
source/_integrations/risco.markdown @OnFreund
|
||||
source/_integrations/rituals_perfume_genie.markdown @milanmeu
|
||||
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/roomba.markdown @pschmitt @cyr-ius @shenxn
|
||||
source/_integrations/roon.markdown @pavoni
|
||||
@ -648,7 +654,7 @@ source/_integrations/speedtestdotnet.markdown @rohankapoorcom @engrbm87
|
||||
source/_integrations/spider.markdown @peternijssen
|
||||
source/_integrations/splunk.markdown @Bre77
|
||||
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/srp_energy.markdown @briglx
|
||||
source/_integrations/starline.markdown @anonym-tsk
|
||||
@ -660,7 +666,7 @@ source/_integrations/stiebel_eltron.markdown @fucm
|
||||
source/_integrations/stookalert.markdown @fwestenberg @frenck
|
||||
source/_integrations/stookwijzer.markdown @fwestenberg
|
||||
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/suez_water.markdown @ooii
|
||||
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_weatherstation.markdown @endor-force @gjohansson-ST
|
||||
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/twentemilieu.markdown @frenck
|
||||
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/unifi.markdown @Kane610
|
||||
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/upc_connect.markdown @pvizeli @fabaff
|
||||
source/_integrations/upcloud.markdown @scop
|
||||
@ -744,12 +750,12 @@ source/_integrations/vermont_castings.markdown @jeeftor
|
||||
source/_integrations/versasense.markdown @flamm3blemuff1n
|
||||
source/_integrations/version.markdown @ludeeus
|
||||
source/_integrations/vesync.markdown @markperdue @webdjoe @thegardenmonkey
|
||||
source/_integrations/vicare.markdown @oischinger
|
||||
source/_integrations/vilfo.markdown @ManneW
|
||||
source/_integrations/vivotek.markdown @HarlemSquirrel
|
||||
source/_integrations/vizio.markdown @raman325
|
||||
source/_integrations/vlc_telnet.markdown @rodripf @MartinHjelmare
|
||||
source/_integrations/voice_assistant.markdown @balloob @synesthesiam
|
||||
source/_integrations/voip.markdown @balloob @synesthesiam
|
||||
source/_integrations/volumio.markdown @OnFreund
|
||||
source/_integrations/volvooncall.markdown @molobrakos
|
||||
source/_integrations/vulcan.markdown @Antoni-Czaplicki
|
||||
@ -777,8 +783,8 @@ source/_integrations/wolflink.markdown @adamkrol93
|
||||
source/_integrations/workday.markdown @fabaff @gjohansson-ST
|
||||
source/_integrations/worldclock.markdown @fabaff
|
||||
source/_integrations/ws66i.markdown @ssaenger
|
||||
source/_integrations/wyoming.markdown @balloob @synesthesiam
|
||||
source/_integrations/xbox.markdown @hunterjm
|
||||
source/_integrations/xbox_live.markdown @MartinHjelmare
|
||||
source/_integrations/xiaomi_aqara.markdown @danielhiversen @syssi
|
||||
source/_integrations/xiaomi_ble.markdown @Jc2k @Ernst79
|
||||
source/_integrations/xiaomi_miio.markdown @rytilahti @syssi @starkillerOG
|
||||
|
6
Gemfile
6
Gemfile
@ -5,7 +5,7 @@ ruby '> 2.5.0'
|
||||
group :development do
|
||||
gem 'rake', '13.0.6'
|
||||
gem 'jekyll', '4.3.2'
|
||||
gem 'stringex', '2.8.5'
|
||||
gem 'stringex', '2.8.6'
|
||||
end
|
||||
|
||||
group :jekyll_plugins do
|
||||
@ -16,8 +16,8 @@ group :jekyll_plugins do
|
||||
gem 'jekyll-postcss', '0.5.0'
|
||||
end
|
||||
|
||||
gem 'sinatra', '3.0.5'
|
||||
gem 'nokogiri', '1.14.2'
|
||||
gem 'sinatra', '3.0.6'
|
||||
gem 'nokogiri', '1.14.3'
|
||||
|
||||
# Windows and JRuby does not include zoneinfo files, so bundle the tzinfo-data gem
|
||||
# and associated library
|
||||
|
28
Gemfile.lock
28
Gemfile.lock
@ -1,7 +1,7 @@
|
||||
GEM
|
||||
remote: https://rubygems.org/
|
||||
specs:
|
||||
addressable (2.8.3)
|
||||
addressable (2.8.4)
|
||||
public_suffix (>= 2.0.2, < 6.0)
|
||||
colorator (1.1.0)
|
||||
commonmarker (0.23.8)
|
||||
@ -17,7 +17,7 @@ GEM
|
||||
google-protobuf (3.22.2)
|
||||
google-protobuf (3.22.2-x64-mingw32)
|
||||
http_parser.rb (0.8.0)
|
||||
i18n (1.12.0)
|
||||
i18n (1.13.0)
|
||||
concurrent-ruby (~> 1.0)
|
||||
jekyll (4.3.2)
|
||||
addressable (~> 2.4)
|
||||
@ -60,17 +60,17 @@ GEM
|
||||
mini_portile2 (2.8.1)
|
||||
mustermann (3.0.0)
|
||||
ruby2_keywords (~> 0.0.1)
|
||||
nokogiri (1.14.2)
|
||||
nokogiri (1.14.3)
|
||||
mini_portile2 (~> 2.8.0)
|
||||
racc (~> 1.4)
|
||||
nokogiri (1.14.2-x64-mingw32)
|
||||
nokogiri (1.14.3-x64-mingw32)
|
||||
racc (~> 1.4)
|
||||
pathutil (0.16.2)
|
||||
forwardable-extended (~> 2.6)
|
||||
public_suffix (5.0.1)
|
||||
racc (1.6.2)
|
||||
rack (2.2.6.4)
|
||||
rack-protection (3.0.5)
|
||||
rack (2.2.7)
|
||||
rack-protection (3.0.6)
|
||||
rack
|
||||
rake (13.0.6)
|
||||
rb-fsevent (0.11.2)
|
||||
@ -80,17 +80,17 @@ GEM
|
||||
rouge (4.1.0)
|
||||
ruby2_keywords (0.0.5)
|
||||
safe_yaml (1.0.5)
|
||||
sass-embedded (1.60.0)
|
||||
sass-embedded (1.62.1)
|
||||
google-protobuf (~> 3.21)
|
||||
rake (>= 10.0.0)
|
||||
sass-embedded (1.60.0-x64-mingw32)
|
||||
sass-embedded (1.62.1-x64-mingw32)
|
||||
google-protobuf (~> 3.21)
|
||||
sinatra (3.0.5)
|
||||
sinatra (3.0.6)
|
||||
mustermann (~> 3.0)
|
||||
rack (~> 2.2, >= 2.2.4)
|
||||
rack-protection (= 3.0.5)
|
||||
rack-protection (= 3.0.6)
|
||||
tilt (~> 2.0)
|
||||
stringex (2.8.5)
|
||||
stringex (2.8.6)
|
||||
terminal-table (3.0.2)
|
||||
unicode-display_width (>= 1.1.1, < 3)
|
||||
tilt (2.1.0)
|
||||
@ -112,10 +112,10 @@ DEPENDENCIES
|
||||
jekyll-postcss (= 0.5.0)
|
||||
jekyll-sitemap (= 1.4.0)
|
||||
jekyll-toc (= 0.18.0)
|
||||
nokogiri (= 1.14.2)
|
||||
nokogiri (= 1.14.3)
|
||||
rake (= 13.0.6)
|
||||
sinatra (= 3.0.5)
|
||||
stringex (= 2.8.5)
|
||||
sinatra (= 3.0.6)
|
||||
stringex (= 2.8.6)
|
||||
tzinfo (~> 2.0)
|
||||
tzinfo-data
|
||||
|
||||
|
14
_config.yml
14
_config.yml
@ -121,9 +121,9 @@ social:
|
||||
|
||||
# Home Assistant release details
|
||||
current_major_version: 2023
|
||||
current_minor_version: 4
|
||||
current_patch_version: 0
|
||||
date_released: 2023-04-05
|
||||
current_minor_version: 5
|
||||
current_patch_version: 2
|
||||
date_released: 2023-05-05
|
||||
|
||||
# Either # or the anchor link to latest release notes in the blog post.
|
||||
# Must be prefixed with a # and have double quotes around it.
|
||||
@ -214,7 +214,7 @@ installation:
|
||||
types:
|
||||
odroid:
|
||||
board: ODROID
|
||||
installation_media: "eMMC module/SD card"
|
||||
installation_media: "eMMC module or SD card"
|
||||
variants:
|
||||
- name: "ODROID-N2"
|
||||
key: "odroid-n2"
|
||||
@ -224,8 +224,8 @@ installation:
|
||||
key: "odroid-c2"
|
||||
- name: "ODROID-C4"
|
||||
key: "odroid-c4"
|
||||
- name: "ODROID-XU4"
|
||||
key: "odroid-xu4"
|
||||
- name: "ODROID-M1"
|
||||
key: "odroid-m1"
|
||||
|
||||
raspberrypi:
|
||||
board: Raspberry Pi
|
||||
@ -238,7 +238,7 @@ installation:
|
||||
|
||||
tinkerboard:
|
||||
board: ASUS Tinkerboard
|
||||
installation_media: "eMMC module/SD card"
|
||||
installation_media: "eMMC module or SD card"
|
||||
variants:
|
||||
- name: "ASUS Tinkerboard"
|
||||
key: "tinker"
|
||||
|
14
package-lock.json
generated
14
package-lock.json
generated
@ -1850,20 +1850,6 @@
|
||||
"integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
|
||||
"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": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
|
||||
|
@ -227,7 +227,7 @@ entities:
|
||||
required: false
|
||||
description: If false, the button name is not shown.
|
||||
type: boolean
|
||||
default: "true"
|
||||
default: "false"
|
||||
show_icon:
|
||||
required: false
|
||||
description: If false, the icon is not shown.
|
||||
|
@ -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."
|
||||
---
|
||||
|
||||
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'>
|
||||
<img src='/images/dashboards/history_graph.png' alt='Screenshot of the history graph card for entities without a unit_of_measurement'>
|
||||
|
@ -370,7 +370,7 @@ conditions:
|
||||
type: string
|
||||
elements:
|
||||
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
|
||||
{% endconfiguration %}
|
||||
|
||||
|
@ -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.
|
||||
|
||||
<p class='img'>
|
||||
<img src='/images/dashboards/tile_card.png' alt='Screenshot of the tile card'>
|
||||
Screenshot of the Tile card.
|
||||
<img src='/images/dashboards/tile_card.png' alt='Screenshot of tile cards'>
|
||||
Screenshot of Tile cards.
|
||||
</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.
|
||||
|
@ -9,12 +9,18 @@
|
||||
#
|
||||
|
||||
- term: Action
|
||||
definition: >-
|
||||
An action is an command that can be fired. For example, turning on a light.
|
||||
Actions used in many places, most notably in automations and scripts.
|
||||
definition: |-
|
||||
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 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:
|
||||
- actions
|
||||
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
|
||||
definition: >-
|
||||
@ -26,6 +32,16 @@
|
||||
Add-ons are additional standalone third-party software packages that can be
|
||||
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
|
||||
definition: >-
|
||||
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
|
||||
action from firing if they are not met.
|
||||
link: /docs/scripts/conditions/
|
||||
aliases:
|
||||
- conditions
|
||||
|
||||
- term: Cover
|
||||
definition: >-
|
||||
@ -81,6 +99,8 @@
|
||||
Devices have properties such as ID, manufacturer, name, model, hardware version, firmware version, connections, etc.
|
||||
excerpt: >
|
||||
A device is a model representing a physical or logical unit that contains entities.
|
||||
aliases:
|
||||
- devices
|
||||
|
||||
- term: Device tracker
|
||||
definition: >-
|
||||
@ -128,11 +148,15 @@
|
||||
link: /docs/configuration/state_object/
|
||||
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.
|
||||
aliases:
|
||||
- entities
|
||||
|
||||
- term: Event
|
||||
definition: >-
|
||||
An event is when something happens.
|
||||
link: /docs/configuration/events/
|
||||
aliases:
|
||||
- events
|
||||
|
||||
- term: Frontend
|
||||
definition: >-
|
||||
@ -206,6 +230,19 @@
|
||||
Integrations connect and integrates Home Assistant with your devices,
|
||||
services, and more.
|
||||
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
|
||||
definition: >-
|
||||
@ -259,12 +296,16 @@
|
||||
Scripts are components that allow users to specify a sequence of actions
|
||||
to be executed by Home Assistant when turned on.
|
||||
link: /docs/scripts/
|
||||
aliases:
|
||||
- scripts
|
||||
|
||||
- term: Sensor
|
||||
definition: >-
|
||||
Sensors return information about a thing, for instance the level of water
|
||||
in a tank.
|
||||
link: /integrations/sensor/
|
||||
aliases:
|
||||
- sensors
|
||||
|
||||
- term: Selectors
|
||||
definition: >-
|
||||
@ -296,8 +337,9 @@
|
||||
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
|
||||
dashboard, or via voice command.
|
||||
|
||||
link: /docs/scripts/service-calls/
|
||||
aliases:
|
||||
- services
|
||||
|
||||
- term: State
|
||||
definition: |-
|
||||
@ -351,3 +393,5 @@
|
||||
definition: >-
|
||||
Zones are areas that can be used for presence detection.
|
||||
link: /integrations/zone/
|
||||
aliases:
|
||||
- zones
|
||||
|
@ -3,7 +3,7 @@ title: "Understanding Automations"
|
||||
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.
|
||||
|
||||
@ -15,7 +15,7 @@ We can break up this automation into the following three parts:
|
||||
(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.
|
||||
|
||||
@ -27,7 +27,7 @@ The difference between a condition and a trigger can be confusing as they are ve
|
||||
|
||||
## 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 |
|
||||
| ---- | ----- | ---- |
|
||||
@ -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.
|
||||
|
||||
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
|
||||
|
||||
|
@ -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.
|
||||
|
||||
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'>
|
||||
<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'>
|
||||
<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.
|
||||
|
||||
<p class='img'>
|
||||
<img src='/images/docs/automation-editor/new-trigger.png' />
|
||||
</p>
|
||||

|
||||
|
||||
Click on the **Add Action** button and select **Call service**.
|
||||
|
||||

|
||||
|
||||
The action for this automation creates a [persistent notification](/integrations/persistent_notification/).
|
||||
|
||||
<p class='img'>
|
||||
<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.
|
||||
|
||||
@ -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
|
||||
```
|
||||
|
||||
Press the **Save** button, and the save dialogue will appear. Give your automation a meaningful name and press the **Save** button again.
|
||||
|
||||

|
||||
|
||||
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
|
||||
|
@ -13,19 +13,25 @@ The variable `this` is the [state object](/docs/configuration/state_object) of t
|
||||
|
||||
## 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
|
||||
|
||||
The following describes trigger data associated with all platforms.
|
||||
Triggers from all platforms will include the following 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`.)
|
||||
|
||||
### Calendar
|
||||
|
||||
These are the properties available for a [Calendar trigger](/docs/automation/trigger/#calendar-trigger).
|
||||
|
||||
| Template variable | Data |
|
||||
| ------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `trigger.platform` | Hardcoded: `calendar` |
|
||||
@ -41,6 +47,8 @@ The following describes trigger data associated with all platforms.
|
||||
|
||||
### 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.
|
||||
|
||||
| Template variable | Data |
|
||||
@ -49,6 +57,8 @@ Inherites template variables from [event](#event) or [state](#state) template ba
|
||||
|
||||
### Event
|
||||
|
||||
These are the properties available for a [Event trigger](/docs/automation/trigger/#event-trigger).
|
||||
|
||||
| Template variable | Data |
|
||||
| ---- | ---- |
|
||||
| `trigger.platform` | Hardcoded: `event`.
|
||||
@ -58,6 +68,8 @@ Inherites template variables from [event](#event) or [state](#state) template ba
|
||||
|
||||
### MQTT
|
||||
|
||||
These are the properties available for a [MQTT trigger](/docs/automation/trigger/#mqtt-trigger).
|
||||
|
||||
| Template variable | Data |
|
||||
| ---- | ---- |
|
||||
| `trigger.platform` | Hardcoded: `mqtt`.
|
||||
@ -68,6 +80,8 @@ Inherites template variables from [event](#event) or [state](#state) template ba
|
||||
|
||||
### Numeric State
|
||||
|
||||
These are the properties available for a [Numeric State trigger](/docs/automation/trigger/#numeric-state-trigger).
|
||||
|
||||
| Template variable | Data |
|
||||
| ---- | ---- |
|
||||
| `trigger.platform` | Hardcoded: `numeric_state`
|
||||
@ -80,6 +94,8 @@ Inherites template variables from [event](#event) or [state](#state) template ba
|
||||
|
||||
### State
|
||||
|
||||
These are the properties available for a [State trigger](/docs/automation/trigger/#state-trigger).
|
||||
|
||||
| Template variable | Data |
|
||||
| ---- | ---- |
|
||||
| `trigger.platform` | Hardcoded: `state`
|
||||
@ -90,6 +106,8 @@ Inherites template variables from [event](#event) or [state](#state) template ba
|
||||
|
||||
### Sun
|
||||
|
||||
These are the properties available for a [Sun trigger](/docs/automation/trigger/#sun-trigger).
|
||||
|
||||
| Template variable | Data |
|
||||
| ---- | ---- |
|
||||
| `trigger.platform` | Hardcoded: `sun`
|
||||
@ -98,6 +116,8 @@ Inherites template variables from [event](#event) or [state](#state) template ba
|
||||
|
||||
### Template
|
||||
|
||||
These are the properties available for a [Template trigger](/docs/automation/trigger/#template-trigger).
|
||||
|
||||
| Template variable | Data |
|
||||
| ---- | ---- |
|
||||
| `trigger.platform` | Hardcoded: `template`
|
||||
@ -108,6 +128,8 @@ Inherites template variables from [event](#event) or [state](#state) template ba
|
||||
|
||||
### Time
|
||||
|
||||
These are the properties available for a [Time trigger](/docs/automation/trigger/#time-trigger).
|
||||
|
||||
| Template variable | Data |
|
||||
| ---- | ---- |
|
||||
| `trigger.platform` | Hardcoded: `time`
|
||||
@ -115,6 +137,8 @@ Inherites template variables from [event](#event) or [state](#state) template ba
|
||||
|
||||
### Time Pattern
|
||||
|
||||
These are the properties available for a [Time Pattern trigger](/docs/automation/trigger/#time-pattern-trigger).
|
||||
|
||||
| Template variable | Data |
|
||||
| ---- | ---- |
|
||||
| `trigger.platform` | Hardcoded: `time_pattern`
|
||||
@ -122,6 +146,8 @@ Inherites template variables from [event](#event) or [state](#state) template ba
|
||||
|
||||
### Webhook
|
||||
|
||||
These are the properties available for a [Webhook trigger](/docs/automation/trigger/#webhook-trigger).
|
||||
|
||||
| Template variable | Data |
|
||||
| ---- | ---- |
|
||||
| `trigger.platform` | Hardcoded: `webhook`
|
||||
@ -132,6 +158,8 @@ Inherites template variables from [event](#event) or [state](#state) template ba
|
||||
|
||||
### Zone
|
||||
|
||||
These are the properties available for a [Zone trigger](/docs/automation/trigger/#zone-trigger).
|
||||
|
||||
| Template variable | Data |
|
||||
| ---- | ---- |
|
||||
| `trigger.platform` | Hardcoded: `zone`
|
||||
|
@ -786,6 +786,10 @@ automation:
|
||||
trigger:
|
||||
- platform: webhook
|
||||
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:
|
||||
@ -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
|
||||
```
|
||||
|
||||
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.
|
||||
|
||||
@ -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.
|
||||
- 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.
|
||||
- Keep the `local_only` option enabled for webhooks if access from the internet is not required.
|
||||
|
||||
## Zone trigger
|
||||
|
||||
|
@ -19,6 +19,7 @@ The following selectors are currently available:
|
||||
- [Add-on selector](#add-on-selector)
|
||||
- [Area selector](#area-selector)
|
||||
- [Attribute selector](#attribute-selector)
|
||||
- [Assist pipeline selector](#assist-pipeline-selector)
|
||||
- [Boolean selector](#boolean-selector)
|
||||
- [Color temperature selector](#color-temperature-selector)
|
||||
- [Config entry selector](#config-entry-selector)
|
||||
@ -29,6 +30,7 @@ The following selectors are currently available:
|
||||
- [Duration selector](#duration-selector)
|
||||
- [Entity selector](#entity-selector)
|
||||
- [Icon selector](#icon-selector)
|
||||
- [Language selector](#language-selector)
|
||||
- [Location selector](#location-selector)
|
||||
- [Media selector](#media-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).
|
||||
For example: `next_dawn`.
|
||||
|
||||
## Assist pipeline selector
|
||||
|
||||
The assist pipeline selector shows all available assist pipelines (assistants) of which one can be selected.
|
||||
|
||||

|
||||
|
||||
This selector does not have any other options; therefore, it only has its key.
|
||||
|
||||
```yaml
|
||||
assist_pipeline:
|
||||
```
|
||||
|
||||
## Boolean selector
|
||||
|
||||
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,
|
||||
for example: `mdi:bell`.
|
||||
|
||||
## Language selector
|
||||
|
||||
The language selector allows a user to pick a language from a list of languages.
|
||||
|
||||

|
||||
|
||||
```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
|
||||
|
||||
The location selector allow a user to pick a location from a map and returns
|
||||
|
@ -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
|
||||
|
||||
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.
|
||||
|
@ -150,6 +150,8 @@ Print out a list of all the sensor states:
|
||||
{% endfor %}
|
||||
```
|
||||
|
||||
{% endraw %}
|
||||
|
||||
Print out a list of all the sensor states sorted by `entity_id`:
|
||||
|
||||
{% 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.
|
||||
|
||||
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.
|
||||
|
||||
### 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
|
||||
|
||||
@ -670,7 +673,7 @@ In this example, the special character '°' will be automatically escaped in ord
|
||||
```text
|
||||
{% set temp = {'temperature': 25, 'unit': '°C'} %}
|
||||
stringified object: {{ temp }}
|
||||
object|to_json: {{ temp|to_json(ensure_ascii=False) }}
|
||||
object|to_json: {{ temp|to_json(sort_keys=True) }}
|
||||
```
|
||||
|
||||
{% endraw %}
|
||||
@ -681,7 +684,7 @@ object|to_json: {{ temp|to_json(ensure_ascii=False) }}
|
||||
|
||||
```text
|
||||
stringified object: {'temperature': 25, 'unit': '°C'}
|
||||
object|to_json: {"temperature": 25, "unit": "\u00b0C"}
|
||||
object|to_json: {"temperature": 25, "unit": "°C"}
|
||||
```
|
||||
|
||||
{% endraw %}
|
||||
@ -693,7 +696,7 @@ Conversely, `from_json` can be used to de-serialize a JSON string back into an o
|
||||
{% raw %}
|
||||
|
||||
```text
|
||||
{% set temp = '{"temperature": 25, "unit": "\u00b0C"}'|from_json %}
|
||||
{% set temp = '{"temperature": 25, "unit": "°C"}'|from_json %}
|
||||
The temperature is {{ temp.temperature }}{{ temp.unit }}
|
||||
```
|
||||
|
||||
|
@ -29,3 +29,6 @@ We have worked with creator [Marcel Zuidwijk](https://www.zuidwijk.com) to devel
|
||||
|
||||

|
||||
|
||||
#### 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).
|
||||
|
@ -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.
|
||||
|
||||
{% 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
|
||||
|
||||
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;'>
|
||||
|
||||
_Disclaimer: Some links on this page are affiliate links._
|
||||
|
@ -3,23 +3,27 @@ title: "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.
|
||||
|
||||
Choose a meaningful name for your scene.
|
||||
|
||||
<p class='img'>
|
||||
<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.
|
||||
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.
|
||||
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**.
|
||||
|
||||
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
|
||||
|
||||
First, check that you have activated the configuration editor.
|
||||
|
@ -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
|
||||
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
|
||||
automation:
|
||||
@ -779,7 +779,7 @@ automation:
|
||||
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:
|
||||
|
||||
```yaml
|
||||
|
@ -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.
|
||||
|
||||
</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.
|
||||
.
|
||||
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**.
|
6
source/_examples/configuration_yaml_by_ntalekt.markdown
Normal file
6
source/_examples/configuration_yaml_by_ntalekt.markdown
Normal 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
|
||||
---
|
@ -46,6 +46,13 @@
|
||||
<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/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>
|
||||
</li>
|
||||
<li>
|
||||
@ -177,6 +184,16 @@
|
||||
<li>{% active_link /integrations/mqtt/#logging Logging %}</li>
|
||||
</ul>
|
||||
</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>
|
||||
</div>
|
||||
</section>
|
||||
|
@ -5,6 +5,7 @@
|
||||
<li>{% active_link /installation/ Installation %}</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/integration/ Integration %}</li>
|
||||
<li>{% active_link /getting-started/automation/ Automation %}</li>
|
||||
<li>
|
||||
{% active_link /getting-started/presence-detection/ Presence detection
|
||||
|
@ -11,6 +11,7 @@ To flash your eMMC using Petitboot and OTG-USB, you will need the following item
|
||||
- HDMI cable and monitor
|
||||
- USB keyboard
|
||||
- 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
|
||||
|
||||
@ -45,13 +46,13 @@ You can safely ignore this message and proceed with the installation
|
||||
|
||||
</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
|
||||
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:
|
||||
|
||||
```bash
|
||||
@ -60,10 +61,19 @@ This will configure the ODROID-N2+ and OTG to act as a memory card reader:
|
||||
|
||||
#### 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 doesn’t support mDNS, you’ll 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 doesn’t support mDNS, you’ll 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/).
|
@ -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.
|
||||
</div>
|
||||
|
||||
### Platform Installation
|
||||
### Platform installation
|
||||
|
||||
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
|
||||
|
||||
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.
|
||||
2. You can go to the **Developer Tools** -> **Services**, select the service `homeassistant.restart` and click "Call Service".
|
||||
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 select **Call Service**.
|
||||
3. Restart it from a terminal.
|
||||
|
||||
{% tabbed_block %}
|
||||
@ -56,7 +56,7 @@ If you change the configuration you have to restart the server. To do that you h
|
||||
|
||||
{% endtabbed_block %}
|
||||
|
||||
### Docker Compose
|
||||
### Docker compose
|
||||
|
||||
<div class="note tip">
|
||||
|
||||
@ -74,11 +74,11 @@ Start it by running:
|
||||
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/" %}
|
||||
|
||||
### 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:
|
||||
|
||||
|
@ -99,6 +99,6 @@ If this address doesn't work you may also try `http://localhost:8123` or `http:/
|
||||
|
||||
<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>
|
||||
|
@ -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.
|
||||
|
||||
{% 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 you’re 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' %}
|
||||
|
||||
### Suggested Hardware
|
||||
### Suggested hardware
|
||||
|
||||
We will need a few things to get started with installing Home Assistant. Links below lead to Ameridroid. If you’re 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 you’re 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/).
|
||||
|
||||
@ -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)
|
||||
- [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 %}
|
||||
|
||||
{% 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 you’re 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 you’re not in the US, you should be able to find it in web stores in your country.
|
||||
|
||||
- [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.
|
||||
{% 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).
|
||||
{% 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.
|
||||
3. Select "Flash from URL".
|
||||
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.
|
||||
1. Select **Flash from URL**.
|
||||

|
||||
|
||||
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 %}
|
||||
{% tabbed_block %}
|
||||
{% 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._
|
||||
|
||||
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**.
|
||||

|
||||
1. When Balena Etcher has downloaded the image, click "Select target"
|
||||
1. When Balena Etcher has downloaded the image, click **Select target**.
|
||||

|
||||
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.
|
||||

|
||||
1. Click on "Flash!" to start writing the image
|
||||
1. Select **Flash!** to start writing the image.
|
||||

|
||||
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.
|
||||

|
||||
|
||||
### 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.
|
||||
|
||||
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">
|
||||
|
||||
@ -223,9 +211,11 @@ If you are running an older Windows version or have a stricter network configura
|
||||
- [Hyper-V][vhdx] (.vhdx)
|
||||
{% 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).
|
||||
|
||||
@ -243,19 +233,19 @@ _All these can be extended if your usage calls for more resources._
|
||||
|
||||
- title: VirtualBox
|
||||
content: |
|
||||
1. Create a new virtual machine
|
||||
2. 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
|
||||
4. Edit the "Settings" of the VM and go "System" then "Motherboard" and select "Enable EFI"
|
||||
5. Then go to "Network" "Adapter 1" choose "Bridged Adapter" and choose your Network adapter
|
||||
1. Create a new virtual machine.
|
||||
1. Select type **Linux** and version **Linux 2.6 / 3.x / 4.x (64-bit)**.
|
||||
1. Select **Use an existing virtual hard disk file**, select the unzipped VDI file from above.
|
||||
1. Edit the **Settings** of the VM and go to **System** > **Motherboard**. Select **Enable EFI**.
|
||||
1. Then go to **Network** > **Adapter 1**. Choose **Bridged Adapter** and choose your network adapter.
|
||||
<div class="note warning">
|
||||
Please keep in mind that the bridged adapter only functions over a hardwired Ethernet connection.
|
||||
Using Wi-Fi on your VirtualBox host is unsupported.
|
||||
</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">
|
||||
|
||||
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:
|
||||
```bash
|
||||
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)
|
||||
content: |
|
||||
1. Create a new virtual machine in `virt-manager`
|
||||
2. Select "Import existing disk image", provide the path to the QCOW2 image above
|
||||
3. Choose "Generic Default" for the operating system
|
||||
4. Check the box for "Customize configuration before install"
|
||||
5. Select your bridge under "Network Selection"
|
||||
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"
|
||||
8. Select device type: "unix"
|
||||
9. Select name: "org.qemu.guest_agent.0"
|
||||
10. Finally select "Begin Installation" (upper left corner)
|
||||
1. Create a new virtual machine in `virt-manager`.
|
||||
1 Select **Import existing disk image**, provide the path to the QCOW2 image above.
|
||||
1. Choose **Generic Default** for the operating system.
|
||||
1. Check the box for **Customize configuration before install**.
|
||||
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`.
|
||||
1. Click **Add Hardware** (bottom left), and select **Channel**.
|
||||
1. Select device type: **unix**.
|
||||
1. Select name: **org.qemu.guest_agent.0**.
|
||||
1. Finally, select **Begin Installation** (upper left corner).
|
||||
|
||||
- title: KVM (virt-install)
|
||||
content: |
|
||||
@ -309,13 +299,13 @@ _All these can be extended if your usage calls for more resources._
|
||||
|
||||
- title: Vmware Workstation
|
||||
content: |
|
||||
1. Create a new virtual machine
|
||||
2. 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”
|
||||
4. Select “Use Bridged Networking”
|
||||
5. Select “Use an existing virtual disk” and select the VMDK file above,
|
||||
1. Create a new virtual machine.
|
||||
1. Select **Custom**, make it compatible with the default of Workstation and ESX.
|
||||
1. Choose **I will install the operating system later**, select **Linux** > **Other Linux 5.x or later kernel 64-bit**.
|
||||
1. Select **Use Bridged Networking**.
|
||||
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' %}
|
||||
|
||||
@ -330,25 +320,25 @@ _All these can be extended if your usage calls for more resources._
|
||||
Hyper-V does not have USB support
|
||||
</div>
|
||||
|
||||
1. Create a new virtual machine
|
||||
2. Select “Generation 2”
|
||||
3. Select “Connection -> “Your Virtual Switch that is bridged”
|
||||
4. Select “Use an existing virtual hard disk” and select the VHDX file from above
|
||||
1. Create a new virtual machine.
|
||||
1. Select **Generation 2**.
|
||||
1. Select **Connection** > **Your Virtual Switch that is bridged**.
|
||||
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 %}
|
||||
|
||||
{% endtabbed_block %}
|
||||
|
||||
### Start up your Virtual Machine
|
||||
### Start up your virtual machine
|
||||
|
||||
1. Start the Virtual Machine
|
||||
2. Observe the boot process of 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. Start the virtual machine.
|
||||
1. Observe the boot process of the Home Assistant Operating System.
|
||||
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 %}
|
||||
|
||||
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/" %}
|
||||
|
||||
|
@ -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 %}
|
||||
{{ 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
|
||||
away.
|
||||
it will be shown as **Discovered**. You can then set it up right away.
|
||||
{% endif %}
|
||||
|
||||
{% details "Manual configuration steps" %}
|
||||
@ -24,17 +23,17 @@ manually:
|
||||
{% endif %}
|
||||
|
||||
- Browse to your Home Assistant instance.
|
||||
- In the sidebar click on _**{% my config icon %}**_.
|
||||
- From the configuration menu select: _**{% my integrations %}**_.
|
||||
- In the sidebar, select **{% my config icon %}**.
|
||||
- From the configuration menu, select **{% my integrations %}**.
|
||||
{% if page.ha_integration_type == 'helper' %}
|
||||
- In top of the screen click the tab: _**{% my helpers %}**_.
|
||||
- In the bottom right, click on the
|
||||
_**{% my config_flow_start icon domain=domain title="Create helper" %}**_ button.
|
||||
- In top of the screen, select the tab: **{% my helpers %}**.
|
||||
- In the bottom right, select the
|
||||
**{% my config_flow_start icon domain=domain title="Create helper" %}** button.
|
||||
{% else %}
|
||||
- In the bottom right, click on the
|
||||
_**{% my config_flow_start icon domain=domain %}**_ button.
|
||||
- In the bottom right, select the
|
||||
**{% my config_flow_start icon domain=domain %}** button.
|
||||
{% endif %}
|
||||
- From the list, search and select _**"{{ name }}"**_.
|
||||
- Follow the instruction on screen to complete the set up.
|
||||
- From the list, search and select **{{ name }}**.
|
||||
- Follow the instructions on screen to complete the setup.
|
||||
|
||||
{% enddetails %}
|
||||
|
@ -15,6 +15,8 @@
|
||||
{% include asides/getting_started_navigation.html %}
|
||||
{% elsif root == 'docs' %}
|
||||
{% include asides/docs_navigation.html %}
|
||||
{% elsif root == 'projects' %}
|
||||
{% include asides/docs_navigation.html %}
|
||||
{% elsif root == 'faq' %}
|
||||
{% include asides/faq_navigation.html %}
|
||||
{% elsif root == 'hassio' or root == 'addons' %}
|
||||
|
@ -20,7 +20,7 @@ ha_platforms:
|
||||
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:
|
||||
|
||||
|
@ -36,11 +36,19 @@ The wall-mounted Android tablet running the [MyPlace](https://play.google.com/st
|
||||
|
||||
### 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
|
||||
|
||||
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
|
||||
|
||||
@ -53,23 +61,25 @@ The integration will create sensor entities for a variety of aspects:
|
||||
|
||||
### 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
|
||||
|
||||
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
|
||||
|
||||
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
|
||||
|
||||
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
|
||||
|
||||
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
|
||||
|
||||
|
@ -98,7 +98,7 @@ code_trigger_required:
|
||||
command_template:
|
||||
description: "The [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) used for the command payload. Available variables: `action` and `code`."
|
||||
required: false
|
||||
type: string
|
||||
type: template
|
||||
default: action
|
||||
command_topic:
|
||||
description: The MQTT topic to publish commands to change the alarm state.
|
||||
|
@ -289,7 +289,7 @@ elements:
|
||||
tap_action:
|
||||
action: call-service
|
||||
service: amcrest.ptz_control
|
||||
data:
|
||||
service_data:
|
||||
entity_id: camera.lakehouse
|
||||
movement: up
|
||||
- type: icon
|
||||
@ -301,7 +301,7 @@ elements:
|
||||
tap_action:
|
||||
action: call-service
|
||||
service: amcrest.ptz_control
|
||||
data:
|
||||
service_data:
|
||||
entity_id: camera.lakehouse
|
||||
movement: down
|
||||
- type: icon
|
||||
@ -313,7 +313,7 @@ elements:
|
||||
tap_action:
|
||||
action: call-service
|
||||
service: amcrest.ptz_control
|
||||
data:
|
||||
service_data:
|
||||
entity_id: camera.lakehouse
|
||||
movement: left
|
||||
- type: icon
|
||||
@ -325,7 +325,7 @@ elements:
|
||||
tap_action:
|
||||
action: call-service
|
||||
service: amcrest.ptz_control
|
||||
data:
|
||||
service_data:
|
||||
entity_id: camera.lakehouse
|
||||
movement: right
|
||||
- type: icon
|
||||
@ -337,7 +337,7 @@ elements:
|
||||
tap_action:
|
||||
action: call-service
|
||||
service: amcrest.ptz_control
|
||||
data:
|
||||
service_data:
|
||||
entity_id: camera.lakehouse
|
||||
movement: left_up
|
||||
- type: icon
|
||||
@ -349,7 +349,7 @@ elements:
|
||||
tap_action:
|
||||
action: call-service
|
||||
service: amcrest.ptz_control
|
||||
data:
|
||||
service_data:
|
||||
entity_id: camera.lakehouse
|
||||
movement: right_up
|
||||
- type: icon
|
||||
@ -361,7 +361,7 @@ elements:
|
||||
tap_action:
|
||||
action: call-service
|
||||
service: amcrest.ptz_control
|
||||
data:
|
||||
service_data:
|
||||
entity_id: camera.lakehouse
|
||||
movement: left_down
|
||||
- type: icon
|
||||
@ -373,7 +373,7 @@ elements:
|
||||
tap_action:
|
||||
action: call-service
|
||||
service: amcrest.ptz_control
|
||||
data:
|
||||
service_data:
|
||||
entity_id: camera.lakehouse
|
||||
movement: right_down
|
||||
- type: icon
|
||||
@ -385,7 +385,7 @@ elements:
|
||||
tap_action:
|
||||
action: call-service
|
||||
service: amcrest.ptz_control
|
||||
data:
|
||||
service_data:
|
||||
entity_id: camera.lakehouse
|
||||
movement: zoom_in
|
||||
hold_action:
|
||||
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
title: Android TV
|
||||
description: Instructions on how to integrate Android TV and Fire TV devices into Home Assistant.
|
||||
title: Android Debug Bridge
|
||||
description: Instructions on how to integrate Android and Fire TV devices into Home Assistant.
|
||||
ha_category:
|
||||
- Media Player
|
||||
ha_release: 0.7.6
|
||||
@ -16,7 +16,7 @@ ha_platforms:
|
||||
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'>
|
||||
|
||||
@ -26,7 +26,7 @@ When setting up this integration, it is recommended that you do NOT use an ADB s
|
||||
|
||||
## 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:
|
||||
|
||||
@ -62,11 +62,11 @@ Configure State Detection Rules:
|
||||
|
||||
## 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'>
|
||||
|
||||
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>
|
||||
|
||||
@ -84,7 +84,7 @@ Prior to Home Assistant 0.101, this approach did not work well for newer devices
|
||||
|
||||
### 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'>
|
||||
|
||||
@ -92,21 +92,21 @@ To configure ADB server on integration setup, you need to enable [advanced mode]
|
||||
|
||||
</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
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
@ -138,11 +138,11 @@ stop_netflix:
|
||||
|
||||
### `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 |
|
||||
| ---------------------- | -------- | ----------- |
|
||||
| `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.
|
||||
|
||||
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)
|
||||
|
||||
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 |
|
||||
| ---------------------- | -------- | ----------- |
|
||||
| `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.
|
||||
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.
|
||||
|
||||
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`
|
||||
|
||||
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 |
|
||||
| ---------------------- | -------- | ----------- |
|
||||
| `entity_id` | no | Name of Android TV / Fire TV entity.
|
||||
| `device_path` | no | The filepath on the Android TV / Fire TV device.
|
||||
| `entity_id` | no | Name of Android / Fire TV entity.
|
||||
| `device_path` | no | The filepath on the Android / Fire TV device.
|
||||
| `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 |
|
||||
| ---------------------- | -------- | ----------- |
|
||||
| `entity_id` | no | Name(s) of Android TV / Fire TV entities.
|
||||
| `device_path` | no | The filepath on the Android TV / Fire TV device.
|
||||
| `entity_id` | no | Name(s) of Android / Fire TV entities.
|
||||
| `device_path` | no | The filepath on the Android / Fire TV device.
|
||||
| `local_path` | no | The filepath on your Home Assistant instance.
|
||||
|
||||
## 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:
|
||||
|
||||
|
361
source/_integrations/androidtv_remote.markdown
Normal file
361
source/_integrations/androidtv_remote.markdown
Normal 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.
|
||||
|
||||

|
||||
|
||||
{% 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 %}
|
40
source/_integrations/anova.markdown
Normal file
40
source/_integrations/anova.markdown
Normal 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.
|
@ -15,7 +15,7 @@ ha_platforms:
|
||||
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:
|
||||
|
||||
@ -41,11 +41,19 @@ Supported devices:
|
||||
- SA 30
|
||||
- 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 %}
|
||||
|
||||
## 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
|
||||
|
||||
|
28
source/_integrations/assist_pipeline.markdown
Normal file
28
source/_integrations/assist_pipeline.markdown
Normal 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/).
|
@ -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:
|
||||
|
||||
<p class='img'>
|
||||
<img src='/images/screenshots/binary_sensor_classes_icons.png' />
|
||||

|
||||
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
|
||||
configuration to receive the icon coloring.
|
||||
</p>
|
||||
|
||||
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)).*
|
||||
|
@ -114,7 +114,8 @@ device:
|
||||
required: false
|
||||
type: string
|
||||
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
|
||||
type: string
|
||||
enabled_by_default:
|
||||
@ -202,7 +203,7 @@ unique_id:
|
||||
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)."
|
||||
required: false
|
||||
type: string
|
||||
type: template
|
||||
{% endconfiguration %}
|
||||
|
||||
## Examples
|
||||
|
@ -86,6 +86,7 @@ If you experience an unreliable Bluetooth connection, installing a short USB ext
|
||||
- DIGITUS DN-30210-1 (CSR8510A10)
|
||||
- Enbiawit BT403 (CSR8510A10)
|
||||
- Feasycom FSC-BP119 (CSR8510A10) 📶
|
||||
- Gold Touch E-USB-BT4 (CSR8510A10)
|
||||
- HIDEEZ BT0015-01 (CSR8510A10)
|
||||
- Maxesla CSR 4.0 (CSR8510A10)
|
||||
- Nuu You BT40 (CSR8510A10)
|
||||
|
@ -7,7 +7,9 @@ ha_category:
|
||||
- Car
|
||||
- Lock
|
||||
- Notifications
|
||||
- Number
|
||||
- Presence Detection
|
||||
- Select
|
||||
- Sensor
|
||||
ha_release: 0.64
|
||||
ha_iot_class: Cloud Polling
|
||||
@ -23,6 +25,8 @@ ha_platforms:
|
||||
- diagnostics
|
||||
- lock
|
||||
- notify
|
||||
- number
|
||||
- select
|
||||
- sensor
|
||||
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).
|
||||
- [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.
|
||||
- [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
|
||||
|
||||
@ -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.
|
||||
|
||||
## 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
|
||||
|
||||
This software is not affiliated with or endorsed by BMW Group.
|
||||
|
@ -2,9 +2,13 @@
|
||||
title: Brottsplatskartan
|
||||
description: Instructions on how to integrate brottsplatskartan.se into Home Assistant.
|
||||
ha_category:
|
||||
- Sensor
|
||||
- Social
|
||||
ha_release: 0.85
|
||||
ha_iot_class: Cloud Polling
|
||||
ha_config_flow: true
|
||||
ha_codeowners:
|
||||
- '@gjohansson-ST'
|
||||
ha_domain: brottsplatskartan
|
||||
ha_platforms:
|
||||
- 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.
|
||||
|
||||
## Configuration
|
||||
|
||||
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 %}
|
||||
{% include integrations/config_flow.md %}
|
||||
|
||||
## Notes
|
||||
|
||||
|
@ -112,8 +112,9 @@ device:
|
||||
required: false
|
||||
type: string
|
||||
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
|
||||
default: None
|
||||
type: device_class
|
||||
default: None
|
||||
enabled_by_default:
|
||||
|
@ -180,3 +180,17 @@ data:
|
||||
start_date: "2022-10-01"
|
||||
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 %}
|
||||
|
@ -290,7 +290,7 @@ preset_mode_state_topic:
|
||||
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`.
|
||||
required: false
|
||||
type: string
|
||||
type: template
|
||||
preset_modes:
|
||||
description: List of preset modes this climate is supporting. Common examples include `eco`, `away`, `boost`, `comfort`, `home`, `sleep` and `activity`.
|
||||
required: false
|
||||
@ -342,7 +342,7 @@ target_humidity_state_topic:
|
||||
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.
|
||||
required: false
|
||||
type: string
|
||||
type: template
|
||||
temperature_command_template:
|
||||
description: A template to render the value sent to the `temperature_command_topic` with.
|
||||
required: false
|
||||
|
@ -1,8 +1,11 @@
|
||||
---
|
||||
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:
|
||||
- Binary Sensor
|
||||
- Cover
|
||||
- Notifications
|
||||
- Sensor
|
||||
- Utility
|
||||
ha_release: 0.12
|
||||
ha_iot_class: Local Polling
|
||||
@ -16,9 +19,9 @@ ha_platforms:
|
||||
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:
|
||||
|
||||
@ -40,45 +43,282 @@ command:
|
||||
description: The action to take to get the value.
|
||||
required: true
|
||||
type: string
|
||||
name:
|
||||
description: Let you overwrite the name of the device.
|
||||
required: false
|
||||
type: string
|
||||
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:
|
||||
description: The payload that represents enabled state.
|
||||
required: false
|
||||
type: string
|
||||
default: 'ON'
|
||||
payload_off:
|
||||
description: The payload that represents disabled state.
|
||||
required: false
|
||||
type: string
|
||||
default: 'OFF'
|
||||
value_template:
|
||||
description: Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract a value from the payload.
|
||||
required: false
|
||||
type: string
|
||||
scan_interval:
|
||||
description: Defines number of seconds for polling interval.
|
||||
required: false
|
||||
type: integer
|
||||
default: 60
|
||||
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:
|
||||
description: Let you overwrite the name of the device.
|
||||
required: false
|
||||
type: string
|
||||
default: "*name* from the device"
|
||||
payload_on:
|
||||
description: The payload that represents enabled state.
|
||||
required: false
|
||||
type: string
|
||||
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:
|
||||
description: The payload that represents disabled state.
|
||||
required: false
|
||||
type: string
|
||||
default: 'OFF'
|
||||
scan_interval:
|
||||
description: Defines number of seconds for polling interval.
|
||||
required: false
|
||||
type: integer
|
||||
default: 60
|
||||
value_template:
|
||||
description: Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract a value from the payload.
|
||||
required: false
|
||||
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:
|
||||
description: Defines number of seconds for polling interval.
|
||||
required: false
|
||||
type: integer
|
||||
default: 60
|
||||
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.
|
||||
required: false
|
||||
type: integer
|
||||
default: 15
|
||||
friendly_name:
|
||||
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
|
||||
type: string
|
||||
{% 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
|
||||
|
||||
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.
|
||||
|
||||
## 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
|
||||
|
||||
@ -160,6 +400,279 @@ binary_sensor:
|
||||
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
|
||||
|
||||
Available services: `reload`.
|
||||
|
@ -14,7 +14,7 @@ ha_platforms:
|
||||
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
|
||||
|
||||
|
@ -33,7 +33,7 @@ In English, you can say things like "turn on kitchen lights" or "turn off lights
|
||||
|
||||
## 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.
|
||||
|
||||
@ -53,7 +53,7 @@ intents:
|
||||
|
||||
{% 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 %}
|
||||
|
||||
@ -72,7 +72,7 @@ More complex [actions](/docs/scripts/) can be done in `intent_script`, such as c
|
||||
|
||||
## 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:
|
||||
|
||||
|
@ -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 %}
|
@ -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
|
||||
**{% 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
|
||||
`default_config:` in your `configuration.yaml`, it should already be there by
|
||||
|
@ -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 %}
|
@ -15,7 +15,7 @@ Home Assistant can give you an interface to control covers such as rollershutter
|
||||
|
||||
## 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.
|
||||
- **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:
|
||||
|
||||
<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>
|
||||

|
||||
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
|
||||
|
||||
@ -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.
|
||||
|
||||
#### 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`
|
||||
|
||||
Set cover position of one or multiple covers.
|
||||
|
@ -125,7 +125,8 @@ device:
|
||||
required: false
|
||||
type: string
|
||||
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
|
||||
type: string
|
||||
enabled_by_default:
|
||||
@ -207,7 +208,7 @@ position_open:
|
||||
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;"
|
||||
required: false
|
||||
type: string
|
||||
type: template
|
||||
position_topic:
|
||||
description: The MQTT topic subscribed to receive cover position messages.
|
||||
required: false
|
||||
@ -225,7 +226,7 @@ retain:
|
||||
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;"
|
||||
required: false
|
||||
type: string
|
||||
type: template
|
||||
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."
|
||||
required: false
|
||||
@ -267,7 +268,7 @@ tilt_closed_value:
|
||||
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;"
|
||||
required: false
|
||||
type: string
|
||||
type: template
|
||||
tilt_command_topic:
|
||||
description: The MQTT topic to publish commands to control the cover tilt.
|
||||
required: false
|
||||
@ -295,7 +296,7 @@ tilt_optimistic:
|
||||
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;"
|
||||
required: false
|
||||
type: string
|
||||
type: template
|
||||
tilt_status_topic:
|
||||
description: The MQTT topic subscribed to receive tilt status update values.
|
||||
required: false
|
||||
@ -307,7 +308,7 @@ unique_id:
|
||||
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."
|
||||
required: false
|
||||
type: string
|
||||
type: template
|
||||
{% endconfiguration %}
|
||||
|
||||
<div class="note">
|
||||
|
@ -54,11 +54,11 @@ cover:
|
||||
required: false
|
||||
type: string
|
||||
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
|
||||
type: 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
|
||||
type: template
|
||||
icon_template:
|
||||
@ -109,7 +109,7 @@ cover:
|
||||
type: boolean
|
||||
default: false
|
||||
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
|
||||
type: template
|
||||
{% endconfiguration %}
|
||||
|
@ -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:
|
||||
|
||||
- [Automation](/integrations/automation/) (`automation`)
|
||||
- [Assist pipeline](/integrations/assist_pipeline/) (`assist_pipeline`)
|
||||
- [Backup](/integrations/backup/) (`backup`)
|
||||
- [Bluetooth](/integrations/bluetooth/) (`bluetooth`)
|
||||
- [Configuration](/integrations/config/) (`config`)
|
||||
|
@ -73,6 +73,7 @@ Known supported devices:
|
||||
- Marantz AV7703
|
||||
- Marantz AV7704
|
||||
- Marantz CINEMA 50
|
||||
- Marantz CINEMA 70s
|
||||
- Marantz M-CR510
|
||||
- Marantz M-CR511
|
||||
- Marantz M-CR603
|
||||
@ -80,6 +81,7 @@ Known supported devices:
|
||||
- Marantz M-CR611
|
||||
- Marantz SR5006
|
||||
- Marantz SR5008
|
||||
- Marantz SR5010
|
||||
- Marantz SR5011
|
||||
- Marantz SR5015
|
||||
- Marantz SR6007 - SR6012
|
||||
|
@ -35,27 +35,25 @@ The name you give your application on the [Discord My Apps page](https://discord
|
||||
|
||||
### 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'>
|
||||
<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`
|
||||

|
||||
|
||||
<p class='img'>
|
||||
<img src='/images/screenshots/discord-auth.png' />
|
||||
</p>
|
||||
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**.
|
||||
|
||||
`https://discordapp.com/api/oauth2/authorize?client_id=[APPLICATION_ID]&scope=bot&permissions=[PERMISSIONS_INTEGER]`
|
||||
|
||||

|
||||
|
||||
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**.
|
||||
|
||||
<p class='img'>
|
||||
<img src='/images/screenshots/discord-api.png' />
|
||||
</p>
|
||||

|
||||
|
||||
Right click channel name and copy the channel ID (**Copy ID**).
|
||||
|
||||
|
@ -10,6 +10,7 @@ ha_codeowners:
|
||||
- '@runningman84'
|
||||
- '@stephan192'
|
||||
- '@Hummel95'
|
||||
- '@andarotajo'
|
||||
ha_platforms:
|
||||
- sensor
|
||||
ha_integration_type: integration
|
||||
|
@ -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 at its lowest
|
||||
- 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
|
||||
|
||||
|
@ -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.
|
||||
3. Hit next and select 'Customized'
|
||||
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.
|
||||
|
||||
Ecowitt doesn't support TLS/SSL, you can use the NGINX TLS Proxy Add-on to support HTTPS and HTTP at the same time.
|
||||
|
@ -15,7 +15,7 @@ ha_codeowners:
|
||||
|
||||
<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>
|
||||
|
||||
@ -41,13 +41,13 @@ If you added or upgraded to a newer Alexa device and devices are not found, you
|
||||
|
||||
<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 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>
|
||||
|
||||
@ -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
|
||||
```
|
||||
|
||||
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
|
||||
|
||||
|
@ -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 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:
|
||||
|
||||
@ -44,7 +44,7 @@ The following devices have been confirmed to work out of the box:
|
||||
- EnOcean STM-330 temperature sensor
|
||||
- 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.
|
||||
|
||||
@ -58,10 +58,10 @@ This can typically be one of those batteryless wall switches.
|
||||
Tested with:
|
||||
|
||||
- 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
|
||||
|
||||
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-02 (Light and Blind Control - Application Style 1)
|
||||
@ -107,7 +107,7 @@ Sample automation to switch lights on and off:
|
||||
```yaml
|
||||
# Example automation to turn lights on/off on button release
|
||||
automation:
|
||||
- alias: "hall light switches"
|
||||
- alias: "Hall light switches"
|
||||
trigger:
|
||||
platform: event
|
||||
event_type: button_pressed
|
||||
@ -122,7 +122,7 @@ automation:
|
||||
|
||||
{% 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
|
||||
|
||||
@ -207,7 +207,7 @@ 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**
|
||||
- **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.
|
||||
|
||||
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.
|
||||
- **A5-02-01** to **A5-02-1B** - Temperature Sensor with various temperature ranges
|
||||
|
@ -72,6 +72,7 @@ Tested devices:
|
||||
- Epson ET-2650
|
||||
- Epson ET-4750
|
||||
- Epson EcoTank ET-5150 (51x0)
|
||||
- Epson Expression Home XP-2100
|
||||
- Epson Expression Home XP-2105
|
||||
|
||||
To make this module work you need to connect your printer to your LAN.
|
||||
|
@ -20,9 +20,6 @@ The Fan integration allows you to control and monitor Fan devices.
|
||||
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`
|
||||
|
||||
Deprecated services:
|
||||
`fan.set_speed`
|
||||
|
||||
<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**.
|
||||
@ -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`.
|
||||
|
||||
|
||||
### 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
|
||||
|
||||
```yaml
|
||||
|
@ -160,6 +160,22 @@ optimistic:
|
||||
required: false
|
||||
type: boolean
|
||||
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:
|
||||
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
|
||||
@ -175,7 +191,7 @@ oscillation_state_topic:
|
||||
oscillation_value_template:
|
||||
description: "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract a value from the oscillation."
|
||||
required: false
|
||||
type: string
|
||||
type: template
|
||||
payload_available:
|
||||
description: The payload that represents the available state.
|
||||
required: false
|
||||
@ -231,7 +247,7 @@ percentage_state_topic:
|
||||
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`.
|
||||
required: false
|
||||
type: string
|
||||
type: 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`.
|
||||
required: false
|
||||
@ -247,7 +263,7 @@ preset_mode_state_topic:
|
||||
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`.
|
||||
required: false
|
||||
type: string
|
||||
type: template
|
||||
preset_modes:
|
||||
description: List of preset modes this fan is capable of running at. Common examples include `auto`, `smart`, `whoosh`, `eco` and `breeze`.
|
||||
required: false
|
||||
@ -280,7 +296,7 @@ state_topic:
|
||||
state_value_template:
|
||||
description: "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract a value from the state."
|
||||
required: false
|
||||
type: string
|
||||
type: template
|
||||
unique_id:
|
||||
description: An ID that uniquely identifies this fan. If two fans have the same unique ID, Home Assistant will raise an exception.
|
||||
required: false
|
||||
@ -309,6 +325,9 @@ mqtt:
|
||||
- name: "Bedroom Fan"
|
||||
state_topic: "bedroom_fan/on/state"
|
||||
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_command_topic: "bedroom_fan/oscillation/set"
|
||||
percentage_state_topic: "bedroom_fan/speed/percentage_state"
|
||||
@ -343,6 +362,8 @@ mqtt:
|
||||
- name: "Bedroom Fan"
|
||||
command_topic: "bedroom_fan/on/set"
|
||||
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_template: "{ oscillation: '{{ value }}'}"
|
||||
percentage_command_topic: "bedroom_fan/speed/percentage"
|
||||
@ -358,3 +379,18 @@ mqtt:
|
||||
```
|
||||
|
||||
{% 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 %}
|
||||
|
@ -1,12 +1,12 @@
|
||||
---
|
||||
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:
|
||||
- Media Player
|
||||
ha_domain: fire_tv
|
||||
ha_integration_type: virtual
|
||||
ha_supporting_domain: androidtv
|
||||
ha_supporting_integration: Android TV
|
||||
ha_supporting_integration: Android Debug Bridge
|
||||
ha_release: 0.7.6
|
||||
ha_codeowners:
|
||||
- '@JeffLIrion'
|
||||
|
@ -17,7 +17,7 @@ To get an overview about the available [currencies](https://fixer.io/symbols).
|
||||
|
||||
## Setup
|
||||
|
||||
You need to create an [API key](https://fixer.io/product). 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
|
||||
|
||||
|
@ -83,7 +83,7 @@ These devices have been sold under at least the following brands:
|
||||
- [Diode Dynamics](https://www.diodedynamics.com/)
|
||||
- [Flux LED](https://www.fluxsmartlighting.com/)
|
||||
- [FVTLED](https://fvtled.com/)
|
||||
- [GEV LIG](https://www.gev.de/)
|
||||
- GEV LIG
|
||||
- GEYUEYA Home
|
||||
- GIDEALED
|
||||
- [GIDERWEL](https://giderwel.com/)
|
||||
@ -98,7 +98,7 @@ These devices have been sold under at least the following brands:
|
||||
- INDARUN
|
||||
- iNextStation
|
||||
- [Koopower](https://www.koopower.com/)
|
||||
- [Lallumer](https://www.lapuretes.cn/)
|
||||
- Lallumer
|
||||
- LEDENET
|
||||
- [LiteWRX](https://litewrx.com/)
|
||||
- Lytworx
|
||||
|
@ -71,6 +71,7 @@ The Forecast.Solar integration mainly provides sensors that you can use in your
|
||||
automations.
|
||||
|
||||
- Estimated Energy Production - Today (in kWh)
|
||||
- Estimated Energy Production - Remaining Today (in kWh)
|
||||
- Estimated Energy Production - Tomorrow (in kWh)
|
||||
- Estimated Energy Production - This Hour (in kWh)
|
||||
- Estimated Energy Production - Next Hour (in kWh)
|
||||
|
@ -2,6 +2,7 @@
|
||||
title: Freebox
|
||||
description: Instructions on how to integrate Freebox routers into Home Assistant.
|
||||
ha_category:
|
||||
- Camera
|
||||
- Network
|
||||
- Presence Detection
|
||||
- Sensor
|
||||
@ -15,6 +16,7 @@ ha_config_flow: true
|
||||
ha_domain: freebox
|
||||
ha_platforms:
|
||||
- button
|
||||
- camera
|
||||
- device_tracker
|
||||
- sensor
|
||||
- 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
|
||||
* [Device tracker](#presence-detection) for connected devices
|
||||
* [Switch](#switch) to control Wi-Fi
|
||||
* [Camera](#camera)
|
||||
|
||||
{% 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 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
|
||||
|
||||
Only the routers with Freebox OS are supported:
|
||||
@ -112,6 +117,9 @@ The monitored metrics are:
|
||||
* Free partition space of used disks
|
||||
* Number of missed calls
|
||||
|
||||
## Camera
|
||||
Cameras are only available in Freebox V7 (also known as Freebox Delta).
|
||||
|
||||
## Service
|
||||
|
||||
### Service `freebox.reboot`
|
||||
|
@ -14,7 +14,7 @@ ha_platforms:
|
||||
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.
|
||||
|
||||
There is currently support for the following device types within Home Assistant:
|
||||
|
@ -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.
|
||||
|
||||
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 %}
|
||||
|
||||
|
@ -145,3 +145,19 @@ Also an event `habitica_api_call_success` will be fired with the following data:
|
||||
"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 %}
|
||||
|
@ -68,6 +68,8 @@ For Home Assistant Host, the following sensors are available:
|
||||
|
||||
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 |
|
||||
| ------- | ------------------ | ----------- |
|
||||
| Update Available | no | Whether there is an update available for this add-on (This is deprecated, use the Update entities instead.)
|
||||
|
@ -24,148 +24,7 @@ This integration is by default enabled, unless you've disabled or removed the [`
|
||||
history:
|
||||
```
|
||||
|
||||
<p class='img'>
|
||||
<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
|
||||
## API
|
||||
|
||||
The history information is also available through the
|
||||
[RESTful API](/developers/rest_api/#get-apihistory).
|
||||
|
@ -129,6 +129,11 @@ duration:
|
||||
|
||||
</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
|
||||
|
||||
Here are some examples of periods you could work with, and what to write in your `configuration.yaml`:
|
||||
|
@ -43,7 +43,9 @@ Note that it depends on the appliance and on API permissions which of the featur
|
||||
- OAuth Flow: Authorization Code Grant Flow
|
||||
- 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”`.
|
||||
- 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.
|
||||
|
@ -1,5 +1,5 @@
|
||||
---
|
||||
title: HomeKit
|
||||
title: HomeKit Bridge
|
||||
description: Instructions on how to set up the HomeKit Bridge integration in Home Assistant.
|
||||
featured: true
|
||||
ha_category:
|
||||
@ -253,13 +253,18 @@ homekit:
|
||||
type: integer
|
||||
default: 1316
|
||||
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
|
||||
type: string
|
||||
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:
|
||||
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
|
||||
type: string
|
||||
default: libopus
|
||||
|
@ -33,11 +33,11 @@ Home Assistant is integrated with the following devices through [https://mytotal
|
||||
|
||||
- Thermostats
|
||||
- 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
|
||||
- A Temperature 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
|
||||
|
||||
@ -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.
|
||||
|
||||
All [climate services](/integrations/climate) are supported except set_swing_mode
|
||||
All [climate services](/integrations/climate) are supported except set_swing_mode.
|
||||
|
||||
## Sensor
|
||||
|
||||
|
@ -42,7 +42,7 @@ server_port:
|
||||
type: integer
|
||||
default: 8123
|
||||
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
|
||||
type: string
|
||||
ssl_peer_certificate:
|
||||
@ -50,7 +50,7 @@ ssl_peer_certificate:
|
||||
required: false
|
||||
type: string
|
||||
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
|
||||
type: string
|
||||
cors_allowed_origins:
|
||||
@ -118,7 +118,7 @@ http:
|
||||
|
||||
## 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.
|
||||
|
||||
@ -188,7 +188,7 @@ $ curl -X POST -H "Authorization: Bearer LONG_LIVED_ACCESS_TOKEN" \
|
||||
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
|
||||
$ curl -X GET -H "Authorization: Bearer LONG_LIVED_ACCESS_TOKEN" \
|
||||
@ -227,7 +227,7 @@ print(response.text)
|
||||
|
||||
#### 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
|
||||
$ 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
|
||||
```
|
||||
|
||||
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
|
||||
$ curl -X GET -H "Authorization: Bearer LONG_LIVED_ACCESS_TOKEN" \
|
||||
|
@ -121,7 +121,7 @@ device:
|
||||
required: false
|
||||
type: string
|
||||
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
|
||||
type: string
|
||||
default: humidifier
|
||||
@ -221,7 +221,7 @@ target_humidity_state_topic:
|
||||
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.
|
||||
required: false
|
||||
type: string
|
||||
type: 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`.
|
||||
required: false
|
||||
@ -237,7 +237,7 @@ mode_state_topic:
|
||||
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.
|
||||
required: false
|
||||
type: string
|
||||
type: template
|
||||
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.
|
||||
required: false
|
||||
@ -260,7 +260,7 @@ state_topic:
|
||||
state_value_template:
|
||||
description: "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract a value from the state."
|
||||
required: false
|
||||
type: string
|
||||
type: template
|
||||
unique_id:
|
||||
description: An ID that uniquely identifies this humidifier. If two humidifiers have the same unique ID, Home Assistant will raise an exception.
|
||||
required: false
|
||||
|
@ -178,7 +178,7 @@ Set the type for connected power source. Available options are Hardwired Power S
|
||||
### Calling a Powerview Scene
|
||||
|
||||
``` yaml
|
||||
alias: "blinds closed at night"
|
||||
alias: "Blinds closed at night"
|
||||
trigger:
|
||||
platform: time
|
||||
at: "18:00:00"
|
||||
|
@ -11,6 +11,7 @@ ha_platforms:
|
||||
ha_integration_type: integration
|
||||
ha_codeowners:
|
||||
- '@engrbm87'
|
||||
- '@jbouwh'
|
||||
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
|
||||
- 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
|
||||
|
||||
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:
|
||||
description: The IMAP folder configuration
|
||||
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:
|
||||
description: The `sender` of the message
|
||||
subject:
|
||||
|
@ -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.
|
@ -14,15 +14,15 @@ ha_integration_type: helper
|
||||
|
||||
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
|
||||
an automation. This can for example be used to disable or enable certain
|
||||
automations by using them in their conditions.
|
||||
an {% term automation %}. This can for example be used to disable or enable certain
|
||||
automations by using them in their {% term conditions %}.
|
||||
|
||||
## Configuration
|
||||
|
||||
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
|
||||
**{% my helpers title="Settings -> Devices & Services -> Helpers" %}** and click the add button;
|
||||
next choose the "**Toggle**" option.
|
||||
**{% my helpers title="Settings > Devices & Services > Helpers" %}** and click the add button;
|
||||
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
|
||||
`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`:
|
||||
|
||||
```yaml
|
||||
# Example configuration.yaml entry
|
||||
input_boolean:
|
||||
notify_home:
|
||||
name: Notify when someone arrives home
|
||||
icon: mdi:car
|
||||
```
|
||||
|
||||
{% configuration %}
|
||||
input_boolean:
|
||||
description: Alias for the input. Multiple entries are allowed.
|
||||
@ -61,9 +53,17 @@ input_boolean:
|
||||
type: icon
|
||||
{% endconfiguration %}
|
||||
|
||||
```yaml
|
||||
# Example configuration.yaml entry
|
||||
input_boolean:
|
||||
notify_home:
|
||||
name: Notify when someone arrives home
|
||||
icon: mdi:car
|
||||
```
|
||||
|
||||
## 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
|
||||
Home Assistant itself.
|
||||
|
||||
@ -105,7 +105,7 @@ automation:
|
||||
|
||||
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
|
||||
your automations.
|
||||
your automation action.
|
||||
|
||||
```yaml
|
||||
service: input_boolean.turn_on
|
||||
|
@ -20,7 +20,7 @@ like an automation.
|
||||
|
||||
The preferred way to configure button helpers is via the user interface.
|
||||
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
|
||||
`default_config:` in your `configuration.yaml`, it should already be there by
|
||||
|
@ -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
|
||||
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.
|
||||
|
||||
`input_datetime` can also be configured via YAML. To add three datetime inputs to your installation,
|
||||
|
@ -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 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.
|
||||
If you removed `default_config:` from you configuration, you must add `input_number:` to your `configuration.yaml` first, then you can use the UI.
|
||||
|
@ -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 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.
|
||||
If you removed `default_config:` from you configuration, you must add `input_select:` to your `configuration.yaml` first, then you can use the UI.
|
||||
|
@ -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 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.
|
||||
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`:
|
||||
|
||||
|
@ -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
|
||||
|
||||
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.
|
||||
|
@ -11,9 +11,9 @@ ha_platforms:
|
||||
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:
|
||||
|
||||
|
@ -57,7 +57,7 @@ device_names:
|
||||
required: false
|
||||
type: string
|
||||
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
|
||||
type: string
|
||||
{% endconfiguration %}
|
||||
|
@ -16,7 +16,7 @@ ha_integration_type: integration
|
||||
---
|
||||
|
||||
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 %}
|
||||
|
||||
|
@ -19,7 +19,6 @@ ha_platforms:
|
||||
ha_integration_type: integration
|
||||
ha_codeowners:
|
||||
- '@bdraco'
|
||||
- '@Djelibeybi'
|
||||
ha_quality_scale: platinum
|
||||
ha_dhcp: true
|
||||
---
|
||||
@ -126,7 +125,7 @@ script:
|
||||
|
||||
### 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.
|
||||
|
||||
|
@ -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:
|
||||
|
||||
```txt
|
||||
profile,color_x,color_y,brightness,transition
|
||||
id,x,y,brightness,transition
|
||||
```
|
||||
|
||||
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.
|
||||
| `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.
|
||||
| `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.
|
||||
| `color_temp_kelvin` | yes | An integer in Kelvin representing the color temperature you want the light to be.
|
||||
| `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.
|
||||
| `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.
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user