mirror of
https://github.com/home-assistant/home-assistant.io.git
synced 2025-07-30 04:36:51 +00:00
Merge branch 'current' into automation-editor-update-procedure
This commit is contained in:
commit
1955cc48ab
@ -32,7 +32,8 @@
|
||||
"gitlens.showWelcomeOnInstall": false,
|
||||
"gitlens.showWhatsNewAfterUpgrades": false,
|
||||
"terminal.integrated.shell.linux": "/usr/bin/zsh",
|
||||
"workbench.startupEditor": "none"
|
||||
"workbench.startupEditor": "none",
|
||||
"rubyLsp.rubyVersionManager": "none"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
24
.github/workflows/add_prs_to_project.yml
vendored
24
.github/workflows/add_prs_to_project.yml
vendored
@ -1,24 +0,0 @@
|
||||
name: Add new PRs to project
|
||||
|
||||
on:
|
||||
pull_request_target:
|
||||
types:
|
||||
- opened
|
||||
|
||||
jobs:
|
||||
add-to-project:
|
||||
name: Add new PR to project
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Generate app token
|
||||
id: token
|
||||
# Pinned to a specific version of the action for security reasons
|
||||
uses: tibdex/github-app-token@3beb63f4bd073e61482598c45c71c1019b59b73a # v2.1.0
|
||||
with:
|
||||
app_id: ${{ secrets.PROJECTS_APP_ID }}
|
||||
private_key: ${{ secrets.PROJECTS_APP_PEM }}
|
||||
- name: Add to Project
|
||||
uses: actions/add-to-project@v0.5.0
|
||||
with:
|
||||
project-url: https://github.com/orgs/home-assistant/projects/10
|
||||
github-token: ${{ steps.token.outputs.token }}
|
8
.github/workflows/test.yml
vendored
8
.github/workflows/test.yml
vendored
@ -8,9 +8,9 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Check out files from GitHub
|
||||
uses: actions/checkout@v4.1.1
|
||||
uses: actions/checkout@v4.1.6
|
||||
- name: Setting up Node.js
|
||||
uses: actions/setup-node@v4.0.1
|
||||
uses: actions/setup-node@v4.0.2
|
||||
with:
|
||||
node-version: 20
|
||||
cache: "npm"
|
||||
@ -25,9 +25,9 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Check out files from GitHub
|
||||
uses: actions/checkout@v4.1.1
|
||||
uses: actions/checkout@v4.1.6
|
||||
- name: Setting up Node.js
|
||||
uses: actions/setup-node@v4.0.1
|
||||
uses: actions/setup-node@v4.0.2
|
||||
with:
|
||||
node-version: 20
|
||||
cache: "npm"
|
||||
|
1
.vscode/cSpell.json
vendored
1
.vscode/cSpell.json
vendored
@ -34,6 +34,7 @@
|
||||
"Fitbit",
|
||||
"Flexit",
|
||||
"Frenck",
|
||||
"geofence",
|
||||
"geolocation",
|
||||
"GPSLogger",
|
||||
"Harman",
|
||||
|
165
CODEOWNERS
165
CODEOWNERS
@ -12,6 +12,7 @@ source/_integrations/3_day_blinds.markdown @starkillerOG
|
||||
source/_integrations/abode.markdown @shred86
|
||||
source/_integrations/accuweather.markdown @bieniu
|
||||
source/_integrations/acmeda.markdown @atmurray
|
||||
source/_integrations/acomax.markdown @starkillerOG
|
||||
source/_integrations/adax.markdown @danielhiversen
|
||||
source/_integrations/adguard.markdown @frenck
|
||||
source/_integrations/advantage_air.markdown @Bre77
|
||||
@ -20,12 +21,14 @@ source/_integrations/aep_ohio.markdown @tronikos
|
||||
source/_integrations/aep_texas.markdown @tronikos
|
||||
source/_integrations/agent_dvr.markdown @ispysoftware
|
||||
source/_integrations/air_quality.markdown @home-assistant/core
|
||||
source/_integrations/airgradient.markdown @airgradienthq @joostlek
|
||||
source/_integrations/airly.markdown @bieniu
|
||||
source/_integrations/airnow.markdown @asymworks
|
||||
source/_integrations/airq.markdown @Sibgatulin @dl2080
|
||||
source/_integrations/airthings.markdown @danielhiversen
|
||||
source/_integrations/airthings.markdown @danielhiversen @LaStrada
|
||||
source/_integrations/airthings_ble.markdown @vincegio @LaStrada
|
||||
source/_integrations/airtouch4.markdown @samsinnamon
|
||||
source/_integrations/airtouch5.markdown @danzel
|
||||
source/_integrations/airvisual.markdown @bachya
|
||||
source/_integrations/airvisual_pro.markdown @bachya
|
||||
source/_integrations/airzone.markdown @Noltari
|
||||
@ -36,11 +39,12 @@ source/_integrations/alert.markdown @home-assistant/core @frenck
|
||||
source/_integrations/alexa.markdown @home-assistant/cloud @ochlocracy @jbouwh
|
||||
source/_integrations/alexa.smart_home.markdown @home-assistant/cloud @ochlocracy @jbouwh
|
||||
source/_integrations/amberelectric.markdown @madpilot
|
||||
source/_integrations/ambiclimate.markdown @danielhiversen
|
||||
source/_integrations/ambient_network.markdown @thomaskistler
|
||||
source/_integrations/ambient_station.markdown @bachya
|
||||
source/_integrations/amcrest.markdown @flacjacket
|
||||
source/_integrations/amp_motorization.markdown @starkillerOG
|
||||
source/_integrations/analytics.markdown @home-assistant/core @ludeeus
|
||||
source/_integrations/analytics_insights.markdown @joostlek
|
||||
source/_integrations/android_ip_webcam.markdown @engrbm87
|
||||
source/_integrations/androidtv.markdown @JeffLIrion @ollo69
|
||||
source/_integrations/androidtv_remote.markdown @tronikos @Drafteed
|
||||
@ -55,10 +59,13 @@ source/_integrations/appalachianpower.markdown @tronikos
|
||||
source/_integrations/apple_tv.markdown @postlund
|
||||
source/_integrations/application_credentials.markdown @home-assistant/core
|
||||
source/_integrations/apprise.markdown @caronc
|
||||
source/_integrations/aprilaire.markdown @chamberlain2007
|
||||
source/_integrations/aprs.markdown @PhilRW
|
||||
source/_integrations/aranet.markdown @aschmitz @thecode
|
||||
source/_integrations/apsystems.markdown @mawoka-myblock @SonnenladenGmbH
|
||||
source/_integrations/aranet.markdown @aschmitz @thecode @anrijs
|
||||
source/_integrations/arcam_fmj.markdown @elupus
|
||||
source/_integrations/arris_tg2492lg.markdown @vanbalken
|
||||
source/_integrations/arve.markdown @ikalnyi
|
||||
source/_integrations/aseko_pool_live.markdown @milanmeu
|
||||
source/_integrations/assist_pipeline.markdown @balloob @synesthesiam
|
||||
source/_integrations/asuswrt.markdown @kennedyshead @ollo69
|
||||
@ -82,12 +89,13 @@ source/_integrations/azure_service_bus.markdown @hfurubotten
|
||||
source/_integrations/backup.markdown @home-assistant/core
|
||||
source/_integrations/baf.markdown @bdraco @jfroy
|
||||
source/_integrations/balboa.markdown @garbled1 @natekspencer
|
||||
source/_integrations/bang_olufsen.markdown @mj23000
|
||||
source/_integrations/bayesian.markdown @HarvsG
|
||||
source/_integrations/beewi_smartclim.markdown @alemuro
|
||||
source/_integrations/bge.markdown @tronikos
|
||||
source/_integrations/binary_sensor.markdown @home-assistant/core
|
||||
source/_integrations/bizkaibus.markdown @UgaitzEtxebarria
|
||||
source/_integrations/blebox.markdown @bbx-a @riokuu
|
||||
source/_integrations/blebox.markdown @bbx-a @riokuu @swistakm
|
||||
source/_integrations/blink.markdown @fronzbot @mkmer
|
||||
source/_integrations/bliss_automation.markdown @starkillerOG
|
||||
source/_integrations/bloc_blinds.markdown @starkillerOG
|
||||
@ -100,9 +108,10 @@ source/_integrations/bluetooth_adapters.markdown @bdraco
|
||||
source/_integrations/bmw_connected_drive.markdown @gerard33 @rikroe
|
||||
source/_integrations/bond.markdown @bdraco @prystupa @joshs85 @marciogranzotto
|
||||
source/_integrations/bosch_shc.markdown @tschamm
|
||||
source/_integrations/brandt.markdown @imicknl @vlebourl @tetienne @nyroDev
|
||||
source/_integrations/brandt.markdown @imicknl @vlebourl @tetienne @nyroDev @tronix117
|
||||
source/_integrations/braviatv.markdown @bieniu @Drafteed
|
||||
source/_integrations/brel_home.markdown @starkillerOG
|
||||
source/_integrations/bring.markdown @miaucl @tr4nt0r
|
||||
source/_integrations/broadlink.markdown @danielhiversen @felipediel @L-I-Am @eifinger
|
||||
source/_integrations/brother.markdown @bieniu
|
||||
source/_integrations/brottsplatskartan.markdown @gjohansson-ST
|
||||
@ -120,7 +129,6 @@ source/_integrations/camera.markdown @home-assistant/core
|
||||
source/_integrations/cast.markdown @emontnemery
|
||||
source/_integrations/ccm15.markdown @ocalvo
|
||||
source/_integrations/cert_expiry.markdown @jjlawren
|
||||
source/_integrations/circuit.markdown @braam
|
||||
source/_integrations/cisco_ios.markdown @fbradyirl
|
||||
source/_integrations/cisco_mobility_express.markdown @fbradyirl
|
||||
source/_integrations/cisco_webex_teams.markdown @fbradyirl
|
||||
@ -128,6 +136,7 @@ source/_integrations/climate.markdown @home-assistant/core
|
||||
source/_integrations/cloud.markdown @home-assistant/cloud
|
||||
source/_integrations/cloudflare.markdown @ludeeus @ctalkington
|
||||
source/_integrations/co2signal.markdown @jpbede @VIKTORVAV99
|
||||
source/_integrations/coautilities.markdown @tronikos
|
||||
source/_integrations/coinbase.markdown @tombrien
|
||||
source/_integrations/color_extractor.markdown @GenericStudent
|
||||
source/_integrations/comed.markdown @tronikos
|
||||
@ -143,7 +152,7 @@ source/_integrations/conversation.markdown @home-assistant/core @synesthesiam
|
||||
source/_integrations/coolmaster.markdown @OnFreund
|
||||
source/_integrations/counter.markdown @fabaff
|
||||
source/_integrations/cover.markdown @home-assistant/core
|
||||
source/_integrations/cozytouch.markdown @imicknl @vlebourl @tetienne @nyroDev
|
||||
source/_integrations/cozytouch.markdown @imicknl @vlebourl @tetienne @nyroDev @tronix117
|
||||
source/_integrations/cpuspeed.markdown @fabaff
|
||||
source/_integrations/cribl.markdown @Bre77
|
||||
source/_integrations/crownstone.markdown @Crownstone @RicArch97
|
||||
@ -176,25 +185,26 @@ source/_integrations/discogs.markdown @thibmaek
|
||||
source/_integrations/discord.markdown @tkdrob
|
||||
source/_integrations/discovergy.markdown @jpbede
|
||||
source/_integrations/dlink.markdown @tkdrob
|
||||
source/_integrations/dlna_dmr.markdown @StevenLooman @chishm
|
||||
source/_integrations/dlna_dmr.markdown @chishm
|
||||
source/_integrations/dlna_dms.markdown @chishm
|
||||
source/_integrations/dnsip.markdown @gjohansson-ST
|
||||
source/_integrations/doorbird.markdown @oblogic7 @bdraco @flacjacket
|
||||
source/_integrations/dooya.markdown @starkillerOG
|
||||
source/_integrations/dormakaba_dkey.markdown @emontnemery
|
||||
source/_integrations/downloader.markdown @erwindouna
|
||||
source/_integrations/dremel_3d_printer.markdown @tkdrob
|
||||
source/_integrations/drop_connect.markdown @ChandlerSystems @pfrazer
|
||||
source/_integrations/dsmr.markdown @Robbie1221 @frenck
|
||||
source/_integrations/dsmr_reader.markdown @depl0y @glodenox
|
||||
source/_integrations/dsmr_reader.markdown @sorted-bits @glodenox @erwindouna
|
||||
source/_integrations/duotecno.markdown @cereal2nd
|
||||
source/_integrations/duquesne_light.markdown @tronikos
|
||||
source/_integrations/dwd_weather_warnings.markdown @runningman84 @stephan192 @andarotajo
|
||||
source/_integrations/dynalite.markdown @ziv1234
|
||||
source/_integrations/eastron.markdown @DCSBL
|
||||
source/_integrations/easyenergy.markdown @klaasnicolaas
|
||||
source/_integrations/ecobee.markdown @marcolivierarsenault
|
||||
source/_integrations/ecoforest.markdown @pjanuario
|
||||
source/_integrations/econet.markdown @w1ll1am23
|
||||
source/_integrations/ecovacs.markdown @OverloadUT @mib1185
|
||||
source/_integrations/ecovacs.markdown @OverloadUT @mib1185 @edenhaus @Augar
|
||||
source/_integrations/ecowitt.markdown @pvizeli
|
||||
source/_integrations/efergy.markdown @tkdrob
|
||||
source/_integrations/egardia.markdown @jeroenterheerdt
|
||||
@ -204,11 +214,13 @@ source/_integrations/elgato.markdown @frenck
|
||||
source/_integrations/elkm1.markdown @gwww @bdraco
|
||||
source/_integrations/elmax.markdown @albertogeniola
|
||||
source/_integrations/elv.markdown @majuss
|
||||
source/_integrations/elvia.markdown @ludeeus
|
||||
source/_integrations/emby.markdown @mezz64
|
||||
source/_integrations/emoncms.markdown @borpin
|
||||
source/_integrations/emonitor.markdown @bdraco
|
||||
source/_integrations/emulated_hue.markdown @bdraco @Tho85
|
||||
source/_integrations/emulated_kasa.markdown @kbickar
|
||||
source/_integrations/energenie_power_sockets.markdown @gnumpi
|
||||
source/_integrations/energie_vanons.markdown @klaasnicolaas
|
||||
source/_integrations/energy.markdown @home-assistant/core
|
||||
source/_integrations/energyzero.markdown @klaasnicolaas
|
||||
@ -219,8 +231,10 @@ source/_integrations/enphase_envoy.markdown @bdraco @cgarwood @dgomes @joostlek
|
||||
source/_integrations/entur_public_transport.markdown @hfurubotten
|
||||
source/_integrations/environment_canada.markdown @gwww @michaeldavie
|
||||
source/_integrations/ephember.markdown @ttroy50
|
||||
source/_integrations/epic_games_store.markdown @hacf-fr @Quentame
|
||||
source/_integrations/epion.markdown @lhgravendeel
|
||||
source/_integrations/epson.markdown @pszafer
|
||||
source/_integrations/epsonworkforce.markdown @ThaStealth
|
||||
source/_integrations/eq3btsmart.markdown @eulemitkeule @dbuezas
|
||||
source/_integrations/escea.markdown @lazdavila
|
||||
source/_integrations/esera_onewire.markdown @garbled1 @epenet
|
||||
source/_integrations/esphome.markdown @OttoWinter @jesserockz @kbx81 @bdraco
|
||||
@ -245,7 +259,7 @@ source/_integrations/fitbit.markdown @allenporter
|
||||
source/_integrations/fivem.markdown @Sander0542
|
||||
source/_integrations/fjaraskupan.markdown @elupus
|
||||
source/_integrations/flexit_bacnet.markdown @lellky @piotrbulinski
|
||||
source/_integrations/flexom.markdown @imicknl @vlebourl @tetienne @nyroDev
|
||||
source/_integrations/flexom.markdown @imicknl @vlebourl @tetienne @nyroDev @tronix117
|
||||
source/_integrations/flick_electric.markdown @ZephireNZ
|
||||
source/_integrations/flipr.markdown @cnico
|
||||
source/_integrations/flo.markdown @dmulcahey
|
||||
@ -254,7 +268,7 @@ source/_integrations/flux_led.markdown @icemanch
|
||||
source/_integrations/forecast_solar.markdown @klaasnicolaas @frenck
|
||||
source/_integrations/forked_daapd.markdown @uvjustin
|
||||
source/_integrations/fortios.markdown @kimfrellsen
|
||||
source/_integrations/foscam.markdown @skgsergio @krmarien
|
||||
source/_integrations/foscam.markdown @krmarien
|
||||
source/_integrations/freebox.markdown @hacf-fr @Quentame
|
||||
source/_integrations/freedompro.markdown @stefano055415
|
||||
source/_integrations/fritz.markdown @mammuth @AaronDavidSchneider @chemelli74 @mib1185
|
||||
@ -265,6 +279,7 @@ source/_integrations/frontend.markdown @home-assistant/frontend
|
||||
source/_integrations/frontier_silicon.markdown @wlcrs
|
||||
source/_integrations/fujitsu_anywair.markdown @Bre77
|
||||
source/_integrations/fully_kiosk.markdown @cgarwood
|
||||
source/_integrations/fyta.markdown @dontinelli
|
||||
source/_integrations/garages_amsterdam.markdown @klaasnicolaas
|
||||
source/_integrations/gardena_bluetooth.markdown @elupus
|
||||
source/_integrations/gaviota.markdown @starkillerOG
|
||||
@ -294,14 +309,15 @@ source/_integrations/google_sheets.markdown @tkdrob
|
||||
source/_integrations/google_tasks.markdown @allenporter
|
||||
source/_integrations/google_travel_time.markdown @eifinger
|
||||
source/_integrations/govee_ble.markdown @bdraco @PierreAronnax
|
||||
source/_integrations/gpsd.markdown @fabaff
|
||||
source/_integrations/govee_light_local.markdown @Galorhallen
|
||||
source/_integrations/gpsd.markdown @fabaff @jrieger
|
||||
source/_integrations/gree.markdown @cmroche
|
||||
source/_integrations/greeneye_monitor.markdown @jkeljo
|
||||
source/_integrations/group.markdown @home-assistant/core
|
||||
source/_integrations/guardian.markdown @bachya
|
||||
source/_integrations/habitica.markdown @ASMfreaK @leikoilja
|
||||
source/_integrations/habitica.markdown @ASMfreaK @leikoilja @tr4nt0r
|
||||
source/_integrations/hardware.markdown @home-assistant/core
|
||||
source/_integrations/harmony.markdown @ehendrix23 @bramkragten @bdraco @mkeesey @Aohzan
|
||||
source/_integrations/harmony.markdown @ehendrix23 @bdraco @mkeesey @Aohzan
|
||||
source/_integrations/hassio.markdown @home-assistant/supervisor
|
||||
source/_integrations/havana_shade.markdown @starkillerOG
|
||||
source/_integrations/hdmi_cec.markdown @inytar
|
||||
@ -309,17 +325,18 @@ source/_integrations/heatmiser.markdown @andylockran
|
||||
source/_integrations/heiwa.markdown @cmroche
|
||||
source/_integrations/heos.markdown @andrewsayre
|
||||
source/_integrations/here_travel_time.markdown @eifinger
|
||||
source/_integrations/hexaom.markdown @imicknl @vlebourl @tetienne @nyroDev
|
||||
source/_integrations/hi_kumo.markdown @imicknl @vlebourl @tetienne @nyroDev
|
||||
source/_integrations/hexaom.markdown @imicknl @vlebourl @tetienne @nyroDev @tronix117
|
||||
source/_integrations/hi_kumo.markdown @imicknl @vlebourl @tetienne @nyroDev @tronix117
|
||||
source/_integrations/hikvision.markdown @mezz64
|
||||
source/_integrations/hikvisioncam.markdown @fbradyirl
|
||||
source/_integrations/hisense_aehw4a1.markdown @bannhead
|
||||
source/_integrations/history.markdown @home-assistant/core
|
||||
source/_integrations/hive.markdown @Rendili @KJonline
|
||||
source/_integrations/hko.markdown @MisterCommand
|
||||
source/_integrations/hlk_sw16.markdown @jameshilliard
|
||||
source/_integrations/holiday.markdown @jrieger
|
||||
source/_integrations/holiday.markdown @jrieger @gjohansson-ST
|
||||
source/_integrations/home_connect.markdown @DavidMStraub
|
||||
source/_integrations/home_plus_control.markdown @chemaaa
|
||||
source/_integrations/home_plus_control.markdown @cgtobi
|
||||
source/_integrations/homeassistant.markdown @home-assistant/core
|
||||
source/_integrations/homeassistant_alerts.markdown @home-assistant/core
|
||||
source/_integrations/homeassistant_green.markdown @home-assistant/core
|
||||
@ -328,7 +345,8 @@ source/_integrations/homeassistant_sky_connect.markdown @home-assistant/core
|
||||
source/_integrations/homeassistant_yellow.markdown @home-assistant/core
|
||||
source/_integrations/homekit.markdown @bdraco
|
||||
source/_integrations/homekit_controller.markdown @Jc2k @bdraco
|
||||
source/_integrations/homematic.markdown @pvizeli @danielperna84
|
||||
source/_integrations/homematic.markdown @pvizeli
|
||||
source/_integrations/homematicip_cloud.markdown @hahn-th
|
||||
source/_integrations/homewizard.markdown @DCSBL
|
||||
source/_integrations/honeywell.markdown @rdfurman @mkmer
|
||||
source/_integrations/http.markdown @home-assistant/core
|
||||
@ -338,6 +356,8 @@ source/_integrations/huisbaasje.markdown @dennisschroer
|
||||
source/_integrations/humidifier.markdown @home-assistant/core @Shulyaka
|
||||
source/_integrations/hunterdouglas_powerview.markdown @bdraco @kingy444 @trullock
|
||||
source/_integrations/hurrican_shutters_wholesale.markdown @starkillerOG
|
||||
source/_integrations/husqvarna_automower.markdown @Thomas55555
|
||||
source/_integrations/huum.markdown @frwickst
|
||||
source/_integrations/hvv_departures.markdown @vigonotion
|
||||
source/_integrations/hydrawise.markdown @dknowles2 @ptcryan
|
||||
source/_integrations/hyperion.markdown @dermotduffy
|
||||
@ -352,6 +372,7 @@ source/_integrations/image.markdown @home-assistant/core
|
||||
source/_integrations/image_processing.markdown @home-assistant/core
|
||||
source/_integrations/image_upload.markdown @home-assistant/core
|
||||
source/_integrations/imap.markdown @jbouwh
|
||||
source/_integrations/imgw_pib.markdown @bieniu
|
||||
source/_integrations/improv_ble.markdown @emontnemery
|
||||
source/_integrations/incomfort.markdown @zxdavb
|
||||
source/_integrations/indianamichiganpower.markdown @tronikos
|
||||
@ -374,7 +395,8 @@ source/_integrations/iperf3.markdown @rohankapoorcom
|
||||
source/_integrations/ipma.markdown @dgomes
|
||||
source/_integrations/iqvia.markdown @bachya
|
||||
source/_integrations/irish_rail_transport.markdown @ttroy50
|
||||
source/_integrations/islamic_prayer_times.markdown @engrbm87
|
||||
source/_integrations/isal.markdown @bdraco
|
||||
source/_integrations/islamic_prayer_times.markdown @engrbm87 @cpfair
|
||||
source/_integrations/ismartwindow.markdown @starkillerOG
|
||||
source/_integrations/iss.markdown @DurgNomis-drol
|
||||
source/_integrations/isy994.markdown @bdraco @shbatm
|
||||
@ -383,7 +405,7 @@ source/_integrations/jellyfin.markdown @j-stienstra @ctalkington
|
||||
source/_integrations/jewish_calendar.markdown @tsvi
|
||||
source/_integrations/juicenet.markdown @jesserockz
|
||||
source/_integrations/justnimbus.markdown @kvanzuijlen
|
||||
source/_integrations/jvc_projector.markdown @SteveEasley
|
||||
source/_integrations/jvc_projector.markdown @SteveEasley @msavazzi
|
||||
source/_integrations/kaiterra.markdown @Michsior14
|
||||
source/_integrations/kaleidescape.markdown @SteveEasley
|
||||
source/_integrations/keba.markdown @dannerph
|
||||
@ -400,8 +422,10 @@ source/_integrations/kodi.markdown @OnFreund
|
||||
source/_integrations/konnected.markdown @heythisisnate
|
||||
source/_integrations/kostal_plenticore.markdown @stegm
|
||||
source/_integrations/kraken.markdown @eifinger
|
||||
source/_integrations/krispol.markdown @starkillerOG
|
||||
source/_integrations/kulersky.markdown @emlove
|
||||
source/_integrations/lacrosse_view.markdown @IceBotYT
|
||||
source/_integrations/lamarzocco.markdown @zweckj
|
||||
source/_integrations/lametric.markdown @robbiet480 @frenck @bachya
|
||||
source/_integrations/landisgyr_heat_meter.markdown @vpathuis
|
||||
source/_integrations/lastfm.markdown @joostlek
|
||||
@ -410,12 +434,12 @@ source/_integrations/laundrify.markdown @xLarry
|
||||
source/_integrations/lawn_mower.markdown @home-assistant/core
|
||||
source/_integrations/lcn.markdown @alengwenus
|
||||
source/_integrations/ld2410_ble.markdown @930913
|
||||
source/_integrations/leaone.markdown @bdraco
|
||||
source/_integrations/led_ble.markdown @bdraco
|
||||
source/_integrations/legrand.markdown @cgtobi
|
||||
source/_integrations/leviton_z_wave.markdown @home-assistant/z-wave
|
||||
source/_integrations/lg_netcast.markdown @Drafteed
|
||||
source/_integrations/lg_netcast.markdown @Drafteed @splinter98
|
||||
source/_integrations/lidarr.markdown @tkdrob
|
||||
source/_integrations/life360.markdown @pnbruckner
|
||||
source/_integrations/light.markdown @home-assistant/core
|
||||
source/_integrations/linear_garage_door.markdown @IceBotYT
|
||||
source/_integrations/linux_battery.markdown @fabaff
|
||||
@ -428,17 +452,17 @@ source/_integrations/local_todo.markdown @allenporter
|
||||
source/_integrations/lock.markdown @home-assistant/core
|
||||
source/_integrations/logbook.markdown @home-assistant/core
|
||||
source/_integrations/logger.markdown @home-assistant/core
|
||||
source/_integrations/logi_circle.markdown @evanjd
|
||||
source/_integrations/london_underground.markdown @jpbede
|
||||
source/_integrations/lookin.markdown @ANMalko @bdraco
|
||||
source/_integrations/loqed.markdown @mikewoudenberg
|
||||
source/_integrations/luci.markdown @mzdrale
|
||||
source/_integrations/luftdaten.markdown @fabaff @frenck
|
||||
source/_integrations/lupusec.markdown @majuss
|
||||
source/_integrations/lutron.markdown @cdheiser
|
||||
source/_integrations/lutron_caseta.markdown @swails @bdraco @danaues
|
||||
source/_integrations/lupusec.markdown @majuss @suaveolent
|
||||
source/_integrations/lutron.markdown @cdheiser @wilburCForce
|
||||
source/_integrations/lutron_caseta.markdown @swails @bdraco @danaues @eclair4151
|
||||
source/_integrations/luxaflex.markdown @bdraco @kingy444 @trullock
|
||||
source/_integrations/lyric.markdown @timmo001
|
||||
source/_integrations/madeco.markdown @starkillerOG
|
||||
source/_integrations/marantz.markdown @ol-iver @starkillerOG
|
||||
source/_integrations/martec.markdown @starkillerOG
|
||||
source/_integrations/mastodon.markdown @fabaff
|
||||
@ -450,7 +474,6 @@ source/_integrations/media_extractor.markdown @joostlek
|
||||
source/_integrations/media_player.markdown @home-assistant/core
|
||||
source/_integrations/media_source.markdown @hunterjm
|
||||
source/_integrations/mediaroom.markdown @dgomes
|
||||
source/_integrations/melcloud.markdown @vilppuvuorinen
|
||||
source/_integrations/melissa.markdown @kennedyshead
|
||||
source/_integrations/melnor.markdown @vanstinator
|
||||
source/_integrations/met.markdown @danielhiversen
|
||||
@ -459,6 +482,7 @@ source/_integrations/meteo_france.markdown @hacf-fr @oncleben31 @Quentame
|
||||
source/_integrations/meteoalarm.markdown @rolfberkenbosch
|
||||
source/_integrations/meteoclimatic.markdown @adrianmo
|
||||
source/_integrations/metoffice.markdown @MrHarcombe @avee87
|
||||
source/_integrations/microbees.markdown @microBeesTech
|
||||
source/_integrations/mijndomein_energie.markdown @klaasnicolaas
|
||||
source/_integrations/mikrotik.markdown @engrbm87
|
||||
source/_integrations/mill.markdown @danielhiversen
|
||||
@ -473,21 +497,23 @@ 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/monzo.markdown @jakemartin-icl
|
||||
source/_integrations/moon.markdown @fabaff @frenck
|
||||
source/_integrations/mopeka.markdown @bdraco
|
||||
source/_integrations/motion_blinds.markdown @starkillerOG
|
||||
source/_integrations/motionblinds_ble.markdown @LennP @jerrybboy
|
||||
source/_integrations/motioneye.markdown @dermotduffy
|
||||
source/_integrations/mqtt.markdown @emontnemery @jbouwh
|
||||
source/_integrations/mqtt.markdown @emontnemery @jbouwh @bdraco
|
||||
source/_integrations/msteams.markdown @peroyvind
|
||||
source/_integrations/mullvad.markdown @meichthys
|
||||
source/_integrations/mutesync.markdown @currentoor
|
||||
source/_integrations/my.markdown @home-assistant/core
|
||||
source/_integrations/mypermobil.markdown @IsakNyberg
|
||||
source/_integrations/mysensors.markdown @MartinHjelmare @functionpointer
|
||||
source/_integrations/mystrom.markdown @fabaff
|
||||
source/_integrations/myuplink.markdown @pajzo @astrandb
|
||||
source/_integrations/nam.markdown @bieniu
|
||||
source/_integrations/nanoleaf.markdown @milanmeu
|
||||
source/_integrations/neato.markdown @dshokouhi @Santobert
|
||||
source/_integrations/neato.markdown @Santobert
|
||||
source/_integrations/nederlandse_spoorwegen.markdown @YarmoM
|
||||
source/_integrations/ness_alarm.markdown @nickw444
|
||||
source/_integrations/nest.markdown @allenporter
|
||||
@ -497,7 +523,7 @@ source/_integrations/netgear.markdown @hacf-fr @Quentame @starkillerOG
|
||||
source/_integrations/netgear_lte.markdown @tkdrob
|
||||
source/_integrations/network.markdown @home-assistant/core
|
||||
source/_integrations/nexia.markdown @bdraco
|
||||
source/_integrations/nexity.markdown @imicknl @vlebourl @tetienne @nyroDev
|
||||
source/_integrations/nexity.markdown @imicknl @vlebourl @tetienne @nyroDev @tronix117
|
||||
source/_integrations/nextbus.markdown @vividboarder
|
||||
source/_integrations/nextcloud.markdown @mib1185
|
||||
source/_integrations/nextdns.markdown @bieniu
|
||||
@ -526,6 +552,7 @@ source/_integrations/nzbget.markdown @chriscla
|
||||
source/_integrations/obihai.markdown @dshokouhi @ejpenney
|
||||
source/_integrations/octoprint.markdown @rfleming71
|
||||
source/_integrations/ohmconnect.markdown @robbiet480
|
||||
source/_integrations/ollama.markdown @synesthesiam
|
||||
source/_integrations/ombi.markdown @larssont
|
||||
source/_integrations/omnilogic.markdown @oliver84 @djtimca @gentoosu
|
||||
source/_integrations/onboarding.markdown @home-assistant/core
|
||||
@ -551,20 +578,20 @@ source/_integrations/oru_opower.markdown @tronikos
|
||||
source/_integrations/osoenergy.markdown @osohotwateriot
|
||||
source/_integrations/otbr.markdown @home-assistant/core
|
||||
source/_integrations/ourgroceries.markdown @OnFreund
|
||||
source/_integrations/overkiz.markdown @imicknl @vlebourl @tetienne @nyroDev
|
||||
source/_integrations/overkiz.markdown @imicknl @vlebourl @tetienne @nyroDev @tronix117
|
||||
source/_integrations/ovo_energy.markdown @timmo001
|
||||
source/_integrations/p1_monitor.markdown @klaasnicolaas
|
||||
source/_integrations/panel_custom.markdown @home-assistant/frontend
|
||||
source/_integrations/panel_iframe.markdown @home-assistant/frontend
|
||||
source/_integrations/pcs_lighting.markdown @gwww
|
||||
source/_integrations/peco.markdown @IceBotYT
|
||||
source/_integrations/peco_opower.markdown @tronikos
|
||||
source/_integrations/pegel_online.markdown @mib1185
|
||||
source/_integrations/pepco.markdown @tronikos
|
||||
source/_integrations/permobil.markdown @IsakNyberg
|
||||
source/_integrations/persistent_notification.markdown @home-assistant/core
|
||||
source/_integrations/pge.markdown @tronikos
|
||||
source/_integrations/philips_js.markdown @elupus
|
||||
source/_integrations/pi_hole.markdown @johnluetke @shenxn
|
||||
source/_integrations/pi_hole.markdown @shenxn
|
||||
source/_integrations/picnic.markdown @corneyl
|
||||
source/_integrations/pilight.markdown @trekky12
|
||||
source/_integrations/ping.markdown @jpbede
|
||||
@ -596,7 +623,7 @@ source/_integrations/pushover.markdown @engrbm87
|
||||
source/_integrations/pvoutput.markdown @frenck
|
||||
source/_integrations/pvpc_hourly_pricing.markdown @azogue
|
||||
source/_integrations/qbittorrent.markdown @geoffreylagaisse @finder39
|
||||
source/_integrations/qingping.markdown @bdraco @skgsergio
|
||||
source/_integrations/qingping.markdown @bdraco
|
||||
source/_integrations/qld_bushfire.markdown @exxamalte
|
||||
source/_integrations/qnap.markdown @disforw
|
||||
source/_integrations/qnap_qsw.markdown @Noltari
|
||||
@ -604,13 +631,15 @@ source/_integrations/quadrafire.markdown @jeeftor
|
||||
source/_integrations/quantum_gateway.markdown @cisasteelersfan
|
||||
source/_integrations/qvr_pro.markdown @oblogic7
|
||||
source/_integrations/qwikswitch.markdown @kellerza
|
||||
source/_integrations/rachio.markdown @bdraco
|
||||
source/_integrations/rabbitair.markdown @rabbit-air
|
||||
source/_integrations/rachio.markdown @bdraco @rfverbruggen
|
||||
source/_integrations/radarr.markdown @tkdrob
|
||||
source/_integrations/radio_browser.markdown @frenck
|
||||
source/_integrations/radiotherm.markdown @vinnyfuria
|
||||
source/_integrations/rainbird.markdown @konikvranik @allenporter
|
||||
source/_integrations/raincloud.markdown @vanstinator
|
||||
source/_integrations/rainforest_eagle.markdown @gtdiehl @jcalbert @hastarin
|
||||
source/_integrations/rainforest_raven.markdown @cottsay
|
||||
source/_integrations/rainmachine.markdown @bachya
|
||||
source/_integrations/random.markdown @fabaff
|
||||
source/_integrations/rapt_ble.markdown @sairon
|
||||
@ -620,7 +649,6 @@ source/_integrations/recollect_waste.markdown @bachya
|
||||
source/_integrations/recorder.markdown @home-assistant/core
|
||||
source/_integrations/recovery_mode.markdown @home-assistant/core
|
||||
source/_integrations/refoss.markdown @ashionky
|
||||
source/_integrations/rejseplanen.markdown @DarkFox
|
||||
source/_integrations/remote.markdown @home-assistant/core
|
||||
source/_integrations/renault.markdown @epenet
|
||||
source/_integrations/renson.markdown @jimmyd-be
|
||||
@ -628,7 +656,7 @@ source/_integrations/reolink.markdown @starkillerOG
|
||||
source/_integrations/repairs.markdown @home-assistant/core
|
||||
source/_integrations/repetier.markdown @ShadowBr0ther
|
||||
source/_integrations/rest_command.markdown @jpbede
|
||||
source/_integrations/rexel.markdown @imicknl @vlebourl @tetienne @nyroDev
|
||||
source/_integrations/rexel.markdown @imicknl @vlebourl @tetienne @nyroDev @tronix117
|
||||
source/_integrations/rflink.markdown @javicalle
|
||||
source/_integrations/rfxtrx.markdown @danielhiversen @elupus @RobBie1221
|
||||
source/_integrations/rhasspy.markdown @balloob @synesthesiam
|
||||
@ -639,7 +667,8 @@ source/_integrations/rituals_perfume_genie.markdown @milanmeu @frenck
|
||||
source/_integrations/rmvtransport.markdown @cgtobi
|
||||
source/_integrations/roborock.markdown @humbertogontijo @Lash-L
|
||||
source/_integrations/roku.markdown @ctalkington
|
||||
source/_integrations/roomba.markdown @pschmitt @cyr-ius @shenxn @Xitee1
|
||||
source/_integrations/romy.markdown @xeniter
|
||||
source/_integrations/roomba.markdown @pschmitt @cyr-ius @shenxn @Xitee1 @Orhideous
|
||||
source/_integrations/roon.markdown @pavoni
|
||||
source/_integrations/rpi_power.markdown @shenxn @swetoast
|
||||
source/_integrations/rss_feed_template.markdown @home-assistant/core
|
||||
@ -648,9 +677,11 @@ source/_integrations/ruckus_unleashed.markdown @lanrat @ms264556 @gabe565
|
||||
source/_integrations/ruuvi_gateway.markdown @akx
|
||||
source/_integrations/ruuvitag_ble.markdown @akx
|
||||
source/_integrations/rympro.markdown @OnFreund @elad-bar @maorcc
|
||||
source/_integrations/sabnzbd.markdown @shaiu
|
||||
source/_integrations/sabnzbd.markdown @shaiu @jpbede
|
||||
source/_integrations/saj.markdown @fredericvl
|
||||
source/_integrations/samsam.markdown @klaasnicolaas
|
||||
source/_integrations/samsungtv.markdown @chemelli74 @epenet
|
||||
source/_integrations/sanix.markdown @tomaszsluszniak
|
||||
source/_integrations/scene.markdown @home-assistant/core
|
||||
source/_integrations/schedule.markdown @home-assistant/core
|
||||
source/_integrations/schlage.markdown @dknowles2
|
||||
@ -674,6 +705,7 @@ source/_integrations/sentry.markdown @dcramer @frenck
|
||||
source/_integrations/senz.markdown @milanmeu
|
||||
source/_integrations/serial.markdown @fabaff
|
||||
source/_integrations/seven_segments.markdown @fabaff
|
||||
source/_integrations/seventeentrack.markdown @shaiu
|
||||
source/_integrations/sfr_box.markdown @epenet
|
||||
source/_integrations/sharkiq.markdown @JeffResc @funkybunch
|
||||
source/_integrations/shell_command.markdown @home-assistant/core
|
||||
@ -685,7 +717,7 @@ source/_integrations/signal_messenger.markdown @bbernhard
|
||||
source/_integrations/simplepush.markdown @engrbm87
|
||||
source/_integrations/simplisafe.markdown @bachya
|
||||
source/_integrations/simply_automated.markdown @gwww
|
||||
source/_integrations/simu.markdown @imicknl @vlebourl @tetienne @nyroDev
|
||||
source/_integrations/simu.markdown @imicknl @vlebourl @tetienne @nyroDev @tronix117
|
||||
source/_integrations/sinch.markdown @bendikrb
|
||||
source/_integrations/siren.markdown @home-assistant/core @raman325
|
||||
source/_integrations/sisyphus.markdown @jkeljo
|
||||
@ -701,22 +733,23 @@ source/_integrations/smart_blinds.markdown @starkillerOG
|
||||
source/_integrations/smart_home.markdown @starkillerOG
|
||||
source/_integrations/smart_meter_texas.markdown @grahamwetzler
|
||||
source/_integrations/smarther.markdown @cgtobi
|
||||
source/_integrations/smartthings.markdown @andrewsayre
|
||||
source/_integrations/smarttub.markdown @mdz
|
||||
source/_integrations/smarty.markdown @z0mbieprocess
|
||||
source/_integrations/smhi.markdown @gjohansson-ST
|
||||
source/_integrations/sms.markdown @ocalvo
|
||||
source/_integrations/smud.markdown @tronikos
|
||||
source/_integrations/snapcast.markdown @luar123
|
||||
source/_integrations/snmp.markdown @nmaggioni
|
||||
source/_integrations/snooz.markdown @AustinBrunkhorst
|
||||
source/_integrations/solaredge.markdown @frenck
|
||||
source/_integrations/solaredge.markdown @frenck @bdraco
|
||||
source/_integrations/solaredge_local.markdown @drobtravels @scheric
|
||||
source/_integrations/solarlog.markdown @Ernst79
|
||||
source/_integrations/solax.markdown @squishykid
|
||||
source/_integrations/soma.markdown @ratsept @sebfortier2288
|
||||
source/_integrations/somfy.markdown @imicknl @vlebourl @tetienne @nyroDev
|
||||
source/_integrations/somfy.markdown @imicknl @vlebourl @tetienne @nyroDev @tronix117
|
||||
source/_integrations/sonarr.markdown @ctalkington
|
||||
source/_integrations/songpal.markdown @rytilahti @shenxn
|
||||
source/_integrations/sonos.markdown @jjlawren
|
||||
source/_integrations/sonos.markdown @jjlawren @peterager
|
||||
source/_integrations/soundtouch.markdown @kroimon
|
||||
source/_integrations/spaceapi.markdown @fabaff
|
||||
source/_integrations/speedtestdotnet.markdown @rohankapoorcom @engrbm87
|
||||
@ -749,35 +782,38 @@ source/_integrations/switch.markdown @home-assistant/core
|
||||
source/_integrations/switch_as_x.markdown @home-assistant/core
|
||||
source/_integrations/switchbee.markdown @jafar-atili
|
||||
source/_integrations/switchbot.markdown @danielhiversen @RenierM26 @murtas @Eloston @dsypniewski
|
||||
source/_integrations/switchbot_cloud.markdown @SeraphicRav
|
||||
source/_integrations/switchbot_cloud.markdown @SeraphicRav @laurence-presland
|
||||
source/_integrations/switcher_kis.markdown @thecode
|
||||
source/_integrations/switchmate.markdown @danielhiversen @qiz-li
|
||||
source/_integrations/symfonisk.markdown @jjlawren
|
||||
source/_integrations/symfonisk.markdown @jjlawren @peterager
|
||||
source/_integrations/syncthing.markdown @zhulik
|
||||
source/_integrations/syncthru.markdown @nielstron
|
||||
source/_integrations/synology_dsm.markdown @hacf-fr @Quentame @mib1185
|
||||
source/_integrations/synology_srm.markdown @aerialls
|
||||
source/_integrations/system_bridge.markdown @timmo001
|
||||
source/_integrations/systemmonitor.markdown @gjohansson-ST
|
||||
source/_integrations/tado.markdown @michaelarnauts @chiefdragon @erwindouna
|
||||
source/_integrations/tado.markdown @chiefdragon @erwindouna
|
||||
source/_integrations/tag.markdown @balloob @dmulcahey
|
||||
source/_integrations/tailscale.markdown @frenck
|
||||
source/_integrations/tailwind.markdown @frenck
|
||||
source/_integrations/tami4.markdown @Guy293
|
||||
source/_integrations/tankerkoenig.markdown @guillempages @mib1185
|
||||
source/_integrations/tankerkoenig.markdown @guillempages @mib1185 @jpbede
|
||||
source/_integrations/tapsaff.markdown @bazwilliams
|
||||
source/_integrations/tasmota.markdown @emontnemery
|
||||
source/_integrations/tautulli.markdown @ludeeus @tkdrob
|
||||
source/_integrations/technove.markdown @Moustachauve
|
||||
source/_integrations/tedee.markdown @patrickhilker @zweckj
|
||||
source/_integrations/tellduslive.markdown @fredrike
|
||||
source/_integrations/template.markdown @PhracturedBlue @tetienne @home-assistant/core
|
||||
source/_integrations/tesla_wall_connector.markdown @einarhauks
|
||||
source/_integrations/teslemetry.markdown @Bre77
|
||||
source/_integrations/tessie.markdown @Bre77
|
||||
source/_integrations/text.markdown @home-assistant/core
|
||||
source/_integrations/tfiac.markdown @fredrike @mellado
|
||||
source/_integrations/thermobeacon.markdown @bdraco
|
||||
source/_integrations/thermoplus.markdown @bdraco
|
||||
source/_integrations/thermopro.markdown @bdraco
|
||||
source/_integrations/thethingsnetwork.markdown @fabaff
|
||||
source/_integrations/thermopro.markdown @bdraco @h3ss
|
||||
source/_integrations/thethingsnetwork.markdown @angelnu
|
||||
source/_integrations/thread.markdown @home-assistant/core
|
||||
source/_integrations/tibber.markdown @danielhiversen
|
||||
source/_integrations/tile.markdown @bachya
|
||||
@ -790,9 +826,11 @@ source/_integrations/todoist.markdown @boralyl
|
||||
source/_integrations/tolo.markdown @MatthiasLohr
|
||||
source/_integrations/tomorrowio.markdown @raman325 @lymanepp
|
||||
source/_integrations/totalconnect.markdown @austinmroczek
|
||||
source/_integrations/tplink.markdown @rytilahti @thegardenmonkey @bdraco
|
||||
source/_integrations/tplink.markdown @rytilahti @thegardenmonkey @bdraco @sdb9696
|
||||
source/_integrations/tplink_omada.markdown @MarkGodwin
|
||||
source/_integrations/tplink_tapo.markdown @rytilahti @thegardenmonkey @bdraco @sdb9696
|
||||
source/_integrations/traccar.markdown @ludeeus
|
||||
source/_integrations/traccar_server.markdown @ludeeus
|
||||
source/_integrations/tractive.markdown @Danielhiversen @zhulik @bieniu
|
||||
source/_integrations/trafikverket_camera.markdown @gjohansson-ST
|
||||
source/_integrations/trafikverket_ferry.markdown @gjohansson-ST
|
||||
@ -805,12 +843,12 @@ source/_integrations/tuya.markdown @Tuya @zlinoliver @frenck
|
||||
source/_integrations/twentemilieu.markdown @frenck
|
||||
source/_integrations/twinkly.markdown @dr1rrb @Robbie1221 @Olen
|
||||
source/_integrations/twitch.markdown @joostlek
|
||||
source/_integrations/ubiwizz.markdown @imicknl @vlebourl @tetienne @nyroDev
|
||||
source/_integrations/ubiwizz.markdown @imicknl @vlebourl @tetienne @nyroDev @tronix117
|
||||
source/_integrations/ukraine_alarm.markdown @PaulAnnekov
|
||||
source/_integrations/unifi.markdown @Kane610
|
||||
source/_integrations/unifi_direct.markdown @tofuSCHNITZEL
|
||||
source/_integrations/unifiled.markdown @florisvdk
|
||||
source/_integrations/unifiprotect.markdown @AngellusMortis @bdraco
|
||||
source/_integrations/unifiprotect.markdown @bdraco
|
||||
source/_integrations/upb.markdown @gwww
|
||||
source/_integrations/upc_connect.markdown @pvizeli @fabaff
|
||||
source/_integrations/upcloud.markdown @scop
|
||||
@ -824,10 +862,10 @@ source/_integrations/usgs_earthquakes_feed.markdown @exxamalte
|
||||
source/_integrations/utility_meter.markdown @dgomes
|
||||
source/_integrations/v2c.markdown @dgomes
|
||||
source/_integrations/vacuum.markdown @home-assistant/core
|
||||
source/_integrations/vallox.markdown @andre-richter @slovdahl @viiru-
|
||||
source/_integrations/vallox.markdown @andre-richter @slovdahl @viiru- @yozik04
|
||||
source/_integrations/valve.markdown @home-assistant/core
|
||||
source/_integrations/velbus.markdown @Cereal2nd @brefra
|
||||
source/_integrations/velux.markdown @Julius2342
|
||||
source/_integrations/velux.markdown @Julius2342 @DeerMaximum
|
||||
source/_integrations/venstar.markdown @garbled1 @jhollowe
|
||||
source/_integrations/vermont_castings.markdown @jeeftor
|
||||
source/_integrations/versasense.markdown @imstevenxyz
|
||||
@ -854,8 +892,10 @@ source/_integrations/watttime.markdown @bachya
|
||||
source/_integrations/waze_travel_time.markdown @eifinger
|
||||
source/_integrations/weather.markdown @home-assistant/core
|
||||
source/_integrations/weatherflow.markdown @natekspencer @jeeftor
|
||||
source/_integrations/weatherflow_cloud.markdown @jeeftor
|
||||
source/_integrations/weatherkit.markdown @tjhorner
|
||||
source/_integrations/webhook.markdown @home-assistant/core
|
||||
source/_integrations/webmin.markdown @autinerd
|
||||
source/_integrations/webostv.markdown @thecode
|
||||
source/_integrations/websocket_api.markdown @home-assistant/core
|
||||
source/_integrations/wemo.markdown @esev
|
||||
@ -868,7 +908,7 @@ source/_integrations/wirelesstag.markdown @sergeymaysak
|
||||
source/_integrations/withings.markdown @joostlek
|
||||
source/_integrations/wiz.markdown @sbidy
|
||||
source/_integrations/wled.markdown @frenck
|
||||
source/_integrations/wolflink.markdown @adamkrol93
|
||||
source/_integrations/wolflink.markdown @adamkrol93 @mtielen
|
||||
source/_integrations/workday.markdown @fabaff @gjohansson-ST
|
||||
source/_integrations/worldclock.markdown @fabaff
|
||||
source/_integrations/ws66i.markdown @ssaenger
|
||||
@ -898,7 +938,8 @@ source/_integrations/zerproc.markdown @emlove
|
||||
source/_integrations/zeversolar.markdown @kvanzuijlen
|
||||
source/_integrations/zha.markdown @dmulcahey @adminiuga @puddly @TheJulianJES
|
||||
source/_integrations/zodiac.markdown @JulienTant
|
||||
source/_integrations/zondergas.markdown @klaasnicolaas
|
||||
source/_integrations/zone.markdown @home-assistant/core
|
||||
source/_integrations/zoneminder.markdown @rohankapoorcom
|
||||
source/_integrations/zoneminder.markdown @rohankapoorcom @nabbi
|
||||
source/_integrations/zwave_js.markdown @home-assistant/z-wave
|
||||
source/_integrations/zwave_me.markdown @lawfulchaos @Z-Wave-Me @PoltoS
|
||||
|
13
Gemfile
13
Gemfile
@ -3,26 +3,27 @@ source 'https://rubygems.org'
|
||||
ruby '> 2.5.0'
|
||||
|
||||
group :development do
|
||||
gem 'rake', '13.1.0'
|
||||
gem 'rake', '13.2.1'
|
||||
gem 'jekyll', '4.3.3'
|
||||
gem 'compass', '1.0.3'
|
||||
gem 'sass-globbing', '1.1.5'
|
||||
gem 'stringex', '2.8.6'
|
||||
# > 2.1.0 causes slowdowns https://github.com/sass/sassc-ruby/issues/189
|
||||
gem 'sassc', '2.1.0'
|
||||
gem 'rubocop', '1.59.0'
|
||||
gem 'ruby-lsp', '0.13.2'
|
||||
gem 'rubocop', '1.64.1'
|
||||
gem 'ruby-lsp', '0.17.2'
|
||||
gem 'rackup', '2.1.0'
|
||||
end
|
||||
|
||||
group :jekyll_plugins do
|
||||
gem 'jekyll-paginate', '1.1.0'
|
||||
gem 'jekyll-sitemap', '1.4.0'
|
||||
gem 'jekyll-commonmark', '1.4.0'
|
||||
gem 'jekyll-toc', '0.18.0'
|
||||
gem 'jekyll-toc', '0.19.0'
|
||||
end
|
||||
|
||||
gem 'sinatra', '3.2.0'
|
||||
gem 'nokogiri', '1.16.0'
|
||||
gem 'sinatra', '4.0.0'
|
||||
gem 'nokogiri', '1.16.5'
|
||||
|
||||
# Windows and JRuby does not include zoneinfo files, so bundle the tzinfo-data gem
|
||||
# and associated library
|
||||
|
94
Gemfile.lock
94
Gemfile.lock
@ -5,6 +5,7 @@ GEM
|
||||
public_suffix (>= 2.0.2, < 6.0)
|
||||
ast (2.4.2)
|
||||
base64 (0.2.0)
|
||||
bigdecimal (3.1.8)
|
||||
chunky_png (1.4.0)
|
||||
colorator (1.1.0)
|
||||
commonmarker (0.23.10)
|
||||
@ -20,16 +21,18 @@ GEM
|
||||
sass (>= 3.3.0, < 3.5)
|
||||
compass-import-once (1.0.5)
|
||||
sass (>= 3.2, < 3.5)
|
||||
concurrent-ruby (1.2.2)
|
||||
concurrent-ruby (1.3.1)
|
||||
em-websocket (0.5.3)
|
||||
eventmachine (>= 0.12.9)
|
||||
http_parser.rb (~> 0)
|
||||
eventmachine (1.2.7)
|
||||
ffi (1.16.3)
|
||||
ffi (1.17.0-x86_64-linux-gnu)
|
||||
forwardable-extended (2.6.0)
|
||||
google-protobuf (3.25.1-x86_64-linux)
|
||||
google-protobuf (4.27.1-x86_64-linux)
|
||||
bigdecimal
|
||||
rake (>= 13)
|
||||
http_parser.rb (0.8.0)
|
||||
i18n (1.14.1)
|
||||
i18n (1.14.5)
|
||||
concurrent-ruby (~> 1.0)
|
||||
jekyll (4.3.3)
|
||||
addressable (~> 2.4)
|
||||
@ -54,88 +57,96 @@ GEM
|
||||
sass-embedded (~> 1.54)
|
||||
jekyll-sitemap (1.4.0)
|
||||
jekyll (>= 3.7, < 5.0)
|
||||
jekyll-toc (0.18.0)
|
||||
jekyll-toc (0.19.0)
|
||||
jekyll (>= 3.9)
|
||||
nokogiri (~> 1.12)
|
||||
jekyll-watch (2.2.1)
|
||||
listen (~> 3.0)
|
||||
json (2.7.1)
|
||||
json (2.7.2)
|
||||
kramdown (2.4.0)
|
||||
rexml
|
||||
kramdown-parser-gfm (1.1.0)
|
||||
kramdown (~> 2.0)
|
||||
language_server-protocol (3.17.0.3)
|
||||
liquid (4.0.4)
|
||||
listen (3.8.0)
|
||||
listen (3.9.0)
|
||||
rb-fsevent (~> 0.10, >= 0.10.3)
|
||||
rb-inotify (~> 0.9, >= 0.9.10)
|
||||
mercenary (0.4.0)
|
||||
multi_json (1.15.0)
|
||||
mustermann (3.0.0)
|
||||
ruby2_keywords (~> 0.0.1)
|
||||
nokogiri (1.16.0-x86_64-linux)
|
||||
nokogiri (1.16.5-x86_64-linux)
|
||||
racc (~> 1.4)
|
||||
parallel (1.24.0)
|
||||
parser (3.3.0.2)
|
||||
parser (3.3.2.0)
|
||||
ast (~> 2.4.1)
|
||||
racc
|
||||
pathutil (0.16.2)
|
||||
forwardable-extended (~> 2.6)
|
||||
prism (0.19.0)
|
||||
public_suffix (5.0.4)
|
||||
racc (1.7.3)
|
||||
rack (2.2.8)
|
||||
rack-protection (3.2.0)
|
||||
prism (0.29.0)
|
||||
public_suffix (5.0.5)
|
||||
racc (1.8.0)
|
||||
rack (3.0.11)
|
||||
rack-protection (4.0.0)
|
||||
base64 (>= 0.1.0)
|
||||
rack (~> 2.2, >= 2.2.4)
|
||||
rack (>= 3.0.0, < 4)
|
||||
rack-session (2.0.0)
|
||||
rack (>= 3.0.0)
|
||||
rackup (2.1.0)
|
||||
rack (>= 3)
|
||||
webrick (~> 1.8)
|
||||
rainbow (3.1.1)
|
||||
rake (13.1.0)
|
||||
rake (13.2.1)
|
||||
rb-fsevent (0.11.2)
|
||||
rb-inotify (0.10.1)
|
||||
rb-inotify (0.11.1)
|
||||
ffi (~> 1.0)
|
||||
regexp_parser (2.9.0)
|
||||
rexml (3.2.6)
|
||||
rouge (4.2.0)
|
||||
rubocop (1.59.0)
|
||||
regexp_parser (2.9.2)
|
||||
rexml (3.2.8)
|
||||
strscan (>= 3.0.9)
|
||||
rouge (4.2.1)
|
||||
rubocop (1.64.1)
|
||||
json (~> 2.3)
|
||||
language_server-protocol (>= 3.17.0)
|
||||
parallel (~> 1.10)
|
||||
parser (>= 3.2.2.4)
|
||||
parser (>= 3.3.0.2)
|
||||
rainbow (>= 2.2.2, < 4.0)
|
||||
regexp_parser (>= 1.8, < 3.0)
|
||||
rexml (>= 3.2.5, < 4.0)
|
||||
rubocop-ast (>= 1.30.0, < 2.0)
|
||||
rubocop-ast (>= 1.31.1, < 2.0)
|
||||
ruby-progressbar (~> 1.7)
|
||||
unicode-display_width (>= 2.4.0, < 3.0)
|
||||
rubocop-ast (1.30.0)
|
||||
parser (>= 3.2.1.0)
|
||||
ruby-lsp (0.13.2)
|
||||
rubocop-ast (1.31.3)
|
||||
parser (>= 3.3.1.0)
|
||||
ruby-lsp (0.17.2)
|
||||
language_server-protocol (~> 3.17.0)
|
||||
prism (>= 0.19.0, < 0.20)
|
||||
sorbet-runtime (>= 0.5.5685)
|
||||
prism (>= 0.29.0, < 0.30)
|
||||
sorbet-runtime (>= 0.5.10782)
|
||||
ruby-progressbar (1.13.0)
|
||||
ruby2_keywords (0.0.5)
|
||||
safe_yaml (1.0.5)
|
||||
sass (3.4.25)
|
||||
sass-embedded (1.69.7-x86_64-linux-gnu)
|
||||
google-protobuf (~> 3.25)
|
||||
sass-embedded (1.77.4-x86_64-linux-gnu)
|
||||
google-protobuf (>= 3.25, < 5.0)
|
||||
sass-globbing (1.1.5)
|
||||
sass (>= 3.1)
|
||||
sassc (2.1.0-x86_64-linux)
|
||||
ffi (~> 1.9)
|
||||
sinatra (3.2.0)
|
||||
sinatra (4.0.0)
|
||||
mustermann (~> 3.0)
|
||||
rack (~> 2.2, >= 2.2.4)
|
||||
rack-protection (= 3.2.0)
|
||||
rack (>= 3.0.0, < 4)
|
||||
rack-protection (= 4.0.0)
|
||||
rack-session (>= 2.0.0, < 3)
|
||||
tilt (~> 2.0)
|
||||
sorbet-runtime (0.5.11178)
|
||||
sorbet-runtime (0.5.11418)
|
||||
stringex (2.8.6)
|
||||
strscan (3.1.0)
|
||||
terminal-table (3.0.2)
|
||||
unicode-display_width (>= 1.1.1, < 3)
|
||||
tilt (2.3.0)
|
||||
tzinfo (2.0.6)
|
||||
concurrent-ruby (~> 1.0)
|
||||
tzinfo-data (1.2023.4)
|
||||
tzinfo-data (1.2024.1)
|
||||
tzinfo (>= 1.0.0)
|
||||
unicode-display_width (2.5.0)
|
||||
webrick (1.8.1)
|
||||
@ -149,14 +160,15 @@ DEPENDENCIES
|
||||
jekyll-commonmark (= 1.4.0)
|
||||
jekyll-paginate (= 1.1.0)
|
||||
jekyll-sitemap (= 1.4.0)
|
||||
jekyll-toc (= 0.18.0)
|
||||
nokogiri (= 1.16.0)
|
||||
rake (= 13.1.0)
|
||||
rubocop (= 1.59.0)
|
||||
ruby-lsp (= 0.13.2)
|
||||
jekyll-toc (= 0.19.0)
|
||||
nokogiri (= 1.16.5)
|
||||
rackup (= 2.1.0)
|
||||
rake (= 13.2.1)
|
||||
rubocop (= 1.64.1)
|
||||
ruby-lsp (= 0.17.2)
|
||||
sass-globbing (= 1.1.5)
|
||||
sassc (= 2.1.0)
|
||||
sinatra (= 3.2.0)
|
||||
sinatra (= 4.0.0)
|
||||
stringex (= 2.8.6)
|
||||
tzinfo (~> 2.0)
|
||||
tzinfo-data
|
||||
|
12
_config.yml
12
_config.yml
@ -109,9 +109,9 @@ social:
|
||||
|
||||
# Home Assistant release details
|
||||
current_major_version: 2024
|
||||
current_minor_version: 1
|
||||
current_patch_version: 2
|
||||
date_released: 2024-01-06
|
||||
current_minor_version: 6
|
||||
current_patch_version: 1
|
||||
date_released: 2024-06-07
|
||||
|
||||
# Either # or the anchor link to latest release notes in the blog post.
|
||||
# Must be prefixed with a # and have double quotes around it.
|
||||
@ -195,7 +195,7 @@ toc:
|
||||
installation:
|
||||
container: "ghcr.io/home-assistant/home-assistant"
|
||||
versions:
|
||||
python: "3.11"
|
||||
python: "3.12"
|
||||
types:
|
||||
odroid:
|
||||
board: ODROID
|
||||
@ -211,11 +211,15 @@ installation:
|
||||
key: "odroid-c4"
|
||||
- name: "ODROID-M1"
|
||||
key: "odroid-m1"
|
||||
- name: "ODROID-M1S"
|
||||
key: "odroid-m1s"
|
||||
|
||||
raspberrypi:
|
||||
board: Raspberry Pi
|
||||
installation_media: "SD card"
|
||||
variants:
|
||||
- name: "Raspberry Pi 5"
|
||||
key: "rpi5-64"
|
||||
- name: "Raspberry Pi 4"
|
||||
key: "rpi4-64"
|
||||
- name: "Raspberry Pi 3"
|
||||
|
3806
package-lock.json
generated
3806
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
24
package.json
24
package.json
@ -3,22 +3,22 @@
|
||||
"description": "Home Assistant Website & Documentation",
|
||||
"version": "1.0.0",
|
||||
"devDependencies": {
|
||||
"remark-cli": "^12.0.0",
|
||||
"remark-cli": "^12.0.1",
|
||||
"remark-frontmatter": "^5.0.0",
|
||||
"remark-lint": "^9.1.2",
|
||||
"remark-lint-fenced-code-flag": "^3.1.2",
|
||||
"remark-lint-heading-increment": "^3.1.2",
|
||||
"remark-lint-heading-style": "^3.1.2",
|
||||
"remark-lint-no-shell-dollars": "^3.1.2",
|
||||
"remark-lint-ordered-list-marker-style": "^3.1.2",
|
||||
"remark-lint-ordered-list-marker-value": "^3.1.2",
|
||||
"remark-lint-prohibited-strings": "^3.1.0",
|
||||
"remark-lint-unordered-list-marker-style": "^3.1.2",
|
||||
"remark-lint": "^10.0.0",
|
||||
"remark-lint-fenced-code-flag": "^4.0.0",
|
||||
"remark-lint-heading-increment": "^4.0.0",
|
||||
"remark-lint-heading-style": "^4.0.0",
|
||||
"remark-lint-no-shell-dollars": "^4.0.0",
|
||||
"remark-lint-ordered-list-marker-style": "^4.0.0",
|
||||
"remark-lint-ordered-list-marker-value": "^4.0.0",
|
||||
"remark-lint-prohibited-strings": "^4.0.0",
|
||||
"remark-lint-unordered-list-marker-style": "^4.0.0",
|
||||
"remark-stringify": "^11.0.0",
|
||||
"textlint": "^13.4.1",
|
||||
"textlint": "^14.0.4",
|
||||
"textlint-filter-rule-comments": "^1.2.2",
|
||||
"textlint-rule-common-misspellings": "^1.0.1",
|
||||
"textlint-rule-terminology": "^4.0.1"
|
||||
"textlint-rule-terminology": "^5.0.10"
|
||||
},
|
||||
"resolutions": {
|
||||
"minimist": ">=1.2.5"
|
||||
|
@ -2,9 +2,9 @@ module Jekyll
|
||||
class ConfigurationBlock < Liquid::Block
|
||||
TYPE_LINKS = {
|
||||
'action' => '/docs/scripts/',
|
||||
'device_class' => '/docs/configuration/customizing-devices/#device-class',
|
||||
'device_class' => '/integrations/homeassistant/#device-class',
|
||||
'template' => '/docs/configuration/templating/',
|
||||
'icon' => '/docs/configuration/customizing-devices/#icon',
|
||||
'icon' => '/integrations/homeassistant/#icon',
|
||||
'selector' => '/docs/blueprint/selectors/',
|
||||
}
|
||||
|
||||
@ -72,12 +72,12 @@ module Jekyll
|
||||
if attr['type'].kind_of? Array
|
||||
attr['type'].each do |type|
|
||||
raise ArgumentError, "Configuration type '#{type}' for key '#{key}' is not a valid type in the documentation."\
|
||||
" See: https://developers.home-assistant.io/docs/en/documentation_create_page.html#configuration" unless \
|
||||
" See: https://developers.home-assistant.io/docs/documenting/create-page#configuration" unless \
|
||||
TYPES.include? type
|
||||
end
|
||||
else
|
||||
raise ArgumentError, "Configuration type '#{attr['type']}' for key '#{key}' is not a valid type in the documentation."\
|
||||
" See: https://developers.home-assistant.io/docs/en/documentation_create_page.html#configuration" unless \
|
||||
" See: https://developers.home-assistant.io/docs/documenting/create-page#configuration" unless \
|
||||
TYPES.include? attr['type']
|
||||
end
|
||||
|
||||
|
27
plugins/site_pages.rb
Normal file
27
plugins/site_pages.rb
Normal file
@ -0,0 +1,27 @@
|
||||
module Jekyll
|
||||
class SitePagesGenerator < Jekyll::Generator
|
||||
def generate(site)
|
||||
all_pages = Array.new
|
||||
|
||||
site.collections.each do |name, collection|
|
||||
all_pages.concat(collection.docs)
|
||||
end
|
||||
|
||||
site.data["site_pages"] = all_pages
|
||||
.concat(site.pages)
|
||||
.concat(site.documents)
|
||||
.map { |entry|
|
||||
[
|
||||
entry.url.to_s,
|
||||
{
|
||||
"title" => entry["title"],
|
||||
"description" => entry["description"],
|
||||
"url" => entry.url,
|
||||
"relative_path" => entry.relative_path
|
||||
}
|
||||
]
|
||||
}
|
||||
.to_h
|
||||
end
|
||||
end
|
||||
end
|
@ -20,6 +20,7 @@ module Jekyll
|
||||
end
|
||||
|
||||
def render(context)
|
||||
@term.gsub!(/\"/, "")
|
||||
entries = context.registers[:site].data["glossary"].select do |entry|
|
||||
entry.key?("term") and (@term.casecmp(entry["term"]).zero? or (entry.key?("aliases") and entry["aliases"].any?{ |s| s.casecmp(@term)==0 }))
|
||||
end
|
||||
@ -33,7 +34,7 @@ module Jekyll
|
||||
|
||||
if glossary.key?("link")
|
||||
rendered_link = Liquid::Template.parse(glossary["link"]).render(context).strip
|
||||
link = "<br><a class='terminology-link' href='#{rendered_link}' target='_blank'>[Learn more]</a>"
|
||||
link = "<small><a class='terminology-link' href='#{rendered_link}' target='_blank'>[Learn more]</a></small>"
|
||||
end
|
||||
|
||||
tooltip = "<span class='terminology-tooltip'>#{definition}#{link || ""}</span>"
|
||||
|
@ -831,6 +831,18 @@ $ha__primary_color: #03a9f4;
|
||||
}
|
||||
|
||||
.distributors {
|
||||
details {
|
||||
width: 100%;
|
||||
justify-content: space-between;
|
||||
padding: 16px 24px;
|
||||
color: #222222;
|
||||
margin: auto;
|
||||
|
||||
summary.region {
|
||||
display: list-item;
|
||||
}
|
||||
}
|
||||
|
||||
a {
|
||||
text-decoration: none;
|
||||
|
||||
|
@ -490,6 +490,10 @@ article.listing {
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
video {
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
&>table,
|
||||
&>.entry-content>table {
|
||||
background-color: #f3fcf5;
|
||||
|
@ -9,6 +9,8 @@
|
||||
}
|
||||
|
||||
.terminology-tooltip {
|
||||
--horizontal-move: 0px;
|
||||
|
||||
visibility: hidden;
|
||||
width: 250px;
|
||||
background-color: $primary-color;
|
||||
@ -24,7 +26,7 @@
|
||||
z-index: 1;
|
||||
|
||||
bottom: 100%;
|
||||
left: 50%;
|
||||
left: calc(50% + var(--horizontal-move));
|
||||
margin-left: -125px;
|
||||
|
||||
a {
|
||||
@ -32,15 +34,39 @@
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
&:after {
|
||||
@mixin arrow {
|
||||
content: " ";
|
||||
position: absolute;
|
||||
top: 100%;
|
||||
left: 50%;
|
||||
left: calc(50% - var(--horizontal-move));
|
||||
margin-left: -5px;
|
||||
border-width: 5px;
|
||||
border-style: solid;
|
||||
}
|
||||
|
||||
&:after {
|
||||
@include arrow;
|
||||
|
||||
top: 100%;
|
||||
border-color: $primary-color transparent transparent transparent;
|
||||
}
|
||||
|
||||
&.below {
|
||||
bottom: auto;
|
||||
top: 1lh;
|
||||
|
||||
&:before {
|
||||
@include arrow;
|
||||
|
||||
top: -10px;
|
||||
border-color: transparent transparent $primary-color transparent;
|
||||
}
|
||||
|
||||
&:after {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
code {
|
||||
border-bottom: 2px dotted $primary-color;
|
||||
}
|
||||
}
|
||||
|
@ -3,9 +3,14 @@ type: card
|
||||
title: "Alarm panel card"
|
||||
sidebar_label: Alarm panel
|
||||
description: "The alarm panel card allows you to arm and disarm your alarm control panel integrations."
|
||||
related:
|
||||
- docs: /integrations/frontend/
|
||||
title: Themes
|
||||
- docs: /dashboards/cards/
|
||||
title: Dashboard cards
|
||||
---
|
||||
|
||||
The alarm panel card allows you to arm and disarm your [alarm control panel](/integrations/#alarm) integrations.
|
||||
The alarm panel card allows you to arm and disarm your [alarm control panel](/integrations/#alarm) {% term integrations %}.
|
||||
|
||||
<p class='img'>
|
||||
<img src='/images/dashboards/alarm_panel_card.gif' alt='Screenshot of the alarm panel card'>
|
||||
|
@ -3,9 +3,14 @@ type: card
|
||||
title: "Area card"
|
||||
sidebar_label: Area
|
||||
description: "The area card gives control of your entities in a specified area."
|
||||
related:
|
||||
- docs: /integrations/frontend/
|
||||
title: Themes
|
||||
- docs: /dashboards/cards/
|
||||
title: Dashboard cards
|
||||
---
|
||||
|
||||
The area card lets you control and monitor an individual area.
|
||||
The area card lets you control and monitor an individual {% term area %}.
|
||||
|
||||
<p class='img'>
|
||||
<img src='/images/dashboards/area-card.png' alt='Screenshot of the area card'>
|
||||
@ -16,9 +21,9 @@ The area card lets you control and monitor an individual area.
|
||||
|
||||
All options for this card can be configured via the user interface.
|
||||
|
||||
Buttons will appear on the card for the entities in the area including fan, light and switch. A motion sensor icon will appear in the top left if a motion sensor is in the area and motion is detected by the motion sensor.
|
||||
Buttons will appear on the card for the {% term entities %} in the area including fan, light, and switch. A motion sensor icon will appear in the top left if a motion sensor is in the area and if motion is detected by the motion sensor.
|
||||
|
||||
If a camera is added to the area you can show the camera feed instead of the area picture.
|
||||
If a camera is added to the {% term area %} you can show the camera feed instead of the area picture.
|
||||
|
||||
## YAML configuration
|
||||
|
||||
@ -56,6 +61,16 @@ theme:
|
||||
required: false
|
||||
description: Override the used theme for this card with any loaded theme. For more information about themes, see the [frontend documentation](/integrations/frontend/).
|
||||
type: string
|
||||
alert_classes:
|
||||
required: false
|
||||
type: list
|
||||
default: "moisture, motion"
|
||||
description: A list of binary sensor device classes which will populate alert icons in the card when the state is on.
|
||||
sensor_classes:
|
||||
required: false
|
||||
type: list
|
||||
default: "temperature, humidity"
|
||||
description: A list of sensor device classes which will display their averaged sensor readings for the area.
|
||||
{% endconfiguration %}
|
||||
|
||||
### Example
|
||||
|
@ -3,6 +3,15 @@ type: card
|
||||
title: "Button card"
|
||||
sidebar_label: Button
|
||||
description: "The Button card allows you to add buttons to perform tasks."
|
||||
related:
|
||||
- docs: /dashboards/actions/
|
||||
title: Card actions
|
||||
- docs: /docs/scripts/
|
||||
title: Scripts
|
||||
- docs: /integrations/frontend/
|
||||
title: Themes
|
||||
- docs: /dashboards/cards/
|
||||
title: Dashboard cards
|
||||
---
|
||||
|
||||
The button card allows you to add buttons to perform tasks.
|
||||
|
@ -3,9 +3,14 @@ type: card
|
||||
title: "Calendar card"
|
||||
sidebar_label: Calendar
|
||||
description: "The calendar card displays your calendar entities in a month, day and list view"
|
||||
related:
|
||||
- docs: /integrations/frontend/
|
||||
title: Themes
|
||||
- docs: /dashboards/cards/
|
||||
title: Dashboard cards
|
||||
---
|
||||
|
||||
The calendar card displays your [calendar](/integrations/#calendar) entities in a month, day and list view (7 days).
|
||||
The calendar card displays your [calendar](/integrations/#calendar) {% term entities %} in a month, day, and list view (7 days).
|
||||
|
||||
<p class='img'>
|
||||
<img src='/images/dashboards/calendar_card.png' alt='Screenshot of the
|
||||
@ -17,19 +22,6 @@ The calendar card displays your [calendar](/integrations/#calendar) entities in
|
||||
|
||||
All options for this card can be configured via the user interface.
|
||||
|
||||
## Card settings
|
||||
|
||||
{% configuration_basic %}
|
||||
Title:
|
||||
description: The title displayed at the top of the card.
|
||||
Initial View:
|
||||
description: "The view that will show first when the card is loaded onto the page. Options are `Month View`, `Day View`, or `List (7 days)`."
|
||||
Entities:
|
||||
description: The calendar entities that will be displayed in the card.
|
||||
Theme:
|
||||
description: Name of any loaded theme to be used for this card. For more information about themes, see the [frontend documentation](/integrations/frontend/).
|
||||
{% endconfiguration_basic %}
|
||||
|
||||
## YAML configuration
|
||||
|
||||
The following YAML options are available when you use YAML mode or just prefer to use YAML in the code editor in the UI.
|
||||
|
@ -1,8 +1,13 @@
|
||||
---
|
||||
type: card
|
||||
title: Conditional Card
|
||||
title: Conditional card
|
||||
sidebar_label: Conditional
|
||||
description: The Conditional card displays another card based on conditions.
|
||||
related:
|
||||
- docs: /dashboards/cards/
|
||||
title: Dashboard cards
|
||||
- docs: /dashboards/cards/#show-or-hide-a-card-conditionally
|
||||
title: Conditional settings on the card's visibility tab
|
||||
---
|
||||
|
||||
The conditional card displays another card based on conditions.
|
||||
@ -12,6 +17,8 @@ The conditional card displays another card based on conditions.
|
||||
{% include dashboard/edit_dashboard.md %}
|
||||
Note that while editing the dashboard, the card will always be shown, so be sure to exit editing mode to test the conditions.
|
||||
|
||||
The conditional card can still be used. However, it is now possible to define a setting to show or hide a card conditionally directly on each card type, on its [Visibility](/dashboards/cards/#show-or-hide-a-card-conditionally) tab.
|
||||
|
||||
Most options for this card can be configured via the user interface.
|
||||
|
||||
## YAML configuration
|
||||
@ -25,7 +32,7 @@ type:
|
||||
type: string
|
||||
conditions:
|
||||
required: true
|
||||
description: List of conditions to check. See [available conditions](/dashboards/conditional/#card-conditions).
|
||||
description: List of conditions to check. See [available conditions](#conditions-options).
|
||||
type: list
|
||||
card:
|
||||
required: true
|
||||
@ -36,6 +43,7 @@ card:
|
||||
## Examples
|
||||
|
||||
Only show when all the conditions are met:
|
||||
|
||||
```yaml
|
||||
type: conditional
|
||||
conditions:
|
||||
@ -59,6 +67,7 @@ card:
|
||||
```
|
||||
|
||||
Example condition where only one of the conditions needs to be met:
|
||||
|
||||
```yaml
|
||||
type: conditional
|
||||
conditions:
|
||||
@ -77,24 +86,24 @@ card:
|
||||
- binary_sensor.rookmelder
|
||||
```
|
||||
|
||||
## Card conditions
|
||||
## Conditions options
|
||||
|
||||
### State
|
||||
|
||||
Tests if an entity has a specified state.
|
||||
|
||||
```yaml
|
||||
condition: "state"
|
||||
condition: state
|
||||
entity: climate.thermostat
|
||||
state: heat
|
||||
```
|
||||
|
||||
```yaml
|
||||
condition: "state"
|
||||
condition: state
|
||||
entity: climate.thermostat
|
||||
state_not: "off"
|
||||
```
|
||||
|
||||
Tests if an entity has a specified state.
|
||||
|
||||
{% configuration %}
|
||||
condition:
|
||||
required: true
|
||||
@ -106,11 +115,11 @@ entity:
|
||||
type: string
|
||||
state:
|
||||
required: false
|
||||
description: Entity state is equal to this value. Can contain an array of states.*
|
||||
description: Entity state or ID to be equal to this value. Can contain an array of states.*
|
||||
type: [list, string]
|
||||
state_not:
|
||||
required: false
|
||||
description: Entity state is unequal to this value. Can contain an array of states.*
|
||||
description: Entity state or ID to not be equal to this value. Can contain an array of states.*
|
||||
type: [list, string]
|
||||
{% endconfiguration %}
|
||||
|
||||
@ -121,7 +130,7 @@ state_not:
|
||||
Tests if an entity state matches the thresholds.
|
||||
|
||||
```yaml
|
||||
condition: "numeric_state"
|
||||
condition: numeric_state
|
||||
entity: sensor.outside_temperature
|
||||
above: 10
|
||||
below: 20
|
||||
@ -138,15 +147,15 @@ entity:
|
||||
type: string
|
||||
above:
|
||||
required: false
|
||||
description: Entity state is above this value.*
|
||||
description: Entity state or ID to be above this value.*
|
||||
type: string
|
||||
below:
|
||||
required: false
|
||||
description: Entity state is below to this value.*
|
||||
description: Entity state or ID to be below this value.*
|
||||
type: string
|
||||
{% endconfiguration %}
|
||||
|
||||
*at least one is required (`above` or `below`)
|
||||
*at least one is required (`above` or `below`), both are also possible for values between.
|
||||
|
||||
### Screen
|
||||
|
||||
@ -173,7 +182,7 @@ media_query:
|
||||
Specify the visibility of the card per user.
|
||||
|
||||
```yaml
|
||||
condition: "user"
|
||||
condition: user
|
||||
users:
|
||||
- 581fca7fdc014b8b894519cc531f9a04
|
||||
```
|
||||
@ -188,3 +197,55 @@ users:
|
||||
description: User ID that can see the card (unique hex value found on the Users configuration page).
|
||||
type: list
|
||||
{% endconfiguration %}
|
||||
|
||||
### And
|
||||
|
||||
Specify that both conditions must be met.
|
||||
|
||||
```yaml
|
||||
condition: and
|
||||
conditions:
|
||||
- condition: numeric_state
|
||||
above: 0
|
||||
- condition: user
|
||||
users:
|
||||
- 581fca7fdc014b8b894519cc531f9a04
|
||||
```
|
||||
|
||||
{% configuration %}
|
||||
condition:
|
||||
required: true
|
||||
description: "`and`"
|
||||
type: string
|
||||
conditions:
|
||||
required: false
|
||||
description: List of conditions to check. See [available conditions](#conditions-options).
|
||||
type: list
|
||||
{% endconfiguration %}
|
||||
|
||||
### Or
|
||||
|
||||
Specify that at least one of the conditions must be met.
|
||||
|
||||
```yaml
|
||||
condition: or
|
||||
conditions:
|
||||
- condition: numeric_state
|
||||
above: 0
|
||||
- condition: user
|
||||
users:
|
||||
- 581fca7fdc014b8b894519cc531f9a04
|
||||
```
|
||||
|
||||
{% configuration %}
|
||||
condition:
|
||||
required: true
|
||||
description: "`or`"
|
||||
type: string
|
||||
conditions:
|
||||
required: false
|
||||
description: List of conditions to check. See [available conditions](#conditions-options).
|
||||
type: list
|
||||
{% endconfiguration %}
|
||||
|
||||
|
||||
|
@ -1,13 +1,18 @@
|
||||
---
|
||||
type: card
|
||||
title: "Energy Cards"
|
||||
sidebar_label: Energy Cards
|
||||
title: "Energy cards"
|
||||
sidebar_label: Energy cards
|
||||
description: "An overview of the energy cards that are available."
|
||||
related:
|
||||
- docs: /integrations/frontend/
|
||||
title: Themes
|
||||
- docs: /dashboards/cards/
|
||||
title: Dashboard cards
|
||||
---
|
||||
|
||||
This is a list of all the cards used in the energy dashboard, you can also place them anywhere you want in your dashboard.
|
||||
This is a list of all the cards used in the energy dashboard. You can also place them anywhere you want in your dashboard.
|
||||
|
||||
At the moment there are no configuration options available for these cards, you can configure them on the {% my config_energy title="energy configuration page" %}.
|
||||
Currently, there are no configuration options available for these cards. You can configure them on the {% my config_energy title="energy configuration page" %}.
|
||||
|
||||
## Energy date picker
|
||||
|
||||
@ -16,10 +21,11 @@ At the moment there are no configuration options available for these cards, you
|
||||
Screenshot of the Energy date selection card.
|
||||
</p>
|
||||
|
||||
This card will allow you to pick what data to show. Changing it in this card will influence the data in all other cards.
|
||||
This card allows you to pick what data to show. Changing it in this card will influence the data in all other cards.
|
||||
Specific dates and ranges can be selected by opening the date range picker. The current period can be compared to the previous one using the compare data option within the menu.
|
||||
|
||||
### Example
|
||||
|
||||
```yaml
|
||||
type: energy-date-selection
|
||||
```
|
||||
@ -35,6 +41,7 @@ The energy usage graph card shows the amount of energy your house has consumed,
|
||||
It will also show the amount of energy your have returned to the grid.
|
||||
|
||||
### Example
|
||||
|
||||
```yaml
|
||||
type: energy-usage-graph
|
||||
```
|
||||
@ -49,6 +56,7 @@ type: energy-usage-graph
|
||||
The solar production graph card shows the amount of energy your solar panels have produced per source, and if setup and available the forecast of the solar production.
|
||||
|
||||
### Example
|
||||
|
||||
```yaml
|
||||
type: energy-solar-graph
|
||||
```
|
||||
@ -97,6 +105,7 @@ If setup, it will also tell you how many kWh of the energy you got from the grid
|
||||
If you set `link_dashboard` to `true`, the card will include a link to the energy dashboard.
|
||||
|
||||
### Example
|
||||
|
||||
```yaml
|
||||
type: energy-distribution
|
||||
link_dashboard: true
|
||||
@ -113,6 +122,7 @@ The energy sources table card shows all your energy sources, and the correspondi
|
||||
If setup, it will also show the costs and compensation per source and the total.
|
||||
|
||||
### Example
|
||||
|
||||
```yaml
|
||||
type: energy-sources-table
|
||||
```
|
||||
@ -127,6 +137,7 @@ type: energy-sources-table
|
||||
The grid neutrality gauge card represents your energy dependency. If the needle is in the purple, you returned more energy to the grid than you consumed from it. If it's in the blue, you consumed more energy from the grid than you returned.
|
||||
|
||||
### Example
|
||||
|
||||
```yaml
|
||||
type: energy-grid-neutrality-gauge
|
||||
```
|
||||
@ -141,6 +152,7 @@ type: energy-grid-neutrality-gauge
|
||||
The solar consumed gauge represents how much of the solar energy was used by your home and was not returned to the grid. If you frequently return a lot, try to conserve this energy by installing a battery or buying an electric car to charge.
|
||||
|
||||
### Example
|
||||
|
||||
```yaml
|
||||
type: energy-solar-consumed-gauge
|
||||
```
|
||||
@ -155,6 +167,7 @@ type: energy-solar-consumed-gauge
|
||||
The carbon consumed gauge card represents how much of the energy consumed by your home was generated using non-fossil fuels like solar, wind and nuclear. It includes the solar energy you generated your self.
|
||||
|
||||
### Example
|
||||
|
||||
```yaml
|
||||
type: energy-carbon-consumed-gauge
|
||||
```
|
||||
@ -169,6 +182,7 @@ type: energy-carbon-consumed-gauge
|
||||
The self-sufficiency gauge represents how self-sufficient your home is. If you rely on grid imports, this value decreases. You can increase this value by adding more solar capacity or battery storage.
|
||||
|
||||
### Example
|
||||
|
||||
```yaml
|
||||
type: energy-self-sufficiency-gauge
|
||||
```
|
||||
@ -196,3 +210,27 @@ The following example limits the number of shown devices to 5:
|
||||
type: energy-devices-graph
|
||||
max_devices: 5
|
||||
```
|
||||
|
||||
## Detail devices energy graph
|
||||
|
||||
<p class='img'>
|
||||
<img src='/images/dashboards/energy/devices-detail-graph.png' alt='Screenshot of the devices energy graph card'>
|
||||
Screenshot of the detail devices energy graph card.
|
||||
</p>
|
||||
|
||||
The **Detail devices energy graph** card is similar to the **Devices energy graph** card, but shows the individual usage on a time scale.
|
||||
|
||||
By default, this card will show all your devices. Optionally, the number of devices can be limited by adding the `max_devices` option and specifying the maximum number of devices to show. If there are more devices available than shown, the devices with the highest energy usage are shown.
|
||||
|
||||
### Examples
|
||||
|
||||
```yaml
|
||||
type: energy-devices-detail-graph
|
||||
```
|
||||
|
||||
The following example limits the number of shown devices to 5:
|
||||
|
||||
```yaml
|
||||
type: energy-devices-detail-graph
|
||||
max_devices: 5
|
||||
```
|
||||
|
@ -1,8 +1,15 @@
|
||||
---
|
||||
type: card
|
||||
title: "Entities Card"
|
||||
title: "Entities card"
|
||||
sidebar_label: Entities
|
||||
description: "The entities card is the most common type of card. It groups items together into lists."
|
||||
related:
|
||||
- docs: /dashboards/actions/
|
||||
title: Card actions
|
||||
- docs: /dashboards/header-footer/
|
||||
title: Card header and footer
|
||||
- docs: /dashboards/cards/
|
||||
title: Dashboard cards
|
||||
---
|
||||
|
||||
The entities card is the most common type of card. It groups items together into lists. It can be used to display an entity's state or attribute, but also contain buttons, web links, etc.
|
||||
|
@ -29,9 +29,13 @@ entities:
|
||||
required: true
|
||||
description: A list of entity IDs or `entity` objects, see below.
|
||||
type: list
|
||||
conditions:
|
||||
required: false
|
||||
description: List of conditions to check. See [available conditions](#conditions-options).*
|
||||
type: list
|
||||
state_filter:
|
||||
required: true
|
||||
description: List of strings representing states or `filter` objects, see below.
|
||||
required: false
|
||||
description: (legacy) List of strings representing states or filters to check. See [available legacy filters](#legacy-state-filters).*
|
||||
type: list
|
||||
card:
|
||||
required: false
|
||||
@ -45,6 +49,8 @@ show_empty:
|
||||
default: true
|
||||
{% endconfiguration %}
|
||||
|
||||
*one is required (`conditions` or `state_filter`)
|
||||
|
||||
### Options for entities
|
||||
|
||||
If you define entities as objects instead of strings (by adding `entity:` before entity ID), you can add more customization and configurations:
|
||||
@ -64,8 +70,9 @@ name:
|
||||
type: string
|
||||
icon:
|
||||
required: false
|
||||
description: Overwrites icon or entity picture.
|
||||
description: Overwrites icon or entity picture. You can use any icon from [Material Design Icons](https://pictogrammers.com/library/mdi/). Prefix the icon name with `mdi:`, ie `mdi:home`.
|
||||
type: string
|
||||
default: Entity domain icon
|
||||
secondary_info:
|
||||
required: false
|
||||
description: "Show additional info. Values: `entity-id`, `last-changed`."
|
||||
@ -74,32 +81,225 @@ format:
|
||||
required: false
|
||||
description: "How the state should be formatted. Currently only used for timestamp sensors. Valid values are: `relative`, `total`, `date`, `time` and `datetime`."
|
||||
type: string
|
||||
conditions:
|
||||
required: false
|
||||
description: List of conditions to check. See [available conditions](#conditions-options).*
|
||||
type: list
|
||||
state_filter:
|
||||
required: false
|
||||
description: List of strings representing states or `filter` objects, see below.
|
||||
description: (legacy) List of strings representing states or filters to check. See [available legacy filters](#legacy-state-filters).*
|
||||
type: list
|
||||
{% endconfiguration %}
|
||||
|
||||
### Options for state filter
|
||||
*only one filter will be applied: `conditions` or `state_filter` if `conditions` is not present
|
||||
|
||||
If you define `state_filter` as objects instead of strings (by adding `value:` before your state value), you can add more customization to your filter:
|
||||
## Conditions options
|
||||
|
||||
{% configuration %}
|
||||
value:
|
||||
You can specify multiple `conditions`, in which case the entity will be displayed if it matches any condition.
|
||||
|
||||
### State
|
||||
|
||||
Tests if an entity has a specified state.
|
||||
|
||||
```yaml
|
||||
type: entity-filter
|
||||
entities:
|
||||
- climate.thermostat_living_room
|
||||
- climate.thermostat_bed_room
|
||||
conditions:
|
||||
- condition: state
|
||||
state: heat
|
||||
```
|
||||
|
||||
```yaml
|
||||
type: entity-filter
|
||||
entities:
|
||||
- climate.thermostat_living_room
|
||||
- climate.thermostat_bed_room
|
||||
conditions:
|
||||
- condition: state
|
||||
state_not: "off"
|
||||
```
|
||||
|
||||
```yaml
|
||||
type: entity-filter
|
||||
entities:
|
||||
- sensor.gas_station_1
|
||||
- sensor.gas_station_2
|
||||
- sensor.gas_station_3
|
||||
conditions:
|
||||
- condition: state
|
||||
state: sensor.gas_station_lowest_price
|
||||
```
|
||||
|
||||
{% configuration condition_state %}
|
||||
condition:
|
||||
required: true
|
||||
description: String representing the state.
|
||||
description: "`state`"
|
||||
type: string
|
||||
operator:
|
||||
state:
|
||||
required: false
|
||||
description: Operator to use in the comparison. Can be `==`, `<=`, `<`, `>=`, `>`, `!=`, `in`, `not in`, or `regex`.
|
||||
description: Entity state or ID to be equal to this value. Can contain an array of states.*
|
||||
type: [list, string]
|
||||
state_not:
|
||||
required: false
|
||||
description: Entity state or ID to not be equal to this value. Can contain an array of states.*
|
||||
type: [list, string]
|
||||
{% endconfiguration %}
|
||||
|
||||
*one is required (`state` or `state_not`)
|
||||
|
||||
### Numeric state
|
||||
|
||||
Tests if an entity state matches the thresholds.
|
||||
|
||||
```yaml
|
||||
type: entity-filter
|
||||
entities:
|
||||
- sensor.outside_temperature
|
||||
- sensor.living_room_temperature
|
||||
- sensor.bed_room_temperature
|
||||
conditions:
|
||||
- condition: numeric_state
|
||||
above: 10
|
||||
below: 20
|
||||
```
|
||||
|
||||
{% configuration condition_numeric_state %}
|
||||
condition:
|
||||
required: true
|
||||
description: "`numeric_state`"
|
||||
type: string
|
||||
attribute:
|
||||
above:
|
||||
required: false
|
||||
description: Attribute of the entity to use instead of the state.
|
||||
description: Entity state or ID to be above this value.*
|
||||
type: string
|
||||
below:
|
||||
required: false
|
||||
description: Entity state or ID to be below this value.*
|
||||
type: string
|
||||
{% endconfiguration %}
|
||||
|
||||
## Examples
|
||||
*at least one is required (`above` or `below`), both are also possible for values between.
|
||||
|
||||
### Screen
|
||||
|
||||
Specify the visibility of the entity per screen size. Some screen size presets are available in the UI but you can use any CSS media query you want in YAML.
|
||||
|
||||
```yaml
|
||||
type: entity-filter
|
||||
entities:
|
||||
- sensor.outside_temperature
|
||||
- sensor.living_room_temperature
|
||||
- sensor.bed_room_temperature
|
||||
conditions:
|
||||
- condition: screen
|
||||
media_query: "(min-width: 1280px)"
|
||||
```
|
||||
|
||||
{% configuration condition_screen %}
|
||||
condition:
|
||||
required: true
|
||||
description: "`screen`"
|
||||
type: string
|
||||
media_query:
|
||||
required: true
|
||||
description: Media query to check which screen size are allowed to display the entity.
|
||||
type: string
|
||||
{% endconfiguration %}
|
||||
|
||||
### User
|
||||
|
||||
Specify the visibility of the entity per user.
|
||||
|
||||
```yaml
|
||||
type: entity-filter
|
||||
entities:
|
||||
- sensor.outside_temperature
|
||||
- sensor.living_room_temperature
|
||||
- sensor.bed_room_temperature
|
||||
conditions:
|
||||
- condition: user
|
||||
users:
|
||||
- 581fca7fdc014b8b894519cc531f9a04
|
||||
```
|
||||
|
||||
{% configuration condition_user %}
|
||||
condition:
|
||||
required: true
|
||||
description: "`user`"
|
||||
type: string
|
||||
users:
|
||||
required: true
|
||||
description: User ID that can see the entity (unique hex value found on the Users configuration page).
|
||||
type: list
|
||||
{% endconfiguration %}
|
||||
|
||||
### And
|
||||
|
||||
Specify that both conditions must be met.
|
||||
|
||||
```yaml
|
||||
type: entity-filter
|
||||
entities:
|
||||
- sensor.outside_temperature
|
||||
- sensor.living_room_temperature
|
||||
- sensor.bed_room_temperature
|
||||
conditions:
|
||||
- condition: and
|
||||
conditions:
|
||||
- condition: numeric_state
|
||||
above: 0
|
||||
- condition: user
|
||||
users:
|
||||
- 581fca7fdc014b8b894519cc531f9a04
|
||||
```
|
||||
|
||||
{% configuration condition_and %}
|
||||
condition:
|
||||
required: true
|
||||
description: "`and`"
|
||||
type: string
|
||||
conditions:
|
||||
required: false
|
||||
description: List of conditions to check. See [available conditions](#conditions-options).
|
||||
type: list
|
||||
{% endconfiguration %}
|
||||
|
||||
### Or
|
||||
|
||||
Specify that at least one of the conditions must be met.
|
||||
|
||||
```yaml
|
||||
type: entity-filter
|
||||
entities:
|
||||
- sensor.outside_temperature
|
||||
- sensor.living_room_temperature
|
||||
- sensor.bed_room_temperature
|
||||
conditions:
|
||||
- condition: or
|
||||
conditions:
|
||||
- condition: numeric_state
|
||||
above: 0
|
||||
- condition: user
|
||||
users:
|
||||
- 581fca7fdc014b8b894519cc531f9a04
|
||||
```
|
||||
|
||||
{% configuration condition_or %}
|
||||
condition:
|
||||
required: true
|
||||
description: "`or`"
|
||||
type: string
|
||||
conditions:
|
||||
required: false
|
||||
description: List of conditions to check. See [available conditions](#conditions-options).
|
||||
type: list
|
||||
{% endconfiguration %}
|
||||
|
||||
## Legacy state filters
|
||||
|
||||
### String filter
|
||||
|
||||
Show only active switches or lights in the house.
|
||||
|
||||
@ -134,7 +334,32 @@ card:
|
||||
Entity filter combined with glance card.
|
||||
</p>
|
||||
|
||||
You can also specify multiple `state_filter` conditions, in which case the entity will be displayed if it matches any condition. This example will display everyone who is at home or at work.
|
||||
You can also specify multiple `state_filter` conditions, in which case the entity will be displayed if it matches any condition.
|
||||
|
||||
If you define `state_filter` as objects instead of strings, you can add more customization to your filter, as described below.
|
||||
|
||||
### Operator filter
|
||||
|
||||
Tests if an entity state correspond to the applied `operator`.
|
||||
|
||||
{% configuration condition_operator %}
|
||||
value:
|
||||
required: true
|
||||
description: String representing the state.
|
||||
type: string
|
||||
operator:
|
||||
required: true
|
||||
description: Operator to use in the comparison. Can be `==`, `<=`, `<`, `>=`, `>`, `!=`, `in`, `not in`, or `regex`.
|
||||
type: string
|
||||
attribute:
|
||||
required: false
|
||||
description: Attribute of the entity to use instead of the state.
|
||||
type: string
|
||||
{% endconfiguration %}
|
||||
|
||||
#### Examples
|
||||
|
||||
Displays everyone who is at home or at work.
|
||||
|
||||
```yaml
|
||||
type: entity-filter
|
||||
@ -146,7 +371,7 @@ state_filter:
|
||||
- operator: "=="
|
||||
value: home
|
||||
- operator: "=="
|
||||
value: work
|
||||
value: work
|
||||
card:
|
||||
type: glance
|
||||
title: Who's at work or home
|
||||
@ -173,19 +398,19 @@ entities:
|
||||
Use a regex filter against entity attributes. This regex filter below looks for expressions that are 1 digit in length and where the number is between 0-7 (so show holidays today or in the next 7 days) and displays those holidays as entities in the Entity Filter card.
|
||||
|
||||
```yaml
|
||||
- type: entity-filter
|
||||
card:
|
||||
title: "Upcoming Holidays In Next 7 Days"
|
||||
show_header_toggle: false
|
||||
state_filter:
|
||||
- operator: regex
|
||||
value: "^([0-7]{1})$"
|
||||
attribute: eta
|
||||
entities:
|
||||
- entity: sensor.upcoming_ical_holidays_0
|
||||
- entity: sensor.upcoming_ical_holidays_1
|
||||
- entity: sensor.upcoming_ical_holidays_2
|
||||
- entity: sensor.upcoming_ical_holidays_3
|
||||
- entity: sensor.upcoming_ical_holidays_4
|
||||
show_empty: false
|
||||
type: entity-filter
|
||||
card:
|
||||
title: "Upcoming Holidays In Next 7 Days"
|
||||
show_header_toggle: false
|
||||
state_filter:
|
||||
- operator: regex
|
||||
value: "^([0-7]{1})$"
|
||||
attribute: eta
|
||||
entities:
|
||||
- entity: sensor.upcoming_ical_holidays_0
|
||||
- entity: sensor.upcoming_ical_holidays_1
|
||||
- entity: sensor.upcoming_ical_holidays_2
|
||||
- entity: sensor.upcoming_ical_holidays_3
|
||||
- entity: sensor.upcoming_ical_holidays_4
|
||||
show_empty: false
|
||||
```
|
||||
|
@ -3,6 +3,13 @@ type: card
|
||||
title: "Entity card"
|
||||
sidebar_label: Entity
|
||||
description: "The entity card gives you a quick overview of your entity's state"
|
||||
related:
|
||||
- docs: /integrations/frontend/
|
||||
title: Themes
|
||||
- docs: /dashboards/header-footer/
|
||||
title: Card header and footer
|
||||
- docs: /dashboards/cards/
|
||||
title: Dashboard cards
|
||||
---
|
||||
|
||||
The entity card gives you a quick overview of your entity's state.
|
||||
|
@ -1,8 +1,13 @@
|
||||
---
|
||||
type: card
|
||||
title: "Gauge Card"
|
||||
title: "Gauge card"
|
||||
sidebar_label: Gauge
|
||||
description: "The gauge card is a basic card that allows visually seeing sensor data."
|
||||
related:
|
||||
- docs: /integrations/frontend/
|
||||
title: Themes
|
||||
- docs: /dashboards/cards/
|
||||
title: Dashboard cards
|
||||
---
|
||||
|
||||
The gauge card is a basic card that allows visually seeing sensor data.
|
||||
@ -97,6 +102,18 @@ segments:
|
||||
required: false
|
||||
description: Label of the segment. This will be shown instead of the value.
|
||||
type: string
|
||||
tap_action:
|
||||
required: false
|
||||
description: Action taken on card tap. See [action documentation](/dashboards/actions/#tap-action).
|
||||
type: map
|
||||
hold_action:
|
||||
required: false
|
||||
description: Action taken on card tap and hold. See [action documentation](/dashboards/actions/#hold-action).
|
||||
type: map
|
||||
double_tap_action:
|
||||
required: false
|
||||
description: Action taken on card double tap. See [action documentation](/dashboards/actions/#double-tap-action).
|
||||
type: map
|
||||
{% endconfiguration %}
|
||||
|
||||
### Examples
|
||||
|
@ -3,6 +3,13 @@ type: card
|
||||
title: "Glance card"
|
||||
sidebar_label: Glance
|
||||
description: "The glance card is useful to group multiple sensors in a compact overview."
|
||||
related:
|
||||
- docs: /dashboards/actions/
|
||||
title: Card actions
|
||||
- docs: /integrations/frontend/
|
||||
title: Themes
|
||||
- docs: /dashboards/cards/
|
||||
title: Dashboard cards
|
||||
---
|
||||
|
||||
The glance card is useful to group multiple sensors in a compact overview. Keep in mind that this can be used together with [entity-filter](/dashboards/entity-filter/) cards to create dynamic cards.
|
||||
|
@ -3,6 +3,11 @@ type: card
|
||||
title: "Grid card"
|
||||
sidebar_label: Grid
|
||||
description: "The grid card allows you to show multiple cards in a grid."
|
||||
related:
|
||||
- docs: /integrations/frontend/
|
||||
title: Themes
|
||||
- docs: /dashboards/cards/
|
||||
title: Dashboard cards
|
||||
---
|
||||
|
||||
The grid card allows you to show multiple cards in a grid. It will first fill the columns, automatically adding new rows as needed.
|
||||
@ -70,7 +75,7 @@ square: false
|
||||
cards:
|
||||
- type: picture-entity
|
||||
entity: group.all_lights
|
||||
image: /local/house.png
|
||||
image: /local/house.png
|
||||
- type: horizontal-stack
|
||||
cards:
|
||||
- type: picture-entity
|
||||
|
@ -3,6 +3,11 @@ type: card
|
||||
title: "History graph card"
|
||||
sidebar_label: History graph
|
||||
description: "The history graph card allows you to display a graph for each of the entities listed."
|
||||
related:
|
||||
- docs: /integrations/frontend/
|
||||
title: Themes
|
||||
- docs: /dashboards/cards/
|
||||
title: Dashboard cards
|
||||
---
|
||||
|
||||
The history graph card allows you to display a graph for each of up to eight entities.
|
||||
@ -19,7 +24,7 @@ Screenshot of the history graph card, when the sensor has a `unit_of_measurement
|
||||
|
||||
{% include dashboard/edit_dashboard.md %}
|
||||
|
||||
All options for this card can be configured via the user interface.
|
||||
Only the y-axis and logarithmic scale settings can be configured via the user interface. To configure the other options for this card, you need to edit the YAML configuration.
|
||||
|
||||
## YAML configuration
|
||||
|
||||
@ -53,6 +58,19 @@ logarithmic_scale:
|
||||
description: If true, numerical values on the Y-axis will be displayed with a logarithmic scale.
|
||||
type: boolean
|
||||
default: false
|
||||
min_y_axis:
|
||||
required: false
|
||||
description: Lower bound for the Y-axis range.
|
||||
type: float
|
||||
max_y_axis:
|
||||
required: false
|
||||
description: Upper bound for the Y-axis range.
|
||||
type: float
|
||||
fit_y_data:
|
||||
required: false
|
||||
description: If true, configured Y-axis bounds would automatically extend (but not shrink) to fit the data.
|
||||
type: boolean
|
||||
default: false
|
||||
{% endconfiguration %}
|
||||
|
||||
### Options for entities
|
||||
|
@ -3,6 +3,9 @@ type: card
|
||||
title: "Horizontal stack card"
|
||||
sidebar_label: Horizontal stack
|
||||
description: "The horizontal stack card allows you to stack together multiple cards, so they always sit next to each other in the space of one column."
|
||||
related:
|
||||
- docs: /dashboards/cards/
|
||||
title: Dashboard cards
|
||||
---
|
||||
|
||||
The horizontal stack card allows you to stack together multiple cards, so they always sit next to each other in the space of one column.
|
||||
|
@ -3,6 +3,11 @@ type: card
|
||||
title: "Humidifier card"
|
||||
sidebar_label: Humidifier
|
||||
description: "The humidifier card gives control of your humidifier entity, allowing you to change the target humidity and mode of the entity."
|
||||
related:
|
||||
- docs: /integrations/frontend/
|
||||
title: Themes
|
||||
- docs: /dashboards/cards/
|
||||
title: Dashboard cards
|
||||
---
|
||||
|
||||
The humidifier card lets you control and monitor humidifiers, dehumidifiers, and hygrostat devices.
|
||||
@ -56,3 +61,4 @@ type: humidifier
|
||||
entity: humidifier.bedroom
|
||||
name: Bedroom Humidifier
|
||||
```
|
||||
|
||||
|
@ -3,10 +3,17 @@ type: card
|
||||
title: "Webpage card"
|
||||
sidebar_label: Webpage
|
||||
description: "The webpage card allows you to embed your favorite webpage right into Home Assistant."
|
||||
related:
|
||||
- docs: /dashboards/dashboards/#webpage-dashboard
|
||||
title: Webpage dashboard
|
||||
- docs: /dashboards/cards/
|
||||
title: Dashboard cards
|
||||
---
|
||||
|
||||
The webpage card allows you to embed your favorite webpage right into Home Assistant. You can also embed files stored in your `<config-directory>/www` folder and reference them using `/local/<file>`.
|
||||
|
||||
The webpage card is used on the [Webpage dashboard](/dashboards/dashboards/#webpage-dashboard).
|
||||
|
||||
<p class='img'>
|
||||
<img width="500" src='/images/dashboards/iframe.png' alt='Windy weather radar as Webpage'>
|
||||
Windy weather radar as webpage.
|
||||
@ -16,6 +23,7 @@ The webpage card allows you to embed your favorite webpage right into Home Assis
|
||||
|
||||
All options for this card can be configured via the user interface.
|
||||
|
||||
Note that not every webpage can be embedded due to security restrictions that some sites have in place. These restrictions are enforced by your browser and prevent embedding them into a Home Assistant dashboard.
|
||||
<div class='note warning'>
|
||||
You can't embed sites using HTTP if you are using HTTPS for your Home Assistant.
|
||||
</div>
|
||||
@ -47,6 +55,11 @@ title:
|
||||
required: false
|
||||
description: The card title.
|
||||
type: string
|
||||
allow:
|
||||
required: false
|
||||
description: The [Permissions Policy](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Permissions-Policy#iframes) of the iframe, that is, the value of the [`allow`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe#allow) attribute.
|
||||
type: string
|
||||
default: "fullscreen"
|
||||
{% endconfiguration %}
|
||||
|
||||
### Examples
|
||||
|
@ -3,6 +3,13 @@ type: card
|
||||
title: "Light card"
|
||||
sidebar_label: Light
|
||||
description: "The light card allows you to change the brightness of the light."
|
||||
related:
|
||||
- docs: /dashboards/actions/
|
||||
title: Card actions
|
||||
- docs: /integrations/frontend/
|
||||
title: Themes
|
||||
- docs: /dashboards/cards/
|
||||
title: Dashboard cards
|
||||
---
|
||||
|
||||
The light card allows you to change the brightness of the light.
|
||||
|
@ -3,6 +3,11 @@ type: card
|
||||
title: "Logbook card"
|
||||
sidebar_label: Logbook
|
||||
description: "The logbook card displays entries from the logbook for specific entities."
|
||||
related:
|
||||
- docs: /integrations/frontend/
|
||||
title: Themes
|
||||
- docs: /dashboards/cards/
|
||||
title: Dashboard cards
|
||||
---
|
||||
|
||||
The logbook card displays entries from the logbook for specific entities.
|
||||
|
@ -3,9 +3,16 @@ type: card
|
||||
title: "Map card"
|
||||
sidebar_label: Map
|
||||
description: "The map card that allows you to display entities on a map"
|
||||
related:
|
||||
- docs: /dashboards/dashboards/#map-dashboard
|
||||
title: Map dashboard
|
||||
- docs: /integrations/frontend/
|
||||
title: Themes
|
||||
- docs: /dashboards/cards/
|
||||
title: Dashboard cards
|
||||
---
|
||||
|
||||
The map card that allows you to display entities on a map
|
||||
The map card that allows you to display entities on a map. This card is used on the [Map dashboard](/dashboards/dashboards/#map-dashboard), which is one of the default dashboards.
|
||||
|
||||
<p class='img'>
|
||||
<img src='/images/dashboards/map_card.png' alt='Screenshot of the map card'>
|
||||
@ -56,11 +63,11 @@ default_zoom:
|
||||
description: The default zoom level of the map.
|
||||
type: integer
|
||||
default: 14 (or whatever zoom level is required to fit all visible markers)
|
||||
dark_mode:
|
||||
theme_mode:
|
||||
required: false
|
||||
description: Enable a dark theme for the map.
|
||||
type: boolean
|
||||
default: false
|
||||
description: 'Override the theme to force the map to display in either a light mode (`theme_mode: light`) or a dark mode (`theme_mode: dark`). Default (`theme_mode: auto`) will follow the theme settings.'
|
||||
type: string
|
||||
default: 'auto'
|
||||
hours_to_show:
|
||||
required: false
|
||||
description: Shows a path of previous locations. Hours to show as path on the map.
|
||||
@ -134,3 +141,4 @@ entities:
|
||||
focus: false
|
||||
hours_to_show: 48
|
||||
```
|
||||
|
||||
|
@ -3,6 +3,11 @@ type: card
|
||||
title: "Markdown card"
|
||||
sidebar_label: Markdown
|
||||
description: "The Markdown card is used to render Markdown"
|
||||
related:
|
||||
- docs: /integrations/frontend/
|
||||
title: Themes
|
||||
- docs: /dashboards/cards/
|
||||
title: Dashboard cards
|
||||
---
|
||||
|
||||
The Markdown card is used to render [Markdown](https://commonmark.org/help/).
|
||||
|
@ -2,11 +2,29 @@
|
||||
type: view
|
||||
title: Masonry view
|
||||
sidebar_label: Masonry (default)
|
||||
description: "The default panel layout uses a masonry algorithme."
|
||||
description: "The default panel layout uses a masonry algorithm."
|
||||
related:
|
||||
- docs: /dashboards/panel/
|
||||
title: Panel view
|
||||
- docs: /dashboards/sidebar/
|
||||
title: Sidebar view
|
||||
---
|
||||
|
||||
The masonry view is the default view type.
|
||||
It sorts cards in columns based on their `card size`. If you want to group some cards you have to use `stack` or `grid` cards.
|
||||
|
||||
<p class='img'>
|
||||
<img src='/images/getting-started/lovelace.png' alt='Screenshot of the masonry view'>
|
||||
Screenshot of the masonry view.
|
||||
</p>
|
||||
|
||||
Masonry sorts cards in columns based on their card size. The next card is placed below the smallest card on the dashboard.
|
||||
|
||||
<p class='img'>
|
||||
<img src='/images/dashboards/masonry.png' alt='Image showing how masonry arranges cards based on size.'>
|
||||
Masonry arranges cards based on size.
|
||||
</p>
|
||||
|
||||
To group cards, you have to use [horizontal stack](/dashboards/horizontal-stack/), [vertical stack](/dashboards/vertical-stack/), or [grid](/dashboards/grid/) cards.
|
||||
|
||||
{% configuration %}
|
||||
type:
|
||||
|
@ -3,6 +3,11 @@ type: card
|
||||
title: "Media control card"
|
||||
sidebar_label: Media control
|
||||
description: "The media control card is used to display media player entities on an interface with easy to use controls."
|
||||
related:
|
||||
- docs: /integrations/frontend/
|
||||
title: Themes
|
||||
- docs: /dashboards/cards/
|
||||
title: Dashboard cards
|
||||
---
|
||||
|
||||
The media control card is used to display [media player](/integrations/#media-player) entities on an interface with easy to use controls.
|
||||
|
@ -3,13 +3,23 @@ type: view
|
||||
title: Panel view
|
||||
sidebar_label: Panel
|
||||
description: "The panel view shows a single card in the full width of the screen."
|
||||
related:
|
||||
- docs: /dashboards/masonry/
|
||||
title: Masonry view
|
||||
- docs: /dashboards/sidebar/
|
||||
title: Sidebar view
|
||||
---
|
||||
|
||||
The view must have exactly one card. This card is rendered full-width.
|
||||
The panel view must have exactly one card. This card is rendered full-width.
|
||||
|
||||
<p class='img'>
|
||||
<img src='/images/dashboards/panel_view.png' alt='Screenshot of the panel view'>
|
||||
Screenshot of the panel view.
|
||||
</p>
|
||||
|
||||
This view doesn't have support for badges.
|
||||
|
||||
This view is good when using cards like `map`, `stack` or `picture-elements`.
|
||||
This view is good when using cards like [map](/dashboards/map/), [horizontal stack](/dashboards/horizontal-stack/), [vertical stack](/dashboards/vertical-stack/), [picture elements](/dashboards/picture-elements/), or [picture glance](/dashboards/picture-glance/).
|
||||
|
||||
{% configuration %}
|
||||
type:
|
||||
|
@ -3,6 +3,13 @@ type: card
|
||||
title: "Picture elements card"
|
||||
sidebar_label: Picture elements
|
||||
description: "The picture elements card is one of the most versatile types of cards. The cards allow you to position icons or text and even services! On an image based on coordinates."
|
||||
related:
|
||||
- docs: /dashboards/actions/
|
||||
title: Card actions
|
||||
- docs: /integrations/frontend/
|
||||
title: Themes
|
||||
- docs: /dashboards/cards/
|
||||
title: Dashboard cards
|
||||
---
|
||||
|
||||
The picture elements card is one of the most versatile types of cards.
|
||||
@ -401,7 +408,7 @@ user:
|
||||
type: string
|
||||
{% endconfiguration %}
|
||||
|
||||
## Notes on Element Attributes
|
||||
## Notes on element attributes
|
||||
|
||||
### How to use the style object
|
||||
|
||||
|
@ -3,6 +3,13 @@ type: card
|
||||
title: Picture entity card
|
||||
sidebar_label: Picture entity
|
||||
description: The picture entity card displays an entity in the form of an image. Instead of images from URL, it can also show the picture of camera entities.
|
||||
related:
|
||||
- docs: /dashboards/actions/
|
||||
title: Card actions
|
||||
- docs: /integrations/frontend/
|
||||
title: Themes
|
||||
- docs: /dashboards/cards/
|
||||
title: Dashboard cards
|
||||
---
|
||||
|
||||
The picture entity card displays an entity in the form of an image. Instead of images from URL, it can also show the picture of `camera` entities.
|
||||
@ -12,7 +19,7 @@ The picture entity card displays an entity in the form of an image. Instead of i
|
||||
Background changes according to the entity state.
|
||||
</p>
|
||||
|
||||
{% include dashboard/edit_dashboard.md %}
|
||||
{% include dashboard/add_picture_to_card.md %}
|
||||
|
||||
## YAML configuration
|
||||
|
||||
@ -137,4 +144,5 @@ tap_action:
|
||||
|
||||
{% endraw %}
|
||||
|
||||
The filename needs to be a path that is writable by Home Assistant in your system. You may need to configure `allowlist_external_dirs` ([documentation](/docs/configuration/basic/)).
|
||||
The filename needs to be a path that is writable by Home Assistant in your system. You may need to configure `allowlist_external_dirs` ([documentation](/integrations/homeassistant/#allowlist_external_dirs)).
|
||||
|
||||
|
@ -3,6 +3,13 @@ type: card
|
||||
title: "Picture glance card"
|
||||
sidebar_label: Picture glance
|
||||
description: "The picture glance card shows an image and corresponding entity states as an icon. The entities on the right side allow toggle actions, others show the more information dialog."
|
||||
related:
|
||||
- docs: /dashboards/actions/
|
||||
title: Card actions
|
||||
- docs: /integrations/frontend/
|
||||
title: Themes
|
||||
- docs: /dashboards/cards/
|
||||
title: Dashboard cards
|
||||
---
|
||||
|
||||
The picture glance card shows an image and lets you place small icons of entity states on top of that card to control those entities from there. In the image below: the entities on the right allow toggle actions, the others show the more information dialog.
|
||||
@ -12,7 +19,7 @@ The picture glance card shows an image and lets you place small icons of entity
|
||||
Picture glance card for a living room.
|
||||
</p>
|
||||
|
||||
{% include dashboard/edit_dashboard.md %}
|
||||
{% include dashboard/add_picture_to_card.md %}
|
||||
|
||||
## YAML configuration
|
||||
|
||||
|
@ -1,8 +1,15 @@
|
||||
---
|
||||
type: card
|
||||
title: "Picture Card"
|
||||
title: "Picture card"
|
||||
sidebar_label: Picture
|
||||
description: "The picture card allows you to set an image to use for navigation to various paths in your interface or to call a service."
|
||||
related:
|
||||
- docs: /dashboards/actions/
|
||||
title: Card actions
|
||||
- docs: /integrations/frontend/
|
||||
title: Themes
|
||||
- docs: /dashboards/cards/
|
||||
title: Dashboard cards
|
||||
---
|
||||
|
||||
The picture card allows you to set an image to use for navigation to various paths in your interface or to call a service.
|
||||
@ -12,7 +19,7 @@ The picture card allows you to set an image to use for navigation to various pat
|
||||
Screenshot of the picture card.
|
||||
</p>
|
||||
|
||||
{% include dashboard/edit_dashboard.md %}
|
||||
{% include dashboard/add_picture_to_card.md %}
|
||||
|
||||
## YAML configuration
|
||||
|
||||
|
@ -3,6 +3,11 @@ type: card
|
||||
title: "Plant status card"
|
||||
sidebar_label: Plant status
|
||||
description: "The plant status card is for all the lovely botanists out there."
|
||||
related:
|
||||
- docs: /integrations/frontend/
|
||||
title: Themes
|
||||
- docs: /dashboards/cards/
|
||||
title: Dashboard cards
|
||||
---
|
||||
|
||||
The plant status card is for all the lovely botanists out there.
|
||||
|
112
source/_dashboards/sections.markdown
Normal file
112
source/_dashboards/sections.markdown
Normal file
@ -0,0 +1,112 @@
|
||||
---
|
||||
type: view
|
||||
title: Sections (experimental)
|
||||
sidebar_label: Sections (experimental)
|
||||
description: "Lets you organize your cards in sections on a grid."
|
||||
description: "The panel view shows a single card in the full width of the screen."
|
||||
related:
|
||||
- docs: /dashboards/masonry/
|
||||
title: Masonry view
|
||||
- docs: /dashboards/sidebar/
|
||||
title: Sidebar view
|
||||
- docs: /dashboards/panel/
|
||||
title: Panel view
|
||||
- docs: /blog/2024/03/04/dashboard-chapter-1/
|
||||
title: Dashboard chapter 1 blog post
|
||||
- docs: /dashboards/cards/#adding-cards-to-your-dashboard
|
||||
title: Adding cards to a view
|
||||
- docs: /dashboards/views/#adding-a-view-to-a-dashboard
|
||||
title: Adding a new view
|
||||
---
|
||||
|
||||
The sections view lets you organize your cards in sections on a grid.
|
||||
You can group cards without using horizontal or vertical stack cards.
|
||||
|
||||
<p class='img'>
|
||||
<img src="/images/blog/2024-03-dashboard-chapter-1/sections-example-dashboard.png" alt="A fully populated dashboard in Sections view layout"/>
|
||||
A fully populated dashboard in Sections view layout
|
||||
</p>
|
||||
|
||||
<div class='note notice'>
|
||||
<p>The sections view was released beginning of March 2024 and is experimental! Do not build your daily dashboard on top of it yet! We are still collecting feedback.</p><br><p>It is not possible to migrate dashboards into sections view.</p>
|
||||
</div>
|
||||
|
||||
## Creating a sections view
|
||||
|
||||
1. If you have multiple dashboards, in the left sidebar, select the dashboard to which you want to add the sections view.
|
||||
2. Follow the steps on [adding a new view](/dashboards/views/#adding-a-view-to-a-dashboard).
|
||||
- Under **View type**, select **Sections (experimental)**.
|
||||
3. Select the maximum number of columns you want to see in the new sections view.
|
||||
4. When you are done, select **Save**.
|
||||
- You are now presented with a new, empty view.
|
||||
- If you chose a background image, the page is filled with that image.
|
||||
|
||||
## Adding sections and cards to a sections view
|
||||
|
||||
Once you have created a sections view, you can populate it with sections and cards. The new section comes with one section to which you can directly add a card.
|
||||
|
||||
1. To add a card, select the **Add card** button.
|
||||
- Follow the [steps on adding cards](/dashboards/cards/#adding-cards-to-your-dashboard).
|
||||
|
||||

|
||||
|
||||
2. To add a new section, select the **Create section** button.
|
||||
3. To edit the section title, select the <img height="28px" src="/images/blog/2024-03-dashboard-chapter-1/mdi-edit.png" alt="Edit icon"/> button.
|
||||
- If you leave the section title empty, this line will be hidden.
|
||||
4. If you want this section to be visible only to specific users or under a certain condition, you can define those conditions:
|
||||
- On the **Visibility** tab, select **Add condition**.
|
||||
- Select the type of condition, and enter the parameters.
|
||||
- If you define multiple conditions, the section is only shown when all conditions are met.
|
||||
- If you did not define any conditions, the section is always shown, to all users.
|
||||
|
||||

|
||||
|
||||
## Deleting a section
|
||||
|
||||
1. To delete a section, go to the dashboard and in the top right corner, select the pencil icon.
|
||||
2. Open the view with the section you want to delete.
|
||||
3. Select the <img height="28px" src="/images/blog/2024-03-dashboard-chapter-1/mdi-trash.png" alt="Delete icon"/> button.
|
||||
|
||||
## Rearranging sections and cards
|
||||
|
||||
In the sections view, you can rearrange sections and cards by dragging them to a new location. This is not yet possible in other views.
|
||||
|
||||
1. To edit your dashboard, in the top right corner, select the pencil icon.
|
||||
2. To rearrange sections, hold the <img height="28px" src="/images/blog/2024-03-dashboard-chapter-1/mdi-move.png" alt="Move icon"/> button and move the card.
|
||||
|
||||
<p class='img'>
|
||||
<img src="/images/blog/2024-03-dashboard-chapter-1/drag-and-drop-sections.gif" alt="Rearranging sections by dragging"/>
|
||||
Rearranging sections by dragging
|
||||
</p>
|
||||
|
||||
3. To rearrange cards, tap and hold the card and move it to your desired location.
|
||||
|
||||
<p class='img'>
|
||||
<img src="/images/blog/2024-03-dashboard-chapter-1/drag-and-drop-cards.gif" alt="Rearranging cards by dragging"/>
|
||||
Rearranging cards by dragging
|
||||
</p>
|
||||
|
||||
## Show or hide section conditionally
|
||||
|
||||
You can choose to show or hide certain sections based on different conditions. The [available conditions](/dashboards/conditional/#card-conditions) are the same as that for the conditional card.
|
||||
|
||||
To edit the section visibility conditions, select the <img height="28px" src="/images/blog/2024-03-dashboard-chapter-1/mdi-edit.png" alt="Edit icon"/> button and then click on the visibility tab.
|
||||
|
||||
## Check out the demo
|
||||
|
||||
Check out the demo from the March live stream on dashboards.
|
||||
|
||||
<lite-youtube videoid="XyBy0ckkiDU" videoStartAt="2047" videotitle="A Home-Approved Dashboard - Chapter 1: What about Grace?" posterquality="maxresdefault"></lite-youtube>
|
||||
|
||||
## About the sections view layout
|
||||
|
||||
To learn all about the design decisions and the grid layout used for the sections view, refer to the [Dashboard chapter 1 blog post](/blog/2024/03/04/dashboard-chapter-1/).
|
||||
|
||||
## YAML configuration
|
||||
|
||||
{% configuration %}
|
||||
type:
|
||||
required: false
|
||||
description: "`sections`"
|
||||
type: string
|
||||
{% endconfiguration %}
|
@ -3,6 +3,11 @@ type: card
|
||||
title: "Sensor card"
|
||||
sidebar_label: Sensor
|
||||
description: "The sensor card gives you a quick overview of your sensors state with an optional graph to visualize change over time."
|
||||
related:
|
||||
- docs: /integrations/frontend/
|
||||
title: Themes
|
||||
- docs: /dashboards/cards/
|
||||
title: Dashboard cards
|
||||
---
|
||||
|
||||
The sensor card gives you a quick overview of your sensors state with an optional graph to visualize change over time.
|
||||
|
@ -1,10 +1,16 @@
|
||||
---
|
||||
type: card
|
||||
title: "Shopping list card"
|
||||
sidebar_label: Shopping list
|
||||
description: "The shopping list card allows you to add, edit, check-off, and clear items from your shopping list."
|
||||
description: "The panel view shows a single card in the full width of the screen."
|
||||
related:
|
||||
- docs: /integrations/todo/
|
||||
title: To-do list integration
|
||||
- docs: /integrations/local_todo/
|
||||
title: Local to-do integration
|
||||
---
|
||||
|
||||
Note: the shopping list card is no longer available as a card to add from the user interface. Use the [to-do list card](/dashboards/todo-list/) instead.
|
||||
|
||||
The shopping list card allows you to add, edit, check-off, and clear items from your shopping list.
|
||||
|
||||
<p class='img'>
|
||||
@ -39,7 +45,7 @@ theme:
|
||||
|
||||
### Examples
|
||||
|
||||
Title Example:
|
||||
Title example:
|
||||
|
||||
```yaml
|
||||
type: shopping-list
|
||||
|
@ -3,18 +3,30 @@ type: view
|
||||
title: Sidebar view
|
||||
sidebar_label: Sidebar
|
||||
description: "The sidebar view has 2 columns, a wide one and a smaller one on the right."
|
||||
related:
|
||||
- docs: /dashboards/masonry/
|
||||
title: Masonry view
|
||||
- docs: /dashboards/panel/
|
||||
title: Panel view
|
||||
---
|
||||
|
||||
The sidebar view has 2 columns, a wide one and a smaller one on the right.
|
||||
|
||||
<p class='img'>
|
||||
<img src='/images/dashboards/sidebar_view.png' alt='Screenshot of the sidebar view'>
|
||||
Screenshot of the sidebar view used for the energy dashboard.
|
||||
</p>
|
||||
|
||||
This view doesn't have support for badges.
|
||||
|
||||
To change a view to edit mode, or to change the location of a card, enable edit mode:
|
||||
Click the menu (three dots at the top right of the screen) and then **Edit Dashboard**.
|
||||
You can set if a card should be placed in the main (left) column of the sidebar column (right), by selecting the arrow right or left arrow in the bar underneath the card.
|
||||
|
||||
You can set if a card should be placed in the main (left) column of the sidebar column (right), by pressing the arrow right or left arrow in the bar underneath the card.
|
||||
<p class='img'>
|
||||
<img src='/images/dashboards/sidebar_view_move_card.png' alt='Screenshot showing how to move a card between sidebar and main view'>
|
||||
Screenshot showing how to move a card between sidebar and main view.
|
||||
</p>
|
||||
|
||||
On mobile all cards are rendered in 1 column and kept in the order of the cards in the config.
|
||||
On mobile, all cards are rendered in 1 column and kept in the order of the cards in the config.
|
||||
|
||||
## View config:
|
||||
|
||||
@ -46,4 +58,4 @@ cards:
|
||||
- media_player.lounge_room
|
||||
view_layout:
|
||||
position: sidebar
|
||||
```
|
||||
```
|
@ -3,6 +3,11 @@ type: card
|
||||
title: "Statistic card"
|
||||
sidebar_label: Statistic
|
||||
description: "The statistic card allows you to display a statistical value for an entity."
|
||||
related:
|
||||
- docs: /integrations/frontend/
|
||||
title: Themes
|
||||
- docs: /dashboards/cards/
|
||||
title: Dashboard cards
|
||||
---
|
||||
|
||||
The statistic card allows you to display a statistical value for an entity.
|
||||
@ -171,4 +176,4 @@ period:
|
||||
minutes: -20
|
||||
seconds: -10
|
||||
stat_type: change
|
||||
```
|
||||
```
|
||||
|
@ -3,6 +3,11 @@ type: card
|
||||
title: "Statistics graph card"
|
||||
sidebar_label: Statistics graph
|
||||
description: "The statistics graph card allows you to display a graph with statistics data for each of the entities listed."
|
||||
related:
|
||||
- docs: /integrations/frontend/
|
||||
title: Themes
|
||||
- docs: /dashboards/cards/
|
||||
title: Dashboard cards
|
||||
---
|
||||
|
||||
The statistics graph card allows you to display a graph of statistics data for each of the entities listed.
|
||||
@ -17,7 +22,7 @@ Screenshot of the statistics graph card with none metered entities and `chart_ty
|
||||
Screenshot of the statistics graph card with a metered entity and `chart_type` `bar`.
|
||||
</p>
|
||||
|
||||
Statistics are gathered every 5 minutes for sensors that support it. It will either keep the `min`, `max`, and `mean` of a sensor's value for a specific hour or the `sum` for a metered entity.
|
||||
Statistics are gathered every 5 minutes and also hourly for sensors that support it. The 5-minute statistics will be retained for the duration set in the [recorder configuration](/integrations/recorder/#purge_keep_days), and hourly statistics will be retained indefinitely. It will either keep the <abbr title="Minimum">`min`</abbr>, <abbr title="Maximum">`max`</abbr>, and <abbr title="Average">`mean`</abbr> of a sensor's value for a specific hour or the <abbr title="Total">`sum`</abbr> for a metered entity.
|
||||
|
||||
If your sensor doesn't work with statistics, check [this](/more-info/statistics/).
|
||||
|
||||
|
@ -3,9 +3,14 @@ type: card
|
||||
title: "Thermostat card"
|
||||
sidebar_label: Thermostat
|
||||
description: "The thermostat card gives control of your climate entity, allowing you to change the temperature and mode of the entity."
|
||||
related:
|
||||
- docs: /integrations/frontend/
|
||||
title: Themes
|
||||
- docs: /dashboards/cards/
|
||||
title: Dashboard cards
|
||||
---
|
||||
|
||||
The thermostat card gives control of your [climate](/integrations/#climate) entity, allowing you to change the temperature and mode of the entity.
|
||||
The thermostat card gives control of your [climate](/integrations/#climate) {% term entity %}, allowing you to change the temperature and mode of the {% term entity %}.
|
||||
|
||||
<p class='img'>
|
||||
<img src='/images/dashboards/thermostat_card.png' alt='Screenshot of the thermostat card'>
|
||||
|
@ -3,9 +3,16 @@ type: card
|
||||
title: "Tile card"
|
||||
sidebar_label: Tile
|
||||
description: "The tile card gives you a quick overview of your entity. The card allows you to toggle the entity, show the more-info dialog, or custom actions."
|
||||
related:
|
||||
- docs: /dashboards/actions/
|
||||
title: Card actions
|
||||
- docs: /dashboards/features/
|
||||
title: Card features
|
||||
- docs: /dashboards/cards/
|
||||
title: Dashboard cards
|
||||
---
|
||||
|
||||
The tile card gives you a quick overview of your entity. The card allows you to toggle the entity and show the more info dialog. A badge is shown for some entities like the [climate](/integrations/climate) or [person](/integrations/person) entities.
|
||||
The tile card gives you a quick overview of your {% term entity %}. The card allows you to toggle the {% term entity %} and show the more info dialog. A badge is shown for some {% term entities %} like the [climate](/integrations/climate) or [person](/integrations/person) {% term entities %}.
|
||||
|
||||
<p class='img'>
|
||||
<img src='/images/dashboards/tile_card.png' alt='Screenshot of tile cards'>
|
||||
@ -33,7 +40,7 @@ icon:
|
||||
type: string
|
||||
color:
|
||||
required: false
|
||||
description: Set the color when the entity is active. By default, the color is based on `state`, `domain`, and `device_class` of your entity. It accepts [color token](/dashboards/tile/#available-color-tokens) or hex color code.
|
||||
description: Set the color when the entity is active. By default, the color is based on `state`, `domain`, and `device_class` of your entity. It accepts [color token](/dashboards/tile/#available-colors) or hex color code.
|
||||
type: string
|
||||
default: state
|
||||
show_entity_picture:
|
||||
@ -126,6 +133,19 @@ features:
|
||||
- return_home
|
||||
```
|
||||
|
||||
## Available color tokens
|
||||
## Available colors
|
||||
|
||||
Some color tokens are available to colorize the tile card : `primary`, `accent`, `disabled`, `red`, `pink`, `purple`, `deep-purple`, `indigo`, `blue`, `light-blue`, `cyan`, `teal`, `green`, `light-green`, `lime`, `yellow`, `amber`, `orange`, `deep-orange`, `brown`, `grey`, `blue-grey`, `black` and `white`.
|
||||
You want to colorize the tile card? Choose one of the following colors: `primary`, `accent`, `disabled`, `red`, `pink`, `purple`, `deep-purple`, `indigo`, `blue`, `light-blue`, `cyan`, `teal`, `green`, `light-green`, `lime`, `yellow`, `amber`, `orange`, `deep-orange`, `brown`, `grey`, `blue-grey`, `black` and `white`.
|
||||
|
||||
## Reordering features
|
||||
|
||||
Some features of the tile card, such as the presets or the HVAC modes of a
|
||||
thermostat, can show many buttons. While you can limit the buttons you’d
|
||||
like to see, they may not be in the desired order.
|
||||
|
||||
For your thermostat, that means you can reorder the HVAC modes or presets.
|
||||
|
||||
<p class='img'>
|
||||
<img src="/images/blog/2024-05/tile-card-reorder-features.gif" alt=" Screen recording showing how you can now reorder the HVAC modes on the thermostat shown in a tile card."/>
|
||||
You can now reorder the features of the tile card.
|
||||
</p>
|
||||
|
74
source/_dashboards/todo-list.markdown
Normal file
74
source/_dashboards/todo-list.markdown
Normal file
@ -0,0 +1,74 @@
|
||||
---
|
||||
type: card
|
||||
title: "To-do list card"
|
||||
sidebar_label: To-do list
|
||||
description: "The to-do list card allows you to add, edit, check-off, and clear items from your to-do list."
|
||||
related:
|
||||
- docs: /dashboards/dashboards/
|
||||
title: Dashboards
|
||||
- docs: /integrations/frontend/
|
||||
title: Themes
|
||||
- docs: /dashboards/cards/
|
||||
title: Dashboard cards
|
||||
- docs: /integrations/todo
|
||||
title: To-do list integration documentation
|
||||
- docs: /integrations/#to-do-list
|
||||
title: List of to-do list integrations
|
||||
- docs: /integrations/local_todo/
|
||||
title: Local to-do integration
|
||||
---
|
||||
|
||||
The to-do list card allows you to add, edit, check-off, and clear items from your to-do list.
|
||||
|
||||
<p class='img'>
|
||||
<img src='/images/dashboards/todo-list_card_shopping-list.png' alt='Screenshot of the to-do list card'>
|
||||
Screenshot of the to-do list card.
|
||||
</p>
|
||||
|
||||
## Adding a to-do list card
|
||||
|
||||
1. [Add the card using the Add card button](/dashboards/cards/#adding-cards-to-your-dashboard).
|
||||
- In the **By card** dialog, select the **To-do list** card.
|
||||
2. In the **Entity** dropdown menu, select your list type.
|
||||
- If it is your first time working with to-do lists, there is only **Shopping list** in the menu.
|
||||
- This comes from the [shopping list integration](/integrations/shopping_list/), which is installed by default.
|
||||
- This is the same **Shopping list** as the one on the **To-do list** dashboard (accessible via sidebar).
|
||||
.
|
||||
3. The to-do list card can display lists from different [to-do list](/integrations/#to-do-list) integrations, such as **Bring!** or **Todoist**.
|
||||
- If you don't see your desired to-do list entity, you need to add its integration first.
|
||||
- Once you've added a to-do list integration, the lists are also available on the to-do list dashboard.
|
||||
|
||||
## YAML configuration
|
||||
|
||||
All options for this card can be configured via the user interface.
|
||||
|
||||
The following YAML options are available when you use YAML mode or just prefer to use YAML in the code editor in the UI.
|
||||
|
||||
{% configuration %}
|
||||
type:
|
||||
required: true
|
||||
description: "`todo-list`"
|
||||
type: string
|
||||
entity:
|
||||
required: true
|
||||
description: The to-do entity to show
|
||||
type: string
|
||||
title:
|
||||
required: false
|
||||
description: Title of to-do list.
|
||||
type: string
|
||||
theme:
|
||||
required: false
|
||||
description: Override the used theme for this card with any loaded theme. For more information about themes, see the [frontend documentation](/integrations/frontend/).
|
||||
type: string
|
||||
{% endconfiguration %}
|
||||
|
||||
### Examples
|
||||
|
||||
Title example:
|
||||
|
||||
```yaml
|
||||
type: todo-list
|
||||
entity: todo-list
|
||||
title: todo list
|
||||
```
|
@ -3,6 +3,9 @@ type: card
|
||||
title: "Vertical stack card"
|
||||
sidebar_label: Vertical stack
|
||||
description: "The vertical stack card allows you to group multiple cards so they always sit in the same column."
|
||||
related:
|
||||
- docs: /dashboards/cards/
|
||||
title: Dashboard cards
|
||||
---
|
||||
|
||||
The vertical stack card allows you to group multiple cards so they always sit in the same column.
|
||||
@ -71,3 +74,4 @@ cards:
|
||||
<img src="/images/dashboards/vertical-horizontal-stack.png" alt="Create a grid layout using vertical and horizontal stack">
|
||||
Create a grid layout using vertical and horizontal stack.
|
||||
</p>
|
||||
|
||||
|
@ -3,6 +3,11 @@ type: card
|
||||
title: "Weather forecast card"
|
||||
sidebar_label: Weather forecast
|
||||
description: "The weather forecast card displays the weather. Very useful to include on interfaces that people display on the wall."
|
||||
related:
|
||||
- docs: /integrations/frontend/
|
||||
title: Themes
|
||||
- docs: /dashboards/cards/
|
||||
title: Dashboard cards
|
||||
---
|
||||
|
||||
The weather forecast card displays the weather. This card is particularly useful on wall-mounted displays.
|
||||
|
4609
source/_data/countries.yaml
Normal file
4609
source/_data/countries.yaml
Normal file
File diff suppressed because it is too large
Load Diff
@ -3,20 +3,30 @@
|
||||
# Format is a list of terms, each term is a dictionary with the following keys:
|
||||
# - term: The term to define (required)
|
||||
# - definition: The definition of the term (required)
|
||||
# - excerpt: Short excerpt of the definition, overrides definition for tooltips (optional)
|
||||
# - excerpt: Short excerpt of the definition, overrides definition for tooltips
|
||||
# (optional)
|
||||
# - link: A URL to link to for more information (optional)
|
||||
# - aliases: A list of aliases for the term (optional)
|
||||
#
|
||||
- term: Action
|
||||
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.
|
||||
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*.
|
||||
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: >-
|
||||
Add-ons are additional standalone third-party software packages that can be
|
||||
@ -28,21 +38,29 @@
|
||||
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/).
|
||||
An area in Home Assistant is a logical grouping of devices and entities that
|
||||
are meant to match areas (or rooms) in the physical world: your home. For
|
||||
example, the `living room` area groups devices and entities in your living
|
||||
room. Areas allow you to target service calls at an entire group of devices.
|
||||
For example, turning off all the lights in the living room. Locations within
|
||||
your home such as living room, dance floor, etc. Areas can be assigned to
|
||||
floors. Areas can also be used for automatically generated cards, such as
|
||||
the [Area card](/dashboards/area/).
|
||||
excerpt: >-
|
||||
Places within your home such as rooms, spaces, etc.
|
||||
An area in Home Assistant is a logical grouping of devices and entities that
|
||||
are meant to match areas (or rooms) in the physical world: your home. For
|
||||
example, the `living room` area groups devices and entities in your living
|
||||
room.
|
||||
aliases:
|
||||
- areas
|
||||
- term: Automation
|
||||
definition: >-
|
||||
Automations connect one or more triggers to one or more actions in a
|
||||
'when trigger then do action' fashion with additional optional conditions.
|
||||
For example, an automation might connect the trigger 'sunset' to the action
|
||||
Automations connect one or more triggers to one or more actions in a 'when
|
||||
trigger then do action' fashion with additional optional conditions. For
|
||||
example, an automation might connect the trigger 'sunset' to the action
|
||||
'turn the lights on' but only if the condition 'someone is home' is met.
|
||||
Pre-made automations for common use-cases are available via
|
||||
[the blueprints feature](/docs/automation/using_blueprints/).
|
||||
Pre-made automations for common use-cases are available via [the blueprints
|
||||
feature](/docs/automation/using_blueprints/).
|
||||
excerpt: >-
|
||||
Automations in Home Assistant allow you to automatically respond to things
|
||||
that happen in and around your home.
|
||||
@ -51,14 +69,14 @@
|
||||
- automations
|
||||
- term: Backup
|
||||
definition: >-
|
||||
Home Assistant has built-in functionality to create files containing a copy of
|
||||
your configuration. This can be used to restore your Home Assistant as well
|
||||
as migrate to a new system. The backup feature is available on some installation
|
||||
types.
|
||||
Home Assistant has built-in functionality to create files containing a copy
|
||||
of your configuration. This can be used to restore your Home Assistant as
|
||||
well as migrate to a new system. The backup feature is available on some
|
||||
installation types.
|
||||
link: /integrations/backup/
|
||||
excerpt: >-
|
||||
Home Assistant has built-in functionality to create files containing a copy of
|
||||
your configurations. This is available on certain installation types.
|
||||
Home Assistant has built-in functionality to create files containing a copy
|
||||
of your configurations. This is available on certain installation types.
|
||||
aliases:
|
||||
- backups
|
||||
- term: Binary sensor
|
||||
@ -68,41 +86,92 @@
|
||||
link: /integrations/binary_sensor
|
||||
- term: Blueprint
|
||||
definition: >-
|
||||
A blueprint is a script or automation configuration with certain parts marked as configurable. This allows users to create multiple scripts or automations based on the same blueprint, with each having its own configuration-specific settings. Blueprints are shared by the community on the [blueprints exchange](https://community.home-assistant.io/c/blueprints-exchange/53) in the forum.
|
||||
A blueprint is a script or automation configuration with certain parts
|
||||
marked as configurable. This allows users to create multiple scripts or
|
||||
automations based on the same blueprint, with each having its own
|
||||
configuration-specific settings. Blueprints are shared by the community on
|
||||
the [blueprints
|
||||
exchange](https://community.home-assistant.io/c/blueprints-exchange/53) in
|
||||
the forum.
|
||||
link: /docs/blueprint/
|
||||
excerpt: >-
|
||||
A blueprint is a script or automation configuration with certain parts marked as configurable. This allows users to create multiple scripts or automations based on the same blueprint, with each having its own configuration-specific settings.
|
||||
A blueprint is a script or automation configuration with certain parts
|
||||
marked as configurable. This allows users to create multiple scripts or
|
||||
automations based on the same blueprint, with each having its own
|
||||
configuration-specific settings.
|
||||
aliases:
|
||||
- blueprints
|
||||
- term: Category
|
||||
definition: >-
|
||||
A category is an organization tool that allows grouping items in a table.
|
||||
Like labels, categories allow grouping irrespective of the items' physical
|
||||
location. For example, on the automations page, you can create the
|
||||
categories “Notifications” or “NFC tags” to view your automations grouped or
|
||||
filtered. Categories are unique for each table. The automations page can
|
||||
have different categories than the scene, scripts, or helpers settings page.
|
||||
aliases:
|
||||
- categories
|
||||
- term: Commissioning
|
||||
definition: >-
|
||||
In the context of Matter devices, *commissioning* is the process of adding a
|
||||
device to a Matter controller. It is the equivalent of pairing a device in
|
||||
Zigbee or Z-Wave. Commissioning is done by scanning a QR code or entering a
|
||||
code manually. The code is printed on the device or its packaging. The code
|
||||
contains information about the device, such as its type, manufacturer, and
|
||||
serial number. The controller uses this information to identify the device
|
||||
and to download the required information to control the device. For example,
|
||||
the controller downloads the device's capabilities, such as the supported
|
||||
commands and the available attributes. The controller also downloads the
|
||||
device's configuration, such as the device's name and location.
|
||||
link: /integrations/matter/
|
||||
aliases:
|
||||
- commission
|
||||
excerpt: >
|
||||
In the context of Matter devices, *commissioning* is the process of adding a
|
||||
device to a Matter controller. It is the equivalent of pairing a device in
|
||||
Zigbee or Z-Wave.
|
||||
- term: Component
|
||||
definition: >-
|
||||
Better known as: Integrations. Integrations used to be known as components.
|
||||
- term: Condition
|
||||
definition: >-
|
||||
Conditions are an optional part of an automation that will prevent an
|
||||
action from firing if they are not met.
|
||||
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: Configuration file
|
||||
aliases:
|
||||
- configuration.yaml
|
||||
- "`configuration.yaml`"
|
||||
definition: >-
|
||||
The configuration.yaml file is the main configuration file for Home Assistant. It lists the integrations to be loaded and their specific configurations. In some cases, the configuration needs to be edited manually directly in the configuration.yaml file. Most integrations can be configured in the UI.
|
||||
link: /docs/configuration/
|
||||
- term: Cover
|
||||
definition: >-
|
||||
Covers are devices such as blinds, garage doors, etc that can be opened
|
||||
and closed and optionally set to a specific position.
|
||||
Covers are devices such as blinds, garage doors, etc that can be opened and
|
||||
closed and optionally set to a specific position.
|
||||
link: /integrations/cover
|
||||
- term: Customize
|
||||
definition: >-
|
||||
Customization allows you to overwrite the default parameters of your
|
||||
devices in the configuration.
|
||||
Customization allows you to overwrite the default parameters of your devices
|
||||
in the configuration.
|
||||
- term: Device
|
||||
definition: |-
|
||||
A device is a model representing a physical or logical unit that contains entities.
|
||||
**Example for a device as a physical unit**
|
||||
A smart plug named 'Coffee machine' which provides 2 entities: a `switch` entity to turn power on or off ('Coffee machine power switch') and a `sensor` entity for power monitoring ('Coffee machine power sensor').
|
||||
**Example for a device as a logical unit**
|
||||
An ecobee thermostat with 4 room sensors. This thermostat is seen as 5 devices in Home Assistant: 1 device for the thermostat with 4 sensors, and 1 device for each room sensor. Each device can be in a different area and may have more than one input or output within that area.
|
||||
Devices have properties such as ID, manufacturer, name, model, hardware version, firmware version, connections, etc.
|
||||
A device is a model representing a physical or logical unit that contains
|
||||
entities. **Example for a device as a physical unit** A smart plug named
|
||||
'Coffee machine' which provides 2 entities: a `switch` entity to turn power
|
||||
on or off ('Coffee machine power switch') and a `sensor` entity for power
|
||||
monitoring ('Coffee machine power sensor'). **Example for a device as a
|
||||
logical unit** An ecobee thermostat with 4 room sensors. This thermostat is
|
||||
seen as 5 devices in Home Assistant: 1 device for the thermostat with 4
|
||||
sensors, and 1 device for each room sensor. Each device can be in a
|
||||
different area and may have more than one input or output within that area.
|
||||
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.
|
||||
A device is a model representing a physical or logical unit that contains
|
||||
entities.
|
||||
aliases:
|
||||
- devices
|
||||
- term: Device tracker
|
||||
@ -115,35 +184,43 @@
|
||||
they are discovered.
|
||||
- term: Domain
|
||||
definition: >-
|
||||
Each integration in Home Assistant has a unique identifier:
|
||||
a domain. All of the entities and services available in Home Assistant
|
||||
are provided by integrations and thus belong to such a domain. The first
|
||||
part of the entity or service, before the `.` shows the domain they belong
|
||||
to. For example `light.kitchen` is an entity in the `light` domain from
|
||||
the [light integration](/integrations/light), while `hue.activate_scene`
|
||||
is the `activate_scene` service for the `hue` domain which belongs to
|
||||
the [Hue integration](/integrations/hue).
|
||||
Each integration in Home Assistant has a unique identifier: a domain. All of
|
||||
the entities and services available in Home Assistant are provided by
|
||||
integrations and thus belong to such a domain. The first part of the entity
|
||||
or service, before the `.` shows the domain they belong to. For example
|
||||
`light.kitchen` is an entity in the `light` domain from the [light
|
||||
integration](/integrations/light), while `hue.activate_scene` is the
|
||||
`activate_scene` service for the `hue` domain which belongs to the [Hue
|
||||
integration](/integrations/hue).
|
||||
excerpt: >
|
||||
Each integration in Home Assistant has a unique identifier: The domain.
|
||||
It is often shown as the first part (before the dot) of entity IDs.
|
||||
Each integration in Home Assistant has a unique identifier: The domain. It
|
||||
is often shown as the first part (before the dot) of entity IDs.
|
||||
aliases:
|
||||
- domains
|
||||
- term: Entity
|
||||
definition: |-
|
||||
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. Entities have states.
|
||||
**Example for entities as part of a device**
|
||||
A combined temperature and humidity sensor device provides two sensor entities. One for temperature (e.g. `sensor.temperature` with state `21.0` and unit `°C`) and one for humidity
|
||||
(e.g. `sensor.humidity` with state `65.4` and unit `%`).
|
||||
**Example for entities as part of a service**
|
||||
A weather service that provides 3 entities: wind speed, air pressure, and ozon level.
|
||||
**Example of an entity used for control**
|
||||
A fan that is turned on when the temperature exceeds 30 °C.
|
||||
There are standardized types of entities for common integrations such as light, switch, camera, sensor, fan, or vacuum.
|
||||
Some entities are not part of a device or service. Examples of standalone entities are automation, script, scene entities, and helper entities (e.g. input helpers).
|
||||
Most properties of entities are related to the state. Entities have optional attributes such as friendly name, unit of measurement, and an icon or picture that can be displayed in the frontend.
|
||||
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. Entities have
|
||||
states. **Example for entities as part of a device** A combined temperature
|
||||
and humidity sensor device provides two sensor entities. One for temperature
|
||||
(e.g. `sensor.temperature` with state `21.0` and unit `°C`) and one for
|
||||
humidity (e.g. `sensor.humidity` with state `65.4` and unit `%`). **Example
|
||||
for entities as part of a service** A weather service that provides 3
|
||||
entities: wind speed, air pressure, and ozon level. **Example of an entity
|
||||
used for control** A fan that is turned on when the temperature exceeds
|
||||
30 °C. There are standardized types of entities for common integrations
|
||||
such as light, switch, camera, sensor, fan, or vacuum. Some entities are not
|
||||
part of a device or service. Examples of standalone entities are automation,
|
||||
script, scene entities, and helper entities (e.g. input helpers). Most
|
||||
properties of entities are related to the state. Entities have optional
|
||||
attributes such as friendly name, unit of measurement, and an icon or
|
||||
picture that can be displayed in the frontend.
|
||||
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.
|
||||
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
|
||||
@ -152,10 +229,28 @@
|
||||
link: /docs/configuration/events/
|
||||
aliases:
|
||||
- events
|
||||
- term: Floor
|
||||
definition: >-
|
||||
A floor in Home Assistant is a logical grouping of areas that are meant to
|
||||
match the physical floors in your home. Devices & entities are not assigned
|
||||
to floors but to areas. A floor has properties such as: Floor ID, name,
|
||||
aliases (for use in assistants), an icon, and a floor level. Some of these
|
||||
properties are optional. The level number can be negative to reflect floors
|
||||
below the basement. Floors can be used in automations and scripts as a
|
||||
target for actions. For example, to turn off all the lights on the
|
||||
downstairs floor when you go to bed.
|
||||
excerpt: >-
|
||||
A floor in Home Assistant is a logical grouping of areas that are meant to
|
||||
match the physical floors in your home. Devices & entities are not assigned
|
||||
to floors but to areas. Floors can be used in automations and scripts as a
|
||||
target for actions. For example, to turn off all the lights on the
|
||||
downstairs floor when you go to bed.
|
||||
aliases:
|
||||
- floors
|
||||
- term: Frontend
|
||||
definition: >-
|
||||
The frontend is a necessary component for the UI, it is also where you
|
||||
can define your themes.
|
||||
The frontend is a necessary component for the UI, it is also where you can
|
||||
define your themes.
|
||||
link: /integrations/frontend/
|
||||
- term: Group
|
||||
definition: >-
|
||||
@ -165,66 +260,90 @@
|
||||
- groups
|
||||
- term: HASS
|
||||
definition: >-
|
||||
HASS or [hass](/docs/tools/hass/) is often used as an abbreviation for
|
||||
Home Assistant. It is also the command-line tool.
|
||||
HASS or [hass](/docs/tools/hass/) is often used as an abbreviation for Home
|
||||
Assistant. It is also the command-line tool.
|
||||
- term: HassOS
|
||||
definition: >-
|
||||
Another name for Home Assistant Operating System
|
||||
link: /hassio/installation/
|
||||
- term: Home Assistant Container
|
||||
definition: >-
|
||||
Home Assistant Container is a standalone container-based installation of
|
||||
Home Assistant Core. Any [OCI](https://opencontainers.org/) compatible
|
||||
runtime can be used, but the documentation focus is on Docker.
|
||||
link: /installation/#advanced-installation-methods
|
||||
- term: Home Assistant Core
|
||||
definition: >-
|
||||
Home Assistant Core is a Python program. It can be run on various operating
|
||||
systems and is the basis for Home Assistant. When people are talking about
|
||||
Home Assistant Core they usually refer to a standalone installation method
|
||||
that can be installed using a Virtual Environment or Docker. Home Assistant
|
||||
Core does not use the Home Assistant Supervisor.
|
||||
Home Assistant Core is the Python program at the heart of Home Assistant. It
|
||||
is part of all of the four installation types and can be run on various
|
||||
operating systems. It can be installed standalone (without Home Assistant
|
||||
Supervisor), using a Virtual Environment (typically referred to as Home
|
||||
Assistant Core installation method) or as a container using Docker
|
||||
(typically referred to as Home Assistant Container installation method).
|
||||
link: /installation/#advanced-installation-methods
|
||||
excerpt: >
|
||||
Home Assistant Core is the hart of Home Assistant itself. It is a Python
|
||||
program that powers every installation type, but can be installed standalone.
|
||||
Home Assistant Core is the heart of Home Assistant itself. It is a Python
|
||||
program that powers every installation type, but can be installed
|
||||
standalone.
|
||||
- term: Home Assistant Supervised
|
||||
definition: >-
|
||||
Home Assistant Supervised is a full UI managed home automation ecosystem that
|
||||
runs Home Assistant, the Home Assistant Supervisor and add-ons. It comes
|
||||
pre-installed on Home Assistant OS, but can be installed on any Linux system.
|
||||
It leverages Docker, which is managed by the Home Assistant Supervisor.
|
||||
Home Assistant Supervised is a full UI managed home automation ecosystem
|
||||
that runs the Home Assistant Core program, the Home Assistant Supervisor and
|
||||
add-ons. It comes pre-installed on Home Assistant OS, but can be installed
|
||||
standalone on Debian Linux systems. It leverages Docker, which is managed by
|
||||
the Home Assistant Supervisor.
|
||||
excerpt: >
|
||||
Home Assistant Supervised is the full Home Assistant ecosystem, without the
|
||||
Home Assistant Operating System.
|
||||
link: /installation/#advanced-installation-methods
|
||||
- term: Home Assistant Supervisor
|
||||
definition: >-
|
||||
The Home Assistant Supervisor is a program that manages a Home Assistant
|
||||
installation, taking care of installing and updating Home Assistant,
|
||||
add-ons, itself and, if used, updating the Home Assistant Operating System.
|
||||
add-ons, itself, and, if used, updating the Home Assistant Operating System.
|
||||
link: /installation/#advanced-installation-methods
|
||||
- term: Home Assistant Operating System
|
||||
definition: >-
|
||||
Home Assistant OS, the Home Assistant Operating System, is an embedded,
|
||||
minimalistic, operating system designed to run the Home Assistant ecosystem
|
||||
on single board computers (like the Raspberry Pi) or Virtual Machines.
|
||||
The Home Assistant Supervisor can keep it up to date, removing the need for
|
||||
you to manage an operating system.
|
||||
on single board computers (like the Raspberry Pi) or Virtual Machines. It
|
||||
includes Home Assistant Core, the Home Assistant Supervisor, and supports
|
||||
add-ons. Home Assistant Supervisor keeps it up to date, removing the need
|
||||
for you to manage an operating system. Home Assistant Operating System is
|
||||
the recommended installation method for most users.
|
||||
excerpt: >
|
||||
Home Assistant OS, the Home Assistant Operating System, is an embedded,
|
||||
minimalistic, operating system designed to run the Home Assistant ecosystem.
|
||||
It is the recommended installation method for most users.
|
||||
link: /installation/#advanced-installation-methods
|
||||
- term: Host
|
||||
definition: >-
|
||||
A device that can communicate with other devices on a network. During setup and configuration,
|
||||
an input requesting a **Host** typically refers to a device's network address so that
|
||||
Home Assistant can attempt to connect to it. This may be in the form of a hostname, URL,
|
||||
IP address or some other type of network identifier. If you do not know the hostname or IP address of a device, you can find it in your router's webinterface. For example, if your device is connected wirelessly, somewhere there is a page listing all the devices that are connected to your network. It depends on your router, where exactly this page is. It could be under **Network** > **Wireless**.
|
||||
A device that can communicate with other devices on a network. During setup
|
||||
and configuration, an input requesting a **Host** typically refers to a
|
||||
device's network address so that Home Assistant can attempt to connect to
|
||||
it. This may be in the form of a hostname, URL, IP address or some other
|
||||
type of network identifier. If you do not know the hostname or IP address of
|
||||
a device, you can find it in your router's webinterface. For example, if
|
||||
your device is connected wirelessly, somewhere there is a page listing all
|
||||
the devices that are connected to your network. It depends on your router,
|
||||
where exactly this page is. It could be under **Network** > **Wireless**.
|
||||
excerpt: >-
|
||||
A device that participates in your network. If asked for the host, enter either the device's IP address or host name. If you don't know those, check the list of hosts in your router.
|
||||
A device that participates in your network. If asked for the host, enter
|
||||
either the device's IP address or host name. If you don't know those, check
|
||||
the list of hosts in your router.
|
||||
link: https://en.wikipedia.org/wiki/Host_(network)
|
||||
aliases:
|
||||
- hosts
|
||||
- term: Integration
|
||||
definition: >-
|
||||
Integrations connect and integrate Home Assistant with devices, services,
|
||||
and more. They contain all the logic to handle
|
||||
vendor- and device-specific implementations, such as authentication or
|
||||
specific protocols. The integration brings such device-specific elements into Home Assistant in a standardized
|
||||
way. For example, the [Hue](/integrations/hue) integration integrates
|
||||
the Philips Hue bridge and its connected bulbs into Home Assistant, making
|
||||
them available as Home Assistant light entities you can control.
|
||||
and more. They contain all the logic to handle vendor- and device-specific
|
||||
implementations, such as authentication or specific protocols. The
|
||||
integration brings such device-specific elements into Home Assistant in a
|
||||
standardized way. For example, the [Hue](/integrations/hue) integration
|
||||
integrates the Philips Hue bridge and its connected bulbs into Home
|
||||
Assistant, making them available as Home Assistant light entities you can
|
||||
control.
|
||||
excerpt: >
|
||||
Integrations connect and integrate Home Assistant with your devices,
|
||||
services, and more.
|
||||
@ -233,17 +352,40 @@
|
||||
- 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.
|
||||
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.
|
||||
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: Label
|
||||
definition: >-
|
||||
Labels in Home Assistant allow grouping elements irrespective of their
|
||||
physical location or type. Labels can be assigned to areas, devices,
|
||||
entities, automations, scenes, scripts, and helpers. Labels can be used in
|
||||
automations and scripts as a target for actions and services. Labels can
|
||||
also be used to filter data. For example, you can filter the list of devices
|
||||
to show only devices with the label `heavy energy usage` or turn these
|
||||
devices off when there is not a lot of solar energy available.
|
||||
excerpt: >-
|
||||
Labels in Home Assistant allow grouping elements irrespective of their
|
||||
physical location or type. Labels can be assigned to areas, devices,
|
||||
entities, automations, scenes, scripts, and helpers. Labels can be used in
|
||||
automations and scripts as a target for actions and services. Labels can
|
||||
also be used to filter data.
|
||||
aliases:
|
||||
- labels
|
||||
- term: Lovelace
|
||||
definition: >-
|
||||
Lovelace is the original code name of the UI that is now known as
|
||||
[Home Assistant dashboards](/dashboards).
|
||||
Lovelace is the original code name of the UI that is now known as [Home
|
||||
Assistant dashboards](/dashboards).
|
||||
- term: Light
|
||||
definition: >-
|
||||
A light has a brightness you can control, and optionally color temperature
|
||||
@ -251,9 +393,17 @@
|
||||
link: /integrations/light
|
||||
- term: Matter
|
||||
definition: >-
|
||||
Matter is an open-source standard that defines how to control smart home devices on a Wi-Fi or Thread network. The aim of the standard is to improve security and to make devices interoperable across vendors, replacing proprietary protocols for smart home ecosystems. Unlike other standards, Matter allows joining the same device to multiple controllers. For example, you can add a light to Google Home, Apple Home, and Home Assistant at the same time. A bridge device can be used to connect devices running on other smart home technologies such as Zigbee or Z-Wave.
|
||||
Matter is an open-source standard that defines how to control smart home
|
||||
devices on a Wi-Fi or Thread network. The aim of the standard is to improve
|
||||
security and to make devices interoperable across vendors, replacing
|
||||
proprietary protocols for smart home ecosystems. Unlike other standards,
|
||||
Matter allows joining the same device to multiple controllers. For example,
|
||||
you can add a light to Google Home, Apple Home, and Home Assistant at the
|
||||
same time. A bridge device can be used to connect devices running on other
|
||||
smart home technologies such as Zigbee or Z-Wave.
|
||||
excerpt: >
|
||||
Matter is an open-source standard that defines how to control smart home devices on a Wi-Fi or Thread network.
|
||||
Matter is an open-source standard that defines how to control smart home
|
||||
devices on a Wi-Fi or Thread network.
|
||||
link: /integrations/matter
|
||||
- term: Notification
|
||||
definition: >-
|
||||
@ -272,8 +422,8 @@
|
||||
Platforms are building blocks provided by some integrations to be used by
|
||||
other integrations. For example, the [Light](/integrations/light)
|
||||
integration provides the `light platform` that is utilized by all
|
||||
integrations providing `light` entities such
|
||||
as e.g. [Hue](/integrations/hue).
|
||||
integrations providing `light` entities such as e.g.
|
||||
[Hue](/integrations/hue).
|
||||
excerpt: >
|
||||
Platforms are building blocks provided by some integrations to be used by
|
||||
other integrations.
|
||||
@ -283,78 +433,97 @@
|
||||
- term: Reload
|
||||
definition: >-
|
||||
Applies the changes made to the Home Assistant configuration files. Changes
|
||||
are normally automatically updated. However, changes made outside of the front
|
||||
end will not be reflected in Home Assistant and require a reload.
|
||||
To perform a manual reload, go to **Settings** > **System** >
|
||||
**Restart Home Assistant** (top right) > **Quick reload**. More granular
|
||||
reload options are available in *YAML configuration reloading* section
|
||||
in **Developer tools** > **YAML**.
|
||||
are normally automatically updated. However, changes made outside of the
|
||||
front end will not be reflected in Home Assistant and require a reload. To
|
||||
perform a manual reload, go to **Settings** > **System** > **Restart Home
|
||||
Assistant** (top right) > **Quick reload**. If you do not see the **Quick
|
||||
reload** option in the menu, you need to enable **Advanced mode** in your
|
||||
user settings. More granular reload options are available in *YAML
|
||||
configuration reloading* section in **Developer tools** > **YAML**.
|
||||
excerpt: >
|
||||
Applies the changes made to Home Assistant configuration files. Changes are normally
|
||||
automatically updated. However, changes made outside of the front
|
||||
Applies the changes made to Home Assistant configuration files. Changes are
|
||||
normally automatically updated. However, changes made outside of the front
|
||||
end will not be reflected in Home Assistant and require a reload.
|
||||
- term: Scene
|
||||
definition: >-
|
||||
Scenes capture the states you want certain entities to be. For example,
|
||||
a scene can specify that light A should be turned on and light B should
|
||||
be bright red.
|
||||
Scenes capture the states you want certain entities to be. For example, a
|
||||
scene can specify that light A should be turned on and light B should be
|
||||
bright red.
|
||||
link: /integrations/scene/
|
||||
aliases:
|
||||
- scenes
|
||||
|
||||
- term: Script
|
||||
definition: >
|
||||
Scripts are components that allow users to specify a sequence of actions
|
||||
to be executed by Home Assistant when turned on.
|
||||
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.
|
||||
Sensors return information about a thing, for instance the level of water in
|
||||
a tank.
|
||||
link: /integrations/sensor/
|
||||
aliases:
|
||||
- sensors
|
||||
- term: Selector
|
||||
definition: >-
|
||||
Selectors are components for the user interface. Some selectors can,
|
||||
for example, show a toggle button to turn something on or off, while another
|
||||
Selectors are components for the user interface. Some selectors can, for
|
||||
example, show a toggle button to turn something on or off, while another
|
||||
select can filter a list of devices to show only devices that have
|
||||
motion-sensing capabilities.
|
||||
excerpt: >
|
||||
Selectors are components for the user interface. Like toggle, dropdown,
|
||||
and more.
|
||||
Selectors are components for the user interface. Like toggle, dropdown, and
|
||||
more.
|
||||
link: /docs/blueprint/selectors/
|
||||
aliases:
|
||||
- selectors
|
||||
- term: Service
|
||||
definition: |-
|
||||
The term service has 2 meanings in Home Assistant:
|
||||
**The information service**
|
||||
For example, the municipal waste management service that provides entities for organic, paper, and packaging waste. In terms of functionality, the information service is like a device. It is called *service* to avoid confusion, as it does not come with a piece of hardware.
|
||||
**The software function that interacts with targets to make something happen**
|
||||
A service carries out one specific task, for example: turning on the light in the living room or sending a notification to a mobile phone.
|
||||
A service has targets and data. Service targets are: areas, devices, and entities. Service data carries the information required to define the desired state change in the target. For example, the target, together with brightness 150 and RGB color `[255,0,0]`, or the message “Your coffee is ready”.
|
||||
Services can be used in, for example, automation, scripts, dashboards, or voice commands to control your home.
|
||||
Home Assistant provides a series of predefined services, such as `homeassistant.turn_on`, `homeassistant.toggle`, or `homeassistant.reload`.
|
||||
The term service has 2 meanings in Home Assistant: **The information
|
||||
service** For example, the municipal waste management service that provides
|
||||
entities for organic, paper, and packaging waste. In terms of functionality,
|
||||
the information service is like a device. It is called *service* to avoid
|
||||
confusion, as it does not come with a piece of hardware. **The software
|
||||
function that interacts with targets to make something happen** A service
|
||||
carries out one specific task, for example: turning on the light in the
|
||||
living room or sending a notification to a mobile phone. A service has
|
||||
targets and data. Service targets are: areas, devices, and entities. Service
|
||||
data carries the information required to define the desired state change in
|
||||
the target. For example, the target, together with brightness 150 and RGB
|
||||
color `[255,0,0]`, or the message “Your coffee is ready”. Services can be
|
||||
used in, for example, automation, scripts, dashboards, or voice commands to
|
||||
control your home. Home Assistant provides a series of predefined services,
|
||||
such as `homeassistant.turn_on`, `homeassistant.toggle`, or
|
||||
`homeassistant.reload`.
|
||||
excerpt: >
|
||||
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.
|
||||
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: |-
|
||||
The state holds the information of interest of an entity. For example, if a light is on or off, the current temperature, or the amount of energy used. The data type of state is `string` (a textual value). Entities store 2 timestamps related to the state: `last_updated` and `last_changed`. Each entity has exactly one state and the state only holds one value at a time. However, entities can store attributes related to that state. For example, the state of a light is _on_, and the related state attributes could be its current brightness and color values.
|
||||
State changes can be used as the source of triggers. The current state can be used in conditions.
|
||||
|
||||
The state holds the information of interest of an entity. For example, if a
|
||||
light is on or off, the current temperature, or the amount of energy used.
|
||||
The data type of state is `string` (a textual value). Entities store 2
|
||||
timestamps related to the state: `last_updated` and `last_changed`. Each
|
||||
entity has exactly one state and the state only holds one value at a time.
|
||||
However, entities can store attributes related to that state. For example,
|
||||
the state of a light is _on_, and the related state attributes could be its
|
||||
current brightness and color values. State changes can be used as the source
|
||||
of triggers. The current state can be used in conditions.
|
||||
|
||||
link: /docs/configuration/state_object/
|
||||
aliases:
|
||||
- states
|
||||
excerpt: >
|
||||
The state holds the information of interest of an entity, for example, if a light is on or off. Each entity has exactly one state and the state only holds one value at a time. However, entities can store attributes related to that state such as brightness, color, or a unit of measurement.
|
||||
The state holds the information of interest of an entity, for example, if a
|
||||
light is on or off. Each entity has exactly one state and the state only
|
||||
holds one value at a time. However, entities can store attributes related to
|
||||
that state such as brightness, color, or a unit of measurement.
|
||||
- term: Switch
|
||||
definition: >-
|
||||
Switches are things that have two states you can select between, such as
|
||||
@ -371,14 +540,37 @@
|
||||
|
||||
- term: Thread
|
||||
definition: >-
|
||||
Thread is a low-power mesh networking standard that is specifically designed for smart home applications. It is a protocol that defines how devices communicate. *Mesh* topology means that the devices can communicate with each other directly, without going through a central controller first. Thread uses the same radio frequency (RF) technology as Zigbee, but provides IP connectivity similar to Wi-Fi. Unlike Zigbee, Thread does not specify how to control devices. How Thread-enabled devices are controlled is specified in a higher level protocol such as HomeKit or Matter.
|
||||
Thread is a low-power mesh networking standard that is specifically designed
|
||||
for smart home applications. It is a protocol that defines how devices
|
||||
communicate. *Mesh* topology means that the devices can communicate with
|
||||
each other directly, without going through a central controller first.
|
||||
Thread uses the same radio frequency (RF) technology as Zigbee, but provides
|
||||
IP connectivity similar to Wi-Fi. Unlike Zigbee, Thread does not specify how
|
||||
to control devices. How Thread-enabled devices are controlled is specified
|
||||
in a higher level protocol such as HomeKit or Matter.
|
||||
link: /integrations/thread/
|
||||
excerpt: >
|
||||
Thread is a low-power mesh networking standard that is specifically designed for smart home applications. It is a protocol that defines how devices communicate.
|
||||
Thread is a low-power mesh networking standard that is specifically designed
|
||||
for smart home applications. It is a protocol that defines how devices
|
||||
communicate.
|
||||
- term: Thread border router
|
||||
definition: >-
|
||||
A Thread border router forwards data packets between your local network and
|
||||
the Thread network. This enables smart home devices within a Thread network
|
||||
to communicate with IPv6-capable devices in your local network. A Thread
|
||||
border router is connected to your network either via Wi-Fi or Ethernet and
|
||||
uses its radio frequency (RF) radio to communicate with the Thread mesh
|
||||
network. In case of Matter, the data that is forwarded is encrypted.
|
||||
Examples of Thread border routers are the Nest Hub (2nd gen), the HomePod
|
||||
mini, and the Home Assistant SkyConnect together with the OpenThread Border
|
||||
Router add-on.
|
||||
link: /integrations/thread/#about-thread-border-routers
|
||||
aliases:
|
||||
- Thread border routers
|
||||
- term: Trigger
|
||||
definition: >-
|
||||
A trigger is a set of values or conditions of a platform that are defined
|
||||
to cause an automation to run.
|
||||
A trigger is a set of values or conditions of a platform that are defined to
|
||||
cause an automation to run.
|
||||
link: /docs/automation/trigger/
|
||||
aliases:
|
||||
- triggers
|
||||
@ -388,21 +580,21 @@
|
||||
TTS (text-to-speech) allows Home Assistant to talk to you.
|
||||
link: /integrations/tts/
|
||||
|
||||
|
||||
- term: Valve
|
||||
definition: >-
|
||||
Valves are devices to control the flow of liquids and gases. All valves in Home Assistant can be opened
|
||||
and closed. Some valves can also be set to a specific position.
|
||||
Valves are devices to control the flow of liquids and gases. All valves in
|
||||
Home Assistant can be opened and closed. Some valves can also be set to a
|
||||
specific position.
|
||||
link: /integrations/valve
|
||||
|
||||
- term: Variables
|
||||
definition: >-
|
||||
Variables are used to store values in memory that can be processed
|
||||
for example, in a script.
|
||||
Variables are used to store values in memory that can be processed for
|
||||
example, in a script.
|
||||
link: /docs/scripts/#variables
|
||||
- term: Zone
|
||||
definition: >-
|
||||
Zones are areas that can be used for presence detection.
|
||||
link: /integrations/zone/
|
||||
aliases:
|
||||
- zones
|
||||
- zones
|
||||
|
@ -23,12 +23,12 @@ For the moment, other user accounts will have the same access as the owner accou
|
||||
</div>
|
||||
|
||||
<div class="note">
|
||||
If you want to manage users and you're an owner but you do not see "Users" in your main configuration menu, make sure that "Advanced Mode" is enabled for your user in your profile.
|
||||
If you want to manage users and you're an owner but you do not see "Users" in your main configuration menu, make sure that **Advanced Mode** is enabled for your user in your profile.
|
||||
</div>
|
||||
|
||||
### Your account profile
|
||||
|
||||
Once you're logged in, you can see the details of your account at the _Profile_ page by clicking on the circular at the very bottom of the sidebar.
|
||||
Once you're logged in, you can see the details of your account on the {% my profile title="**User profile**" %} page by selecting on the circular at the very bottom of the sidebar.
|
||||
|
||||
<img src='/images/docs/authentication/profile.png' alt='Screenshot of the profile page' style='border: 0;box-shadow: none;'>
|
||||
|
||||
@ -38,8 +38,15 @@ You can:
|
||||
- Enable or disable [multi-factor authentication](/docs/authentication/multi-factor-auth/).
|
||||
- Delete _Refresh Tokens_. These are created when you log in from a device. Delete them if you want to force the device to log out.
|
||||
- Create [Long Lived Access Tokens](https://developers.home-assistant.io/docs/auth_api/#long-lived-access-token) so scripts can securely interact with Home Assistant.
|
||||
- Define language and other locale settings.
|
||||
- Log out of Home Assistant.
|
||||
|
||||
<div class="note">
|
||||
|
||||
Unused refresh tokens will be automatically removed. A refresh token is considered unused if it has not been used for a login within 90 days. If you need a permanent token, then we recommend using [Long Lived Access Tokens](https://developers.home-assistant.io/docs/auth_api/#long-lived-access-token).
|
||||
|
||||
</div>
|
||||
|
||||
### Securing your login
|
||||
|
||||
_Make sure to choose a secure password!_ At some time in the future, you will probably want to access Home Assistant from outside your local network. This means you are also exposed to random black-hats trying to do the same. Treat the password like the key to your house.
|
||||
@ -100,7 +107,3 @@ This will allow you to open Home Assistant at `http://homeassistant.home:8123/`
|
||||
### Stuck on loading data
|
||||
|
||||
Some ad blocking software, such as Wipr, also blocks WebSockets. If you're stuck on the Loading data screen, try disabling your ad blocker.
|
||||
|
||||
### Migrating from pre 0.77
|
||||
|
||||
If you were using the authentication system before 0.77, you'd likely have `auth:` and `auth_providers:` defined. You'll need to remove these and let Home Assistant [handle it automatically](/docs/authentication/providers/#configuring-auth-providers).
|
||||
|
@ -24,7 +24,7 @@ Home Assistant generates a secret key which is synchronized with an app on your
|
||||
|
||||
#### Setting up TOTP
|
||||
|
||||
Enable TOTP in your `configuration.yaml` like this:
|
||||
Enable TOTP in your {% term "`configuration.yaml`" %} like this:
|
||||
|
||||
```yaml
|
||||
homeassistant:
|
||||
@ -64,7 +64,7 @@ The Notify MFA module uses the [notify integration](/integrations/notify/) to se
|
||||
|
||||
#### Setting up MFA notify
|
||||
|
||||
Add Notify MFA to your `configuration.yaml` file like this:
|
||||
Add Notify MFA to your {% term "`configuration.yaml`" %} file like this:
|
||||
|
||||
```yaml
|
||||
homeassistant:
|
||||
|
@ -1,6 +1,9 @@
|
||||
---
|
||||
title: "Authentication providers"
|
||||
description: "Guide on configuring different authentication providers."
|
||||
related:
|
||||
- docs: /docs/configuration/
|
||||
title: configuration.yaml file
|
||||
---
|
||||
|
||||
<div class='note warning'>
|
||||
@ -13,13 +16,13 @@ When you log in, an _auth provider_ checks your credentials to make sure you are
|
||||
|
||||
<div class='note warning'>
|
||||
|
||||
Home Assistant automatically configures the standard auth providers so you don't need to specify `auth_providers` in your `configuration.yaml` file unless you are configuring more than one. Specifying `auth_providers` will disable all auth providers that are not listed, so you could reduce your security or create difficulties logging in if it is not configured correctly.
|
||||
Home Assistant automatically configures the standard auth providers so you don't need to specify `auth_providers` in your {% term "`configuration.yaml`" %} file unless you are configuring more than one. Specifying `auth_providers` will disable all auth providers that are not listed, so you could reduce your security or create difficulties logging in if it is not configured correctly.
|
||||
|
||||
If you decide to use `trusted_networks` as your `auth_provider` there won't be a way to authenticate for a device outside of your listed trusted network. To overcome this ensure you add the default `auth_provider` with `type: homeassistant` back in manually. This will then present you with the default auth login screen when trusted network authentication fails as expected from outside your LAN.
|
||||
|
||||
</div>
|
||||
|
||||
Authentication providers are configured in your `configuration.yaml` under the `homeassistant:` block.
|
||||
Authentication providers are configured in your {% term "`configuration.yaml`" %} file under the `homeassistant:` block.
|
||||
If you are moving configuration to packages, this particular configuration must stay within 'configuration.yaml'. See Issue 16441 in the warning block at the bottom of this page.
|
||||
|
||||
|
||||
@ -44,7 +47,7 @@ User details are stored in the `[your config]/.storage` directory. All password
|
||||
|
||||
Users can be managed in Home Assistant by the owner. Go to the configuration panel and click on _{% my users %}_.
|
||||
|
||||
This is the entry in `configuration.yaml` for Home Assistant auth:
|
||||
This is the entry in {% term "`configuration.yaml`" %} for Home Assistant auth:
|
||||
|
||||
```yaml
|
||||
homeassistant:
|
||||
@ -52,7 +55,7 @@ homeassistant:
|
||||
- type: homeassistant
|
||||
```
|
||||
|
||||
If you don't specify any `auth_providers` section in the `configuration.yaml` file then this provider will be set up automatically.
|
||||
If you don't specify any `auth_providers` section in the {% term "`configuration.yaml`" %} file then this provider will be set up automatically.
|
||||
|
||||
### Trusted networks
|
||||
|
||||
@ -72,7 +75,7 @@ You cannot trust a network that you are using in any [trusted_proxies](/integrat
|
||||
|
||||
</div>
|
||||
|
||||
Here is an example in `configuration.yaml` to set up Trusted Networks:
|
||||
Here is an example in {% term "`configuration.yaml`" %} to set up Trusted Networks:
|
||||
|
||||
```yaml
|
||||
homeassistant:
|
||||
|
@ -39,9 +39,11 @@ Automations created or edited via the user interface are activated immediately a
|
||||
|
||||
## Troubleshooting missing automations
|
||||
|
||||
|
||||
When you're creating automations using the GUI and they don't appear in the UI, make sure that you add back `automation: !include automations.yaml` from the default configuration to your `configuration.yaml`.
|
||||
|
||||
## Related topics
|
||||
|
||||
- [Automating Home Assistant](/getting-started/automation/)
|
||||
- [Persistent notifications](/integrations/persistent_notification/)
|
||||
|
||||
|
@ -1,6 +1,9 @@
|
||||
---
|
||||
title: "Automation Trigger"
|
||||
description: "All the different ways how automations can be triggered."
|
||||
related:
|
||||
- docs: /voice_control/custom_sentences/#adding-a-custom-sentence-to-trigger-an-automation
|
||||
title: Adding a custom sentence to trigger an automation
|
||||
---
|
||||
|
||||
Triggers are what starts the processing of an {% term automation %} rule. When _any_ of the automation's triggers becomes true (trigger _fires_), Home Assistant will validate the [conditions](/docs/automation/condition/), if any, and call the [action](/docs/automation/action/).
|
||||
@ -212,7 +215,7 @@ automation:
|
||||
|
||||
## Numeric state trigger
|
||||
|
||||
Fires when the numeric value of an entity's state (or attribute's value if using the `attribute` property, or the calculated value if using the `value_template` property) **crosses** a given threshold. On state change of a specified entity, attempts to parse the state as a number and fires if the value is changing from above to below or from below to above the given threshold.
|
||||
Fires when the numeric value of an entity's state (or attribute's value if using the `attribute` property, or the calculated value if using the `value_template` property) **crosses** a given threshold (equal excluded). On state change of a specified entity, attempts to parse the state as a number and fires if the value is changing from above to below or from below to above the given threshold (equal excluded).
|
||||
|
||||
<div class='note'>
|
||||
Crossing the threshold means that the trigger only fires if the state wasn't previously within the threshold.
|
||||
@ -257,7 +260,24 @@ automation:
|
||||
|
||||
{% endraw %}
|
||||
|
||||
More dynamic and complex calculations can be done with `value_template`.
|
||||
More dynamic and complex calculations can be done with `value_template`. The variable 'state' is the [state object](/docs/configuration/state_object) of the entity specified by `entity_id`.
|
||||
|
||||
The state of the entity can be referenced like this:
|
||||
|
||||
{% raw %}
|
||||
|
||||
```yaml
|
||||
automation:
|
||||
trigger:
|
||||
- platform: numeric_state
|
||||
entity_id: sensor.temperature
|
||||
value_template: "{{ state.state | float * 9 / 5 + 32 }}"
|
||||
above: 70
|
||||
```
|
||||
|
||||
{% endraw %}
|
||||
|
||||
Attributes of the entity can be referenced like this:
|
||||
|
||||
{% raw %}
|
||||
|
||||
@ -277,8 +297,8 @@ Listing above and below together means the numeric_state has to be between the t
|
||||
In the example above, the trigger would fire a single time if a numeric_state goes into the 17.1-24.9 range (above 17 and below 25). It will only fire again, once it has left the defined range and enters it again.
|
||||
</div>
|
||||
|
||||
Number helpers (`input_number` entities), `number` and `sensor` entities that
|
||||
contain a numeric value, can be used in the `above` and `below` thresholds,
|
||||
Number helpers (`input_number` entities), `number`, `sensor`, and `zone` entities
|
||||
that contain a numeric value, can be used in the `above` and `below` thresholds,
|
||||
making the trigger more dynamic, like:
|
||||
|
||||
```yaml
|
||||
@ -946,6 +966,10 @@ The sentences matched by this trigger will be:
|
||||
|
||||
Punctuation and casing are ignored, so "It's PARTY TIME!!!" will also match.
|
||||
|
||||
### Related topic
|
||||
|
||||
- [Adding a custom sentence to trigger an automation](/voice_control/custom_sentences/#adding-a-custom-sentence-to-trigger-an-automation)
|
||||
|
||||
### Sentence wildcards
|
||||
|
||||
Adding one or more `{lists}` to your trigger sentences will capture any text at that point in the sentence. A `slots` object will be [available in the trigger data](/docs/automation/templating#sentence).
|
||||
@ -1011,3 +1035,35 @@ automation:
|
||||
- platform: time
|
||||
at: "15:32:00"
|
||||
```
|
||||
|
||||
Triggers can also be disabled based on limited templates or blueprint inputs. These are only evaluated once when the automation is loaded.
|
||||
|
||||
{% raw %}
|
||||
|
||||
```yaml
|
||||
blueprint:
|
||||
input:
|
||||
input_boolean:
|
||||
name: Boolean
|
||||
selector:
|
||||
boolean:
|
||||
input_number:
|
||||
name: Number
|
||||
selector:
|
||||
number:
|
||||
min: 0
|
||||
max: 100
|
||||
|
||||
trigger_variables:
|
||||
_enable_number: !input input_number
|
||||
|
||||
trigger:
|
||||
- platform: sun
|
||||
event_type: sunrise
|
||||
enabled: !input input_boolean
|
||||
- platform: sun
|
||||
event_type: sunset
|
||||
enabled: "{{ _enable_number < 50 }}"
|
||||
```
|
||||
|
||||
{% endraw %}
|
||||
|
@ -3,43 +3,72 @@ title: "Troubleshooting automations"
|
||||
description: "Tips on how to troubleshoot your automations."
|
||||
---
|
||||
|
||||
Automations and {% term scripts %} can be debugged in a few different ways. You can [test run](#testing-your-automation) the full sequence of actions, or test each condition and action separately. [Traces](#traces) let you see details of every step after an automation is run. For complicated automations with {% term templates %}, see the section [testing templates](#testing-templates).
|
||||
|
||||
## Testing your automation
|
||||
|
||||
Many automations can be tested directly in the automation editor UI.
|
||||
|
||||
### Running the entire automation
|
||||
|
||||
In the three dots menu in the automation list or automation editor UI, select the **Run** button. This will execute all of the {% term actions %}, while skipping all {% term triggers %} and {% term conditions %}. This lets you test the full sequence of actions, as if the automation was triggered and all conditions were true. Note that any [trigger ID](/docs/automation/trigger/#trigger-id) used in your triggers will not be active when you test this way. The Trigger ID or any data passed by in the `trigger` data in conditions or actions can't be tested directly this way.
|
||||
|
||||
You can also trigger an automation manually. This can test the conditions as if the automation was triggered by an event. Navigate to {% my developer_services title="**Developer tools** > **Services**" %}. In the service selection drop-down, select **Automation: Trigger**, then **Choose entity** to select the automation you are testing. Toggle whether to skip the conditions, then **Call service**. If needed, additional `trigger` or other data can be added in the YAML view for testing. The [trigger](/docs/automation/trigger/) page has more information about data within the trigger.
|
||||
|
||||
Testing with complex triggers, conditions, and variables can be difficult. Note that using the **Run** button will skip all triggers and conditions, while **Developer Tools** can be used with or without checking conditions.
|
||||
|
||||
### Running individual actions or conditions
|
||||
|
||||
In the automation editor UI, each {% term condition %} and {% term action %} can be tested individually. Select the three dots menu, then the **Test** button.
|
||||
|
||||
- Testing a condition will highlight it to show whether the condition passed at the moment it was tested. If all conditions pass, then the automation will run when triggered. Testing building blocks like an **and** condition will report whether the whole block registers as true or false, or you can test individual conditions within the building block.
|
||||
|
||||
- Testing an action block will run that block immediately.
|
||||
|
||||
Note that complex automations that depend on previous blocks, such as trigger IDs, variables in templates, or service calls that return data to use in subsequent blocks, cannot be tested this way.
|
||||
|
||||
If you are writing automations in YAML, it is also useful to go to {% my server_controls title="**Developer tools** > **YAML**" %}** and in the Configuration validation section, select the **Check configuration** button. This is to make sure there are no syntax errors before restarting Home Assistant. In order for **Check configuration** to be visible, you must enable **Advanced Mode** on {% my profile title="your user profile" %}.
|
||||
|
||||
## Traces
|
||||
|
||||
When an {% term automation %} is run, all steps are recorded and a trace is made. From the UI, open **Settings**, which is located in the sidebar, then select **Automations & Scenes** to go to the automation editor or click this button directly: {% my automations badge %}
|
||||
|
||||
Click on the clock icon next to an automation to enter the debugging screen. Alternatively, click on **Show trace** directly from a Logbook automation entry.
|
||||
From the automation editor UI, or in the automations list in the three dots menu, select **Traces**. Alternatively, select an automation entry shown in the Logbook.
|
||||
|
||||

|
||||
|
||||
The above screenshot shows a previous run of an automation. The automation is displayed using an interactive graph, highlighting which path the automation took. Each node in the graph can be clicked to view the details on what happened with the automation during that specific step. It traces the complete run of an automation.
|
||||
|
||||
The debugging screen is split into four features, the first being the Step Details which provides all details for each step of the automation. The second feature is the Trace Timeline which the screenshot above shows and where the automation can be followed on a timeline. The next is Related logbook entries, as the name says a logbook for all the entries related to the specific trace. The last two features are Automation Config and optionally Blueprint Config for the automation YAML code.
|
||||
The right side of the trace screen has tabs with more information:
|
||||
|
||||
- **Step Details** shows data and results of the step that is currently highlighted.
|
||||
- **Automation Config** shows the full YAML configuration at the time the automation was run.
|
||||
- **Trace Timeline**, shown in the screenshot above, lists the steps that were executed and their timing.
|
||||
- **Related logbook entries**, shows a logbook for all the entries related to the specific trace.
|
||||
- **Blueprint Config** will only be shown if the automation was created from a {% term blueprint %}.
|
||||
|
||||
The top bar shows the date and time the automation was triggered. Use the left and right arrows to view previous runs of the automation.
|
||||
|
||||
Automations created in YAML must have an [`id`](/docs/automation/yaml/#migrating-your-yaml-automations-to-automationsyaml) assigned in order for debugging traces to be stored.
|
||||
|
||||
#### Traces
|
||||
### Trace configuration
|
||||
|
||||
The last 5 traces are recorded for all automations. It is possible to change this by adding the following code to your automation.
|
||||
|
||||
{% raw %}
|
||||
|
||||
```yaml
|
||||
trace:
|
||||
stored_traces: 1
|
||||
stored_traces: 20
|
||||
```
|
||||
|
||||
[template]: /docs/configuration/templating/
|
||||
{% endraw %}
|
||||
|
||||
## Testing your automation
|
||||
## Testing templates
|
||||
|
||||
It is generally a difficult task to test an automation, especially if it includes several triggers and some conditions.
|
||||
If your automation uses [templates](/docs/configuration/templating/) in any part, you can do the following to make sure it works as expected:
|
||||
|
||||
Please note that if you click on **Trigger** of an automation in the frontend, **only the `action` part will be executed** by Home Assistant. That means you **can't** test your trigger or condition part that way. It also means that if your automation uses some data from triggers, it won't work properly as well just because `trigger` is not defined in this scenario.
|
||||
|
||||
All this makes that Trigger feature pretty limited and nearly useless for debugging purposes so you need to find another way.
|
||||
Make sure you check and adapt to your circumstances appropriate examples from Automation Trigger, Conditions and Actions.
|
||||
|
||||
It is also useful to go to **{% my server_controls title="Developer Tools -> YAML" %}** and click on **Check Configuration** button in Configuration validation section to make sure there are no syntax errors before restarting Home Assistant. In order for **Check configuration** to be visible, you must enable **Advanced Mode** on {% my profile title="your user profile" %}.
|
||||
|
||||
If your automation uses templates in any part, you can do the following to make sure it works as expected:
|
||||
|
||||
1. Go to **{% my developer_template title="Developer tools -> Template" %}** tab.
|
||||
1. Go to {% my developer_template title="**Developer tools** > **Template**" %} tab.
|
||||
2. Create all variables (sources) required for your template as described at the end of [this](https://www.home-assistant.io/docs/configuration/templating/#processing-incoming-data) paragraph.
|
||||
3. Copy your template code and paste it in Template editor straight after your variables.
|
||||
4. If necessary, change your sources' value and check if the template works as you want and does not generate any errors.
|
||||
|
@ -91,4 +91,4 @@ Learn more about blueprints by [reading our tutorial on creating a blueprint](/d
|
||||
|
||||
## Troubleshooting missing automations
|
||||
|
||||
When you're creating automations using blueprints and they don't appear in the UI, make sure that you add back `automation: !include automations.yaml` from the default configuration to your `configuration.yaml`.
|
||||
When you're creating automations using blueprints and they don't appear in the UI, make sure that you add back `automation: !include automations.yaml` from the default configuration to your {% term "`configuration.yaml`" %}.
|
||||
|
@ -7,7 +7,7 @@ Automations are created in Home Assistant via the UI, but are stored in a YAML f
|
||||
|
||||
The UI will write your automations to `automations.yaml`. This file is managed by the UI and should not be edited manually.
|
||||
|
||||
It is also possible to write your automations directly inside `configuration.yaml` or other YAML files. You can do this by adding a labeled `automation` block to your `configuration.yaml`:
|
||||
It is also possible to write your automations directly inside {% term "`configuration.yaml`" %} or other YAML files. You can do this by adding a labeled `automation` block to your `configuration.yaml`:
|
||||
|
||||
```yaml
|
||||
# The configuration required for the UI to work
|
||||
@ -128,7 +128,7 @@ Mode | Description
|
||||
|
||||
## YAML example
|
||||
|
||||
Example of a YAML based automation that you can add to `configuration.yaml`.
|
||||
Example of a YAML based automation that you can add to {% term "`configuration.yaml`" %}.
|
||||
|
||||
{% raw %}
|
||||
|
||||
|
@ -3,7 +3,7 @@ title: "Database"
|
||||
description: "Details about the database used by Home Assistant."
|
||||
---
|
||||
|
||||
Home Assistant uses databases to store {% term events %} and parameters for history and tracking. The default database used is [SQLite](https://www.sqlite.org/) and the database file is stored in your [configuration directory](/getting-started/configuration/) (e.g., `<path to config dir>/home-assistant_v2.db`); however, other databases can be used. If you prefer to run a database server (e.g., PostgreSQL), use the [`recorder` integration](/integrations/recorder/).
|
||||
Home Assistant uses databases to store {% term events %} and parameters for history and tracking. The default database used is [SQLite](https://www.sqlite.org/) and the database file is stored in your [configuration directory](/getting-started/configuration/) (e.g., `<path to config dir>/home-assistant_v2.db`); however, other databases can be used. If you prefer to run a database server (e.g., PostgreSQL), use the [`recorder`](/integrations/recorder/) integration.
|
||||
|
||||
To work with SQLite database manually from the command-line, you will need an [installation](https://www.sqlitetutorial.net/download-install-sqlite/) of `sqlite3`. Alternatively [DB Browser for SQLite](https://sqlitebrowser.org/) provides a viewer for exploring the database data and an editor for executing SQL commands.
|
||||
First load your database with `sqlite3`:
|
||||
|
@ -1,6 +1,17 @@
|
||||
---
|
||||
title: "About blueprints"
|
||||
description: "Introduction to blueprints."
|
||||
related:
|
||||
- docs: /docs/blueprint/schema/
|
||||
title: About the blueprint schema
|
||||
- docs: /docs/blueprint/selectors/
|
||||
title: About the blueprint selectors
|
||||
- docs: /docs/automation/using_blueprints/
|
||||
title: Using blueprints in automations
|
||||
- docs: /docs/blueprint/tutorial/
|
||||
title: "Tutorial: Create an automation blueprint"
|
||||
- title: "Blueprint community forum"
|
||||
url: /get-blueprints
|
||||
---
|
||||
|
||||
This section gives a high-level introduction to blueprints. To view a description of the YAML-schema used to create a valid blueprint, refer to the section [About the blueprint schema](/docs/blueprint/schema/).
|
||||
@ -13,12 +24,4 @@ Imagine you want to control lights based on motion. A blueprint provides the gen
|
||||
|
||||
Blueprints are shared by the community in the [blueprint community forum][blueprint-forums].
|
||||
|
||||
### Related information
|
||||
|
||||
- [About the blueprint schema](/docs/blueprint/schema/)
|
||||
- [About the blueprint selectors](/docs/blueprint/selectors/)
|
||||
- [Using blueprints in automations](/docs/automation/using_blueprints/)
|
||||
- [Tutorial: Create an automation blueprint](/docs/blueprint/tutorial/)
|
||||
- [Blueprint community forum][blueprint-forums]
|
||||
|
||||
[blueprint-forums]: /get-blueprints
|
||||
[blueprint-forums]: /get-blueprints
|
||||
|
@ -1,6 +1,17 @@
|
||||
---
|
||||
title: "About the blueprint schema"
|
||||
description: "Introduction to the blueprint schema."
|
||||
related:
|
||||
- docs: /docs/blueprint/
|
||||
title: About blueprints
|
||||
- docs: /docs/blueprint/selectors/
|
||||
title: Blueprint selectors
|
||||
- docs: /docs/automation/using_blueprints/
|
||||
title: Using blueprints in automations
|
||||
- docs: /docs/blueprint/tutorial/
|
||||
title: "Tutorial: Create an automation blueprint"
|
||||
- title: "Blueprint community forum"
|
||||
url: /get-blueprints
|
||||
---
|
||||
|
||||
## The blueprint schema
|
||||
@ -68,34 +79,12 @@ homeassistant:
|
||||
required: false
|
||||
input:
|
||||
description: >
|
||||
A dictionary of defined user inputs. These are the input fields that the
|
||||
A dictionary of defined user inputs or sections. These are the input fields that the
|
||||
consumer of your blueprint can provide using YAML definition, or via
|
||||
a configuration form in the UI.
|
||||
a configuration form in the UI. Sections provide a way to visually group a set of
|
||||
related inputs (see below).
|
||||
type: map
|
||||
required: false
|
||||
keys:
|
||||
name:
|
||||
description: The name of the input field.
|
||||
type: string
|
||||
required: false
|
||||
description:
|
||||
description: >
|
||||
A short description of the input field. Keep this short and descriptive.
|
||||
The description can include [Markdown](https://commonmark.org/help/).
|
||||
type: string
|
||||
required: false
|
||||
selector:
|
||||
description: >
|
||||
The [selector](/docs/blueprint/selectors/) to use for this input. A
|
||||
selector defines how the input is displayed in the frontend UI.
|
||||
type: selector
|
||||
required: false
|
||||
default:
|
||||
description: >
|
||||
The default value of this input, in case the input is not provided
|
||||
by the user of this blueprint.
|
||||
type: any
|
||||
required: false
|
||||
{% endconfiguration %}
|
||||
|
||||
### Blueprint inputs
|
||||
@ -107,6 +96,34 @@ These inputs can be of any type (string, boolean, list, dictionary). They can ha
|
||||
a default value and also provide a [selector](/docs/blueprint/selectors/) that
|
||||
ensures a matching input field in the user interface.
|
||||
|
||||
A blueprint input has the following configuration:
|
||||
|
||||
{% configuration %}
|
||||
name:
|
||||
description: The name of the input field.
|
||||
type: string
|
||||
required: false
|
||||
description:
|
||||
description: >
|
||||
A short description of the input field. Keep this short and descriptive.
|
||||
The description can include [Markdown](https://commonmark.org/help/).
|
||||
type: string
|
||||
required: false
|
||||
selector:
|
||||
description: >
|
||||
The [selector](/docs/blueprint/selectors/) to use for this input. A
|
||||
selector defines how the input is displayed in the frontend UI.
|
||||
type: selector
|
||||
required: false
|
||||
default:
|
||||
description: >
|
||||
The default value of this input, in case the input is not provided
|
||||
by the user of this blueprint.
|
||||
type: any
|
||||
required: false
|
||||
|
||||
{% endconfiguration %}
|
||||
|
||||
Each input field can be referred to, outside of the blueprint metadata, using
|
||||
the `!input` custom YAML tag.
|
||||
|
||||
@ -129,6 +146,70 @@ It is then up to the user to find out what to enter there. Blueprints that come
|
||||
|
||||
A blueprint can have as many inputs as you like.
|
||||
|
||||
### Blueprint input sections
|
||||
|
||||
One or more input sections can be added under the main `input` key. Each section visually groups the inputs in that section,
|
||||
allows an optional description, and optionally allows for collapsing those inputs.
|
||||
|
||||
A section is differentiated from an input by the presence of an additional `input` key within that section.
|
||||
|
||||
<div class='note warning'>
|
||||
Input sections are a new feature in version 2024.6. Set the `min_version` for the blueprint to at least this version if using input sections. Otherwise, the blueprint will generate errors on older versions.
|
||||
</div>
|
||||
|
||||
The full configuration for a section is below:
|
||||
|
||||
{% configuration %}
|
||||
|
||||
name:
|
||||
description: A name for the section. If omitted the key of the section is used.
|
||||
type: string
|
||||
required: false
|
||||
icon:
|
||||
description: An icon to display next to the name of the section.
|
||||
type: string
|
||||
required: false
|
||||
description:
|
||||
description: >
|
||||
An optional description of this section, which will be displayed at the top of the section.
|
||||
The description can include [Markdown](https://commonmark.org/help/).
|
||||
type: string
|
||||
required: false
|
||||
collapsed:
|
||||
description: If `true`, the section will be collapsed by default. Useful for optional or less important inputs. All collapsed inputs must also have a defined `default` before they can be hidden.
|
||||
type: boolean
|
||||
default: false
|
||||
required: false
|
||||
input:
|
||||
description: >
|
||||
A dictionary of defined user inputs within this section.
|
||||
type: map
|
||||
required: true
|
||||
|
||||
{% endconfiguration %}
|
||||
|
||||
|
||||
|
||||
The following example shows a blueprint with some inputs in a section:
|
||||
|
||||
```yaml
|
||||
blueprint:
|
||||
name: Example sections blueprint
|
||||
description: Example showing a section
|
||||
input:
|
||||
base_input:
|
||||
name: An input not in the section
|
||||
my_section:
|
||||
name: My Section
|
||||
icon: mdi:cog
|
||||
description: These options control a specific feature of this blueprint
|
||||
input:
|
||||
my_input:
|
||||
name: Example input
|
||||
my_input_2:
|
||||
name: 2nd example input
|
||||
```
|
||||
|
||||
### Blueprint inputs in templates
|
||||
|
||||
The inputs are available as custom YAML tags, but not as template variables.
|
||||
@ -202,12 +283,4 @@ action:
|
||||
target: !input light_target
|
||||
```
|
||||
|
||||
### Related information
|
||||
- [About blueprints](/docs/blueprint/)
|
||||
- [Blueprint selectors](/docs/blueprint/selectors/)
|
||||
- [Using blueprints in automations](/docs/automation/using_blueprints/)
|
||||
- [Tutorial: Create an automation blueprint »](/docs/blueprint/tutorial/)
|
||||
- [Blueprint community forum][blueprint-forums]
|
||||
|
||||
[blueprint-built-in]: https://github.com/home-assistant/core/tree/dev/homeassistant/components/automation/blueprints
|
||||
[blueprint-forums]: /get-blueprints
|
||||
|
@ -18,7 +18,6 @@ The following selectors are currently available:
|
||||
- [Action selector](#action-selector)
|
||||
- [Add-on selector](#add-on-selector)
|
||||
- [Area selector](#area-selector)
|
||||
- [Example area selectors](#example-area-selectors)
|
||||
- [Attribute selector](#attribute-selector)
|
||||
- [Assist pipeline selector](#assist-pipeline-selector)
|
||||
- [Backup location selector](#backup-location-selector)
|
||||
@ -32,22 +31,21 @@ The following selectors are currently available:
|
||||
- [Date selector](#date-selector)
|
||||
- [Date \& time selector](#date--time-selector)
|
||||
- [Device selector](#device-selector)
|
||||
- [Example device selector](#example-device-selector)
|
||||
- [Duration selector](#duration-selector)
|
||||
- [Entity selector](#entity-selector)
|
||||
- [Example entity selector](#example-entity-selector)
|
||||
- [Floor selector](#floor-selector)
|
||||
- [Icon selector](#icon-selector)
|
||||
- [Label selector](#label-selector)
|
||||
- [Language selector](#language-selector)
|
||||
- [Location selector](#location-selector)
|
||||
- [Media selector](#media-selector)
|
||||
- [Number selector](#number-selector)
|
||||
- [Example number selectors](#example-number-selectors)
|
||||
- [Object selector](#object-selector)
|
||||
- [QR code selector](#qr-code-selector)
|
||||
- [RGB color selector](#rgb-color-selector)
|
||||
- [Select selector](#select-selector)
|
||||
- [State selector](#state-selector)
|
||||
- [Target selector](#target-selector)
|
||||
- [Example target selectors](#example-target-selectors)
|
||||
- [Template selector](#template-selector)
|
||||
- [Text selector](#text-selector)
|
||||
- [Theme selector](#theme-selector)
|
||||
@ -210,7 +208,7 @@ living_room
|
||||
- kitchen
|
||||
```
|
||||
|
||||
### Example area selectors
|
||||
### Example area selectors <!-- omit from toc -->
|
||||
|
||||
An example area selector only shows areas that provide one or more lights or
|
||||
switches provided by the [ZHA](/integrations/zha) integration.
|
||||
@ -273,7 +271,7 @@ assist_pipeline:
|
||||
## Backup location selector
|
||||
|
||||
This can only be used on an installation with a Supervisor (Operating System or
|
||||
Supervised). For installations of type Home Assistant Core or Container, an error
|
||||
Supervised). For installations of type {% term "Home Assistant Core" %} or {% term "Home Assistant Container" %}, an error
|
||||
will be displayed.
|
||||
|
||||
The backup location selector shows a list of places a backup could go, depending
|
||||
@ -417,20 +415,6 @@ language:
|
||||
|
||||
The output of this selector is the ID of the conversation agent.
|
||||
|
||||
## Date selector
|
||||
|
||||
The date selector shows a date input that allows the user to specify a date.
|
||||
|
||||

|
||||
|
||||
This selector does not have any other options; therefore, it only has its key.
|
||||
|
||||
```yaml
|
||||
date:
|
||||
```
|
||||
|
||||
The output of this selector will contain the date in Year-Month-Day
|
||||
(`YYYY-MM-DD`) format, for example, `2022-02-22`.
|
||||
|
||||
## Country selector
|
||||
|
||||
@ -458,6 +442,21 @@ no_sort:
|
||||
|
||||
The output of this selector is an ISO 3166 country code.
|
||||
|
||||
## Date selector
|
||||
|
||||
The date selector shows a date input that allows the user to specify a date.
|
||||
|
||||

|
||||
|
||||
This selector does not have any other options; therefore, it only has its key.
|
||||
|
||||
```yaml
|
||||
date:
|
||||
```
|
||||
|
||||
The output of this selector will contain the date in Year-Month-Day
|
||||
(`YYYY-MM-DD`) format, for example, `2022-02-22`.
|
||||
|
||||
## Date & time selector
|
||||
|
||||
The date selector shows a date and time input that allows the user to specify a
|
||||
@ -579,7 +578,7 @@ faadde5365842003e8ca55267fe9d1f4
|
||||
- 3da77cb054352848b9544d40e19de562
|
||||
```
|
||||
|
||||
### Example device selector
|
||||
### Example device selector <!-- omit from toc -->
|
||||
|
||||
An example entity selector that, will only show devices that are:
|
||||
|
||||
@ -715,7 +714,7 @@ light.living_room
|
||||
- light.kitchen
|
||||
```
|
||||
|
||||
### Example entity selector
|
||||
### Example entity selector <!-- omit from toc -->
|
||||
|
||||
An example entity selector that, will only show entities that are:
|
||||
|
||||
@ -735,6 +734,141 @@ entity:
|
||||
device_class: motion
|
||||
```
|
||||
|
||||
## Floor selector
|
||||
|
||||
The floor selector shows a floor finder that can pick
|
||||
floors based on the selector configuration. The value of the input will be the
|
||||
floor ID. If `multiple` is set to `true`, the value is a list of floor IDs.
|
||||
|
||||
A floor selector can filter the list of floors based on the properties of the
|
||||
devices and entities assigned to the areas on those floors.
|
||||
For example, the floor list could be limited to floors with entities
|
||||
provided by the [ZHA](/integrations/zha) integration, based on the areas they are in.
|
||||
|
||||
In its most basic form, this selector doesn't require any options.
|
||||
It will show all floors.
|
||||
|
||||

|
||||
|
||||
```yaml
|
||||
floor:
|
||||
```
|
||||
|
||||
{% configuration floor %}
|
||||
device:
|
||||
description: >
|
||||
When device options are provided, the list of floors is filtered by floors
|
||||
that have at least one device matching the given conditions. Can be
|
||||
either an object or a list of objects.
|
||||
type: list
|
||||
required: false
|
||||
keys:
|
||||
integration:
|
||||
description: >
|
||||
Can be set to an integration domain. Limits the list of floors that
|
||||
have devices by this integration domain. For example,
|
||||
[`zha`](/integrations/zha).
|
||||
type: string
|
||||
required: false
|
||||
manufacturer:
|
||||
description: >
|
||||
When set, the list only includes floors that have devices by the set
|
||||
manufacturer name.
|
||||
type: string
|
||||
required: false
|
||||
model:
|
||||
description: >
|
||||
When set, the list only includes floors that have devices which have
|
||||
the set model.
|
||||
type: string
|
||||
required: false
|
||||
entity:
|
||||
description: >
|
||||
When entity options are provided, the list only includes floors
|
||||
that at least have one entity that matches the given conditions. Can be
|
||||
either an object or a list of objects.
|
||||
type: list
|
||||
required: false
|
||||
keys:
|
||||
integration:
|
||||
description: >
|
||||
Can be set to an integration domain. Limits the list of floors that
|
||||
have entities by the set integration domain. For example,
|
||||
[`zha`](/integrations/zha).
|
||||
type: string
|
||||
required: false
|
||||
domain:
|
||||
description: >
|
||||
When set, the list only includes floors that have entities of certain domains,
|
||||
for example, [`light`](/integrations/light) or
|
||||
[`binary_sensor`](/integrations/binary_sensor). Can be either a string
|
||||
with a single domain, or a list of string domains to limit the selection to.
|
||||
type: [string, list]
|
||||
required: false
|
||||
device_class:
|
||||
description: >
|
||||
When set, the list only includes floors that have entities with a certain
|
||||
device class, for example, `motion` or `window`. Can be either a string
|
||||
with a single device_class, or a list of string device_class to limit
|
||||
the selection.
|
||||
type: [device_class, list]
|
||||
required: false
|
||||
supported_features:
|
||||
description: >
|
||||
When set, the list only includes floors that have entities with a certain
|
||||
supported feature, for example, `light.LightEntityFeature.TRANSITION`
|
||||
or `climate.ClimateEntityFeature.TARGET_TEMPERATURE`. Should be a list
|
||||
of features.
|
||||
type: list
|
||||
required: false
|
||||
multiple:
|
||||
description: >
|
||||
Allows selecting multiple floors. If set to `true`, the resulting value of
|
||||
this selector will be a list instead of a single string value.
|
||||
type: boolean
|
||||
default: false
|
||||
required: false
|
||||
{% endconfiguration %}
|
||||
|
||||
The output of this selector is the floor ID, or (in case `multiple` is set to
|
||||
`true`) a list of floor IDs.
|
||||
|
||||
```yaml
|
||||
# Example floor selector output result, when multiple is set to false
|
||||
first_floor
|
||||
|
||||
# Example floor selector output result, when multiple is set to true
|
||||
- first_floor
|
||||
- second_floor
|
||||
```
|
||||
|
||||
### Example floor selectors <!-- omit from toc -->
|
||||
|
||||
An example floor selector only shows floors that have one or more lights or
|
||||
switches provided by the [ZHA](/integrations/zha) integration.
|
||||
|
||||
```yaml
|
||||
floor:
|
||||
entity:
|
||||
integration: zha
|
||||
domain:
|
||||
- light
|
||||
- switch
|
||||
```
|
||||
|
||||
Another example using the floor selector, which only shows floors that
|
||||
have one or more remote controls provided by the [deCONZ](/integrations/deconz)
|
||||
integration. Multiple floors can be selected.
|
||||
|
||||
```yaml
|
||||
floor:
|
||||
multiple: true
|
||||
device:
|
||||
- integration: deconz
|
||||
manufacturer: IKEA of Sweden
|
||||
model: TRADFRI remote control
|
||||
```
|
||||
|
||||
## Icon selector
|
||||
|
||||
The icon selector shows an icon picker that allows the user to select an icon.
|
||||
@ -753,6 +887,43 @@ placeholder:
|
||||
The output of this selector is a string containing the selected icon,
|
||||
for example: `mdi:bell`.
|
||||
|
||||
## Label selector
|
||||
|
||||
The label selector shows a label finder that can pick labels. The value of the
|
||||
input is the label ID. If `multiple` is set to `true`, the value is a list
|
||||
of label IDs.
|
||||
|
||||

|
||||
|
||||
In its most basic form, this selector doesn't require any options.
|
||||
It will show all labels.
|
||||
|
||||
```yaml
|
||||
label:
|
||||
```
|
||||
|
||||
{% configuration text %}
|
||||
multiple:
|
||||
description: >
|
||||
Allows selecting multiple labels. If set to `true`, the resulting value of
|
||||
this selector will be a list instead of a single string value.
|
||||
type: boolean
|
||||
default: false
|
||||
required: false
|
||||
{% endconfiguration %}
|
||||
|
||||
The output of this selector is the label ID, or (in case `multiple` is set to
|
||||
`true`) a list of label IDs.
|
||||
|
||||
```yaml
|
||||
# Example label selector output result, when multiple is set to false
|
||||
energy_saving
|
||||
|
||||
# Example label selector output result, when multiple is set to true
|
||||
- energy_saving
|
||||
- christmas_decorations
|
||||
```
|
||||
|
||||
## Language selector
|
||||
|
||||
The language selector allows a user to pick a language from a list of languages.
|
||||
@ -908,7 +1079,7 @@ mode:
|
||||
|
||||
The output of this selector is a number, for example: `42`
|
||||
|
||||
### Example number selectors
|
||||
### Example number selectors <!-- omit from toc -->
|
||||
|
||||
An example number selector that allows a user a percentage, directly in a
|
||||
regular number input box.
|
||||
@ -948,6 +1119,39 @@ object:
|
||||
|
||||
The output of this selector is a YAML object.
|
||||
|
||||
## QR code selector
|
||||
|
||||
The QR code selector shows a QR code. It has no return value.
|
||||
|
||||

|
||||
|
||||
The QR code's data must be configured, and optionally, the scale, and error correction level can be set.
|
||||
The scale makes the QR code bigger or smaller.
|
||||
|
||||
{% configuration qr_code %}
|
||||
data:
|
||||
description: The data that should be represented in the QR code.
|
||||
type: any
|
||||
required: true
|
||||
scale:
|
||||
description: The scale factor to use, this will make the QR code bigger or smaller.
|
||||
type: integer
|
||||
required: false
|
||||
default: 4
|
||||
error_correction_level:
|
||||
description: The error correction level of the QR code, with a higher error correction level the QR code can be scanned even when some pieces are missing. Can be "low", "medium", "quartile" or "high".
|
||||
type: string
|
||||
required: false
|
||||
default: medium
|
||||
{% endconfiguration %}
|
||||
|
||||
```yaml
|
||||
qr_code:
|
||||
data: "https://home-assistant.io"
|
||||
scale: 5
|
||||
error_correction_level: quartile
|
||||
```
|
||||
|
||||
## RGB color selector
|
||||
|
||||
The RGB color selector allows the user to select an color from a color picker
|
||||
@ -1174,7 +1378,7 @@ action:
|
||||
|
||||
</div>
|
||||
|
||||
### Example target selectors
|
||||
### Example target selectors <!-- omit from toc -->
|
||||
|
||||
An example target selector that only shows targets that at least provide one
|
||||
or more lights, provided by the [ZHA](/integrations/zha) integration.
|
||||
@ -1324,4 +1528,4 @@ The output of this selector is a list of triggers. For example:
|
||||
- platform: numeric_state
|
||||
entity_id: "sensor.outside_temperature"
|
||||
below: 20
|
||||
```
|
||||
```
|
@ -1,6 +1,22 @@
|
||||
---
|
||||
title: "Creating an automation blueprint"
|
||||
description: "Tutorial on creating an automation blueprint."
|
||||
related:
|
||||
- docs: /docs/configuration/
|
||||
title: "Editing the configuration file"
|
||||
- docs: /docs/configuration/yaml/
|
||||
- docs: /docs/automation/yaml/
|
||||
title: "YAML used in automations"
|
||||
- docs: /docs/scripts/
|
||||
title: Scripts
|
||||
- docs: /docs/blueprint/selectors/
|
||||
title: Blueprint selectors
|
||||
- docs: /docs/blueprint/schema/
|
||||
title: Blueprint schema
|
||||
- docs: /docs/blueprint/
|
||||
title: About blueprints
|
||||
- docs: /docs/automation/using_blueprints/
|
||||
title: Using automation blueprints
|
||||
---
|
||||
|
||||
<div class='note'>
|
||||
@ -121,7 +137,7 @@ For more information on blueprint inputs, refer to the documentation of the [blu
|
||||
|
||||
With the bare minimum metadata added, your blueprint is ready to use.
|
||||
|
||||
Open your `configuration.yaml` and add the following:
|
||||
Open your {% term "`configuration.yaml`" %} and add the following:
|
||||
|
||||
```yaml
|
||||
automation tutorial:
|
||||
@ -186,8 +202,7 @@ blueprint:
|
||||
selector:
|
||||
target:
|
||||
entity:
|
||||
filter:
|
||||
- domain: light
|
||||
- domain: light
|
||||
```
|
||||
|
||||
By limiting our blueprint to working with lights and motion sensors, we unlock a couple of benefits: the UI will be able to limit suggested values to lights and motion sensors instead of all devices. It will also allow the user to pick an area to control the lights in.
|
||||
@ -218,8 +233,7 @@ blueprint:
|
||||
selector:
|
||||
target:
|
||||
entity:
|
||||
filter:
|
||||
- domain: light
|
||||
- domain: light
|
||||
|
||||
trigger:
|
||||
- platform: state
|
||||
@ -273,17 +287,3 @@ For this tutorial, we're going to share it on GitHub Gists. This is a good optio
|
||||
### Share on the Blueprint Exchange
|
||||
|
||||
If you follow the [Rules and format for posting](/get-blueprints), you can share your blueprint on the Home Assistant Blueprint Exchange forum. This option is accessible to the general Home Assistant community but recommended only for your original blueprints. Please don't post this tutorial to the Blueprint Exchange, but instead, remember this as an option for releasing your real blueprints.
|
||||
|
||||
## Related topics
|
||||
|
||||
**Prerequisites**
|
||||
- [Editing the configuration file](/docs/configuration/)
|
||||
- [YAML](/docs/configuration/yaml/), and specifically, [YAML used in automations](/docs/automation/yaml/)
|
||||
- [Scripts](/docs/scripts/)
|
||||
|
||||
**Blueprints**
|
||||
|
||||
- [Blueprint selectors](/docs/blueprint/selectors/)
|
||||
- [Blueprint schema](/docs/blueprint/schema/)
|
||||
- [About blueprints](/docs/blueprint/)
|
||||
- [Using automation blueprints](/docs/automation/using_blueprints/)
|
||||
|
@ -1,45 +1,90 @@
|
||||
---
|
||||
title: "Configuration.yaml"
|
||||
description: "Configuring Home Assistant via text files."
|
||||
related:
|
||||
- docs: /docs/configuration/yaml/
|
||||
title: YAML syntax
|
||||
- docs: /docs/configuration/secrets
|
||||
title: Storing credentials in `secrets.yaml` file
|
||||
- docs: /common-tasks/os/#backups
|
||||
title: Creating and restoring backups
|
||||
- docs: /integrations/backup/docs/tools/dev-tools/#reloading-the-yaml-configuration
|
||||
title: Creating backups for Home Assistant Container and Core
|
||||
- docs: /docs/tools/dev-tools/#reloading-the-yaml-configuration
|
||||
title: Reloading the YAML configuration from developer tools
|
||||
- docs: /common-tasks/os/#configuring-access-to-files
|
||||
title: Configuring file access on the Operating System
|
||||
- docs: /common-tasks/supervised/#configuring-access-to-files
|
||||
title: Configuring file access on Supervised
|
||||
- docs: docs/configuration/troubleshooting/
|
||||
title: Troubleshooting the configuration
|
||||
---
|
||||
|
||||
While you can configure most of Home Assistant directly from the user interface under {% my config %}, some parts need you to edit `configuration.yaml`. This file contains {% term integrations %} to be loaded along with their configurations. Throughout the documentation you will find snippets that you can add to your configuration file to enable specific functionality.
|
||||
While you can configure most of Home Assistant from the user interface, for some integrations, you need to edit the `configuration.yaml` file. This file contains {% term integrations %} to be loaded along with their configurations. Throughout the documentation, you will find snippets that you can add to your configuration file to enable specific functionality.
|
||||
|
||||
If you run into trouble while configuring Home Assistant, refer to the [configuration troubleshooting page](/docs/configuration/troubleshooting/) and the [`configuration.yaml` examples](/examples/#example-configurationyaml).
|
||||
<p class='img'>
|
||||
<img src='/images/docs/configuration/config-yaml_via-file-editor.png' alt='Screenshot of an example of a configuration.yaml file, accessed using the File editor add-on on a Home Assistant Operating System installation.'>
|
||||
Example of a configuration.yaml file, accessed using the File editor add-on on a Home Assistant Operating System installation.
|
||||
</p>
|
||||
|
||||
## Editing `configuration.yaml`
|
||||
|
||||
The easiest option to edit `configuration.yaml` is to use the {% my supervisor_addon title="Studio Code Server add-on" addon="a0d7b954_vscode" %}. This add-on runs VS Code, which offers live syntax checking and auto-fill of various Home Assistant entities. See [here](/common-tasks/supervised/#installing-and-using-the-visual-studio-code-vsc-add-on) for details. If unavailable on your system, use {% my supervisor_addon title="File Editor add-on" addon="core_configurator" %} instead. Again, details can be found [here](/common-tasks/supervised/#installing-and-using-the-file-editor-add-on).
|
||||
How you edit your `configuration.yaml` file depends on your editor preferences and the [installation method](/installation/#advanced-installation-methods) you used to set up Home Assistant.
|
||||
|
||||
If you prefer to use a file editor on your computer, use the {% my supervisor_addon title="Samba add-on" addon="core_samba" %} to access the files as a network share. More details can be found [here](/common-tasks/supervised/#installing-and-using-the-samba-add-on).
|
||||
### To set up access to the files and prepare an editor
|
||||
|
||||
The path to your configuration directory can be found in the Home Assistant {% term frontend %} by going to {% my system_health title="Settings > System > Repairs > System information from the top right menu" %}
|
||||
Before you can edit a file, you need to know how to access files in Home Assistant and setup an editor.
|
||||
File access depends on your [installation method](/installation/#advanced-installation-methods). If you use {% term "Home Assistant Operating System" %} or {% term "Home Assistant Supervised" %}, you can use editor add-ons, for example, but not if you use {% term "Home Assistant Core" %} or {% term "Home Assistant Container" %}.
|
||||
|
||||

|
||||
1. To set up file access, follow the steps for your [installation method](/installation/#advanced-installation-methods):
|
||||
|
||||
Right under the version you are running, you will find what path Home Assistant has loaded the configuration from.
|
||||

|
||||
- [Configure file access on the Operating System](/common-tasks/os/#configuring-access-to-files):
|
||||
- If you are unsure which option to choose, install the [file editor add-on](/common-tasks/os/#installing-and-using-the-file-editor-add-on).
|
||||
- Alternatively, use the [Studio Code Server add-on](/common-tasks/os/#installing-and-using-the-visual-studio-code-vsc-add-on). This editor offers live syntax checking and auto-fill of various Home Assistant entities. But it looks more complex than the file editor.
|
||||
- If you prefer to use a file editor on your computer, use the [Samba add-on](/common-tasks/os/#installing-and-using-the-samba-add-on).
|
||||
- [Configure file access on Supervised](/common-tasks/supervised/#configuring-access-to-files):
|
||||
- Using the [File editor add-on](/common-tasks/supervised/#installing-and-using-the-file-editor-add-on).
|
||||
- Using the [Studio Code Server add-on](/common-tasks/supervised/#installing-and-using-the-visual-studio-code-vsc-add-on).
|
||||
- Using the [Samba add-on](/common-tasks/supervised/#installing-and-using-the-samba-add-on).
|
||||
|
||||
_If you use Home Assistant Container, you can find `configuration.yaml` in the config folder that you mounted in your container._
|
||||
2. To look up the path to your configuration directory, go to {% my system_health title="**Settings** > **System** > **Repairs**" %}.
|
||||
- Select the three dots menu and select **System information**.
|
||||
|
||||
_If you use Home Assistant Operating System, you can find `configuration.yaml` in the `/config` folder of the installation._
|
||||

|
||||
|
||||
_If you use Home Assistant Core, you can find `configuration.yaml` in the config folder passed to the `hass` command (default is `~/.homeassistant`)._
|
||||
3. Find out the location of the **Configuration directory**.
|
||||
|
||||
## Reloading changes
|
||||

|
||||
- Unless you changed the file structure, the default is as follows: -
|
||||
- {% term "Home Assistant Operating System" %}: the `configuration.yaml` is in the `/config` folder of the installation.
|
||||
- {% term "Home Assistant Container" %}: the `configuration.yaml` is in the config folder that you mounted in your container.
|
||||
- {% term "Home Assistant Core" %}: the `configuration.yaml` is in the config folder passed to the `hass` command (default is `~/.homeassistant`).
|
||||
|
||||
Most integrations in Home Assistant that do not interact with {% term devices %} or {% term services %} can reload changes made to their configuration in `configuration.yaml`. To do this, go to {% my server_controls title="Developer Tools > YAML" %} and scroll down to the YAML configuration reloading section (alternatively, hit "c" anywhere in the UI and search for it).
|
||||
## Validating the configuration
|
||||
|
||||
If you can't see your integration listed there, you will need to restart Home Assistant for changes to take effect.
|
||||
After changing configuration or automation files, you can check if the configuration is valid. A configuration check is also applied automatically when you reload the configuration or when you restart Home Assistant.
|
||||
|
||||
<div class='note'>
|
||||
The method for running a configuration check depends on your [installation type](/installation/#advanced-installation-methods). Check the common tasks for your installation type:
|
||||
|
||||
To test any changes to your configuration files from the command line, check out the common tasks for [operating system](/common-tasks/os/#configuration-check), [supervised](/common-tasks/supervised/#configuration-check), [container](/common-tasks/container/#configuration-check), [core](/common-tasks/core/#configuration-check) for how to do that. Configuration changes can also be tested using the UI by navigating to {% my server_controls title="Developer Tools > YAML" %} and clicking "Check Configuration". For the button to be visible, you must enable "Advanced Mode" on your {% my profile title="User Profile" %}.
|
||||
- [Configuration check on Operating System](/common-tasks/os/#configuration-check)
|
||||
- [Configuration check on Supervised](/common-tasks/supervised/#configuration-check)
|
||||
- [Configuration check on Container](/common-tasks/container/#configuration-check)
|
||||
- [Configuration check on Core](/common-tasks/core/#configuration-check)
|
||||
|
||||
</div>
|
||||
## Reloading the configuration to apply changes
|
||||
|
||||
## Migrating to a new system
|
||||
For configuration changes to become effective, the configuration must be reloaded. Most integrations in Home Assistant (that do not interact with {% term devices %} or {% term services %}) can reload changes made to their configuration in `configuration.yaml` without needing to restart Home Assistant.
|
||||
|
||||
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.
|
||||
1. Under **Settings**, select the three dots menu (top right), select **Restart Home Assistant** > **Quick reload**.
|
||||
|
||||
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.
|
||||

|
||||
|
||||
2. If you find that your changes were not applied, you need to restart.
|
||||
- Select **Restart Home Assistant**.
|
||||
- Note: This interrupts automations and scripts.
|
||||
|
||||

|
||||
|
||||
## Troubleshooting the configuration
|
||||
|
||||
If you run into trouble while configuring Home Assistant, refer to the [configuration troubleshooting page](/docs/configuration/troubleshooting/) and the [`configuration.yaml` examples](/examples/#example-configurationyaml).
|
||||
|
@ -1,117 +1,32 @@
|
||||
---
|
||||
title: "Setup basic information"
|
||||
description: "Setting up the basic info of Home Assistant."
|
||||
related:
|
||||
- docs: /integrations/homeassistant/
|
||||
- docs: /docs/configuration/
|
||||
---
|
||||
|
||||
As part of the default onboarding process, Home Assistant can detect your location from IP address geolocation. Home Assistant will automatically select a unit system and time zone based on this location. You may adjust this during onboarding, or afterwards at {% my general title="Settings > System > General" %}, network related configuration is found under {% my network title="Settings > System > Network" %}.
|
||||
As part of the default onboarding process, Home Assistant can detect your location from IP address geolocation. Home Assistant will automatically select a unit system and time zone based on this location. If you didn't adjust this directly during onboarding, you can do it later.
|
||||
|
||||
If you prefer YAML, you can add the following information to your `configuration.yaml`:
|
||||
<p class='img'>
|
||||
<img class="no-shadow" src='/images/docs/configuration/general-settings.png' alt='Screenshot showing General settings page'>
|
||||
Screenshot showing the General settings page.
|
||||
</p>
|
||||
|
||||
```yaml
|
||||
homeassistant:
|
||||
name: Home
|
||||
latitude: 32.87336
|
||||
longitude: 117.22743
|
||||
elevation: 430
|
||||
unit_system: metric
|
||||
currency: USD
|
||||
country: US
|
||||
time_zone: "America/Los_Angeles"
|
||||
external_url: "https://www.example.com"
|
||||
internal_url: "http://homeassistant.local:8123"
|
||||
allowlist_external_dirs:
|
||||
- "/usr/var/dumping-ground"
|
||||
- "/tmp"
|
||||
allowlist_external_urls:
|
||||
- "http://images.com/image1.png"
|
||||
media_dirs:
|
||||
media: "/media"
|
||||
recordings: "/mnt/recordings"
|
||||
```
|
||||
The general settings described here are managed by the [Home Assistant Core integration](/integrations/homeassistant/). If you are interested in the services offered by this integration, check out the integration documentation.
|
||||
|
||||
<div class='note'>
|
||||
## Editing the general settings
|
||||
|
||||
You will not be able to edit anything in {% my general title="Settings > System > General" %} in the UI if you are using YAML configuration for any of the following: name, latitude, longitude, elevation, unit_system, temperature_unit, time_zone, external_url, internal_url, country, currency. Additionally, some options are only visible after "Advanced Mode" is enabled on your {% my profile title="User Profile" %}.
|
||||
To change the general settings that were defined during onboarding, follow these steps:
|
||||
|
||||
</div>
|
||||
1. Go to {% my general title="**Settings** > **System** > **General**" %} and make your changes.
|
||||
2. To change network-related configuration, such as the network name, go to {% my network title="**Settings** > **System** > **Network**" %}.
|
||||
3. If some of the settings are not visible, you may need to enable **Advanced mode**.
|
||||
- In the bottom left, select your username to go to your {% my profile title="**User profile**" %}, and enable **Advanced mode**.
|
||||
4. **Troubleshooting**: If any of the settings are grayed out and can't be edited, this is because they are defined in the {% term "`configuration.yaml`" %} file.
|
||||
- If you prefer editing the settings in the UI, you have to delete these entries from the {% term "`configuration.yaml`" %} file.
|
||||
- For more information about the general settings in YAML, refer to the [Home Assistant Core integration documentation](/integrations/homeassistant/).
|
||||
|
||||
{% configuration %}
|
||||
name:
|
||||
description: Name of the location where Home Assistant is running.
|
||||
required: false
|
||||
type: string
|
||||
latitude:
|
||||
description: Latitude of your location required to calculate the time the sun rises and sets.
|
||||
required: false
|
||||
type: float
|
||||
longitude:
|
||||
description: Longitude of your location required to calculate the time the sun rises and sets.
|
||||
required: false
|
||||
type: float
|
||||
elevation:
|
||||
description: Altitude above sea level in meters. Impacts sunrise data.
|
||||
required: false
|
||||
type: integer
|
||||
unit_system:
|
||||
description: "`metric` for Metric, `us_customary` for US Customary. This also sets temperature_unit, Celsius for Metric and Fahrenheit for US Customary"
|
||||
required: false
|
||||
type: string
|
||||
temperature_unit:
|
||||
description: "Override temperature unit set by unit_system. `C` for Celsius, `F` for Fahrenheit."
|
||||
required: false
|
||||
type: string
|
||||
time_zone:
|
||||
description: "Pick your time zone from the column **TZ** of [Wikipedia's list of tz database time zones](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones)"
|
||||
required: false
|
||||
type: string
|
||||
currency:
|
||||
description: "Pick your currency code from the column **Code** of [Wikipedia's list of ISO 4217 active codes](https://en.wikipedia.org/wiki/ISO_4217#Active_codes)"
|
||||
required: false
|
||||
type: string
|
||||
default: "EUR"
|
||||
external_url:
|
||||
description: "The URL that Home Assistant is available on from the internet. For example: `https://example.duckdns.org:8123`. Note that this setting may only contain a protocol, hostname and port; using a path is not supported."
|
||||
required: false
|
||||
type: string
|
||||
internal_url:
|
||||
description: "The URL that Home Assistant is available on from your local network. For example: `http://homeassistant.local:8123`. Note that this setting may only contain a protocol, hostname and port; using a path is not supported."
|
||||
required: false
|
||||
type: string
|
||||
customize:
|
||||
description: "[Customize](/docs/configuration/customizing-devices/) entities."
|
||||
required: false
|
||||
type: string
|
||||
customize_domain:
|
||||
description: "[Customize](/docs/configuration/customizing-devices/) all entities in a domain."
|
||||
required: false
|
||||
type: string
|
||||
customize_glob:
|
||||
description: "[Customize](/docs/configuration/customizing-devices/) entities matching a pattern."
|
||||
required: false
|
||||
type: string
|
||||
allowlist_external_dirs:
|
||||
description: List of folders that can be used as sources for sending files.
|
||||
required: false
|
||||
type: list
|
||||
allowlist_external_urls:
|
||||
description: List of external URLs that can be fetched. URLs can match specific resources (e.g., `http://10.10.10.12/images/image1.jpg`) or a relative path that allows access to resources within it (e.g., `http://10.10.10.12/images` would allow access to anything under that path)
|
||||
required: false
|
||||
type: list
|
||||
media_dirs:
|
||||
description: A mapping of local media sources and their paths on disk.
|
||||
required: false
|
||||
type: map
|
||||
language:
|
||||
description: "Default language used by Home Assistant. This may, for example, influence the language used by voice assistants. The language should be specified as an RFC 5646 language tag, and must be a language which Home Assistant is translated to."
|
||||
required: false
|
||||
type: string
|
||||
default: "en"
|
||||
country:
|
||||
description: "Country in which Home Assistant is running. This may, for example, influence radio settings to comply with local regulations. The country should be specified as an ISO 3166.1 alpha-2 code. Pick your country from the column **Code** of [Wikipedia's list of ISO 31661 alpha-2 officially assigned code codes](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#Officially_assigned_code_elements)"
|
||||
required: false
|
||||
type: string
|
||||
{% endconfiguration %}
|
||||

|
||||
|
||||
## Reload core service
|
||||
|
||||
Home Assistant offers a service to reload the core configuration while Home Assistant is running called {% my developer_call_service service="homeassistant.reload_core_config" %}. This allows you to change any of the above sections and see it being applied without having to restart Home Assistant. To call this service, go to the "{% my developer_services %}" tab under {% my developer_services title="Developer Tools" %}, select the {% my developer_call_service service="homeassistant.reload_core_config" %} service and click the "CALL SERVICE" button. Alternatively, you can press the "Location & Customizations" button under {% my server_controls title="Developer Tools > YAML" %}.
|
||||
5. To apply the changes, follow the steps on [reloading the configuration](/docs/configuration/#reloading-configuration-changes).
|
||||
|
@ -1,129 +1,40 @@
|
||||
---
|
||||
title: "Customizing entities"
|
||||
description: "Simple customization for entities."
|
||||
related:
|
||||
- docs: /integrations/homeassistant/
|
||||
- docs: /docs/configuration/
|
||||
title: configuration.yaml file
|
||||
- docs: /docs/configuration/troubleshooting/
|
||||
- docs: /docs/organizing/labels/
|
||||
---
|
||||
|
||||
## Changing the entity ID
|
||||
## Customizing an entity
|
||||
|
||||
You can use the UI to change the entity ID and friendly name of supported entities. To do this:
|
||||
After adding a new device, you might find the automatically assigned entity ID too technical and the entity lacking a friendly name. You can personalize these elements to better fit your naming conventions or modify other attributes like the icon.
|
||||
|
||||
1. Select the {% term entity %}, either from the frontend or by selecting the info button next to the entity in the Developer Tools "States" tab.
|
||||
2. Select the cog icon in the right corner of the entity's dialog
|
||||

|
||||
3. Enter the new name or the new entity ID (remember not to change the domain of the entity - the part before the `.`)
|
||||

|
||||
4. Select *Update*
|
||||
To change entity attributes, follow these steps:
|
||||
|
||||
If your entity is not supported, or you cannot customize what you need via this method, please see below for more options.
|
||||
1. Go to {% my entities title="**Settings** > **Devices & services** > **Entities**" %} and select the entity from the list.
|
||||
2. In the top right corner, select the cog icon.
|
||||
|
||||
## Customizing entities
|
||||

|
||||
|
||||
By default, all of your devices will be visible and have a default icon determined by their domain. You can customize the look and feel of your front page by altering some of these parameters. This can be done by overriding attributes of specific entities.
|
||||
3. Enter or edit the attributes:
|
||||
- For example, the entity ID here could be shortened to `binary_sensor.living_room_motion_1`.
|
||||
- Do not change the domain of the entity - the part before the `.` (binary_sensor, in this example).
|
||||
- You can use lowercase letters, numbers, and underscores.
|
||||
- The ID must not start or end with an underscore.
|
||||
- Enter or edit the friendly name.
|
||||
- If needed, from the **Shown as** menu, you can select a different [device class](/integrations/homeassistant/#device-class).
|
||||
- If you like, add a [label](/docs/organizing/labels/).
|
||||
|
||||
### Possible values
|
||||

|
||||
|
||||
{% configuration customize %}
|
||||
friendly_name:
|
||||
description: Name of the entity as displayed in the UI.
|
||||
required: false
|
||||
type: string
|
||||
entity_picture:
|
||||
description: URL to use as picture for entity.
|
||||
required: false
|
||||
type: string
|
||||
icon:
|
||||
description: "Any icon from [Material Design Icons](https://pictogrammers.com/library/mdi/). Prefix name with `mdi:`, ie `mdi:home`. Note: Newer icons may not yet be available in the current Home Assistant release."
|
||||
required: false
|
||||
type: string
|
||||
assumed_state:
|
||||
description: For switches with an assumed state two buttons are shown (turn off, turn on) instead of a switch. By setting `assumed_state` to `false` you will get the default switch icon.
|
||||
required: false
|
||||
type: boolean
|
||||
default: true
|
||||
device_class:
|
||||
description: Sets the class of the device, changing the device state and icon that is displayed on the UI (see below). It does not set the `unit_of_measurement`.
|
||||
required: false
|
||||
type: device_class
|
||||
default: None
|
||||
unit_of_measurement:
|
||||
description: Defines the units of measurement, if any. This will also influence the graphical presentation in the history visualization as continuous value. Sensors with missing `unit_of_measurement` are showing as discrete values.
|
||||
required: false
|
||||
type: string
|
||||
default: None
|
||||
initial_state:
|
||||
description: Sets the initial state for automations, `on` or `off`.
|
||||
required: false
|
||||
type: boolean
|
||||
default: None
|
||||
{% endconfiguration %}
|
||||
4. To apply the changes, select **Update**.
|
||||
5. If you have used this entity in automations and scripts, you need to rename the entity ID there, too.
|
||||
- Go to {% my automations title="**Settings** > **Automations & Scenes**" %} open the respective tab and find your automation or script.
|
||||
|
||||
### Device class
|
||||
### Customizing an entity in YAML
|
||||
|
||||
Device class is currently supported by the following platforms:
|
||||
|
||||
- [Binary sensor](/integrations/binary_sensor/)
|
||||
- [Button](/integrations/button/)
|
||||
- [Cover](/integrations/cover/)
|
||||
- [Humidifier](/integrations/humidifier/)
|
||||
- [Media player](/integrations/media_player/)
|
||||
- [Number](/integrations/number/)
|
||||
- [Sensor](/integrations/sensor/)
|
||||
- [Switch](/integrations/switch/)
|
||||
|
||||
### Manual customization
|
||||
|
||||
<div class='note'>
|
||||
|
||||
If you implement `customize`, `customize_domain`, or `customize_glob` you must make sure it is done inside of `homeassistant:` or it will fail.
|
||||
|
||||
</div>
|
||||
|
||||
```yaml
|
||||
homeassistant:
|
||||
name: Home
|
||||
unit_system: metric
|
||||
# etc
|
||||
|
||||
customize:
|
||||
# Add an entry for each entity that you want to overwrite.
|
||||
thermostat.family_room:
|
||||
entity_picture: https://example.com/images/nest.jpg
|
||||
friendly_name: Nest
|
||||
switch.wemo_switch_1:
|
||||
friendly_name: Toaster
|
||||
entity_picture: /local/toaster.jpg
|
||||
switch.wemo_switch_2:
|
||||
friendly_name: Kitchen kettle
|
||||
icon: mdi:kettle
|
||||
switch.rfxtrx_switch:
|
||||
assumed_state: false
|
||||
media_player.my_media_player:
|
||||
source_list:
|
||||
- Channel/input from my available sources
|
||||
# Customize all entities in a domain
|
||||
customize_domain:
|
||||
light:
|
||||
icon: mdi:home
|
||||
automation:
|
||||
initial_state: "on"
|
||||
# Customize entities matching a pattern
|
||||
customize_glob:
|
||||
"light.kitchen_*":
|
||||
icon: mdi:description
|
||||
"scene.month_*_colors":
|
||||
icon: mdi:other
|
||||
```
|
||||
|
||||
### Reloading customize
|
||||
|
||||
Home Assistant offers a service to reload the core configuration while Home Assistant is running. This allows you to change your customize section and see your changes being applied without having to restart Home Assistant.
|
||||
|
||||
To reload customizations, navigate to Developer Tools > YAML and then press the "Reload Location & Customizations" button. If you don't see this, enable Advanced Mode on your user profile page first.
|
||||
|
||||
You can also use the [Quick bar](/docs/tools/quick-bar/#command-palette), and choose "Reload Location & Customizations".
|
||||
|
||||
Alternatively, you can reload via service call. Navigate to Developer Tools > Services tab, select `homeassistant.reload_core_config` from the dropdown and press the "Call Service" button.
|
||||
|
||||
<div class='note warning'>
|
||||
New customize information will be applied the next time the state of the entity gets updated.
|
||||
</div>
|
||||
If your entity is not supported, or you could not customize what you need via the user interface, you need to edit the settings in your {% term "`configuration.yaml`" %} file. For a detailed description of the entity configuration variables and [device class](/integrations/homeassistant/#device-class) information, refer to the [Home Assistant Core integration documentation](/integrations/homeassistant/).
|
||||
|
@ -19,7 +19,7 @@ The package configuration can include: `switch`, `light`, `automation`, `groups`
|
||||
|
||||
It can be specified inline or in a separate YAML file using `!include`.
|
||||
|
||||
Inline example, main `configuration.yaml`:
|
||||
Inline example, main {% term "`configuration.yaml`" %}:
|
||||
|
||||
```yaml
|
||||
homeassistant:
|
||||
@ -34,7 +34,7 @@ homeassistant:
|
||||
...
|
||||
```
|
||||
|
||||
Include example, main `configuration.yaml`:
|
||||
Include example, main {% term "`configuration.yaml`" %}:
|
||||
|
||||
```yaml
|
||||
homeassistant:
|
||||
@ -74,7 +74,7 @@ Integrations inside packages can only specify platform entries using configurati
|
||||
|
||||
## Create a packages folder
|
||||
|
||||
One way to organize packages is to create a folder named "packages" in your Home Assistant configuration directory. In the packages directory, you can store any number of packages in a YAML file. This entry in your `configuration.yaml` will load all YAML-files in this _packages_ folder and its subfolders:
|
||||
One way to organize packages is to create a folder named "packages" in your Home Assistant configuration directory. In the packages directory, you can store any number of packages in a YAML file. This entry in your {% term "`configuration.yaml`" %} will load all YAML-files in this _packages_ folder and its subfolders:
|
||||
|
||||
```yaml
|
||||
homeassistant:
|
||||
|
@ -1,6 +1,11 @@
|
||||
---
|
||||
title: "Remote access"
|
||||
description: "Setting up remote access for Home Assistant."
|
||||
related:
|
||||
- docs: /docs/configuration/securing/
|
||||
title: Securing your instance
|
||||
- url: https://www.nabucasa.com/config/remote/
|
||||
title: Home Assistant Cloud - remote access
|
||||
---
|
||||
|
||||
If you're interested in logging in to Home Assistant while away, you'll have to make your instance remotely accessible. Below are a few options to do this.
|
||||
@ -33,6 +38,14 @@ If you cannot access your Home Assistant installation remotely, remember to chec
|
||||
|
||||
<div class='note'>
|
||||
|
||||
Just putting a port up is not secure. You should definitely consider encrypting your traffic if you are accessing your Home Assistant installation remotely. For details please check the [set up encryption using Let's Encrypt](/blog/2017/09/27/effortless-encryption-with-lets-encrypt-and-duckdns/) blog post or this [detailed guide](/docs/ecosystem/certificates/lets_encrypt/) to using Let's Encrypt with Home Assistant.
|
||||
Just putting a port up is not secure. You should definitely consider encrypting your traffic if you are accessing your Home Assistant installation remotely. For details, please check the [set up encryption using Let's Encrypt](/blog/2017/09/27/effortless-encryption-with-lets-encrypt-and-duckdns/) blog post or this [detailed guide](https://community.home-assistant.io/t/certificate-authority-and-self-signed-certificate-for-ssl-tls/196970) to using Let's Encrypt with Home Assistant.
|
||||
|
||||
</div>
|
||||
|
||||
## Adding a remote URL to Home Assistant
|
||||
|
||||
To set the URL under which your Home Assistant can be accessed from outside your local network, follow these steps:
|
||||
|
||||
1. In the bottom left, select your username to go to your {% my profile title="**User profile**" %}, and make sure **Advanced mode** is enabled.
|
||||
2. Go to {% my network title="**Settings** > **System** > **Network**" %}.
|
||||
3. Under **Home Assistant URL**, enter the external URL that you previously set up for your instance.
|
||||
|
@ -1,15 +1,22 @@
|
||||
---
|
||||
title: "Storing secrets"
|
||||
description: "Storing secrets outside of your configuration.yaml."
|
||||
related:
|
||||
- docs: /docs/configuration/
|
||||
title: configuration.yaml file
|
||||
- docs: /docs/configuration/splitting_configuration/
|
||||
title: Splitting the configuration
|
||||
- docs: /docs/configuration/securing/
|
||||
title: Securing your instance
|
||||
---
|
||||
|
||||
The `configuration.yaml` file is a plain-text file, thus it is readable by anyone who has access to the file. The file contains passwords and API tokens which need to be redacted if you want to share your configuration. By using `!secret` you can remove any private information from your configuration files. This separation can also help you to keep easier track of your passwords and API keys, as they are all stored at one place and no longer spread across the `configuration.yaml` file or even multiple YAML files if you [split up your configuration](/docs/configuration/splitting_configuration/).
|
||||
The {% term "`configuration.yaml`" %} file is a plain-text file, thus it is readable by anyone who has access to the file. The file contains passwords and API tokens which need to be redacted if you want to share your configuration. By using `!secret` you can remove any private information from your configuration files. This separation can also help you to keep easier track of your passwords and API keys, as they are all stored at one place and no longer spread across the {% term "`configuration.yaml`" %} file or even multiple YAML files if you [split up your configuration](/docs/configuration/splitting_configuration/).
|
||||
|
||||
## Using `secrets.yaml`
|
||||
|
||||
The workflow for moving private information to `secrets.yaml` is very similar to the [splitting of the configuration](/docs/configuration/splitting_configuration/). Create a `secrets.yaml` file in your Home Assistant [configuration directory](/docs/configuration/).
|
||||
|
||||
The entries for password and API keys in the `configuration.yaml` file usually looks like the example below.
|
||||
The entries for password and API keys in the {% term "`configuration.yaml`" %} file usually looks like the example below.
|
||||
|
||||
```yaml
|
||||
rest:
|
||||
@ -40,9 +47,9 @@ rest_password: "YOUR_PASSWORD"
|
||||
When you start splitting your configuration into multiple files, you might end up with configuration in sub folders. Secrets will be resolved in this order:
|
||||
|
||||
- A `secrets.yaml` located in the same folder as the YAML file referencing the secret,
|
||||
- next, parent folders will be searched for a `secrets.yaml` file with the secret, stopping at the folder with the main `configuration.yaml`.
|
||||
- next, parent folders will be searched for a `secrets.yaml` file with the secret, stopping at the folder with the main {% term "`configuration.yaml`" %}.
|
||||
|
||||
To see where secrets are being loaded from, you can either add an option to your `secrets.yaml` file or use the `check_config` script. The latter is only available for Home Assistant Core installations given it's available through [`hass`](/docs/tools/hass/).
|
||||
To see where secrets are being loaded from, you can either add an option to your `secrets.yaml` file or use the `check_config` script. The latter is only available for {% term "Home Assistant Core" %} installations given it's available through [`hass`](/docs/tools/hass/).
|
||||
|
||||
*Option 1*: Print where secrets are retrieved from to the Home Assistant log by adding the following to `secrets.yaml`:
|
||||
|
||||
|
@ -1,6 +1,15 @@
|
||||
---
|
||||
title: "Securing"
|
||||
description: "Instructions on how to secure your Home Assistant installation."
|
||||
|
||||
related:
|
||||
- docs: /docs/configuration/
|
||||
- docs: /docs/configuration/secrets/
|
||||
title: Secrets.yaml file
|
||||
- docs: /cloud/
|
||||
title: Home Assistant Cloud
|
||||
- url: https://nabucasa.com/config/
|
||||
title: Nabu Casa
|
||||
---
|
||||
|
||||
One major advantage of Home Assistant is that it is not dependent on cloud services. Even if you are only using Home Assistant on a local network, you should take steps to secure your instance.
|
||||
@ -9,9 +18,9 @@ One major advantage of Home Assistant is that it is not dependent on cloud servi
|
||||
|
||||
Here's the summary of what you *must* do to secure your Home Assistant system:
|
||||
|
||||
- Centralize sensitive data in [secrets](/docs/configuration/secrets/) (but do remember to back them up)
|
||||
- Centralize sensitive data in [secrets](/docs/configuration/secrets/) (but do remember to back them up).
|
||||
- **Note**: Storing secrets in `secrets.yaml` does not encrypt them.
|
||||
- Regularly keep the system up to date
|
||||
- Regularly keep the system up to date.
|
||||
|
||||
## Remote access
|
||||
|
||||
@ -23,9 +32,9 @@ To expose your instance to the internet, use a [VPN](https://pivpn.io), or an [S
|
||||
|
||||
### Extras for manual installations
|
||||
|
||||
Besides the above we advise that you consider the following to improve security:
|
||||
Besides the above, we advise that you consider the following to improve security:
|
||||
|
||||
- For systems that use SSH set `PermitRootLogin no` in your sshd configuration (usually `/etc/ssh/sshd_config`) and to use SSH keys for authentication instead of passwords. This is particularly important if you enable remote access to your SSH services.
|
||||
- For systems that use SSH, set `PermitRootLogin no` in your sshd configuration (usually `/etc/ssh/sshd_config`) and use SSH keys for authentication instead of passwords. This is particularly important if you enable remote access to your SSH services.
|
||||
- Lock down the host following good practice guidance, for example:
|
||||
- [Securing Debian Manual](https://www.debian.org/doc/manuals/securing-debian-manual/index.en.html) (this also applies to Raspberry Pi OS)
|
||||
- [Red Hat Enterprise Linux 7 Security Guide](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/security_guide/index), [CIS Red Hat Enterprise Linux 7 Benchmark](https://www.cisecurity.org/cis-benchmarks/)
|
||||
|
@ -1,17 +1,32 @@
|
||||
---
|
||||
title: "Splitting up the configuration"
|
||||
description: "Splitting the configuration.yaml into several files."
|
||||
related:
|
||||
- docs: /docs/configuration/
|
||||
title: configuration.yaml file
|
||||
- docs: /examples/#example-configurationyaml
|
||||
title: Example configuration files by the community
|
||||
- docs: /docs/configuration/packages
|
||||
title: Using packages to organize configuration files
|
||||
---
|
||||
|
||||
So you've been using Home Assistant for a while now and your `configuration.yaml` file brings people to tears or you simply want to start off with the distributed approach, here's how to split the `configuration.yaml` into more manageable (read: humanly readable) pieces.
|
||||
So you've been using Home Assistant for a while now and your {% term "`configuration.yaml`" %} file brings people to tears because it has become so large. Or, you simply want to start off with the distributed approach. Here's how to split the {% term "`configuration.yaml`" %} into more manageable (read: human-readable) pieces.
|
||||
|
||||
First off, several community members have sanitized (read: without API keys/passwords etc) versions of their configurations available for viewing, you can see a list of them [here](/examples/#example-configurationyaml).
|
||||
## Example configuration files for inspiration
|
||||
|
||||
As commenting code doesn't always happen, please read on for the details.
|
||||
First off, several community members have sanitized (read: without API keys/passwords) versions of their configurations available for viewing. You can see a [list of example files here](/examples/#example-configurationyaml).
|
||||
|
||||
Now despite the logical assumption that the `configuration.yaml` will be replaced by this process it will in fact remain, albeit in a much less cluttered form.
|
||||
As commenting code doesn't always happen, please read on to learn in detail how configuration files can be structured.
|
||||
|
||||
In this lighter version we will still need what could be called the core snippet:
|
||||
## Analyzing the configuration files
|
||||
|
||||
In this section, we are going use some example configuration files and look at their structure and format in more detail.
|
||||
|
||||
Now you might think that the {% term "`configuration.yaml`" %} will be replaced during the splitting process. However, it will in fact remain, albeit in a much less cluttered form.
|
||||
|
||||
### The core configuration file
|
||||
|
||||
In this lighter version, we will still need what could be called the core snippet:
|
||||
|
||||
```yaml
|
||||
homeassistant:
|
||||
@ -27,9 +42,11 @@ homeassistant:
|
||||
customize: !include customize.yaml
|
||||
```
|
||||
|
||||
### Indentation, includes, comments, and modularization
|
||||
|
||||
Note that each line after `homeassistant:` is indented two (2) spaces. Since the configuration files in Home Assistant are based on the YAML language, indentation and spacing are important. Also note that seemingly strange entry under `customize:`.
|
||||
|
||||
`!include customize.yaml` is the statement that tells Home Assistant to insert the contents of `customize.yaml` at that point. This is how we are going to break a monolithic and hard to read file (when it gets big) into more manageable chunks.
|
||||
`!include customize.yaml` is the statement that tells Home Assistant to insert the parsed contents of `customize.yaml` at that point. The contents of the included file must be yaml data that is valid at the location it is included. This is how we are going to break a monolithic and hard to read file (when it gets big) into more manageable chunks.
|
||||
|
||||
Now before we start splitting out the different components, let's look at the other integrations (in our example) that will stay in the base file:
|
||||
|
||||
@ -51,9 +68,20 @@ mqtt:
|
||||
state_topic: "test/some_topic2"
|
||||
```
|
||||
|
||||
As with the core snippet, indentation makes a difference. The integration headers (`mqtt:`) should be fully left aligned (aka no indent), and the key (`sensor:`) should be indented two (2) spaces. The list `-` under the key `sensor` should be indented another two (2) spaces followed by a single space. The `mqtt` sensor list contains two (2) configurations containing two (2) keys each.
|
||||
As with the core snippet, indentation makes a difference:
|
||||
|
||||
While some of these integrations can technically be moved to a separate file they are so small or "one off's" where splitting them off is superfluous. Also, you'll notice the # symbol (hash/pound). This represents a "comment" as far as the commands are interpreted. Put another way, any line prefixed with a `#` will be ignored. This makes breaking up files for human readability really convenient, not to mention turning off features while leaving the entry intact.
|
||||
- The integration headers (`mqtt:`) should be fully left aligned (aka no indent).
|
||||
- The key (`sensor:`) should be indented two (2) spaces.
|
||||
- The list `-` under the key `sensor` should be indented another two (2) spaces followed by a single space.
|
||||
- The `mqtt` sensor list contains two (2) configurations, with two (2) keys each.
|
||||
|
||||
#### Comments
|
||||
|
||||
The # symbol (hash/pound) represents a "comment" as far as the commands are interpreted. Put another way, any line prefixed with a `#` will be ignored by the software. It is for humans only. Comments allow breaking up files for readability, as well as turning off features while leaving the entry intact.
|
||||
|
||||
#### Modularization and granularity
|
||||
|
||||
While some of these integrations could technically be moved to a separate file, they are so small or "one off's" where splitting them off is superfluous.
|
||||
|
||||
Now, lets assume that a blank file has been created in the Home Assistant configuration directory for each of the following:
|
||||
|
||||
@ -68,7 +96,7 @@ customize.yaml
|
||||
|
||||
`automation.yaml` will hold all the automation integration details. `zone.yaml` will hold the zone integration details and so forth. These files can be called anything but giving them names that match their function will make things easier to keep track of.
|
||||
|
||||
Inside the base configuration file add the following entries:
|
||||
Inside the base configuration file, add the following entries:
|
||||
|
||||
```yaml
|
||||
automation: !include automation.yaml
|
||||
@ -78,9 +106,15 @@ switch: !include switch.yaml
|
||||
device_tracker: !include device_tracker.yaml
|
||||
```
|
||||
|
||||
Nesting `!include`s (having an `!include` within a file that is itself `!include`d) will also work.
|
||||
#### Include statements and packages to split files
|
||||
|
||||
Some integrations support multiple top-level `!include`s, this includes integrations defining an IoT domain, e.g. `light`, `switch`, `sensor` as well as the `automation`, `script` and `template` integrations, if you give a different label to each one. Configuration for other integrations can instead be split up by using packages. To learn more about packages, see the [Packages](/docs/configuration/packages) page.
|
||||
Nesting `!include` statements (having an `!include` within a file that is itself `!include`d) will also work.
|
||||
|
||||
Some integrations support multiple top-level `!include` statements. This includes integrations defining an IoT domain. For example, `light`, `switch`, or `sensor`; as well as the `automation`, `script`, and `template` integrations, if you give a different label to each one.
|
||||
|
||||
Configuration for other integrations can instead be split up by using packages. To learn more about packages, see the [Packages](/docs/configuration/packages) page.
|
||||
|
||||
#### Top level keys
|
||||
|
||||
Example of multiple top-level keys for the `light` platform.
|
||||
|
||||
@ -189,11 +223,11 @@ learn more about packages, see the [Packages](/docs/configuration/packages) page
|
||||
|
||||
That about wraps it up.
|
||||
|
||||
If you have issues checkout `home-assistant.log` in the configuration directory as well as your indentations. If all else fails, head over to our [Discord chat server][discord] and ask away.
|
||||
If you have issues, checkout `home-assistant.log` in the configuration directory as well as your indentations. If all else fails, head over to our [Discord chat server][discord] and ask away.
|
||||
|
||||
## Debugging configuration files
|
||||
|
||||
If you have many configuration files, Home Assistant provides a CLI that allows you to see how it interprets them, each installation type has its own section in the common-tasks about this:
|
||||
If you have many configuration files, Home Assistant provides a CLI that allows you to see how it interprets them. Each installation type has its own section in the common-tasks about this:
|
||||
|
||||
- [Operating System](/common-tasks/os/#configuration-check)
|
||||
- [Container](/common-tasks/container/#configuration-check)
|
||||
|
@ -16,8 +16,9 @@ All states will always have an entity id, a state and a timestamp when last upda
|
||||
| `state.domain` | Domain of the entity. Example: `light`. |
|
||||
| `state.object_id` | Object ID of entity. Example: `kitchen`. |
|
||||
| `state.name` | Name of the entity. Based on `friendly_name` attribute with fall back to object ID. Example: `Kitchen Ceiling`. |
|
||||
| `state.last_updated` | Time the state was written to the state machine in UTC time. Note that writing the exact same state including attributes will not result in this field being updated. Example: `2017-10-28 08:13:36.715874+00:00`. |
|
||||
| `state.last_changed` | Time the state changed in the state machine in UTC time. This is not updated when there are only updated attributes. Example: `2017-10-28 08:13:36.715874+00:00`. |
|
||||
| `state.last_changed` | Time the state changed in the state machine in UTC time. This is not updated if only state attributes change. Example: `2017-10-28 08:13:36.715874+00:00`. |
|
||||
| `state.last_reported`| Time the state was written to the state machine in UTC time. This timestamp is updated regardless of any change to the state or a state attribute. Example: `2017-10-28 08:13:36.715874+00:00`. |
|
||||
| `state.last_updated` | Time the state or state attributes changed in the state machine in UTC time. This is not updated if neither state nor state attributes changed. Example: `2017-10-28 08:13:36.715874+00:00`. |
|
||||
| `state.attributes` | A dictionary with extra attributes related to the current state. |
|
||||
| `state.context` | A dictionary with extra attributes related to the context of the state. |
|
||||
|
||||
@ -41,8 +42,8 @@ When an attribute contains spaces, you can retrieve it like this: `state_attr('s
|
||||
|
||||
Context is used to tie {% term events %} and {% term states %} together in Home Assistant. Whenever an {% term automation %} or user interaction causes states to change, a new context is assigned. This context will be attached to all events and states that happen as result of the change.
|
||||
|
||||
| Field | Description |
|
||||
| ----- | ------------------------------------------------------------------- |
|
||||
| context_id | Unique identifier for the context. |
|
||||
| user_id | Unique identifier of the user that started the change. Will be `None` if action was not started by a user (ie. started by an automation) |
|
||||
| parent_id | Unique identifier of the parent context that started the change, if available. For example, if an automation is triggered, the context of the trigger will be set as parent. |
|
||||
| Field | Description |
|
||||
| ------------ | ------------------------------------------------------------------- |
|
||||
| `context_id` | Unique identifier for the context. |
|
||||
| `user_id` | Unique identifier of the user that started the change. Will be `None` if the action was not started by a user (for example, started by an automation). |
|
||||
| `parent_id` | Unique identifier of the parent context that started the change, if available. For example, if an automation is triggered, the context of the trigger will be set as parent. |
|
||||
|
@ -325,6 +325,32 @@ List of lights that are on with a brightness of 255:
|
||||
|
||||
{% endraw %}
|
||||
|
||||
|
||||
### State translated
|
||||
|
||||
Not supported in [limited templates](#limited-templates).
|
||||
|
||||
The `state_translated` function returns a translated state of an entity using a language that is currently configured in the [general settings](https://my.home-assistant.io/redirect/general/).
|
||||
|
||||
#### State translated examples
|
||||
|
||||
{% raw %}
|
||||
|
||||
```text
|
||||
{{ states("sun.sun") }} # below_horizon
|
||||
{{ state_translated("sun.sun") }} # Below horizon
|
||||
{{ "sun.sun" | state_translated }} # Below horizon
|
||||
```
|
||||
|
||||
```text
|
||||
{{ states("binary_sensor.movement_backyard") }} # on
|
||||
{{ state_translated("binary_sensor.movement_backyard") }} # Detected
|
||||
{{ "binary_sensor.movement_backyard" | state_translated }} # Detected
|
||||
```
|
||||
|
||||
{% endraw %}
|
||||
|
||||
|
||||
### Working with groups
|
||||
|
||||
Not supported in [limited templates](#limited-templates).
|
||||
@ -432,6 +458,51 @@ The same thing can also be expressed as a test:
|
||||
|
||||
{% endraw %}
|
||||
|
||||
### Floors
|
||||
|
||||
- `floors()` returns the full list of floor IDs.
|
||||
- `floor_id(lookup_value)` returns the floor ID for a given device ID, entity ID, area ID, or area name. Can also be used as a filter.
|
||||
- `floor_name(lookup_value)` returns the floor name for a given device ID, entity ID, area ID, or floor ID. Can also be used as a filter.
|
||||
- `floor_areas(floor_name_or_id)` returns the list of area IDs tied to a given floor ID or name. Can also be used as a filter.
|
||||
|
||||
#### Floors examples
|
||||
|
||||
{% raw %}
|
||||
|
||||
```text
|
||||
{{ floors() }} # ['floor_id']
|
||||
```
|
||||
|
||||
```text
|
||||
{{ floor_id('First floor') }} # 'first_floor'
|
||||
```
|
||||
|
||||
```text
|
||||
{{ floor_id('my_device_id') }} # 'second_floor'
|
||||
```
|
||||
|
||||
```text
|
||||
{{ floor_id('sensor.sony') }} # 'first_floor'
|
||||
```
|
||||
|
||||
```text
|
||||
{{ floor_name('first_floor') }} # 'First floor'
|
||||
```
|
||||
|
||||
```text
|
||||
{{ floor_name('my_device_id') }} # 'Second floor'
|
||||
```
|
||||
|
||||
```text
|
||||
{{ floor_name('sensor.sony') }} # 'First floor'
|
||||
```
|
||||
|
||||
```text
|
||||
{{ floor_areas('first_floor') }} # ['living_room', 'kitchen']
|
||||
```
|
||||
|
||||
{% endraw %}
|
||||
|
||||
### Areas
|
||||
|
||||
- `areas()` returns the full list of area IDs
|
||||
@ -482,10 +553,12 @@ The same thing can also be expressed as a test:
|
||||
|
||||
{% endraw %}
|
||||
|
||||
### Integrations
|
||||
### Entities for an integration
|
||||
|
||||
- `integration_entities(integration)` returns a list of entities that are associated with a given integration, such as `hue` or `zwave_js`.
|
||||
- `integration_entities(title)` if you have multiple instances set-up for an integration, you can also use the title you've set for the integration in case you only want to target a specific device bridge.
|
||||
- `integration_entities(config_entry_title)` if you have multiple entries set-up for an integration, you can also use the title you've set for the integration in case you only want to target a specific entry.
|
||||
|
||||
If there is more than one entry with the same title, the entities for all the matching entries will be returned, even if the entries are for different integrations. It's not possible to search for entities of an untitled integration.
|
||||
|
||||
#### Integrations examples
|
||||
|
||||
@ -501,6 +574,78 @@ The same thing can also be expressed as a test:
|
||||
|
||||
{% endraw %}
|
||||
|
||||
### Labels
|
||||
|
||||
- `labels()` returns the full list of label IDs, or those for a given area ID, device ID, or entity ID.
|
||||
- `label_id(lookup_value)` returns the label ID for a given label name.
|
||||
- `label_name(lookup_value)` returns the label name for a given label ID.
|
||||
- `label_areas(label_name_or_id)` returns the list of area IDs tied to a given label ID or name.
|
||||
- `label_devices(label_name_or_id)` returns the list of device IDs tied to a given label ID or name.
|
||||
- `label_entities(label_name_or_id)` returns the list of entity IDs tied to a given label ID or name.
|
||||
|
||||
Each of the label template functions can also be used as a filter.
|
||||
|
||||
#### Labels examples
|
||||
|
||||
{% raw %}
|
||||
|
||||
```text
|
||||
{{ labels() }} # ['christmas_decorations', 'energy_saver', 'security']
|
||||
```
|
||||
|
||||
```text
|
||||
{{ labels("living_room") }} # ['christmas_decorations', 'energy_saver']
|
||||
```
|
||||
|
||||
```text
|
||||
{{ labels("my_device_id") }} # ['security']
|
||||
```
|
||||
|
||||
```text
|
||||
{{ labels("light.christmas_tree") }} # ['christmas_decorations']
|
||||
```
|
||||
|
||||
```text
|
||||
{{ label_id('Energy saver') }} # 'energy_saver'
|
||||
```
|
||||
|
||||
```text
|
||||
{{ label_name('energy_saver') }} # 'Energy saver'
|
||||
```
|
||||
|
||||
```text
|
||||
{{ label_areas('security') }} # ['driveway', 'garden', 'porch']
|
||||
```
|
||||
|
||||
```text
|
||||
{{ label_devices('energy_saver') }} # ['deadbeefdeadbeefdeadbeefdeadbeef']
|
||||
```
|
||||
|
||||
```text
|
||||
{{ label_entities('security') }} # ['camera.driveway', 'binary_sensor.motion_garden', 'camera.porch']
|
||||
```
|
||||
|
||||
{% endraw %}
|
||||
|
||||
### Issues
|
||||
|
||||
- `issues()` returns all open issues as a mapping of (domain, issue_id) tuples to the issue object.
|
||||
- `issue(domain, issue_id)` returns a specific issue for the provided domain and issue_id.
|
||||
|
||||
#### Issues examples
|
||||
|
||||
{% raw %}
|
||||
|
||||
```text
|
||||
{{ issues() }} # { ("homeassistant", "deprecated_yaml_ping"): {...}, ("cloud", "legacy_subscription"): {...} }
|
||||
```
|
||||
|
||||
```text
|
||||
{{ issue('homeassistant', 'python_version') }} # {"breaks_in_ha_version": "2024.4", "domain": "homeassistant", "issue_id": "python_version", "is_persistent": False, ...}
|
||||
```
|
||||
|
||||
{% endraw %}
|
||||
|
||||
### Immediate if (iif)
|
||||
|
||||
A common case is to conditionally return a value based on another value.
|
||||
@ -587,12 +732,16 @@ For example, if you wanted to select a field from `trigger` in an automation bas
|
||||
|
||||
{% endraw %}
|
||||
|
||||
- `as_datetime()` converts a string containing a timestamp, or valid UNIX timestamp, to a datetime object.
|
||||
- `as_datetime(value, default)` converts a string containing a timestamp, or valid UNIX timestamp, to a datetime object. If that fails, it returns the `default` value or, if omitted, raises an error. When the input is already a datetime object it will be returned as is. in case the input is a datetime.date object, midnight will be added as time. This function can also be used as a filter.
|
||||
- `as_timestamp(value, default)` converts datetime object or string to UNIX timestamp. If that fails, returns the `default` value, or if omitted raises an error. This function can also be used as a filter.
|
||||
- `as_local()` converts datetime object to local time. This function can also be used as a filter.
|
||||
- `strptime(string, format, default)` parses a string based on a [format](https://docs.python.org/3.10/library/datetime.html#strftime-and-strptime-behavior) and returns a datetime object. If that fails, it returns the `default` value or, if omitted, raises an error.
|
||||
- `relative_time` converts datetime object to its human-friendly "age" string. The age can be in second, minute, hour, day, month or year (but only the biggest unit is considered, e.g., if it's 2 days and 3 hours, "2 days" will be returned). Note that it only works for dates _in the past_.
|
||||
- Using `relative_time()` will cause templates to be refreshed at the start of every new minute.
|
||||
- `time_since(datetime, precision)` converts a datetime object into its human-readable time string. The time string can be in seconds, minutes, hours, days, months, and years. `precision` takes an integer (full number) and indicates the number of units returned. The last unit is rounded. For example: `precision = 1` could return "2 years" while `precision = 2` could return "1 year 11 months". This function can also be used as a filter.
|
||||
If the datetime is in the future, returns 0 seconds.
|
||||
A precision of 0 returns all available units, default is 1.
|
||||
- `time_until(datetime, precision)` converts a datetime object into a human-readable time string. The time string can be in seconds, minutes, hours, days, months, and years. `precision` takes an integer (full number) and indicates the number of units returned. The last unit is rounded. For example: `precision = 1` could return "2 years" while `precision = 2` could return "1 year 11 months". This function can also be used as a filter.
|
||||
If the datetime is in the past, returns 0 seconds.
|
||||
A precision of 0 returns all available units, default is 1.
|
||||
- `timedelta` returns a timedelta object and accepts the same arguments as the Python `datetime.timedelta` function -- days, seconds, microseconds, milliseconds, minutes, hours, weeks.
|
||||
|
||||
{% raw %}
|
||||
@ -751,7 +900,7 @@ Examples:
|
||||
|
||||
Not supported in [limited templates](#limited-templates).
|
||||
|
||||
- `distance()` will measure the distance in kilometers between home, entity, coordinates.
|
||||
- `distance()` measures the distance between home, an entity, or coordinates. The unit of measurement (kilometers or miles) depends on the system's configuration settings.
|
||||
- `closest()` will find the closest entity.
|
||||
|
||||
#### Distance examples
|
||||
@ -916,7 +1065,10 @@ The numeric functions and filters raise an error if the input is not a valid num
|
||||
- `round(1, "half", default)` will always round to the nearest .5 value. `precision` should be 1 for this mode
|
||||
- Filter `value_one|bitwise_and(value_two)` perform a bitwise and(&) operation with two values.
|
||||
- Filter `value_one|bitwise_or(value_two)` perform a bitwise or(\|) operation with two values.
|
||||
- Filter `value_one|bitwise_xor(value_two)` perform a bitwise xor(\^) operation with two values.
|
||||
- Filter `ord` will return for a string of length one an integer representing the Unicode code point of the character when the argument is a Unicode object, or the value of the byte when the argument is an 8-bit string.
|
||||
- Filter `multiply(arg)` will convert the input to a number and multiply it by `arg`. Useful in list operations in conjunction with `map`.
|
||||
- Filter `add(arg)` will convert the input to a number and add it to `arg`. Useful in list operations in conjunction with `map`.
|
||||
|
||||
### Complex type checking
|
||||
|
||||
|
@ -1,6 +1,10 @@
|
||||
---
|
||||
title: "Troubleshooting your configuration"
|
||||
description: "Common problems with tweaking your configuration and their solutions."
|
||||
related:
|
||||
- docs: /docs/configuration/
|
||||
- docs: /docs/configuration/customizing-devices/
|
||||
title: Changing entity name and ID
|
||||
---
|
||||
|
||||
It can happen that you run into trouble while configuring Home Assistant. Perhaps an integration is not showing up or is acting strangely. This page will discuss a few of the most common problems.
|
||||
@ -17,7 +21,7 @@ If you have incorrect entries in your configuration files you can use the config
|
||||
|
||||
### Problems with the configuration
|
||||
|
||||
One of the most common problems with Home Assistant is an invalid `configuration.yaml` or other configuration file.
|
||||
One of the most common problems with Home Assistant is an invalid {% term "`configuration.yaml`" %} or other configuration file.
|
||||
|
||||
- Home Assistant provides a CLI that allows you to see how it interprets them, each installation type has its own section in the common-tasks about this:
|
||||
- [Operating System](/common-tasks/os/#configuration-check)
|
||||
@ -25,7 +29,7 @@ One of the most common problems with Home Assistant is an invalid `configuration
|
||||
- [Core](/common-tasks/core/#configuration-check)
|
||||
- [Supervised](/common-tasks/supervised/#configuration-check)
|
||||
|
||||
- The configuration files, including `configuration.yaml` must be UTF-8 encoded. If you see error like `'utf-8' codec can't decode byte`, edit the offending configuration and re-save it as UTF-8.
|
||||
- The configuration files, including {% term "`configuration.yaml`" %} must be UTF-8 encoded. If you see error like `'utf-8' codec can't decode byte`, edit the offending configuration and re-save it as UTF-8.
|
||||
- You can verify your configuration's YAML structure using [this online YAML parser](https://yaml-online-parser.appspot.com/) or [YAML Validator](https://codebeautify.org/yaml-validator/).
|
||||
- To learn more about the quirks of YAML, read [YAML IDIOSYNCRASIES](https://docs.saltproject.io/en/latest/topics/troubleshooting/yaml_idiosyncrasies.html) by SaltStack (the examples there are specific to SaltStack, but do explain YAML issues well).
|
||||
|
||||
@ -96,7 +100,9 @@ The only characters valid in entity names are:
|
||||
- Numbers
|
||||
- Underscores
|
||||
|
||||
If you create an entity with other characters then Home Assistant may not generate an error for that entity. However you will find that attempts to use that entity will generate errors (or possibly fail silently).
|
||||
The entity name must not start or end with an underscore. If you create an entity with other characters from the UI, Home Assistant validates the name. If you change the name directly in the YAML file, then Home Assistant may not generate an error for that entity. However, attempts to use that entity will generate errors (or possibly fail silently).
|
||||
|
||||
For instructions on how to change an entity name, refer to the section on [customizing entities](/docs/configuration/customizing-devices/).
|
||||
|
||||
## Debug logs and diagnostics
|
||||
|
||||
@ -123,3 +129,14 @@ After you download logs, you will also want to download the diagnostics for the
|
||||
<img src='/images/docs/configuration/download-diagnostics.png' alt='Example of Download Diagnostics'>
|
||||
Example of Download Diagnostics.
|
||||
</p>
|
||||
|
||||
### Handling unexpected restarts or crashes
|
||||
|
||||
Suppose you find that Home Assistant unexpectedly restarts or crashes; it's likely that you have a misbehaving integration impacting system stability. Home Assistant has a built-in debug option that can help find implementation errors. It can also block many unsafe thread operations from crashing the system. Enabling debug has a slight performance impact on the system and is not recommended for long-term use. To enable debug, add the following to your {% term "`configuration.yaml`" %}:
|
||||
|
||||
```yaml
|
||||
homeassistant:
|
||||
debug: true
|
||||
```
|
||||
|
||||
Once debug is enabled, periodically check [Home Assistant System Logs](https://my.home-assistant.io/redirect/logs) for new messages.
|
@ -1,13 +1,30 @@
|
||||
---
|
||||
title: "YAML"
|
||||
description: "Details about YAML to configure Home Assistant."
|
||||
title: "YAML syntax"
|
||||
description: "Details about the YAML syntax used to configure Home Assistant."
|
||||
related:
|
||||
- docs: /docs/configuration/
|
||||
title: configuration.yaml file
|
||||
- docs: /docs/configuration/secrets/
|
||||
title: Storing private data in separate file
|
||||
- docs: /docs/automation/yaml/
|
||||
title: Automation.yaml
|
||||
- docs: /docs/configuration/troubleshooting/
|
||||
title: Troubleshooting the configuration files
|
||||
- docs: /docs/configuration/#validating-the-configuration
|
||||
title: Validating the configuration
|
||||
- url: https://developers.home-assistant.io/docs/documenting/yaml-style-guide/
|
||||
title: YAML Style Guide for Home Assistant developers
|
||||
---
|
||||
|
||||
Home Assistant uses the [YAML](https://yaml.org/) syntax for configuration. YAML might take a while to get used to but is powerful in allowing you to express complex configurations.
|
||||
Home Assistant uses the [YAML](https://yaml.org/) syntax for configuration. While most integrations can be configured through the UI, some integrations require you to edit your [`configuration.yaml`](/docs/configuration/) file to specify its settings.
|
||||
|
||||
While more and more integrations are configured through the UI, for some, you will add code in your [`configuration.yaml`](/docs/configuration/) file to specify its settings.
|
||||
## YAML Style Guide
|
||||
|
||||
The following example entry assumes that you would like to set up the [notify integration](/integrations/notify) with the [pushbullet platform](/integrations/pushbullet).
|
||||
This page gives a high-level introduction to the YAML syntax used in Home Assistant. For a more detailed description and more examples, refer to the [YAML Style Guide for Home Assistant developers](https://developers.home-assistant.io/docs/documenting/yaml-style-guide/).
|
||||
|
||||
## A first example
|
||||
|
||||
The following YAML example entry assumes that you would like to set up the [notify integration](/integrations/notify) with the [pushbullet platform](/integrations/pushbullet).
|
||||
|
||||
```yaml
|
||||
notify:
|
||||
@ -21,22 +38,20 @@ notify:
|
||||
|
||||
The basics of YAML syntax are block collections and mappings containing key-value pairs. Each item in a collection starts with a `-` while mappings have the format `key: value`. This is somewhat similar to a Hash table or more specifically a dictionary in Python. These can be nested as well. **Beware that if you specify duplicate keys, the last value for a key is used**.
|
||||
|
||||
## Indentation in YAML
|
||||
|
||||
In YAML, indentation is important for specifying relationships. Indented lines are nested inside lines that are one level higher. In the above example, `platform: pushbullet` is a property of (nested inside) the `notify` integration.
|
||||
|
||||
Getting the right indentation can be tricky if you're not using an editor with a fixed-width font. Tabs are not allowed to be used for indentation. The convention is to use 2 spaces for each level of indentation.
|
||||
|
||||
To check if your YAML syntax is correct before loading it into Home Assistant, you can use the third-party service [YAML Validator](https://codebeautify.org/yaml-validator/) (not maintained by the Home Assistant community).
|
||||
## Comments
|
||||
|
||||
<div class='note'>
|
||||
Strings of text following a `#` are comments. They are ignored by the system. Comments explain in plain language what a particular code block is supposed to do. For future-you or someone else looking at the file.
|
||||
|
||||
Pay attention to not storing private data (passwords, API keys, etc.) directly in your `configuration.yaml` file. Private data can be stored in either a [separate file](/docs/configuration/secrets/) or in [environmental variables](/docs/configuration/yaml/#using-environment-variables), which circumvents this security problem.
|
||||
|
||||
</div>
|
||||
|
||||
Strings of text following a `#` are comments and are ignored by the system.
|
||||
### Example with comment and nesting
|
||||
|
||||
The next example shows an [input_select](/integrations/input_select) integration that uses a block collection for the values of options.
|
||||
The other properties (like `name:`) are specified using mappings. Note that the second line just has `threat:` with no value on the same line. Here threat is the name of the input_select and the values for it are everything nested below it.
|
||||
The other properties (like `name:`) are specified using mappings. Note that the second line just has `threat:` with no value on the same line. Here, `threat` is the name of the input_select. The values for it are everything nested below it.
|
||||
|
||||
```yaml
|
||||
input_select:
|
||||
@ -51,6 +66,8 @@ input_select:
|
||||
initial: 0
|
||||
```
|
||||
|
||||
### Example of nested mapping
|
||||
|
||||
The following example shows nesting a collection of mappings in a mapping. In Home Assistant, this would create two sensors that each use the MQTT platform but have different values for their `state_topic` (one of the properties used for MQTT sensors).
|
||||
|
||||
```yaml
|
||||
@ -65,8 +82,8 @@ sensor:
|
||||
|
||||
### Environment variables
|
||||
|
||||
On Home Assistant Core installations, you can include values from your system's environment variables with `!env_var`.
|
||||
Note that this will only work for Home Assistant Core installations, in a scenario where it is possible to specify these.
|
||||
On {% term "Home Assistant Core" %} installations, you can include values from your system's environment variables with `!env_var`.
|
||||
Note that this will only work for {% term "Home Assistant Core" %} installations, in a scenario where it is possible to specify these.
|
||||
Regular Home Assistant users are recommended to use `!include` statements instead.
|
||||
|
||||
```yaml
|
||||
@ -120,3 +137,9 @@ Not quoting the value may generate an error such as:
|
||||
```txt
|
||||
not a valid value for dictionary value @ data
|
||||
```
|
||||
|
||||
## Validating YAML syntax
|
||||
|
||||
With all these indents and rules, it is easy to make a mistake. The best way to check if your YAML syntax is correct (validate) depends on the editor you use. We can't list them all here.
|
||||
|
||||
- If you edit the files directly in Home Assistant, refer to the section: [Validating the configuration](/docs/configuration/#validating-the-configuration)
|
||||
|
@ -15,7 +15,7 @@ Think of this in a parallel to speed and distance: Power is the speed you are go
|
||||
|
||||
Therefore Energy (kiloWatt-hour) is not an average of the Power you are consuming over a given period of time (the unit of the average power would be Watt or kiloWatt again). Energy is the integral (mathematical operation) of the Power function.
|
||||
|
||||
This difference is very important as you need to use the proper entities in our Energy Panel.
|
||||
This difference is very important as you need to use the proper entities in our Energy dashboard.
|
||||
|
||||
## Creating an Energy Sensor out of a Power Sensor
|
||||
|
||||
@ -29,9 +29,9 @@ If you are using a 3rd party device (e.g. not reading directly from your utility
|
||||
|
||||
To accomplish such, you can use the [utility_meter integration](/integrations/utility_meter/). With this integration, you define as many tariffs as required (in accordance with your utility provider contract) and HA will be able to differentiate energy consumptions in each of the tariffs. Please note that each utility provider has its own time schedules for peak and off-peak and you are required to create an automation that switches the utility_meter entity from one tariff to the other.
|
||||
|
||||
## The energy panel is not visible
|
||||
## The energy dashboard is not visible
|
||||
|
||||
If you do not see the Energy panel in the sidebar, make sure you have not removed [`default_config:`](/integrations/default_config/) from your `configuration.yaml`. If you have, you will need to add the `energy:` integration manually.
|
||||
If you do not see the Energy dashboard in the sidebar, make sure you have not removed [`default_config:`](/integrations/default_config/) from your {% term "`configuration.yaml`" %}. If you have, you will need to add the `energy:` integration manually.
|
||||
|
||||
## Troubleshooting missing entities
|
||||
|
||||
|
@ -31,4 +31,4 @@ 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).
|
||||
[Diaphragm/bellows gas meters](https://en.wikipedia.org/wiki/Gas_meter#Diaphragm/bellows_meters) are the most common type of gas meter, seen in almost all residential installations, and their movement can frequently be observed with a magnetometer. The [QMC5883L](https://esphome.io/components/sensor/qmc5883l.html) and [HMC5883L](https://esphome.io/components/sensor/hmc5883l.html) are common and inexpensive options that ESPHome supports. A project that makes it easy to use these magnetometers and calibrate them is [this water-gas-meter project on GitHub](https://github.com/tronikos/esphome-magnetometer-water-gas-meter).
|
||||
|
@ -19,6 +19,6 @@ Smart relays sit behind your "normal" switches and make them smart. It allows yo
|
||||
|
||||
## Devices with power (W) sensors
|
||||
|
||||
Some smart devices, such as air conditioning, boilers, and others, may provide a power sensor, measured in Watts. You can use the [Integration (Riemann sum integral) integration](/integrations/integration/#energy) to calculate the energy your device is using. You can then use the energy sensor in the Energy Dashboard, as individual devices.
|
||||
Some smart devices, such as air conditioning, boilers, and others, may provide a power sensor, measured in Watts. You can use the [Integration (Riemann sum integral) integration](/integrations/integration/#energy) to calculate the energy your device is using. You can then use the energy sensor in the Energy Dashboard, as individual devices. For information on setting up an entity for use in the **Energy** dashboard, refer to the [energy FAQ](/docs/energy/faq/#troubleshooting-missing-entities).
|
||||
|
||||
<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;'>
|
||||
|
@ -5,32 +5,66 @@ description: "Learn how to add information about your water usage to Home Assist
|
||||
|
||||
Home Assistant allows you to track your water usage in the home energy management too.
|
||||
|
||||
Although water is not strictly "energy", it is still a valuable resource to track and monitor as it is often tightly coupled with energy usage (like gas). Additionally, it can help you reduce your ecological footprint by using less water.
|
||||
Although water usage is not strictly "energy", it is still a valuable resource to track and monitor as it is often tightly coupled with energy usage (like gas). Additionally, it can help you reduce your ecological footprint by using less water.
|
||||
|
||||
## Hardware
|
||||
### Home water meters
|
||||
|
||||
Home Assistant will need to know the amount of water that is being consumed in order to be able to track it. Several hardware options are available to do this.
|
||||
There are several ways to measure water usage in your home. Multiple methods exist for reading your water usage. Older water meters typically feature a common arrow or only display total consumption. For these meters, you may require an [AI-on-the-edge-device](https://github.com/jomjol/AI-on-the-edge-device) with an ESP32 camera. While effective, this solution can be tedious to set up as it leans towards a DIY approach.
|
||||
|
||||
Newer water meters are equipped with a rotary disk that can be read using two methods. The first method utilizes light sensors, while the second method employs proximity sensors. The proximity sensor detects changes in the magnetic field, with each rotation of the disk representing one liter of water used. Meanwhile, the light sensor method operates on an autocorrelation technique, providing accuracy down to 100 milliliters instead of the traditional one-liter step.
|
||||
|
||||
For most water meters, the rotary encoder disk suffices the light sensor version. However, some older or specialized meters may necessitate the use of a proximity meter instead.
|
||||
|
||||
Home Assistant also has integrations build into the platform that connect with existing products
|
||||
|
||||
## Home Assistant integrations
|
||||
|
||||
Home Assistant will need to know the amount of water that is being consumed to be able to track usage. Several [water metering (fluid flow rate sensor device)](https://en.wikipedia.org/wiki/Water_metering) hardware options are available to do this. Depending on your setup, the required hardware is provided by your public water utility company, or you may need to buy your own.
|
||||
|
||||
Some hardware with water meters may also provide additional practical functions or sensors, such as [valve](/integrations/valve), for example, for controlling water shutoff, or temperature and pressure (to enable freeze alarms).
|
||||
|
||||
We have the following integrations available for existing products that can provide information about water usage:
|
||||
|
||||
- [Flo](/integrations/flo)
|
||||
- [Flume](/integrations/flume)
|
||||
- [HomeWizard Energy](/integrations/homewizard)
|
||||
- [StreamLabs](/integrations/streamlabswater)
|
||||
- [Suez Water](/integrations/suez_water)
|
||||
|
||||
Alternatively, the following shops sell ESPHome-based devices, that use a proximity sensor to detect a rotating magnet in your water meter and use that pulse to count each liter of water used.
|
||||
There are also products for water usage monitoring that are based on existing common IoT protocol standards:
|
||||
|
||||
- [S0tool](https://huizebruin.github.io/s0tool/) ("Made for ESPHome" approved)
|
||||
- [Z-Wave](/integrations/zwave_js)
|
||||
- [Zigbee](/integrations/zha)
|
||||
- [Matter (BETA)](/integrations/matter)
|
||||
|
||||
|
||||
## Community-made sensors
|
||||
|
||||
If your water meter lacks a rotary disk, magnetic disk, or coil. There are alternative solutions available to seamlessly integrate water monitoring into your smart home setup:
|
||||
|
||||
- [AI-on-the-edge-device](https://github.com/jomjol/AI-on-the-edge-device) is a project running on an ESP32-CAM and can be fully integrated into Home Assistant using the Home Assistant Discovery Functionality of MQTT. It digitalizes your gas/water/electricity meter display and provides its data in various ways., `Gallons Per Minute` (gal/min), and `Gallons to Recharge` (gal):
|
||||
|
||||
- [cullAssistant](https://github.com/LelandSindt/cullAssistant) (ESPHome)
|
||||
|
||||
Alternatively, the following shops sell ESPHome-based devices that use a 3-phase light sensor to detect a rotating disk in your water meter and convert this to the amount of water used in milliliters (ml):
|
||||
- [Muino water meter reader](https://watermeter.muino.nl/) (ESPHome)
|
||||
|
||||
Alternatively, the following shops sell ESPHome-based devices, that use a proximity sensor to detect a rotating magnet in your water meter and use that pulse to count each liter of water used:
|
||||
- [S0tool](https://s0tool.nl/) ("Made for ESPHome" approved)
|
||||
- [Waterlezer dongle](https://smart-stuff.nl/product/esphome-waterlezer-dongle/) (Dutch)
|
||||
- [Slimme Watermeter Gateway](https://smartgateways.nl/product/slimme-watermeter-gateway/) (Dutch)
|
||||
- [watermeterkit.nl](https://watermeterkit.nl/) (Dutch)
|
||||
|
||||
Alternatively, the following shops sell ESPHome-based devices that use a 3-phase light sensor to detect a rotating disk in your water meter and convert this to the amount of water used in milliliters (ml).
|
||||
- [Muino water meter reader](https://watermeter.muino.nl/)
|
||||
## DIY
|
||||
|
||||
Maybe you like to build one yourself?
|
||||
- Pieter Brinkman has quite a [nice blog article on how to create your own water sensor](https://www.pieterbrinkman.com/2022/02/02/build-a-cheap-water-usage-sensor-using-esphome-home-assistant-and-a-proximity-sensor/) using ESPHome, or [build a water meter](https://www.ztatz.nl/p1-monitor-watermeter/) that works with the [P1 Monitor](/integrations/p1_monitor) integration.
|
||||
- [AI-on-the-edge-device](https://github.com/jomjol/AI-on-the-edge-device) is a project running on an ESP32-CAM and can be fully integrated into Home Assistant using the Home Assistant Discovery Functionality of MQTT. It digitalizes your gas/water/electricity meter display and provides its data in various ways.
|
||||
- [watermeter](https://github.com/nohn/watermeter) running classic OCR and statistical pattern recognition on any system supporting Docker
|
||||
- Pieter Brinkman has quite a [nice blog article on how to create your own water sensor](https://www.pieterbrinkman.com/2022/02/02/build-a-cheap-water-usage-sensor-using-esphome-home-assistant-and-a-proximity-sensor/) using ESPHome, or [build a water meter](https://www.ztatz.nl/p1-monitor-watermeter/) that works with the [P1 Monitor](/integrations/p1_monitor) integration.
|
||||
- [AI-on-the-edge-device](https://github.com/jomjol/AI-on-the-edge-device) is a project running on an ESP32-CAM and can be fully integrated into Home Assistant using the Home Assistant Discovery Functionality of MQTT. It digitalizes your gas/water/electricity meter display and provides its data in various ways.
|
||||
- [watermeter](https://github.com/nohn/watermeter) running classic OCR and statistical pattern recognition on any system supporting Docker
|
||||
- [Muino water meter reader 3-phase](https://muino.nl/product/3-phase-muino-light-sensor-encoder/) Using the 3-phase sensor technique, a battery-powered version can be possible with this sensor.
|
||||
- [Read water meter with magnetometer](https://github.com/tronikos/esphome-magnetometer-water-gas-meter) using [QMC5883L](https://esphome.io/components/sensor/qmc5883l.html) or [HMC5883L](https://esphome.io/components/sensor/hmc5883l.html), common and inexpensive magnetometers. This should be compatible with all the water meters the Flume water sensor is compatible with, which is [compatible](https://help.flumewater.com/en/articles/1618594-is-the-flume-device-compatible-with-all-water-meters) with about 95% of water meters in the United States.
|
||||
|
||||
If you manually integrate your sensors, for example, using the [MQTT](/integrations/mqtt) or [RESTful](/integrations/rest) integrations: Make sure you set and provide the `device_class`, `state_class`, and `unit_of_measurement` for those sensors.
|
||||
|
||||
|
@ -1,93 +0,0 @@
|
||||
---
|
||||
title: "Browsers"
|
||||
description: "Browser compatibility list"
|
||||
---
|
||||
|
||||
Home Assistant requires a web browser to show the frontend and supports all major modern browsers. We don't test the web interface against all available browsers but this page tracks different browsers on various operating systems and should help you to pick a browser which works. The "Release" column contains the release number which was tested. This doesn't mean that older or newer releases will not work.
|
||||
|
||||
If a browser is listed as working but you are still having problems, it is possible that some add-on or extension may be the problem. Some add-ons or extension are known to cause issue with the frontend, but it's not possible to test them all.
|
||||
|
||||
If you are having issues with the frontend displaying correctly, you should disable all your add-ons or extensions and enable them one at a time. At last but not least, consider restarting your browser.
|
||||
|
||||
We would appreciate if you help to keep this page up-to-date and add feedback.
|
||||
|
||||
## Microsoft Windows
|
||||
|
||||
| Browser | Release | State | Comments |
|
||||
| :------------------------ |:---------------|:-----------|:-------------------------|
|
||||
| Internet Explorer ([IE]) | 11 | Not supported | Does not support promises. |
|
||||
| Microsoft [Edge] | deli. Win 10 | works | Streaming updates not working. |
|
||||
| [Chrome] | 61.0.3163.100 | works | |
|
||||
| [Firefox] | 62.0.3 | works | |
|
||||
| [Iridium] | 48.2 | works | |
|
||||
| [Opera] | 42.0.2393.351 | works | |
|
||||
|
||||
## macOS
|
||||
|
||||
| Browser | Release | State | Comments |
|
||||
| :-------------------- |:---------------|:-----------|:-------------------------|
|
||||
| [Safari] | | works | Not working with Safari Technology Preview 112 beta |
|
||||
|
||||
## Linux
|
||||
|
||||
| Browser | Release | State | Comments |
|
||||
| :-------------------- |:---------------|:-----------|:-------------------------|
|
||||
| [Firefox] | 62.0 | works | |
|
||||
| [Midori] | 0.5.11 | works | |
|
||||
| [Chromium] | 69.0.3497.81 | works | |
|
||||
| [Conkeror] | 1.0.2 | works | |
|
||||
| [Tor Browser] | 7.0.8 | works | |
|
||||
| [Konqueror] | | unknown | |
|
||||
| [Uzbl] | 0.9.0 | works | |
|
||||
| [Opera] | 42.0.2393.351 | works | |
|
||||
| [Lynx] | 2.12 | fails | loads empty page |
|
||||
| [elinks] | | fails | page with manifest and import |
|
||||
| [w3m] | 0.5.3 | fails | display the icon shown while loading HA |
|
||||
| [Epiphany] | 3.18.5 | works | |
|
||||
| [surf] | 0.7 | works | |
|
||||
| [Chrome] | 71.0.3578.98 | works | |
|
||||
| [Waterfox] | 56.2.6 | fails | |
|
||||
|
||||
## Android
|
||||
|
||||
| Browser | Release | State | Comments |
|
||||
| :-------------------- |:---------------|:-----------|:-------------------------|
|
||||
| [Chrome] | 50.0.2661.89 | works | Can also be added to desktop |
|
||||
| [Firefox] | 46.0.1 | works | Can also be added to desktop |
|
||||
| [Opera] | 42.0.2246.112628 | works | Can also be added to desktop |
|
||||
|
||||
## iOS
|
||||
|
||||
| Browser | Release | State | Comments |
|
||||
| :-------------------- |:---------------|:-----------|:-------------------------|
|
||||
| [Safari] | | works | Can also be added to desktop. Not working in iOS 14 beta 5. |
|
||||
| [Chrome] | | works | Not working in iOS 14 beta 5. |
|
||||
|
||||
There are reports that devices running with iOS prior to iOS 10, especially old iPads, are having trouble. Devices running iOS 14 beta 5, you will not be able to interact with Home Assistant controls.
|
||||
|
||||
## webOS
|
||||
|
||||
| Browser | Release | State | Comments |
|
||||
| :-------------------- |:---------------|:-----------|:-------------------------|
|
||||
| [LG webOS TV Built-in]| webOS 04.80.03 | works | including magic remote |
|
||||
|
||||
[Chrome]: https://www.google.com/chrome/
|
||||
[Chromium]: https://www.chromium.org/
|
||||
[Conkeror]: http://conkeror.org/
|
||||
[Edge]: https://www.microsoft.com/en-us/edge
|
||||
[elinks]: http://elinks.or.cz/
|
||||
[Epiphany]: https://wiki.gnome.org/Apps/Web
|
||||
[Firefox]: https://www.mozilla.org/en-US/firefox/
|
||||
[IE]: https://support.microsoft.com/en-us/help/17621/internet-explorer-downloads
|
||||
[Iridium]: https://iridiumbrowser.de/
|
||||
[Konqueror]: https://konqueror.org/
|
||||
[Lynx]: https://lynx.browser.org/
|
||||
[Midori]: https://astian.org/en/midori-browser/
|
||||
[Opera]: https://www.opera.com/
|
||||
[Safari]: https://www.apple.com/safari/
|
||||
[surf]: https://surf.suckless.org/
|
||||
[Tor Browser]: https://www.torproject.org/
|
||||
[Uzbl]: https://www.uzbl.org/
|
||||
[w3m]: https://w3m.sourceforge.net/
|
||||
[Waterfox]: https://www.waterfox.net
|
||||
[LG webOS TV Built-In]: https://www.lg.com/uk/support/help-library/details-on-enjoying-internet-browsing-on-your-lg-webos-tv-CT00008334-1435838149474
|
@ -1,15 +1,22 @@
|
||||
---
|
||||
title: "I'm locked out!"
|
||||
description: "Options for regaining access"
|
||||
related:
|
||||
- docs: /common-tasks/os/#listing-all-users-from-the-command-line
|
||||
title: Listing all usernames via command line
|
||||
- url: https://yellow.home-assistant.io/guides/factory-reset/
|
||||
title: Reset the Yellow
|
||||
- url: https://green.home-assistant.io/guides/reset/
|
||||
title: Reset the Green
|
||||
---
|
||||
|
||||
The sections below deal with recovering from a situation where you are not able to sign in,
|
||||
or need to recover your data.
|
||||
|
||||
## Forgot user name
|
||||
## Forgot username
|
||||
|
||||
If you’ve forgotten your username, ask the owner to help you.
|
||||
If you are the owner and have forgotten your user name, then you need to [prepare the system to start a new onboarding process](/docs/locked_out/#to-prepare-the-system-to-start-a-new-onboarding-process).
|
||||
If you are using the {% term "Home Assistant Operating System" %} and have access to the Home Assistant server, you can connect a terminal and enter the `auth list` command. This command lists all users that are registered on your Home Assistant.
|
||||
|
||||
## Forgot password
|
||||
|
||||
@ -49,9 +56,9 @@ Use this procedure only if the following conditions are met:
|
||||
- [Using the terminal](https://green.home-assistant.io/guides/use-terminal/)
|
||||
- If you are using another board, connect a keyboard and monitor to your device and access the terminal. The procedure is likely very similar to the one described for the Green in the step above.
|
||||
2. Once you have opened the Home Assistant command line, enter the following command:
|
||||
- Note: `existing_user` is a placeholder. Replace it with your user name.
|
||||
- Note: `existing_user` is a placeholder. Replace it with your username.
|
||||
- Note: `new_password` is a placeholder. Replace it with your new password.
|
||||
- **Command**: `auth reset --username existing_user --password new_password`
|
||||
- **Command**: `ha auth reset --username existing_user --password new_password`
|
||||
- **Troubleshooting**: If you see the message `zsh: command not found: auth`, you likely did not enter the command in the serial console connected to the device itself, but in the terminal within Home Assistant.
|
||||
3. You can now log in to Home Assistant using this new password.
|
||||
|
||||
|
55
source/_docs/organizing.markdown
Normal file
55
source/_docs/organizing.markdown
Normal file
@ -0,0 +1,55 @@
|
||||
---
|
||||
title: "Grouping your assets"
|
||||
description: "Grouping your assets makes it easier to find them and allows you to target groups in automations."
|
||||
related:
|
||||
- docs: /docs/organizing/areas/
|
||||
title: Areas
|
||||
- docs: /docs/organizing/floors/
|
||||
title: Floors
|
||||
- docs: /docs/organizing/labels/
|
||||
title: Labels
|
||||
- docs: /docs/organizing/categories/
|
||||
title: Categories
|
||||
---
|
||||
|
||||
Once you have more devices, you may want to target entire groups of devices in automations. It also becomes more challenging to find items in lists. There are a few tools to group your assets: [Areas](#areas), [floors](#floors), [labels](#labels), and [categories](#categories).
|
||||
|
||||
| Taxonomy | Automation target | Entity can have multiple |
|
||||
| -------- | ----------------- | ------------------------ |
|
||||
| Area | ✅ | ❌ |
|
||||
| Floor | ✅ | ❌ |
|
||||
| Label | ✅ | ✅ |
|
||||
| Category | ❌ | ❌ |
|
||||
|
||||
## Area
|
||||
|
||||
- Groups {% term devices %} and {% term entities %}.
|
||||
- Can be assigned to one floor.
|
||||
- Reflects a physical area (or room) in your home.
|
||||
- Can be used in automations: Allows targeting an entire group of devices with a service call. For example, turning off all the lights in the living room.
|
||||
|
||||
- Areas can also be used to automatically generate cards, such as the [Area card](/dashboards/area/).
|
||||
|
||||
## Floor
|
||||
|
||||
- Groups areas.
|
||||
- {% term Devices %} and {% term entities %} cannot be assigned to floors, but to areas only.
|
||||
- Can have multiple areas.
|
||||
- Can be used in automations and scripts as a target for actions. For example, to turn off all the lights on the downstairs floor when you go to bed.
|
||||
|
||||
<img class="no-shadow" src='/images/organizing/floors.png' alt='Screenshots showing areas settings page, which now also shows the areas grouped by floor.'>
|
||||
|
||||
## Labels
|
||||
|
||||
- Can be assigned to areas, devices, entities, automations, scenes, scripts, and helpers.
|
||||
- Can be used in automations and scripts as a target for actions and services.
|
||||
- Labels can also be used to filter data in tables. For example, you can filter the list of devices to show only devices with the label `heavy energy usage` or turn these devices off when there is not a lot of solar energy available.
|
||||
|
||||
<img class="no-shadow" src='/images/organizing/labels.png' alt='Screenshots showing the new labels assigned to automations.'>
|
||||
|
||||
## Category
|
||||
|
||||
- Groups items in a table.
|
||||
- Categories are unique for each table. The automations page can have different categories than the scene, scripts, or helpers settings page.
|
||||
|
||||
<img class="no-shadow" src='/images/organizing/categories.png' alt='Screenshots the new categories. Automations are grouped into their categories, making it easier to get an overview or to filter them.'>
|
90
source/_docs/organizing/areas.markdown
Normal file
90
source/_docs/organizing/areas.markdown
Normal file
@ -0,0 +1,90 @@
|
||||
---
|
||||
title: "Areas"
|
||||
description: "Group your devices and entities in areas and group areas in floors."
|
||||
related:
|
||||
- docs: /docs/organizing/areas/
|
||||
title: Areas
|
||||
- docs: /docs/organizing/
|
||||
- docs: /docs/organizing/labels/
|
||||
title: Labels
|
||||
- docs: /docs/organizing/categories/
|
||||
title: Categories
|
||||
- docs: /docs/configuration/templating/#areas
|
||||
title: Using areas in template
|
||||
---
|
||||
|
||||
An area in Home Assistant is a logical grouping of {% term devices %} and {% term entities %} that are meant to match areas (or rooms) in the physical world of your home. For example, the "Living room" area groups devices and entities in your living room. Areas allow you to target an entire group of devices with a service call. For example, turning off all the lights in the living room.
|
||||
Areas can be assigned to floors. Areas can also be used to automatically generate cards, such as the [Area card](/dashboards/area/).
|
||||
|
||||
## Creating an area
|
||||
|
||||
Follow these steps to create a new area from the **Areas** view.
|
||||
|
||||
1. Go to {% my areas title="**Settings** > **Areas, labels & zones**" %} and select **Create area**.
|
||||
2. In the dialog, enter the area details:
|
||||
- Give the area a **Name** (required).
|
||||
- Add an icon (We use [Material icons](https://pictogrammers.com/library/mdi/)).
|
||||
- Assign the area to a floor.
|
||||
- If you have not created floors yet, you can [create a new one](/docs/organizing/floors/#creating-a-floor).
|
||||
- The number can be negative. For example for underground floors.
|
||||
- This number can later be used for sorting.
|
||||
- Add an image representing that area.
|
||||
- Add an **Alias**.
|
||||
- Aliases are alternative names used in [voice assistants](/voice_control/aliases/) to refer to an area, entity, or floor.
|
||||
|
||||

|
||||
3. Select **Add**.
|
||||
|
||||
**Result**: A new area is created.
|
||||
|
||||
## Assigning areas to floors and add labels
|
||||
|
||||
If an area has not yet been assigned to a floor, it is shown in the **Unassigned areas** section. Follow these steps to assign an area to a floor.
|
||||
|
||||
1. Go to {% my areas title="**Settings** > **Areas, labels & zones**" %} and select **Create area**.
|
||||
2. On the area card, select the pencil icon.
|
||||
3. In the dialog, select the floor and add labels, if you like.
|
||||
|
||||
## Assigning an area to multiple items
|
||||
|
||||
You can assign an area to multiple items at once in the automation, scene, script, and device pages.
|
||||
|
||||
1. Depending on what you want to assign, go to one of the following pages:
|
||||
- For automations, scripts, or scenes {% my automations title="**Settings** > **Automations & Scenes**" %} and open the respective tab.
|
||||
- For devices, go to {% my devices title="**Settings** > **Devices & services** > **Devices**" %}.
|
||||
2. In the list, [select all the items](/docs/organizing/filtering#selecting-multiple-items-in-a-table) you want to assign to an area.
|
||||
|
||||

|
||||
|
||||
3. In the top right corner, select **Move to area** and select the target area from the list.
|
||||
|
||||
## Editing an area
|
||||
|
||||
Follow these steps to edit an area.
|
||||
|
||||
1. Go to {% my areas title="**Settings** > **Areas, labels & zones**" %} and on the area card, select the pencil icon.
|
||||
2. In the dialog, adjust the area details you want to change:
|
||||
- Edit the area **Name**.
|
||||
- Add an icon (We use [Material icons](https://pictogrammers.com/library/mdi/)).
|
||||
- Assign the area to a floor.
|
||||
- If you have not created floors yet, you can [create a new one](/docs/organizing/floors/#creating-a-floor).
|
||||
- The number can be negative. For example for underground floors.
|
||||
- This number can later be used for sorting.
|
||||
- Add an image representing that area.
|
||||
- Add an **Alias**.
|
||||
- Aliases are alternative names used in [voice assistants](/voice_control/aliases/) to refer to an area, entity, or floor.
|
||||
|
||||
## Deleting an area
|
||||
|
||||
Follow these steps to delete an area. It will be removed from all the floors it was assigned to. All the devices that were assigned to this area will become unassigned.
|
||||
If you used this area in automations or script as targets, or with voice assistant, these will no longer work.
|
||||
|
||||
1. Go to {% my areas title="**Settings** > **Areas, labels & zones**" %} and select the area card.
|
||||
2. In the top right corner, select the three dot menu. Then, select **Delete**.
|
||||
|
||||

|
||||
|
||||
3. If you used this area in automations or script as targets, or with voice assistant, they will no longer work.
|
||||
- You can adjust or delete the related scripts or automations.
|
||||
4. If you still had devices in that area, they are no longer assigned to any room.
|
||||
- If you have moved the devices, you can now reassign them to a new area.
|
56
source/_docs/organizing/categories.markdown
Normal file
56
source/_docs/organizing/categories.markdown
Normal file
@ -0,0 +1,56 @@
|
||||
---
|
||||
title: "Categories"
|
||||
description: "Use categories to group and filter your table items"
|
||||
related:
|
||||
- docs: /docs/organizing/areas/
|
||||
title: Areas
|
||||
- docs: /docs/organizing/floors/
|
||||
title: Floors
|
||||
- docs: /docs/organizing/labels/
|
||||
title: Labels
|
||||
---
|
||||
|
||||
Categories let you group and filter items in a table. Like labels, categories allow grouping irrespective of the items physical location. For example, on the automations page, you can create the categories “Notifications” or “NFC tags” to view your automations grouped or filtered. These categories group automations on the automation page, but have no effect anywhere else. Categories are unique for each table. The automations page can have different categories than the scene, scripts, or helpers settings page.
|
||||
|
||||
## Creating a category
|
||||
|
||||
Follow these steps to create a new category.
|
||||
|
||||
1. Go to {% my automations title="**Settings** > **Automations & Scenes**" %} and open the respective tab.
|
||||
2. In the top left, select the **Filters** button.
|
||||
|
||||

|
||||
3. Select **Category**, then **Add category**.
|
||||
4. Enter a name, select an icon and select **Add**.
|
||||
|
||||
**Result**: A new category is created.
|
||||
|
||||
## Assigning a category
|
||||
|
||||
1. Go to {% my automations title="**Settings** > **Automations & Scenes**" %} and open the respective tab.
|
||||
2. To assign a category to a single item:
|
||||
- Find the item in the list and select the three dots menu.
|
||||
- Select **Assign category** and select the category from the list.
|
||||
- If the category is not in the list, select **Add new category** and make a new one.
|
||||
3. To assign a category to multiple items:
|
||||
- Select the <img height="28px" src="/images/organizing/multiselect_icon.png" alt="Multiselect icon"/> button.
|
||||
- From the list, select all the items to which you want to apply a category.
|
||||
- In the top right corner, select **Move to category**.
|
||||
- Then, select the category from the list.
|
||||
4. Once categories are applied, the table items are grouped by those categories.
|
||||
- The example shows 2 categories: Coffee and housekeeping.
|
||||
|
||||

|
||||
|
||||
## Editing or deleting a category
|
||||
|
||||
To rename or delete a category, follow these steps:
|
||||
|
||||
1. Go to {% my automations title="**Settings** > **Automations & Scenes**" %} and open the respective tab.
|
||||
2. In the top left, select the **Filters** button.
|
||||
|
||||

|
||||
3. In the list, find the category you want to edit and select the three dot menu next to it.
|
||||
4. Select **Edit category** or **Delete category**.
|
||||
|
||||

|
62
source/_docs/organizing/filtering.markdown
Normal file
62
source/_docs/organizing/filtering.markdown
Normal file
@ -0,0 +1,62 @@
|
||||
---
|
||||
title: "Filtering your assets"
|
||||
description: "Filter for items in tables."
|
||||
related:
|
||||
- docs: /docs/organizing/floors/
|
||||
title: Floors
|
||||
- docs: /docs/organizing/labels/
|
||||
title: Labels
|
||||
- docs: /docs/organizing/areas/
|
||||
title: Areas
|
||||
- docs: /docs/organizing/categories/
|
||||
title: Categories
|
||||
- docs: /docs/organizing/
|
||||
title: Grouping your assets
|
||||
- docs: /common-tasks/general/
|
||||
title: Enabling or disabling entities and automations
|
||||
---
|
||||
|
||||
When working with tables, you can select multiple items to apply an action. If you have [grouped](/docs/organizing/) items by assigning them to floors, areas, labels, or directories, you can also filter your data accordingly.
|
||||
|
||||
## Selecting multiple items in a table
|
||||
|
||||
1. In your table, select the <img height="28px" src="/images/organizing/multiselect_icon.png" alt="Multiselect icon"/> button.
|
||||
|
||||

|
||||
|
||||
2. In the list, select the items of interest.
|
||||
|
||||

|
||||
|
||||
3. You can now apply changes to all selected elements, such as [applying labels](/docs/organzing/labels/) or [enabling or disabling entities and automations](/common-tasks/general/).
|
||||
|
||||
## Filtering items in a table
|
||||
|
||||
You can filter a table so that only items matching certain criteria are shown.
|
||||
|
||||
1. In the top left corner above the table, select the **Filters** button.
|
||||
|
||||

|
||||
|
||||
2. In the filters panel, select your filter criteria.
|
||||
- You can filter for [floors](/docs/organizing/floors/), [areas](/docs/organizing/areas/), [labels](/docs/organizing/labels/), and [categories](/docs/organizing/categories/) if you have previously defined them.
|
||||
- The list of available criteria depends on the type of table.
|
||||
|
||||

|
||||
|
||||
## Grouping and sorting items in a table
|
||||
|
||||
You can group items in a table according to certain criteria. The number of shown items stays the same. No items will be hidden.
|
||||
|
||||
1. In the top right above the table, select the **Group by** button.
|
||||
2. The items will be grouped according to the criteria you chose.
|
||||
- The list of available criteria depends on the type of table.
|
||||
- The example shows a list of devices, grouped by manufacturer.
|
||||
- In contrast, the entities table does not allow grouping by manufacturer, but by entity domains.
|
||||
|
||||

|
||||
|
||||
3. To sort the items, select the **Sort by** button.
|
||||
4. To get a better overview, you can collapse groups in the list.
|
||||
|
||||

|
50
source/_docs/organizing/floors.markdown
Normal file
50
source/_docs/organizing/floors.markdown
Normal file
@ -0,0 +1,50 @@
|
||||
---
|
||||
title: "Floors"
|
||||
description: "Group your areas per floor"
|
||||
related:
|
||||
- docs: /docs/organizing/areas/
|
||||
title: Areas
|
||||
- docs: /docs/organizing/
|
||||
- docs: /docs/organizing/labels/
|
||||
title: Labels
|
||||
- docs: /docs/configuration/templating/#floors
|
||||
title: Using floors in templates
|
||||
- docs: /voice_control/aliases/
|
||||
title: Using floor alias for voice assistants
|
||||
---
|
||||
|
||||
A floor in Home Assistant is a logical grouping of areas meant to match your home's physical floors. Devices and entities
|
||||
cannot be assigned to floors directly but to areas. Floors can be used in automations and scripts as a target for actions. For example, to turn off all the lights on the downstairs floor when you go to bed.
|
||||
|
||||
## Creating a floor
|
||||
|
||||
Follow these steps to create a new floor.
|
||||
|
||||
1. Go to {% my areas title="**Settings** > **Areas, labels & zones**" %} and select **Create floor**.
|
||||
2. In the dialog, enter the floor details:
|
||||
- Give the floor a **Name** (required).
|
||||
- Add a floor **Level**.
|
||||
- The number can be negative. For example for underground floors.
|
||||
- This number can later be used for sorting.
|
||||
- Add an icon (We use [Material icons](https://pictogrammers.com/library/mdi/)).
|
||||
- Add an **Alias**.
|
||||
- Aliases are alternative names used in [voice assistants](/voice_control/aliases/) to refer to an entity, area, or floor.
|
||||
|
||||

|
||||
3. Select **Add**.
|
||||
|
||||
**Result**: A new floor is created.
|
||||
|
||||

|
||||
4. You can now [assign areas to that floor](/docs/organizing/areas/#assigning-areas-to-floors-and-add-labels).
|
||||
|
||||
## Deleting a floor
|
||||
|
||||
Follow these steps to delete a floor. Areas that are assigned to a floor will become unassigned. Automations and scripts or voice assistants that used a floor as a target will no longer work as they no longer have a target.
|
||||
|
||||
1. Go to {% my areas title="**Settings** > **Areas, labels & zones**" %}.
|
||||
2. Next to the floor, select the three dots menu and select **Delete floor**.
|
||||
|
||||

|
||||
|
||||
3. If you have automations, scripts, or voice assistants that used floors as a target, you will need to update these.
|
73
source/_docs/organizing/labels.markdown
Normal file
73
source/_docs/organizing/labels.markdown
Normal file
@ -0,0 +1,73 @@
|
||||
---
|
||||
title: "Labels"
|
||||
description: "Label your areas, devices, entities, automations, scripts, and helpers. Then, filter by label or run an automation on all entities with that label."
|
||||
related:
|
||||
- docs: /docs/organizing/areas/
|
||||
title: Areas
|
||||
- docs: /docs/organizing/floors/
|
||||
title: Floors
|
||||
- docs: /docs/organizing/categories/
|
||||
title: Categories
|
||||
- docs: /docs/configuration/templating/#labels
|
||||
title: Using labels in templates
|
||||
---
|
||||
|
||||
Labels in Home Assistant allow grouping elements irrespective of their physical location or type. Labels can be assigned to areas, devices, entities, automations, scenes, scripts, and helpers. Labels can be used in automations and scripts as a target for actions and services. Labels can also be used to filter data. For example, you can filter the list of devices to show only devices with the label `heavy energy usage` or turn these devices off when there is not a lot of solar energy available.
|
||||
|
||||
## Creating a label
|
||||
|
||||
Follow these steps to create a new label from the **Labels** view.
|
||||
|
||||
1. Go to {% my labels title="**Settings** > **Areas, labels & zones**" %} and on top, select the **Labels** tab.
|
||||
2. Select the **Create label** button.
|
||||
3. In the dialog, enter the label details:
|
||||
- Give the label a **Name** (required).
|
||||
- Add an icon (We use [Material icons](https://pictogrammers.com/library/mdi/)).
|
||||
- Add a **Color**.
|
||||
|
||||

|
||||
4. Select **Create**.
|
||||
|
||||
**Result**: A new label is created.
|
||||
|
||||
## Applying labels
|
||||
|
||||
Follow these steps to apply a label
|
||||
|
||||
1. To apply a label to an area:
|
||||
- Go to {% my areas title="**Settings** > **Areas, labels & zones**" %}.
|
||||
- On the area card, select the pencil icon.
|
||||
- Select one or more labels or select **Add new label** to create a new one.
|
||||
2. To apply a label to a device, entity, or helper:
|
||||
- Go to **{% my integrations title="Settings > Devices & Services" %}** and open the respective tab.
|
||||
- Select the <img height="28px" src="/images/organizing/multiselect_icon.png" alt="Multiselect icon"/> button.
|
||||
- From the list, select all the list entries to which you want to apply a label.
|
||||
- In the top right corner, select **Add label**. Then, select the labels from the list.
|
||||
|
||||

|
||||
3. To apply a label to an automation, scene, or script:
|
||||
- Go to {% my automations title="**Settings** > **Automations & Scenes**" %} and open the respective tab.
|
||||
- Select the <img height="28px" src="/images/organizing/multiselect_icon.png" alt="Multiselect icon"/> button.
|
||||
- From the list, select all the list entries to which you want to apply a label.
|
||||
- In the top right corner, select the three dots menu, then select **Add label**. Then, select the labels from the list.
|
||||
|
||||
## Deleting a label
|
||||
|
||||
Follow these steps to delete a label. It will be removed from all the list entries it was applied to.
|
||||
If you used this label in automations or script as targets, you need to adjust those.
|
||||
|
||||
1. Go to {% my labels title="**Settings** > **Areas, labels & zones**" %} and on top, select the **Labels** tab.
|
||||
2. In the list of labels, find the label you want to delete and select the three dots menu.
|
||||
3. Select **Delete**.
|
||||
4. If you used this label in automations or script as targets, you need to adjust those.
|
||||
|
||||
## Removing labels
|
||||
|
||||
1. Go to the data table that contains the element from which you want to remove the label:
|
||||
- Go to **{% my integrations title="Settings > Devices & Services" %}** and open the respective tab.
|
||||
- Or, go to {% my automations title="**Settings** > **Automations & Scenes**" %} and open the respective tab.
|
||||
2. Select the <img height="28px" src="/images/organizing/multiselect_icon.png" alt="Multiselect icon"/> button.
|
||||
- From the list, select all the items from which you want to remove a label.
|
||||
- In the top right corner, select the three dots menu, then select **Add label**.
|
||||
- Then, deselect the checkbox for the label you want to remove.
|
||||
|
@ -9,7 +9,7 @@ The Integration Quality Scale scores each integration based on the code quality
|
||||
|
||||
## No score
|
||||
|
||||
This integration passes the bare minimum requirements. That's the level of most integrations when they are introduced into Home Assistant. It doesn't mean that they are bad or buggy, just that you need to configure them with an entry in your `configuration.yaml` file.
|
||||
This integration passes the bare minimum requirements. That's the level of most integrations when they are introduced into Home Assistant. It doesn't mean that they are bad or buggy, just that you need to configure them with an entry in your {% term "`configuration.yaml`" %} file.
|
||||
|
||||
## Silver 🥈
|
||||
|
||||
|
@ -7,11 +7,13 @@ no_toc: true
|
||||
|
||||
Scripts are a sequence of {% term actions %} that Home Assistant will execute. Scripts are available as an entity through the standalone [Script integration] but can also be embedded in {% term automations %} and [Alexa/Amazon Echo] configurations.
|
||||
|
||||
When the script is executed within an automation the `trigger` variable is available. See [Available-Trigger-Data](/docs/automation/templating/#available-trigger-data).
|
||||
When the script is executed within an {% term automation %}, the `trigger` variable is available. See [Available-Trigger-Data](/docs/automation/templating/#available-trigger-data).
|
||||
|
||||
The script syntax basic structure is a list of key/value maps that contain actions. If a script contains only 1 action, the wrapping list can be omitted.
|
||||
## Script syntax
|
||||
|
||||
All actions support an optional `alias`.
|
||||
The script syntax basic structure is a list of key/value maps that contain {% term actions %}. If a script contains only 1 {% term action %}, the wrapping list can be omitted.
|
||||
|
||||
All {% term actions %} support an optional `alias`.
|
||||
|
||||
```yaml
|
||||
# Example script integration containing script syntax
|
||||
@ -31,9 +33,9 @@ script:
|
||||
|
||||
{{ page.content | markdownify | toc_only }}
|
||||
|
||||
## Call a Service
|
||||
## Call a service
|
||||
|
||||
The most important one is the action to call a service. This can be done in various ways. For all the different possibilities, have a look at the [service calls page].
|
||||
The most important one is the action to call a {% term service %}. This can be done in various ways. For all the different possibilities, have a look at the [service calls page].
|
||||
|
||||
```yaml
|
||||
- alias: "Bedroom lights on"
|
||||
@ -44,9 +46,9 @@ The most important one is the action to call a service. This can be done in vari
|
||||
brightness: 100
|
||||
```
|
||||
|
||||
### Activate a Scene
|
||||
### Activate a scene
|
||||
|
||||
Scripts may also use a shortcut syntax for activating scenes instead of calling the `scene.turn_on` service.
|
||||
Scripts may also use a shortcut syntax for activating {% term scenes %} instead of calling the `scene.turn_on` service.
|
||||
|
||||
```yaml
|
||||
- scene: scene.morning_living_room
|
||||
@ -54,7 +56,7 @@ Scripts may also use a shortcut syntax for activating scenes instead of calling
|
||||
|
||||
## Variables
|
||||
|
||||
The variables action allows you to set/override variables that will be accessible by templates in actions after it. See also [script variables] for how to define variables accessible in the entire script.
|
||||
The variables {% term action %} allows you to set/override variables that will be accessible by templates in {% term action %} after it. See also [script variables] for how to define variables accessible in the entire script.
|
||||
|
||||
{% raw %}
|
||||
|
||||
@ -91,11 +93,11 @@ Variables can be templated.
|
||||
|
||||
{% endraw %}
|
||||
|
||||
### Scope of Variables
|
||||
### Scope of variables
|
||||
|
||||
Variables have local scope. This means that if a variable is changed in a nested sequence block, that change will not be visible in an outer sequence block.
|
||||
|
||||
Inside the `if` sequence the `variables` action will only alter the `people` variable for that sequence.
|
||||
Inside the `if` sequence the `variables` {% term action %} will only alter the `people` variable for that sequence.
|
||||
|
||||
{% raw %}
|
||||
|
||||
@ -125,13 +127,13 @@ sequence:
|
||||
|
||||
{% endraw %}
|
||||
|
||||
## Test a Condition
|
||||
## Test a condition
|
||||
|
||||
While executing a script you can add a condition in the main sequence to stop further execution. When a condition does not return `true`, the script will stop executing. There are many different conditions which are documented at the [conditions page].
|
||||
While executing a script you can add a condition in the main sequence to stop further execution. When a condition does not return `true`, the script will stop executing. For documentation on the many different conditions refer to the [conditions page].
|
||||
|
||||
<div class='note'>
|
||||
|
||||
The `condition` action only stops executing the current sequence block. When it is used inside a [repeat](#repeat-a-group-of-actions) action, only the current iteration of the `repeat` loop will stop. When it is used inside a [choose](#choose-a-group-of-actions) action, only the actions within that `choose` will stop.
|
||||
The `condition` {% term action %} only stops executing the current sequence block. When it is used inside a [repeat](#repeat-a-group-of-actions) action, only the current iteration of the `repeat` loop will stop. When it is used inside a [choose](#choose-a-group-of-actions) action, only the {% term actions %} within that `choose` will stop.
|
||||
|
||||
</div>
|
||||
|
||||
@ -184,6 +186,7 @@ Delays are useful for temporarily suspending your script and start it at a later
|
||||
```yaml
|
||||
# Supports milliseconds, seconds, minutes, hours, days
|
||||
# Can be used in combination, at least one required
|
||||
# When using milliseconds, consider that delay as *at least* X milliseconds. It won´t be exact.
|
||||
# Waits 1 minute
|
||||
- delay:
|
||||
minutes: 1
|
||||
@ -204,11 +207,11 @@ All forms accept templates.
|
||||
|
||||
## Wait
|
||||
|
||||
These actions allow a script to wait for entities in the system to be in a certain state as specified by a template, or some event to happen as expressed by one or more triggers.
|
||||
These {% term actions %} allow a script to wait for entities in the system to be in a certain state as specified by a template, or some event to happen as expressed by one or more triggers.
|
||||
|
||||
### Wait for a template
|
||||
|
||||
This action evaluates the template, and if true, the script will continue. If not, then it will wait until it is true.
|
||||
This {% term action %} evaluates the template, and if true, the script will continue. If not, then it will wait until it is true.
|
||||
|
||||
The template is re-evaluated whenever an entity ID that it references changes state. If you use non-deterministic functions like `now()` in the template it will not be continuously re-evaluated, but only when an entity ID that is referenced is changed. If you need to periodically re-evaluate the template, reference a sensor from the [Time and Date](/integrations/time_date/) integration that will update minutely or daily.
|
||||
|
||||
@ -224,7 +227,7 @@ The template is re-evaluated whenever an entity ID that it references changes st
|
||||
|
||||
### Wait for a trigger
|
||||
|
||||
This action can use the same triggers that are available in an automation's `trigger` section. See [Automation Trigger](/docs/automation/trigger). The script will continue whenever any of the triggers fires. All previously defined [trigger variables](/docs/automation/trigger#trigger-variables), [variables](#variables) and [script variables] are passed to the trigger.
|
||||
This {% term action %} can use the same triggers that are available in an automation's `trigger` section. See [Automation Trigger](/docs/automation/trigger). The script will continue whenever any of the triggers fires. All previously defined [trigger variables](/docs/automation/trigger#trigger-variables), [variables](#variables) and [script variables] are passed to the trigger.
|
||||
{% raw %}
|
||||
|
||||
```yaml
|
||||
@ -324,9 +327,9 @@ This can be used to take different actions based on whether or not the condition
|
||||
```
|
||||
{% endraw %}
|
||||
|
||||
## Fire an Event
|
||||
## Fire an event
|
||||
|
||||
This action allows you to fire an event. Events can be used for many things. It could trigger an automation or indicate to another integration that something is happening. For instance, in the below example it is used to create an entry in the logbook.
|
||||
This {% term action %} allows you to fire an event. Events can be used for many things. It could trigger an {% term automation %} or indicate to another integration that something is happening. For instance, in the below example it is used to create an entry in the logbook.
|
||||
|
||||
```yaml
|
||||
- alias: "Fire LOGBOOK_ENTRY event"
|
||||
@ -356,7 +359,7 @@ The `event_data` accepts templates.
|
||||
|
||||
### Raise and Consume Custom Events
|
||||
|
||||
The following automation example shows how to raise a custom event called `event_light_state_changed` with `entity_id` as the event data. The action part could be inside a script or an automation.
|
||||
The following {% term automation %} example shows how to raise a custom event called `event_light_state_changed` with `entity_id` as the event data. The {% term action %} part could be inside a script or an {% term automation %}.
|
||||
|
||||
```yaml
|
||||
- alias: "Fire Event"
|
||||
@ -370,7 +373,7 @@ The following automation example shows how to raise a custom event called `event
|
||||
state: "on"
|
||||
```
|
||||
|
||||
The following automation example shows how to capture the custom event `event_light_state_changed` with an [Event Automation Trigger](/docs/automation/trigger#event-trigger), and retrieve corresponding `entity_id` that was passed as the event trigger data, see [Available-Trigger-Data](/docs/automation/templating/#available-trigger-data) for more details.
|
||||
The following {% term automation %} example shows how to capture the custom event `event_light_state_changed` with an [Event Automation Trigger](/docs/automation/trigger#event-trigger), and retrieve corresponding `entity_id` that was passed as the event trigger data, see [Available-Trigger-Data](/docs/automation/templating/#available-trigger-data) for more details.
|
||||
|
||||
{% raw %}
|
||||
|
||||
@ -389,7 +392,7 @@ The following automation example shows how to capture the custom event `event_li
|
||||
|
||||
## Repeat a group of actions
|
||||
|
||||
This action allows you to repeat a sequence of other actions. Nesting is fully supported.
|
||||
This {% term action %} allows you to repeat a sequence of other {% term actions %}. Nesting is fully supported.
|
||||
There are three ways to control how many times the sequence will be run.
|
||||
|
||||
### Counted repeat
|
||||
@ -566,7 +569,7 @@ For example:
|
||||
|
||||
### Repeat loop variable
|
||||
|
||||
A variable named `repeat` is defined within the repeat action (i.e., it is available inside `sequence`, `while` & `until`.)
|
||||
A variable named `repeat` is defined within the repeat {% term action %} (i.e., it is available inside `sequence`, `while` & `until`.)
|
||||
It contains the following fields:
|
||||
|
||||
field | description
|
||||
@ -577,7 +580,7 @@ field | description
|
||||
|
||||
## If-then
|
||||
|
||||
This action allow you to conditionally (`if`) run a sequence of actions (`then`)
|
||||
This {% term action %} allow you to conditionally (`if`) run a sequence of actions (`then`)
|
||||
and optionally supports running other sequence when the condition didn't
|
||||
pass (`else`).
|
||||
|
||||
@ -600,13 +603,13 @@ script:
|
||||
message: "Skipped cleaning, someone is home!"
|
||||
```
|
||||
|
||||
This action supports nesting, however, if you find yourself using nested if-then
|
||||
This {% term action %} supports nesting, however, if you find yourself using nested if-then
|
||||
actions in the `else` part, you may want to consider using
|
||||
[choose](#choose-a-group-of-actions) instead.
|
||||
|
||||
## Choose a Group of Actions
|
||||
## Choose a group of actions
|
||||
|
||||
This action allows you to select a sequence of other actions from a list of sequences.
|
||||
This {% term action %} allows you to select a sequence of other {% term actions %} from a list of sequences.
|
||||
Nesting is fully supported.
|
||||
|
||||
Each sequence is paired with a list of conditions. (See the [conditions page] for available options and how multiple conditions are handled.) The first sequence whose conditions are all true will be run.
|
||||
@ -614,7 +617,7 @@ An _optional_ `default` sequence can be included which will be run only if none
|
||||
|
||||
An _optional_ `alias` can be added to each of the sequences, excluding the `default` sequence.
|
||||
|
||||
The `choose` action can be used like an "if/then/elseif/then.../else" statement. The first `conditions`/`sequence` pair is like the "if/then", and can be used just by itself. Or additional pairs can be added, each of which is like an "elif/then". And lastly, a `default` can be added, which would be like the "else."
|
||||
The `choose` {% term action %} can be used like an "if/then/elseif/then.../else" statement. The first `conditions`/`sequence` pair is like the "if/then", and can be used just by itself. Or additional pairs can be added, each of which is like an "elif/then". And lastly, a `default` can be added, which would be like the "else."
|
||||
|
||||
{% raw %}
|
||||
|
||||
@ -696,7 +699,7 @@ automation:
|
||||
|
||||
More `choose` can be used together. This is the case of an IF-IF.
|
||||
|
||||
The following example shows how a single automation can control entities that aren't related to each other but have in common the same trigger.
|
||||
The following example shows how a single {% term automation %} can control entities that aren't related to each other but have in common the same trigger.
|
||||
|
||||
When the sun goes below the horizon, the `porch` and `garden` lights must turn on. If someone is watching the TV in the living room, there is a high chance that someone is in that room, therefore the living room lights have to turn on too. The same concept applies to the `studio` room.
|
||||
|
||||
@ -751,15 +754,57 @@ automation:
|
||||
|
||||
{% endraw %}
|
||||
|
||||
## Grouping actions
|
||||
|
||||
The `sequence` {% term action %} allows you to group multiple {% term actions %}
|
||||
together. Each action will be executed in order, meaning the next action will
|
||||
only be executed after the previous action has been completed.
|
||||
|
||||
Grouping actions in a sequence can be useful when you want to be able to
|
||||
collapse related groups in the user interface for organizational purposes.
|
||||
|
||||
Combined with the [`parallel`](#parallelizing-actions) action, it can also be
|
||||
used to run multiple groups of actions in a sequence in parallel.
|
||||
|
||||
In the example below, two separate groups of actions are executed in sequence,
|
||||
one for turning on devices, the other for sending notifications. Each group of
|
||||
actions is executed in order, this includes the actions in each group and the
|
||||
groups themselves. In total, four actions are executed, one after the other.
|
||||
|
||||
```yaml
|
||||
automation:
|
||||
- trigger:
|
||||
- platform: state
|
||||
entity_id: binary_sensor.motion
|
||||
to: "on"
|
||||
action:
|
||||
- alias: "Turn on devices"
|
||||
sequence:
|
||||
- service: light.turn_on
|
||||
target:
|
||||
entity_id: light.ceiling
|
||||
- service: siren.turn_on
|
||||
target:
|
||||
entity_id: siren.noise_maker
|
||||
- alias: "Send notifications"
|
||||
sequence:
|
||||
- service: notify.person1
|
||||
data:
|
||||
message: "The motion sensor was triggered!"
|
||||
- service: notify.person2
|
||||
data:
|
||||
message: "Oh oh, someone triggered the motion sensor..."
|
||||
```
|
||||
|
||||
## Parallelizing actions
|
||||
|
||||
By default, all sequences of actions in Home Assistant run sequentially. This
|
||||
means the next action is started after the current action has been completed.
|
||||
By default, all sequences of {% term actions %} in Home Assistant run sequentially. This
|
||||
means the next {% term action %} is started after the current action has been completed.
|
||||
|
||||
This is not always needed, for example, if the sequence of actions doesn't rely
|
||||
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.
|
||||
can be used to run the {% term actions %} in the sequence in parallel, meaning all
|
||||
the {% term actions %} are started at the same time.
|
||||
|
||||
The following example shows sending messages out at the same time (in parallel):
|
||||
|
||||
@ -802,32 +847,32 @@ script:
|
||||
|
||||
<div class='note'>
|
||||
|
||||
Running actions in parallel can be helpful in many cases, but use it with
|
||||
Running {% term actions %} in parallel can be helpful in many cases, but use it with
|
||||
caution and only if you need it.
|
||||
|
||||
There are some caveats (see below) when using parallel actions.
|
||||
|
||||
While it sounds attractive to parallelize, most of the time, just the regular
|
||||
sequential actions will work just fine.
|
||||
sequential {% term actions %} will work just fine.
|
||||
|
||||
</div>
|
||||
|
||||
Some of the caveats of running actions in parallel:
|
||||
Some of the caveats of running {% term actions %} in parallel:
|
||||
|
||||
- There is no order guarantee. The actions will be started in parallel, but
|
||||
- There is no order guarantee. The {% term actions %} will be started in parallel, but
|
||||
there is no guarantee that they will be completed in the same order.
|
||||
- If one action fails or errors, the other actions will keep running until
|
||||
- If one {% term action %} fails or errors, the other {% term actions %} will keep running until
|
||||
they too have finished or errored.
|
||||
- Variables created/modified in one parallelized action are not available
|
||||
in another parallelized action. Each step in a parallelized has its own scope.
|
||||
- Variables created/modified in one parallelized {% term action %} are not available
|
||||
in another parallelized {% term action %}. Each step in a parallelized has its own scope.
|
||||
|
||||
## Stopping a script sequence
|
||||
|
||||
It is possible to halt a script sequence at any point and return script responses
|
||||
using the `stop` action.
|
||||
using the `stop` {% term action %}.
|
||||
|
||||
The `stop` action takes a text as input explaining the reason for halting the
|
||||
sequence. This text will be logged and shows up in the automations and
|
||||
The `stop` {% term action %} takes a text as input explaining the reason for halting the
|
||||
sequence. This text will be logged and shows up in the {% term automations %} and
|
||||
script traces.
|
||||
|
||||
`stop` can be useful to halt a script halfway through a sequence when,
|
||||
@ -847,7 +892,7 @@ response data must contains a mapping of key/value pairs.
|
||||
```
|
||||
|
||||
There is also an `error` option, to indicate we are stopping because of
|
||||
an unexpected error. It stops the sequence as well, but marks the automation
|
||||
an unexpected error. It stops the sequence as well, but marks the {% term automation %}
|
||||
or script as failed to run.
|
||||
|
||||
```yaml
|
||||
@ -857,20 +902,20 @@ or script as failed to run.
|
||||
|
||||
## Continuing on error
|
||||
|
||||
By default, a sequence of actions will be halted when one of the actions in
|
||||
that sequence encounters an error. The automation or script will be halted,
|
||||
an error is logged, and the automation or script run is marked as errored.
|
||||
By default, a sequence of {% term actions %} will be halted when one of the {% term actions %} in
|
||||
that sequence encounters an error. The {% term automation %} or script will be halted,
|
||||
an error is logged, and the {% term automation %} or script run is marked as errored.
|
||||
|
||||
Sometimes these errors are expected, for example, because you know the service
|
||||
you call can be problematic at times, and it doesn't matter if it fails.
|
||||
You can set `continue_on_error` for those cases on such an action.
|
||||
You can set `continue_on_error` for those cases on such an {% term action %}.
|
||||
|
||||
The `continue_on_error` is available on all actions and is set to
|
||||
`false`. You can set it to `true` if you'd like to continue the action
|
||||
sequence, regardless of whether that action encounters an error.
|
||||
The `continue_on_error` is available on all {% term actions %} and is set to
|
||||
`false`. You can set it to `true` if you'd like to continue the {% term action %}
|
||||
sequence, regardless of whether that {% term action %} encounters an error.
|
||||
|
||||
The example below shows the `continue_on_error` set on the first action. If
|
||||
it encounters an error; it will continue to the next action.
|
||||
The example below shows the `continue_on_error` set on the first {% term action %}. If
|
||||
it encounters an error; it will continue to the next {% term action %}.
|
||||
|
||||
```yaml
|
||||
- alias: "If this one fails..."
|
||||
@ -891,8 +936,8 @@ or errors that Home Assistant does not handle.
|
||||
|
||||
## Disabling an action
|
||||
|
||||
Every individual action in a sequence can be disabled, without removing it.
|
||||
To do so, add `enabled: false` to the action. For example:
|
||||
Every individual {% term action %} in a sequence can be disabled, without removing it.
|
||||
To do so, add `enabled: false` to the {% term action %}. For example:
|
||||
|
||||
```yaml
|
||||
# Example script with a disabled action
|
||||
@ -914,6 +959,55 @@ script:
|
||||
entity_id: light.ceiling
|
||||
```
|
||||
|
||||
Actions can also be disabled based on limited templates or blueprint inputs.
|
||||
|
||||
{% raw %}
|
||||
|
||||
```yaml
|
||||
blueprint:
|
||||
input:
|
||||
input_boolean:
|
||||
name: Boolean
|
||||
selector:
|
||||
boolean:
|
||||
|
||||
action:
|
||||
- delay: 0:35
|
||||
enabled: !input input_boolean
|
||||
```
|
||||
|
||||
{% endraw %}
|
||||
|
||||
## Respond to a conversation
|
||||
|
||||
The `set_conversation_response` script {% term action %} allows returning a custom response
|
||||
when an {% term automation %} is triggered by a conversation engine, for example a voice
|
||||
assistant. The conversation response can be templated.
|
||||
|
||||
{% raw %}
|
||||
|
||||
```yaml
|
||||
# Example of a templated conversation response resulting in "Testing 123"
|
||||
- variables:
|
||||
my_var: "123"
|
||||
- set_conversation_response: "{{ 'Testing ' + my_var }}":
|
||||
```
|
||||
|
||||
{% endraw %}
|
||||
|
||||
The response is handed to the conversation engine when the {% term automation %} finishes. If
|
||||
the `set_conversation_response` is executed multiple times, the most recent
|
||||
response will be handed to the conversation engine. To clear the response, set it
|
||||
to `None`:
|
||||
|
||||
```yaml
|
||||
# Example of a clearing a conversation response
|
||||
set_conversation_response: ~
|
||||
```
|
||||
|
||||
If the {% term automation %} was not triggered by a conversation engine, the response
|
||||
will not be used by anything.
|
||||
|
||||
[Script integration]: /integrations/script/
|
||||
[automations]: /docs/automation/action/
|
||||
[Alexa/Amazon Echo]: /integrations/alexa/
|
||||
|
@ -165,7 +165,7 @@ condition:
|
||||
|
||||
## Numeric state condition
|
||||
|
||||
This type of condition attempts to parse the state of the specified entity or the attribute of an entity as a number, and triggers if the value matches the thresholds.
|
||||
This type of condition attempts to parse the state of the specified entity or the attribute of an entity as a number, and triggers if the value matches the thresholds (strictly below/above, so equal excluded).
|
||||
|
||||
If both `below` and `above` are specified, both tests have to pass.
|
||||
|
||||
@ -218,8 +218,8 @@ condition:
|
||||
below: 25
|
||||
```
|
||||
|
||||
Number helpers (`input_number` entities), `number` and `sensor` entities that
|
||||
contain a numeric value, can be used in the `above` and `below`
|
||||
Number helpers (`input_number` entities), `number`, `sensor`, and `zone` entities
|
||||
that contain a numeric value, can be used in the `above` and `below`
|
||||
options to make the condition more dynamic.
|
||||
|
||||
```yaml
|
||||
@ -711,3 +711,37 @@ condition:
|
||||
entity_id: sun.sun
|
||||
state: "above_horizon"
|
||||
```
|
||||
|
||||
Conditions can also be disabled based on limited templates or blueprint inputs.
|
||||
|
||||
{% raw %}
|
||||
|
||||
```yaml
|
||||
blueprint:
|
||||
input:
|
||||
input_boolean:
|
||||
name: Boolean
|
||||
selector:
|
||||
boolean:
|
||||
input_number:
|
||||
name: Number
|
||||
selector:
|
||||
number:
|
||||
min: 0
|
||||
max: 100
|
||||
|
||||
trigger_variables:
|
||||
_enable_number: !input input_number
|
||||
|
||||
condition:
|
||||
- condition: state
|
||||
entity_id: sun.sun
|
||||
state: "above_horizon"
|
||||
enabled: !input input_boolean
|
||||
- condition: state
|
||||
entity_id: sun.sun
|
||||
state: "below_horizon"
|
||||
enabled: "{{ _enable_number < 50 }}"
|
||||
```
|
||||
|
||||
{% endraw %}
|
||||
|
@ -28,7 +28,7 @@ Instead of targeting an entity, you can also target an {% term area %} or {% ter
|
||||
This is done with the `target` key.
|
||||
|
||||
A `target` is a map that contains at least one of the following: `area_id`, `device_id`, `entity_id`.
|
||||
Each of these can be a list.
|
||||
Each of these can be a list. The values should be lower-cased.
|
||||
|
||||
The following example uses a single service call to turn on the lights in the
|
||||
living room area, 2 additional light devices and 2 additional light entities:
|
||||
@ -80,7 +80,7 @@ entity_id: switch.ac
|
||||
### Using the Services Developer Tool
|
||||
|
||||
You can use the Services Developer Tool to test data to pass in a service call.
|
||||
For example, you may test turning on or off a 'group' (See [groups] for more info)
|
||||
For example, you may test turning on or off a 'group' (See [groups](/integrations/group/) for more info)
|
||||
|
||||
To turn a group on or off, pass the following info:
|
||||
|
||||
|
@ -1,9 +1,12 @@
|
||||
---
|
||||
title: "check_config"
|
||||
description: "Script to perform a check of the current configuration"
|
||||
related:
|
||||
- docs: /docs/configuration/#validating-the-configuration
|
||||
title: Validating the configuration
|
||||
---
|
||||
|
||||
Test any changes to your `configuration.yaml` file before launching Home Assistant. This {% term script %} allows you to test changes without the need to restart Home Assistant.
|
||||
Test any changes to your {% term "`configuration.yaml`" %} file before launching Home Assistant. This script allows you to test changes without the need to restart Home Assistant.
|
||||
|
||||
```bash
|
||||
hass --script check_config
|
||||
|
@ -10,8 +10,8 @@ The dashboard contains a section called **Developer tools**.
|
||||
Screenshot of Home Assistant's developer tools.
|
||||
</p>
|
||||
|
||||
| Section |Description |
|
||||
| ---------- |---------------------------------------------------------------------|
|
||||
| Section | Description |
|
||||
| ---------- | ------------------------------------------------------------------- |
|
||||
| YAML | Lets you validate the configuration and trigger a reload or restart |
|
||||
| States | Sets the representation of an entity |
|
||||
| Services | Calls services from integrations |
|
||||
@ -24,7 +24,27 @@ Screenshot of Home Assistant's developer tools.
|
||||
|
||||
The Developer Tools is meant for **all** (not just for the developers) to quickly try out things - like calling services, updating states, raising events, and publishing messages in MQTT). It is also a necessary tool for those who write custom automations and scripts by hand. The following describes each of the sections in detail.
|
||||
|
||||
## States
|
||||
## YAML tab
|
||||
|
||||
The YAML tab provides buttons to trigger a check of configuration files and to reload the configuration. Reloading is needed to apply changes that you've made to the configuration.
|
||||
|
||||
It is almost the same as the option under **Settings** > three dot menu (top right) > **Restart Home Assistant** > **Quick reload**. The only difference is that **Quick reload** reloads all the configuration, whereas this YAML tab allows you to only reload one specific configuration at a time.
|
||||
|
||||
### Reloading the YAML configuration
|
||||
|
||||
For configuration changes to become effective, the configuration must be reloaded. Most integrations in Home Assistant (that do not interact with {% term devices %} or {% term services %}) can reload changes made to their configuration in {% term "`configuration.yaml`" %} without needing to restart Home Assistant.
|
||||
|
||||
1. Go to {% my server_controls title="**Developer Tools** > **YAML**" %} and scroll down to the YAML configuration reloading section (alternatively, hit ["c"](/docs/tools/quick-bar/) anywhere in the UI and search for "reload").
|
||||
- You are presented with a list of integrations, such as **Automations** or **Conversation**.
|
||||
|
||||

|
||||
|
||||
2. Depending on what you find in the list, you can proceed with either reloading or you need to restart Home Assistant:
|
||||
- If the integration is listed, select it to reload the settings.
|
||||
- For example, if you've changed the [General settings](/docs/configuration/basic/), you can select **Location & customizations** to apply those changes.
|
||||
- If the integration is not listed, you need to **Restart** Home Assistant for changes to take effect.
|
||||
|
||||
## States tab
|
||||
|
||||
This section shows all the available entities, their corresponding state and the attribute values. The state and the attribute information is what Home Assistant sees at run time. To update the entity with a new state, or a new attribute value, click on the entity, scroll to the top, and modify the values, and click on “SET STATE” button.
|
||||
|
||||
@ -35,7 +55,7 @@ For example, changing the `light.bedroom` state from `off` to `on` does not turn
|
||||
The table containing all entities can be filtered for each column. The used search is a wildcard search meaning that if you input "office" in the entity column filter, every entity whose ID matches "\*office\*" will be shown. You can also add your own wildcards in the search input (e.g., "office\*light").
|
||||
The attribute filter supports separate filters for attribute names and values, separated by a colon ":". So the filter "location:3" will result in the table showing all entities that have an attribute name that contains "location" and whose attribute value contains "3".
|
||||
|
||||
## Services
|
||||
## Services tab
|
||||
|
||||
This section is used to call Services that are available in the ServiceRegistry.
|
||||
|
||||
@ -48,6 +68,7 @@ A Service may also require additional input to be passed. It is commonly referre
|
||||
When an entity is selected from the Entity dropdown, it automatically populates service data with the corresponding `entity_id`. The service data YAML can then be modified to pass additional \[optional\] parameters. The following is an illustration on how to call a `light.turn_on` service.
|
||||
|
||||
To turn on a light bulb, use the following steps:
|
||||
|
||||
1. Select `light.turn_on` from the Service dropdown
|
||||
2. Select the entity (typically the light bulb) from the Entity dropdown (if no entity_id is selected, it turns on ALL lights)
|
||||
3. If an entity is selected, the service data is populated with basic YAML that will be passed to the service. Additional data can also be passed by updating the YAML as below.
|
||||
@ -58,7 +79,7 @@ brightness: 255
|
||||
rgb_color: [255, 0, 0]
|
||||
```
|
||||
|
||||
## Template editor
|
||||
## Template editor tab
|
||||
|
||||
The template editor provides a way to quickly test templates prior to placing them into automations and scripts. A code editor is on the left side and your real-time output is displayed in the preview on the right side.
|
||||
|
||||
@ -66,7 +87,7 @@ By default, this will contain sample code that illustrates how templates can be
|
||||
|
||||
For more information about Jinja2, visit [Jinja2 documentation](https://jinja.palletsprojects.com/en/latest/templates/), and also read templating document [here](/docs/configuration/templating).
|
||||
|
||||
## Events
|
||||
## Events tab
|
||||
|
||||
In the Events section, you can either fire an event on the event bus or subscribe to an event type in order to view the event data JSON.
|
||||
|
||||
@ -118,7 +139,7 @@ Event 0 fired 9:53 AM:
|
||||
}
|
||||
```
|
||||
|
||||
## Statistics
|
||||
## Statistics tab
|
||||
|
||||
The **Statistics** tab shows a list of long-term statistic entities. If the long term statistics is not working for an entity, a **Fix Issue** link is shown. Select it to view a description of the issue. There might also be an option to fix the issue.
|
||||
|
||||
@ -130,15 +151,16 @@ icon. Use date & time to search for the incorrect data point and adjust the valu
|
||||
|
||||

|
||||
|
||||
## Assist
|
||||
## Assist tab
|
||||
|
||||
The **Assist** tab lets you see how Home Assistant's Assist processes a sentence.
|
||||
|
||||
If no matching intent is found, then Assist is unable to interpret the sentence. If a matching intent was found, information is provided on the action that will be performed on which entities. The example below shows how the following sentence was parsed: *what lights are on in the office*.
|
||||
|
||||
- Assist found a matching intent: *HassGetState*.
|
||||
- It found entities matching the domain: *lights*.
|
||||
- The lights have the state *on*.
|
||||
- The lights are in the area *office*.
|
||||
- The lights are in the area *office*.
|
||||
- The targets are the narrowed-down entities in scope.
|
||||
|
||||

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