mirror of
https://github.com/home-assistant/home-assistant.io.git
synced 2025-07-23 17:27:19 +00:00
Merge branch 'next' into add-watergate-event-entity
This commit is contained in:
commit
09c5f79391
2
.github/workflows/stale.yml
vendored
2
.github/workflows/stale.yml
vendored
@ -11,7 +11,7 @@ jobs:
|
||||
pull-requests: write
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/stale@v9.0.0
|
||||
- uses: actions/stale@v9.1.0
|
||||
if: ${{ github.repository_owner == 'home-assistant' }}
|
||||
with:
|
||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
4
.github/workflows/test.yml
vendored
4
.github/workflows/test.yml
vendored
@ -10,7 +10,7 @@ jobs:
|
||||
- name: Check out files from GitHub
|
||||
uses: actions/checkout@v4.2.2
|
||||
- name: Setting up Node.js
|
||||
uses: actions/setup-node@v4.1.0
|
||||
uses: actions/setup-node@v4.3.0
|
||||
with:
|
||||
node-version: 20
|
||||
cache: "npm"
|
||||
@ -27,7 +27,7 @@ jobs:
|
||||
- name: Check out files from GitHub
|
||||
uses: actions/checkout@v4.2.2
|
||||
- name: Setting up Node.js
|
||||
uses: actions/setup-node@v4.1.0
|
||||
uses: actions/setup-node@v4.3.0
|
||||
with:
|
||||
node-version: 20
|
||||
cache: "npm"
|
||||
|
94
CODEOWNERS
94
CODEOWNERS
@ -95,6 +95,7 @@ source/_integrations/azure_data_explorer.markdown @kaareseras
|
||||
source/_integrations/azure_devops.markdown @timmo001
|
||||
source/_integrations/azure_event_hub.markdown @eavanvalkenburg
|
||||
source/_integrations/azure_service_bus.markdown @hfurubotten
|
||||
source/_integrations/azure_storage.markdown @zweckj
|
||||
source/_integrations/backup.markdown @home-assistant/core
|
||||
source/_integrations/baf.markdown @bdraco @jfroy
|
||||
source/_integrations/balboa.markdown @garbled1 @natekspencer
|
||||
@ -117,7 +118,7 @@ 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 @tronix117 @alexfp14
|
||||
source/_integrations/brandt.markdown @imicknl
|
||||
source/_integrations/braviatv.markdown @bieniu @Drafteed
|
||||
source/_integrations/brel_home.markdown @starkillerOG
|
||||
source/_integrations/bring.markdown @miaucl @tr4nt0r
|
||||
@ -133,6 +134,7 @@ source/_integrations/bthome.markdown @Ernst79 @thecode
|
||||
source/_integrations/bticino.markdown @cgtobi
|
||||
source/_integrations/bubendorff.markdown @cgtobi
|
||||
source/_integrations/buienradar.markdown @mjj4791 @ties @Robbie1221
|
||||
source/_integrations/burbank_water_and_power.markdown @tronikos
|
||||
source/_integrations/button.markdown @home-assistant/core
|
||||
source/_integrations/calendar.markdown @home-assistant/core
|
||||
source/_integrations/cambridge_audio.markdown @noahhusby
|
||||
@ -161,11 +163,12 @@ source/_integrations/config.markdown @home-assistant/core
|
||||
source/_integrations/configurator.markdown @home-assistant/core
|
||||
source/_integrations/control4.markdown @lawtancool
|
||||
source/_integrations/conversation.markdown @home-assistant/core @synesthesiam
|
||||
source/_integrations/cookidoo.markdown @miaucl
|
||||
source/_integrations/coolmaster.markdown @OnFreund
|
||||
source/_integrations/counter.markdown @fabaff
|
||||
source/_integrations/cover.markdown @home-assistant/core
|
||||
source/_integrations/cover.template.markdown @home-assistant/core
|
||||
source/_integrations/cozytouch.markdown @imicknl @vlebourl @tetienne @nyroDev @tronix117 @alexfp14
|
||||
source/_integrations/cozytouch.markdown @imicknl
|
||||
source/_integrations/cpuspeed.markdown @fabaff
|
||||
source/_integrations/cribl.markdown @Bre77
|
||||
source/_integrations/crownstone.markdown @Crownstone @RicArch97
|
||||
@ -177,6 +180,7 @@ source/_integrations/datetime.markdown @home-assistant/core
|
||||
source/_integrations/deako.markdown @sebirdman @balake @deakolights
|
||||
source/_integrations/debugpy.markdown @frenck
|
||||
source/_integrations/deconz.markdown @Kane610
|
||||
source/_integrations/decorquip.markdown @starkillerOG
|
||||
source/_integrations/default_config.markdown @home-assistant/core
|
||||
source/_integrations/delijn.markdown @bollewolle @Emilv2
|
||||
source/_integrations/delmarva.markdown @tronikos
|
||||
@ -223,6 +227,7 @@ source/_integrations/ecovacs.markdown @mib1185 @edenhaus @Augar
|
||||
source/_integrations/ecowitt.markdown @pvizeli
|
||||
source/_integrations/efergy.markdown @tkdrob
|
||||
source/_integrations/egardia.markdown @jeroenterheerdt
|
||||
source/_integrations/eheimdigital.markdown @autinerd
|
||||
source/_integrations/electrasmart.markdown @jafar-atili
|
||||
source/_integrations/electric_kiwi.markdown @mikey0000
|
||||
source/_integrations/elevenlabs.markdown @sorgfresser
|
||||
@ -277,7 +282,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 @tronix117 @alexfp14
|
||||
source/_integrations/flexom.markdown @imicknl
|
||||
source/_integrations/flick_electric.markdown @ZephireNZ
|
||||
source/_integrations/flipr.markdown @cnico
|
||||
source/_integrations/flo.markdown @dmulcahey
|
||||
@ -323,13 +328,14 @@ source/_integrations/google.markdown @allenporter
|
||||
source/_integrations/google_assistant.markdown @home-assistant/cloud
|
||||
source/_integrations/google_assistant_sdk.markdown @tronikos
|
||||
source/_integrations/google_cloud.markdown @lufton @tronikos
|
||||
source/_integrations/google_drive.markdown @tronikos
|
||||
source/_integrations/google_generative_ai_conversation.markdown @tronikos
|
||||
source/_integrations/google_mail.markdown @tkdrob
|
||||
source/_integrations/google_photos.markdown @allenporter
|
||||
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/govee_ble.markdown @bdraco
|
||||
source/_integrations/govee_light_local.markdown @Galorhallen
|
||||
source/_integrations/gpsd.markdown @fabaff @jrieger
|
||||
source/_integrations/gree.markdown @cmroche
|
||||
@ -339,15 +345,17 @@ source/_integrations/guardian.markdown @bachya
|
||||
source/_integrations/habitica.markdown @tr4nt0r
|
||||
source/_integrations/hardware.markdown @home-assistant/core
|
||||
source/_integrations/harmony.markdown @ehendrix23 @bdraco @mkeesey @Aohzan
|
||||
source/_integrations/harvey.markdown @Jordi1990
|
||||
source/_integrations/hassio.markdown @home-assistant/supervisor
|
||||
source/_integrations/havana_shade.markdown @starkillerOG
|
||||
source/_integrations/hdmi_cec.markdown @inytar
|
||||
source/_integrations/heatmiser.markdown @andylockran
|
||||
source/_integrations/heicko.markdown @starkillerOG
|
||||
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 @tronix117 @alexfp14
|
||||
source/_integrations/hi_kumo.markdown @imicknl @vlebourl @tetienne @nyroDev @tronix117 @alexfp14
|
||||
source/_integrations/hexaom.markdown @imicknl
|
||||
source/_integrations/hi_kumo.markdown @imicknl
|
||||
source/_integrations/hikvision.markdown @mezz64
|
||||
source/_integrations/hikvisioncam.markdown @fbradyirl
|
||||
source/_integrations/hisense_aehw4a1.markdown @bannhead
|
||||
@ -356,7 +364,7 @@ source/_integrations/hive.markdown @Rendili @KJonline
|
||||
source/_integrations/hko.markdown @MisterCommand
|
||||
source/_integrations/hlk_sw16.markdown @jameshilliard
|
||||
source/_integrations/holiday.markdown @jrieger @gjohansson-ST
|
||||
source/_integrations/home_connect.markdown @DavidMStraub @Diegorro98
|
||||
source/_integrations/home_connect.markdown @DavidMStraub @Diegorro98 @MartinHjelmare
|
||||
source/_integrations/home_plus_control.markdown @cgtobi
|
||||
source/_integrations/homeassistant.markdown @home-assistant/core
|
||||
source/_integrations/homeassistant_alerts.markdown @home-assistant/core
|
||||
@ -364,6 +372,7 @@ source/_integrations/homeassistant_green.markdown @home-assistant/core
|
||||
source/_integrations/homeassistant_hardware.markdown @home-assistant/core
|
||||
source/_integrations/homeassistant_sky_connect.markdown @home-assistant/core
|
||||
source/_integrations/homeassistant_yellow.markdown @home-assistant/core
|
||||
source/_integrations/homee.markdown @Taraman17
|
||||
source/_integrations/homekit.markdown @bdraco
|
||||
source/_integrations/homekit_controller.markdown @Jc2k @bdraco
|
||||
source/_integrations/homematic.markdown @pvizeli
|
||||
@ -387,9 +396,9 @@ source/_integrations/hyperion.markdown @dermotduffy
|
||||
source/_integrations/ialarm.markdown @RyuzakiKK
|
||||
source/_integrations/iammeter.markdown @lewei50
|
||||
source/_integrations/iaqualink.markdown @flz
|
||||
source/_integrations/ibeacon.markdown @bdraco
|
||||
source/_integrations/icloud.markdown @Quentame @nzapponi
|
||||
source/_integrations/idasen_desk.markdown @abmantis
|
||||
source/_integrations/igloohome.markdown @keithle888
|
||||
source/_integrations/ign_sismologia.markdown @exxamalte
|
||||
source/_integrations/image.markdown @home-assistant/core
|
||||
source/_integrations/image_processing.markdown @home-assistant/core
|
||||
@ -412,9 +421,10 @@ source/_integrations/insteon.markdown @teharris1
|
||||
source/_integrations/integration.markdown @dgomes
|
||||
source/_integrations/intellifire.markdown @jeeftor
|
||||
source/_integrations/intesishome.markdown @jnimmo
|
||||
source/_integrations/iometer.markdown @MaestroOnICe
|
||||
source/_integrations/ios.markdown @robbiet480
|
||||
source/_integrations/iotawatt.markdown @gtdiehl @jyavenard
|
||||
source/_integrations/iotty.markdown @pburgio @shapournemati-iotty
|
||||
source/_integrations/iotty.markdown @shapournemati-iotty
|
||||
source/_integrations/iperf3.markdown @rohankapoorcom
|
||||
source/_integrations/ipma.markdown @dgomes
|
||||
source/_integrations/iqvia.markdown @bachya
|
||||
@ -428,8 +438,9 @@ source/_integrations/israel_rail.markdown @shaiu
|
||||
source/_integrations/iss.markdown @DurgNomis-drol
|
||||
source/_integrations/ista_ecotrend.markdown @tr4nt0r
|
||||
source/_integrations/isy994.markdown @bdraco @shbatm
|
||||
source/_integrations/ituran.markdown @shmuelzon
|
||||
source/_integrations/izone.markdown @Swamp-Ig
|
||||
source/_integrations/jellyfin.markdown @j-stienstra @ctalkington
|
||||
source/_integrations/jellyfin.markdown @RunC0deRun @ctalkington
|
||||
source/_integrations/jewish_calendar.markdown @tsvi
|
||||
source/_integrations/juicenet.markdown @jesserockz
|
||||
source/_integrations/justnimbus.markdown @kvanzuijlen
|
||||
@ -467,6 +478,7 @@ source/_integrations/leaone.markdown @bdraco
|
||||
source/_integrations/led_ble.markdown @bdraco
|
||||
source/_integrations/legrand.markdown @cgtobi
|
||||
source/_integrations/lektrico.markdown @lektrico
|
||||
source/_integrations/letpot.markdown @jpelgrom
|
||||
source/_integrations/leviton_z_wave.markdown @home-assistant/z-wave
|
||||
source/_integrations/lg_netcast.markdown @Drafteed @splinter98
|
||||
source/_integrations/lg_thinq.markdown @LG-ThinQ-Integration
|
||||
@ -474,8 +486,10 @@ source/_integrations/lidarr.markdown @tkdrob
|
||||
source/_integrations/lifx.markdown @Djelibeybi
|
||||
source/_integrations/light.markdown @home-assistant/core
|
||||
source/_integrations/light.template.markdown @home-assistant/core
|
||||
source/_integrations/linak.markdown @abmantis
|
||||
source/_integrations/linear_garage_door.markdown @IceBotYT
|
||||
source/_integrations/linux_battery.markdown @fabaff
|
||||
source/_integrations/linx.markdown @starkillerOG
|
||||
source/_integrations/litejet.markdown @joncar
|
||||
source/_integrations/litterrobot.markdown @natekspencer @tkdrob
|
||||
source/_integrations/livisi.markdown @StefanIacobLivisi @planbnet
|
||||
@ -503,6 +517,8 @@ source/_integrations/martec.markdown @starkillerOG
|
||||
source/_integrations/mastodon.markdown @fabaff @andrew-codechimp
|
||||
source/_integrations/matrix.markdown @PaarthShah
|
||||
source/_integrations/matter.markdown @home-assistant/matter
|
||||
source/_integrations/mcp.markdown @allenporter
|
||||
source/_integrations/mcp_server.markdown @allenporter
|
||||
source/_integrations/mealie.markdown @joostlek @andrew-codechimp
|
||||
source/_integrations/meater.markdown @Sotolotl @emontnemery
|
||||
source/_integrations/medcom_ble.markdown @elafargue
|
||||
@ -541,6 +557,7 @@ 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/motionblinds_matter.markdown @home-assistant/matter
|
||||
source/_integrations/motioneye.markdown @dermotduffy
|
||||
source/_integrations/mqtt.markdown @emontnemery @jbouwh @bdraco
|
||||
source/_integrations/msteams.markdown @peroyvind
|
||||
@ -563,7 +580,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 @tronix117 @alexfp14
|
||||
source/_integrations/nexity.markdown @imicknl
|
||||
source/_integrations/nextbus.markdown @vividboarder
|
||||
source/_integrations/nextcloud.markdown @mib1185
|
||||
source/_integrations/nextdns.markdown @bieniu
|
||||
@ -571,10 +588,10 @@ source/_integrations/nfandroidtv.markdown @tkdrob
|
||||
source/_integrations/nibe_heatpump.markdown @elupus
|
||||
source/_integrations/nice_go.markdown @IceBotYT
|
||||
source/_integrations/nightscout.markdown @marciogranzotto
|
||||
source/_integrations/niko_home_control.markdown @VandeurenGlenn
|
||||
source/_integrations/nilu.markdown @hfurubotten
|
||||
source/_integrations/nina.markdown @DeerMaximum
|
||||
source/_integrations/nissan_leaf.markdown @filcole
|
||||
source/_integrations/nmbs.markdown @thibmaek
|
||||
source/_integrations/noaa_tides.markdown @jdelaney72
|
||||
source/_integrations/nobo_hub.markdown @echoromeo @oyvindwe
|
||||
source/_integrations/nordpool.markdown @gjohansson-ST
|
||||
@ -587,7 +604,7 @@ source/_integrations/nuheat.markdown @tstabrawa
|
||||
source/_integrations/nuki.markdown @pschmitt @pvizeli @pree
|
||||
source/_integrations/numato.markdown @clssn
|
||||
source/_integrations/number.markdown @home-assistant/core @Shulyaka
|
||||
source/_integrations/nut.markdown @bdraco @ollo69 @pestevez
|
||||
source/_integrations/nut.markdown @bdraco @ollo69 @pestevez @tdfountain
|
||||
source/_integrations/nutrichef.markdown @bdraco
|
||||
source/_integrations/nws.markdown @MatthewFlamm @kamiyo
|
||||
source/_integrations/nyt_games.markdown @joostlek
|
||||
@ -595,14 +612,16 @@ source/_integrations/nzbget.markdown @chriscla
|
||||
source/_integrations/obihai.markdown @dshokouhi @ejpenney
|
||||
source/_integrations/octoprint.markdown @rfleming71
|
||||
source/_integrations/ohmconnect.markdown @robbiet480
|
||||
source/_integrations/ohme.markdown @dan-r
|
||||
source/_integrations/ollama.markdown @synesthesiam
|
||||
source/_integrations/ombi.markdown @larssont
|
||||
source/_integrations/onboarding.markdown @home-assistant/core
|
||||
source/_integrations/oncue.markdown @bdraco @peterager
|
||||
source/_integrations/ondilo_ico.markdown @JeromeHXP
|
||||
source/_integrations/onedrive.markdown @zweckj
|
||||
source/_integrations/onewire.markdown @garbled1 @epenet
|
||||
source/_integrations/onkyo.markdown @arturpragacz
|
||||
source/_integrations/onvif.markdown @hunterjm
|
||||
source/_integrations/onkyo.markdown @arturpragacz @eclair4151
|
||||
source/_integrations/onvif.markdown @hunterjm @jterrace
|
||||
source/_integrations/open_meteo.markdown @frenck
|
||||
source/_integrations/openai_conversation.markdown @balloob
|
||||
source/_integrations/openerz.markdown @misialq
|
||||
@ -621,12 +640,14 @@ 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 @tronix117 @alexfp14
|
||||
source/_integrations/overkiz.markdown @imicknl
|
||||
source/_integrations/overseerr.markdown @joostlek
|
||||
source/_integrations/ovo_energy.markdown @timmo001
|
||||
source/_integrations/p1_monitor.markdown @klaasnicolaas
|
||||
source/_integrations/palazzetti.markdown @dotvav
|
||||
source/_integrations/panel_custom.markdown @home-assistant/frontend
|
||||
source/_integrations/pcs_lighting.markdown @gwww
|
||||
source/_integrations/peblar.markdown @frenck
|
||||
source/_integrations/peco.markdown @IceBotYT
|
||||
source/_integrations/peco_opower.markdown @tronikos
|
||||
source/_integrations/pegel_online.markdown @mib1185
|
||||
@ -634,19 +655,21 @@ 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/pglab.markdown @pglab-electronics
|
||||
source/_integrations/philips_js.markdown @elupus
|
||||
source/_integrations/pi_hole.markdown @shenxn
|
||||
source/_integrations/picnic.markdown @corneyl
|
||||
source/_integrations/picnic.markdown @corneyl @codesalatdev
|
||||
source/_integrations/pinecil.markdown @tr4nt0r
|
||||
source/_integrations/ping.markdown @jpbede
|
||||
source/_integrations/piper.markdown @balloob @synesthesiam
|
||||
source/_integrations/plaato.markdown @JohNan
|
||||
source/_integrations/plex.markdown @jjlawren
|
||||
source/_integrations/plugwise.markdown @CoMPaTech @bouwew @frenck
|
||||
source/_integrations/plugwise.markdown @CoMPaTech @bouwew
|
||||
source/_integrations/plum_lightpad.markdown @ColinHarrington @prystupa
|
||||
source/_integrations/point.markdown @fredrike
|
||||
source/_integrations/poolsense.markdown @haemishkyd
|
||||
source/_integrations/portlandgeneral.markdown @tronikos
|
||||
source/_integrations/powerfox.markdown @klaasnicolaas
|
||||
source/_integrations/powerwall.markdown @bdraco @jrester @daniel-simpson
|
||||
source/_integrations/private_ble_device.markdown @Jc2k
|
||||
source/_integrations/profiler.markdown @bdraco
|
||||
@ -668,6 +691,7 @@ source/_integrations/pvoutput.markdown @frenck
|
||||
source/_integrations/pvpc_hourly_pricing.markdown @azogue
|
||||
source/_integrations/pyload.markdown @tr4nt0r
|
||||
source/_integrations/qbittorrent.markdown @geoffreylagaisse @finder39
|
||||
source/_integrations/qbus.markdown @Qbus-iot @thomasddn
|
||||
source/_integrations/qingping.markdown @bdraco
|
||||
source/_integrations/qld_bushfire.markdown @exxamalte
|
||||
source/_integrations/qnap.markdown @disforw
|
||||
@ -701,7 +725,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 @tronix117 @alexfp14
|
||||
source/_integrations/rexel.markdown @imicknl
|
||||
source/_integrations/rflink.markdown @javicalle
|
||||
source/_integrations/rfxtrx.markdown @danielhiversen @elupus @RobBie1221
|
||||
source/_integrations/rhasspy.markdown @balloob @synesthesiam
|
||||
@ -710,7 +734,7 @@ source/_integrations/ring.markdown @sdb9696
|
||||
source/_integrations/risco.markdown @OnFreund
|
||||
source/_integrations/rituals_perfume_genie.markdown @milanmeu @frenck
|
||||
source/_integrations/rmvtransport.markdown @cgtobi
|
||||
source/_integrations/roborock.markdown @Lash-L
|
||||
source/_integrations/roborock.markdown @Lash-L @allenporter
|
||||
source/_integrations/roku.markdown @ctalkington
|
||||
source/_integrations/romy.markdown @xeniter
|
||||
source/_integrations/roomba.markdown @pschmitt @cyr-ius @shenxn @Orhideous
|
||||
@ -719,6 +743,7 @@ source/_integrations/rpi_power.markdown @shenxn @swetoast
|
||||
source/_integrations/rss_feed_template.markdown @home-assistant/core
|
||||
source/_integrations/ruckus_unleashed.markdown @lanrat @ms264556 @gabe565
|
||||
source/_integrations/russound_rio.markdown @noahhusby
|
||||
source/_integrations/russound_rnet.markdown @noahhusby
|
||||
source/_integrations/ruuvi_gateway.markdown @akx
|
||||
source/_integrations/ruuvitag_ble.markdown @akx
|
||||
source/_integrations/rympro.markdown @OnFreund @elad-bar @maorcc
|
||||
@ -746,6 +771,7 @@ source/_integrations/sensor.markdown @home-assistant/core
|
||||
source/_integrations/sensorblue.markdown @bdraco
|
||||
source/_integrations/sensorpro.markdown @bdraco
|
||||
source/_integrations/sensorpush.markdown @bdraco
|
||||
source/_integrations/sensorpush_cloud.markdown @sstallion
|
||||
source/_integrations/sensoterra.markdown @markruys
|
||||
source/_integrations/sentry.markdown @dcramer @frenck
|
||||
source/_integrations/senz.markdown @milanmeu
|
||||
@ -764,7 +790,7 @@ source/_integrations/simplefin.markdown @scottg489 @jeeftor
|
||||
source/_integrations/simplepush.markdown @engrbm87
|
||||
source/_integrations/simplisafe.markdown @bachya
|
||||
source/_integrations/simply_automated.markdown @gwww
|
||||
source/_integrations/simu.markdown @imicknl @vlebourl @tetienne @nyroDev @tronix117 @alexfp14
|
||||
source/_integrations/simu.markdown @imicknl
|
||||
source/_integrations/sinch.markdown @bendikrb
|
||||
source/_integrations/siren.markdown @home-assistant/core @raman325
|
||||
source/_integrations/sisyphus.markdown @jkeljo
|
||||
@ -774,12 +800,14 @@ source/_integrations/skybell.markdown @tkdrob
|
||||
source/_integrations/slack.markdown @tkdrob @fletcherau
|
||||
source/_integrations/sleepiq.markdown @mfugate1 @kbickar
|
||||
source/_integrations/slide.markdown @ualex73
|
||||
source/_integrations/slide_local.markdown @dontinelli
|
||||
source/_integrations/slimproto.markdown @marcelveldt
|
||||
source/_integrations/sma.markdown @kellerza @rklomp
|
||||
source/_integrations/sma.markdown @kellerza @rklomp @erwindouna
|
||||
source/_integrations/smappee.markdown @bsmappee
|
||||
source/_integrations/smart_blinds.markdown @starkillerOG
|
||||
source/_integrations/smart_home.markdown @starkillerOG
|
||||
source/_integrations/smart_meter_texas.markdown @grahamwetzler
|
||||
source/_integrations/smart_rollos.markdown @starkillerOG
|
||||
source/_integrations/smarther.markdown @cgtobi
|
||||
source/_integrations/smarttub.markdown @mdz
|
||||
source/_integrations/smarty.markdown @z0mbieprocess
|
||||
@ -789,13 +817,14 @@ source/_integrations/sms.markdown @ocalvo
|
||||
source/_integrations/smud.markdown @tronikos
|
||||
source/_integrations/snapcast.markdown @luar123
|
||||
source/_integrations/snmp.markdown @nmaggioni
|
||||
source/_integrations/snoo.markdown @Lash-L
|
||||
source/_integrations/snooz.markdown @AustinBrunkhorst
|
||||
source/_integrations/solaredge.markdown @frenck @bdraco
|
||||
source/_integrations/solaredge_local.markdown @drobtravels @scheric
|
||||
source/_integrations/solarlog.markdown @Ernst79 @dontinelli
|
||||
source/_integrations/solax.markdown @squishykid
|
||||
source/_integrations/solax.markdown @squishykid @Darsstar
|
||||
source/_integrations/soma.markdown @ratsept @sebfortier2288
|
||||
source/_integrations/somfy.markdown @imicknl @vlebourl @tetienne @nyroDev @tronix117 @alexfp14
|
||||
source/_integrations/somfy.markdown @imicknl
|
||||
source/_integrations/sonarr.markdown @ctalkington
|
||||
source/_integrations/songpal.markdown @rytilahti @shenxn
|
||||
source/_integrations/sonos.markdown @jjlawren @peterager
|
||||
@ -809,11 +838,10 @@ source/_integrations/squeezebox.markdown @rajlaud @pssc @peteS-UK
|
||||
source/_integrations/srp_energy.markdown @briglx
|
||||
source/_integrations/starline.markdown @anonym-tsk
|
||||
source/_integrations/starlink.markdown @boswelja
|
||||
source/_integrations/statistics.markdown @ThomDietrich
|
||||
source/_integrations/statistics.markdown @ThomDietrich @gjohansson-ST
|
||||
source/_integrations/steam_online.markdown @tkdrob
|
||||
source/_integrations/steamist.markdown @bdraco
|
||||
source/_integrations/stiebel_eltron.markdown @fucm
|
||||
source/_integrations/stookalert.markdown @fwestenberg @frenck
|
||||
source/_integrations/stookwijzer.markdown @fwestenberg
|
||||
source/_integrations/stream.markdown @hunterjm @uvjustin @allenporter
|
||||
source/_integrations/stt.markdown @home-assistant/core
|
||||
@ -841,7 +869,7 @@ 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 @chiefdragon @erwindouna
|
||||
source/_integrations/tado.markdown @erwindouna
|
||||
source/_integrations/tag.markdown @balloob @dmulcahey
|
||||
source/_integrations/tailscale.markdown @frenck
|
||||
source/_integrations/tailwind.markdown @frenck
|
||||
@ -891,11 +919,12 @@ source/_integrations/transmission.markdown @engrbm87 @JPHutchins
|
||||
source/_integrations/trend.markdown @jpbede
|
||||
source/_integrations/triggercmd.markdown @rvmey
|
||||
source/_integrations/tts.markdown @home-assistant/core
|
||||
source/_integrations/tuya.markdown @Tuya @zlinoliver @frenck
|
||||
source/_integrations/tuya.markdown @Tuya @zlinoliver
|
||||
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 @tronix117 @alexfp14
|
||||
source/_integrations/ubiwizz.markdown @imicknl
|
||||
source/_integrations/ublockout.markdown @starkillerOG
|
||||
source/_integrations/ukraine_alarm.markdown @PaulAnnekov
|
||||
source/_integrations/unifi.markdown @Kane610
|
||||
source/_integrations/unifi_direct.markdown @tofuSCHNITZEL
|
||||
@ -918,12 +947,12 @@ source/_integrations/vacuum.template.markdown @home-assistant/core
|
||||
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 @DeerMaximum
|
||||
source/_integrations/velux.markdown @Julius2342 @DeerMaximum @pawlizio
|
||||
source/_integrations/venstar.markdown @garbled1 @jhollowe
|
||||
source/_integrations/vermont_castings.markdown @jeeftor
|
||||
source/_integrations/versasense.markdown @imstevenxyz
|
||||
source/_integrations/version.markdown @ludeeus
|
||||
source/_integrations/vesync.markdown @markperdue @webdjoe @thegardenmonkey @cdnninja
|
||||
source/_integrations/vesync.markdown @markperdue @webdjoe @thegardenmonkey @cdnninja @iprak
|
||||
source/_integrations/vicare.markdown @CFenner
|
||||
source/_integrations/vilfo.markdown @ManneW
|
||||
source/_integrations/vivotek.markdown @HarlemSquirrel
|
||||
@ -940,6 +969,7 @@ source/_integrations/wake_word.markdown @home-assistant/core @synesthesiam
|
||||
source/_integrations/wallbox.markdown @hesselonline
|
||||
source/_integrations/waqi.markdown @joostlek
|
||||
source/_integrations/water_heater.markdown @home-assistant/core
|
||||
source/_integrations/watergate.markdown @adam-the-hero
|
||||
source/_integrations/watson_tts.markdown @rutkai
|
||||
source/_integrations/watttime.markdown @bachya
|
||||
source/_integrations/waze_travel_time.markdown @eifinger
|
||||
@ -948,6 +978,7 @@ source/_integrations/weather.template.markdown @home-assistant/core
|
||||
source/_integrations/weatherflow.markdown @natekspencer @jeeftor
|
||||
source/_integrations/weatherflow_cloud.markdown @jeeftor
|
||||
source/_integrations/weatherkit.markdown @tjhorner
|
||||
source/_integrations/webdav.markdown @jpbede
|
||||
source/_integrations/webhook.markdown @home-assistant/core
|
||||
source/_integrations/webmin.markdown @autinerd
|
||||
source/_integrations/webostv.markdown @thecode
|
||||
@ -988,6 +1019,7 @@ source/_integrations/yi.markdown @bachya
|
||||
source/_integrations/yolink.markdown @matrixd2
|
||||
source/_integrations/youless.markdown @gjong
|
||||
source/_integrations/youtube.markdown @joostlek
|
||||
source/_integrations/zabbix.markdown @kruton
|
||||
source/_integrations/zamg.markdown @killer0071234
|
||||
source/_integrations/zengge.markdown @emontnemery
|
||||
source/_integrations/zeroconf.markdown @bdraco
|
||||
|
10
Gemfile
10
Gemfile
@ -4,15 +4,15 @@ ruby '> 2.5.0'
|
||||
|
||||
group :development do
|
||||
gem 'rake', '13.2.1'
|
||||
gem 'jekyll', '4.3.4'
|
||||
gem 'jekyll', '4.4.1'
|
||||
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 'sass-embedded', '1.83.0'
|
||||
gem 'rubocop', '1.69.2'
|
||||
gem 'ruby-lsp', '0.22.1'
|
||||
gem 'sass-embedded', '1.86.0'
|
||||
gem 'rubocop', '1.74.0'
|
||||
gem 'ruby-lsp', '0.23.12'
|
||||
gem 'rackup', '2.2.1'
|
||||
end
|
||||
|
||||
@ -24,7 +24,7 @@ group :jekyll_plugins do
|
||||
end
|
||||
|
||||
gem 'sinatra', '4.1.1'
|
||||
gem 'nokogiri', '1.17.2'
|
||||
gem 'nokogiri', '1.18.6'
|
||||
|
||||
# Windows and JRuby does not include zoneinfo files, so bundle the tzinfo-data gem
|
||||
# and associated library
|
||||
|
90
Gemfile.lock
90
Gemfile.lock
@ -3,9 +3,9 @@ GEM
|
||||
specs:
|
||||
addressable (2.8.7)
|
||||
public_suffix (>= 2.0.2, < 7.0)
|
||||
ast (2.4.2)
|
||||
ast (2.4.3)
|
||||
base64 (0.2.0)
|
||||
bigdecimal (3.1.8)
|
||||
bigdecimal (3.1.9)
|
||||
chunky_png (1.4.0)
|
||||
colorator (1.1.0)
|
||||
commonmarker (0.23.11)
|
||||
@ -21,34 +21,38 @@ GEM
|
||||
sass (>= 3.3.0, < 3.5)
|
||||
compass-import-once (1.0.5)
|
||||
sass (>= 3.2, < 3.5)
|
||||
concurrent-ruby (1.3.4)
|
||||
concurrent-ruby (1.3.5)
|
||||
csv (3.3.3)
|
||||
em-websocket (0.5.3)
|
||||
eventmachine (>= 0.12.9)
|
||||
http_parser.rb (~> 0)
|
||||
eventmachine (1.2.7)
|
||||
ffi (1.17.0-arm64-darwin)
|
||||
ffi (1.17.0-x86_64-linux-gnu)
|
||||
ffi (1.17.1-arm64-darwin)
|
||||
ffi (1.17.1-x86_64-linux-gnu)
|
||||
forwardable-extended (2.6.0)
|
||||
google-protobuf (4.29.2-arm64-darwin)
|
||||
google-protobuf (4.30.1-arm64-darwin)
|
||||
bigdecimal
|
||||
rake (>= 13)
|
||||
google-protobuf (4.29.2-x86_64-linux)
|
||||
google-protobuf (4.30.1-x86_64-linux)
|
||||
bigdecimal
|
||||
rake (>= 13)
|
||||
http_parser.rb (0.8.0)
|
||||
i18n (1.14.6)
|
||||
i18n (1.14.7)
|
||||
concurrent-ruby (~> 1.0)
|
||||
jekyll (4.3.4)
|
||||
jekyll (4.4.1)
|
||||
addressable (~> 2.4)
|
||||
base64 (~> 0.2)
|
||||
colorator (~> 1.0)
|
||||
csv (~> 3.0)
|
||||
em-websocket (~> 0.5)
|
||||
i18n (~> 1.0)
|
||||
jekyll-sass-converter (>= 2.0, < 4.0)
|
||||
jekyll-watch (~> 2.0)
|
||||
json (~> 2.6)
|
||||
kramdown (~> 2.3, >= 2.3.1)
|
||||
kramdown-parser-gfm (~> 1.0)
|
||||
liquid (~> 4.0)
|
||||
mercenary (>= 0.3.6, < 0.5)
|
||||
mercenary (~> 0.3, >= 0.3.6)
|
||||
pathutil (~> 0.9)
|
||||
rouge (>= 3.0, < 5.0)
|
||||
safe_yaml (~> 1.0)
|
||||
@ -57,8 +61,8 @@ GEM
|
||||
jekyll-commonmark (1.4.0)
|
||||
commonmarker (~> 0.22)
|
||||
jekyll-paginate (1.1.0)
|
||||
jekyll-sass-converter (3.0.0)
|
||||
sass-embedded (~> 1.54)
|
||||
jekyll-sass-converter (3.1.0)
|
||||
sass-embedded (~> 1.75)
|
||||
jekyll-sitemap (1.4.0)
|
||||
jekyll (>= 3.7, < 5.0)
|
||||
jekyll-toc (0.19.0)
|
||||
@ -66,40 +70,42 @@ GEM
|
||||
nokogiri (~> 1.12)
|
||||
jekyll-watch (2.2.1)
|
||||
listen (~> 3.0)
|
||||
json (2.9.1)
|
||||
json (2.10.2)
|
||||
kramdown (2.5.1)
|
||||
rexml (>= 3.3.9)
|
||||
kramdown-parser-gfm (1.1.0)
|
||||
kramdown (~> 2.0)
|
||||
language_server-protocol (3.17.0.3)
|
||||
language_server-protocol (3.17.0.4)
|
||||
lint_roller (1.1.0)
|
||||
liquid (4.0.4)
|
||||
listen (3.9.0)
|
||||
rb-fsevent (~> 0.10, >= 0.10.3)
|
||||
rb-inotify (~> 0.9, >= 0.9.10)
|
||||
logger (1.6.4)
|
||||
logger (1.6.6)
|
||||
mercenary (0.4.0)
|
||||
multi_json (1.15.0)
|
||||
mustermann (3.0.3)
|
||||
ruby2_keywords (~> 0.0.1)
|
||||
nokogiri (1.17.2-arm64-darwin)
|
||||
nokogiri (1.18.6-arm64-darwin)
|
||||
racc (~> 1.4)
|
||||
nokogiri (1.17.2-x86_64-linux)
|
||||
nokogiri (1.18.6-x86_64-linux-gnu)
|
||||
racc (~> 1.4)
|
||||
parallel (1.26.3)
|
||||
parser (3.3.6.0)
|
||||
parser (3.3.7.2)
|
||||
ast (~> 2.4.1)
|
||||
racc
|
||||
pathutil (0.16.2)
|
||||
forwardable-extended (~> 2.6)
|
||||
prism (1.3.0)
|
||||
prism (1.4.0)
|
||||
public_suffix (6.0.1)
|
||||
racc (1.8.1)
|
||||
rack (3.1.8)
|
||||
rack (3.1.12)
|
||||
rack-protection (4.1.1)
|
||||
base64 (>= 0.1.0)
|
||||
logger (>= 1.6.0)
|
||||
rack (>= 3.0.0, < 4)
|
||||
rack-session (2.0.0)
|
||||
rack-session (2.1.0)
|
||||
base64 (>= 0.1.0)
|
||||
rack (>= 3.0.0)
|
||||
rackup (2.2.1)
|
||||
rack (>= 3)
|
||||
@ -108,24 +114,25 @@ GEM
|
||||
rb-fsevent (0.11.2)
|
||||
rb-inotify (0.11.1)
|
||||
ffi (~> 1.0)
|
||||
rbs (3.7.0)
|
||||
rbs (3.9.1)
|
||||
logger
|
||||
regexp_parser (2.9.3)
|
||||
rexml (3.4.0)
|
||||
regexp_parser (2.10.0)
|
||||
rexml (3.4.1)
|
||||
rouge (4.5.1)
|
||||
rubocop (1.69.2)
|
||||
rubocop (1.74.0)
|
||||
json (~> 2.3)
|
||||
language_server-protocol (>= 3.17.0)
|
||||
language_server-protocol (~> 3.17.0.2)
|
||||
lint_roller (~> 1.1.0)
|
||||
parallel (~> 1.10)
|
||||
parser (>= 3.3.0.2)
|
||||
rainbow (>= 2.2.2, < 4.0)
|
||||
regexp_parser (>= 2.9.3, < 3.0)
|
||||
rubocop-ast (>= 1.36.2, < 2.0)
|
||||
rubocop-ast (>= 1.38.0, < 2.0)
|
||||
ruby-progressbar (~> 1.7)
|
||||
unicode-display_width (>= 2.4.0, < 4.0)
|
||||
rubocop-ast (1.37.0)
|
||||
parser (>= 3.3.1.0)
|
||||
ruby-lsp (0.22.1)
|
||||
rubocop-ast (1.41.0)
|
||||
parser (>= 3.3.7.2)
|
||||
ruby-lsp (0.23.12)
|
||||
language_server-protocol (~> 3.17.0)
|
||||
prism (>= 1.2, < 2.0)
|
||||
rbs (>= 3, < 4)
|
||||
@ -134,9 +141,10 @@ GEM
|
||||
ruby2_keywords (0.0.5)
|
||||
safe_yaml (1.0.5)
|
||||
sass (3.4.25)
|
||||
sass-embedded (1.83.0)
|
||||
google-protobuf (~> 4.28)
|
||||
rake (>= 13)
|
||||
sass-embedded (1.86.0-arm64-darwin)
|
||||
google-protobuf (~> 4.30)
|
||||
sass-embedded (1.86.0-x86_64-linux-gnu)
|
||||
google-protobuf (~> 4.30)
|
||||
sass-globbing (1.1.5)
|
||||
sass (>= 3.1)
|
||||
sassc (2.1.0)
|
||||
@ -150,14 +158,14 @@ GEM
|
||||
rack-protection (= 4.1.1)
|
||||
rack-session (>= 2.0.0, < 3)
|
||||
tilt (~> 2.0)
|
||||
sorbet-runtime (0.5.11708)
|
||||
sorbet-runtime (0.5.11954)
|
||||
stringex (2.8.6)
|
||||
terminal-table (3.0.2)
|
||||
unicode-display_width (>= 1.1.1, < 3)
|
||||
tilt (2.5.0)
|
||||
tilt (2.6.0)
|
||||
tzinfo (2.0.6)
|
||||
concurrent-ruby (~> 1.0)
|
||||
tzinfo-data (1.2024.2)
|
||||
tzinfo-data (1.2025.2)
|
||||
tzinfo (>= 1.0.0)
|
||||
unicode-display_width (2.6.0)
|
||||
webrick (1.9.1)
|
||||
@ -168,17 +176,17 @@ PLATFORMS
|
||||
|
||||
DEPENDENCIES
|
||||
compass (= 1.0.3)
|
||||
jekyll (= 4.3.4)
|
||||
jekyll (= 4.4.1)
|
||||
jekyll-commonmark (= 1.4.0)
|
||||
jekyll-paginate (= 1.1.0)
|
||||
jekyll-sitemap (= 1.4.0)
|
||||
jekyll-toc (= 0.19.0)
|
||||
nokogiri (= 1.17.2)
|
||||
nokogiri (= 1.18.6)
|
||||
rackup (= 2.2.1)
|
||||
rake (= 13.2.1)
|
||||
rubocop (= 1.69.2)
|
||||
ruby-lsp (= 0.22.1)
|
||||
sass-embedded (= 1.83.0)
|
||||
rubocop (= 1.74.0)
|
||||
ruby-lsp (= 0.23.12)
|
||||
sass-embedded (= 1.86.0)
|
||||
sass-globbing (= 1.1.5)
|
||||
sassc (= 2.1.0)
|
||||
sinatra (= 4.1.1)
|
||||
|
@ -106,10 +106,10 @@ social:
|
||||
account: "https://fosstodon.org/@homeassistant"
|
||||
|
||||
# Home Assistant release details
|
||||
current_major_version: 2024
|
||||
current_minor_version: 12
|
||||
current_patch_version: 5
|
||||
date_released: 2024-12-20
|
||||
current_major_version: 2025
|
||||
current_minor_version: 3
|
||||
current_patch_version: 4
|
||||
date_released: 2025-03-21
|
||||
|
||||
# Either # or the anchor link to latest release notes in the blog post.
|
||||
# Must be prefixed with a # and have double quotes around it.
|
||||
|
823
package-lock.json
generated
823
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
18
package.json
18
package.json
@ -5,17 +5,17 @@
|
||||
"devDependencies": {
|
||||
"remark-cli": "^12.0.1",
|
||||
"remark-frontmatter": "^5.0.0",
|
||||
"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": "^10.0.1",
|
||||
"remark-lint-fenced-code-flag": "^4.1.1",
|
||||
"remark-lint-heading-increment": "^4.0.1",
|
||||
"remark-lint-heading-style": "^4.0.1",
|
||||
"remark-lint-no-shell-dollars": "^4.0.1",
|
||||
"remark-lint-ordered-list-marker-style": "^4.0.1",
|
||||
"remark-lint-ordered-list-marker-value": "^4.0.1",
|
||||
"remark-lint-prohibited-strings": "^4.0.0",
|
||||
"remark-lint-unordered-list-marker-style": "^4.0.0",
|
||||
"remark-lint-unordered-list-marker-style": "^4.0.1",
|
||||
"remark-stringify": "^11.0.0",
|
||||
"textlint": "^14.4.0",
|
||||
"textlint": "^14.5.0",
|
||||
"textlint-filter-rule-comments": "^1.2.2",
|
||||
"textlint-rule-common-misspellings": "^1.0.1",
|
||||
"textlint-rule-terminology": "^5.0.13"
|
||||
|
@ -124,6 +124,11 @@ module Jekyll
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def case_insensitive_sort(input, key)
|
||||
return input unless input.is_a?(Array)
|
||||
input.sort_by { |item| item[key].to_s.downcase }
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -20,6 +20,7 @@
|
||||
@import "plugins/integration_alert";
|
||||
|
||||
@import "base/sidebar";
|
||||
@import "aside/buy_dialog";
|
||||
@import "aside/recent_posts";
|
||||
@import "aside/github";
|
||||
@import "aside/pinboard";
|
||||
|
@ -1130,7 +1130,11 @@ article.listing {
|
||||
&>table,
|
||||
&>.entry-content>table {
|
||||
background-color: #fff;
|
||||
display: block;
|
||||
overflow-x: auto;
|
||||
table-layout: auto;
|
||||
width: fit-content;
|
||||
max-width: 100%;
|
||||
|
||||
&>thead {
|
||||
background-color: rgba(0, 0, 0, .025);
|
||||
|
218
sass/homeassistant/aside/_buy_dialog.scss
Normal file
218
sass/homeassistant/aside/_buy_dialog.scss
Normal file
@ -0,0 +1,218 @@
|
||||
// More specificity
|
||||
#landingpage .page-content .content {
|
||||
.ha-buy-dialog {
|
||||
background: rgba(0, 0, 0, 0.4);
|
||||
display: none;
|
||||
inset: 0;
|
||||
padding: 40px;
|
||||
place-items: center;
|
||||
position: fixed;
|
||||
z-index: 1200;
|
||||
|
||||
&.open {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
&-inner {
|
||||
background-color: #ffffff;
|
||||
border-radius: 8px;
|
||||
display: grid;
|
||||
gap: 20px;
|
||||
max-width: 624px;
|
||||
padding: 20px;
|
||||
width: 100%;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
&-header {
|
||||
align-items: center;
|
||||
display: flex;
|
||||
|
||||
.product-name {
|
||||
flex-grow: 1;
|
||||
font-size: 20px;
|
||||
|
||||
@media (min-width: 704px) {
|
||||
font-size: 28px;
|
||||
}
|
||||
}
|
||||
|
||||
.close {
|
||||
align-items: center;
|
||||
cursor: pointer;
|
||||
display: flex;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
}
|
||||
|
||||
&-content {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 20px;
|
||||
max-height: 100%;
|
||||
overflow: hidden;
|
||||
|
||||
@media (min-width: 704px) {
|
||||
flex-direction: row;
|
||||
}
|
||||
}
|
||||
|
||||
&-sidebar {
|
||||
background-color: #F0F0F3;
|
||||
border-radius: 8px;
|
||||
min-width: 140px;
|
||||
padding: 12px;
|
||||
|
||||
&-label {
|
||||
font-size: 14px;
|
||||
font-weight: 700;
|
||||
padding-bottom: 8px;
|
||||
}
|
||||
|
||||
&-tabs {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
flex-wrap: wrap;
|
||||
gap: 4px;
|
||||
|
||||
@media (min-width: 704px) {
|
||||
flex-direction: column;
|
||||
flex-wrap: nowrap;
|
||||
}
|
||||
}
|
||||
|
||||
&-tab {
|
||||
background-color: transparent;
|
||||
border-radius: 4px;
|
||||
color: #4F606E;
|
||||
cursor: pointer;
|
||||
flex-basis: 40%;
|
||||
flex-grow: 1;
|
||||
font-size: 16px;
|
||||
padding: 8px;
|
||||
text-align: center;
|
||||
transition: background-color 0.1s;
|
||||
user-select: none;
|
||||
|
||||
@media (min-width: 704px) {
|
||||
flex-basis: unset;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
background-color: #e1e1e1;
|
||||
}
|
||||
|
||||
&.active {
|
||||
background-color: #FCFCFF;
|
||||
color: #000;
|
||||
pointer-events: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&-tab {
|
||||
&-content-wrapper {
|
||||
flex-grow: 1;
|
||||
height: 100%;
|
||||
max-height: 475px;
|
||||
overflow-y: auto;
|
||||
}
|
||||
|
||||
&-content {
|
||||
display: none;
|
||||
flex-direction: column;
|
||||
gap: 32px;
|
||||
|
||||
&.active {
|
||||
display: flex;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&-distributor {
|
||||
&-countries {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 18px;
|
||||
}
|
||||
|
||||
&-country {
|
||||
&-name {
|
||||
align-items: center;
|
||||
display: flex;
|
||||
font-size: 14px;
|
||||
font-weight: 700;
|
||||
gap: 10px;
|
||||
padding-bottom: 12px;
|
||||
}
|
||||
|
||||
&-flag {
|
||||
border-radius: 0;
|
||||
height: 8px;
|
||||
}
|
||||
|
||||
$letters: "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
|
||||
@for $i from 1 through 26 {
|
||||
$letter: str-slice($letters, $i, $i);
|
||||
|
||||
&[data-sort="#{$letter}"] {
|
||||
order: $i;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&-items {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 8px;
|
||||
justify-content: center;
|
||||
|
||||
@media (min-width: 704px) {
|
||||
gap: 20px;
|
||||
justify-content: flex-start;
|
||||
max-width: 400px;
|
||||
}
|
||||
}
|
||||
|
||||
&-item {
|
||||
border: 1px solid #F0F0F3;
|
||||
border-radius: 8px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 8px;
|
||||
height: 60px;
|
||||
padding: 4px 16px;
|
||||
place-items: center;
|
||||
text-align: center;
|
||||
text-decoration: none;
|
||||
transition: background-color 0.1s;
|
||||
width: 120px;
|
||||
|
||||
span {
|
||||
color: #4F606E;
|
||||
font-size: 10px;
|
||||
height: 14px;
|
||||
line-height: 1;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
background-color: #F0F0F3;
|
||||
}
|
||||
}
|
||||
|
||||
&-logo {
|
||||
border: unset;
|
||||
border-radius: 0;
|
||||
box-shadow: unset;
|
||||
flex-grow: 1;
|
||||
height: 100%;
|
||||
max-height: 50px;
|
||||
object-fit: contain;
|
||||
overflow: hidden;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -152,7 +152,7 @@ header .grid {
|
||||
.menu {
|
||||
background: $white;
|
||||
box-shadow: 0px 64px 32px rgba(0,0,0,.1);
|
||||
max-height: 100vh;
|
||||
max-height: calc(100vh - 68px);
|
||||
overflow-y: auto;
|
||||
}
|
||||
|
||||
|
@ -5,22 +5,156 @@
|
||||
font-weight: 500;
|
||||
letter-spacing: .005em;
|
||||
color: $gray;
|
||||
padding-top: 8px;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
}
|
||||
|
||||
.component-search {
|
||||
margin-bottom: 24px;
|
||||
min-height: 80px;
|
||||
|
||||
input {
|
||||
width: 100%;
|
||||
padding: 10px;
|
||||
|
||||
background-color: #fefefe;
|
||||
border-radius: 8px;
|
||||
border: 1px solid;
|
||||
border-color: #7c7c7c #c3c3c3 #ddd;
|
||||
}
|
||||
}
|
||||
|
||||
.grid-filters {
|
||||
@media only screen and (min-width: $desk-start) {
|
||||
display: flex;
|
||||
}
|
||||
}
|
||||
|
||||
.integration-filter-radio {
|
||||
display: flex;
|
||||
border: none;
|
||||
padding: 0;
|
||||
grid-gap: 10px;
|
||||
}
|
||||
|
||||
.filter-button {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-bottom: 0;
|
||||
width: fit-content;
|
||||
font-size: 1rem;
|
||||
box-shadow: none;
|
||||
background-color: $blueDark;
|
||||
color: white;
|
||||
border-radius: 24px;
|
||||
|
||||
input {
|
||||
appearance: none;
|
||||
-webkit-appearance: none;
|
||||
-moz-appearance: none;
|
||||
padding-left: 16px;
|
||||
display: block;
|
||||
margin-left: 10px;
|
||||
flex-shrink: 0;
|
||||
height: 1rem;
|
||||
width: 1rem;
|
||||
border-radius: 100%;
|
||||
border-color: transparent;
|
||||
background-color: white;
|
||||
|
||||
&:checked {
|
||||
background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2016%2016%22%20fill%3D%22%23007fa8%22%20transform%3D%22rotate(90)%22%3E%3Ccircle%20cx%3D%228%22%20cy%3D%228%22%20r%3D%223%22%2F%3E%3C%2Fsvg%3E");
|
||||
}
|
||||
}
|
||||
|
||||
label {
|
||||
display: block;
|
||||
width: 100%;
|
||||
padding: 4px 16px 4px 10px;
|
||||
}
|
||||
}
|
||||
|
||||
.integration-filter.integration-filter-select {
|
||||
position: relative;
|
||||
|
||||
&::after {
|
||||
content: " ";
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
margin-top: 2px;
|
||||
right: 8px;
|
||||
width: 0;
|
||||
height: 0;
|
||||
border-left: 5px solid transparent;
|
||||
border-right: 5px solid transparent;
|
||||
border-top: 5px solid black;
|
||||
}
|
||||
|
||||
.ha_category {
|
||||
-webkit-appearance: none;
|
||||
-moz-appearance: none;
|
||||
appearance: none;
|
||||
color: #222;
|
||||
width: 100%;
|
||||
margin-bottom: 15px;
|
||||
text-align-last: center;
|
||||
font-size: 16px;
|
||||
line-height: 24px;
|
||||
border: 2px solid $blueDark;
|
||||
border-top-right-radius: 0px;
|
||||
border-top-left-radius: 0px;
|
||||
border-bottom-right-radius: 5px;
|
||||
border-bottom-left-radius: 5px;
|
||||
border-top: 0;
|
||||
position: relative;
|
||||
top: -2px;
|
||||
padding: 5px 5px 2px;
|
||||
|
||||
&:focus-visible {
|
||||
outline: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.filter-title {
|
||||
background: $blueDark;
|
||||
color: white;
|
||||
text-align: center;
|
||||
border-top-right-radius: 5px;
|
||||
border-top-left-radius: 5px;
|
||||
padding: 5px;
|
||||
margin-top: 0;
|
||||
margin-bottom: -2px;
|
||||
text-transform: capitalize;
|
||||
font-size: 18px;
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.active-filter {
|
||||
margin: 10px 5px 0px 0px;
|
||||
padding: 5px 10px;
|
||||
min-width: 100px;
|
||||
background-color: $blueDark;
|
||||
border-radius: 28px;
|
||||
border: none;
|
||||
color: white;
|
||||
font-size: 14px;
|
||||
letter-spacing: 0.5px;
|
||||
text-transform: capitalize;
|
||||
line-height: 18px;
|
||||
|
||||
span {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
iconify-icon {
|
||||
display: inline-block;
|
||||
margin-left: 5px;
|
||||
}
|
||||
}
|
||||
|
||||
select {
|
||||
font-family: $sans-serif;
|
||||
border: 0;
|
||||
@ -44,6 +178,10 @@
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
div.alert {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.option-card {
|
||||
flex: 0 0 auto;
|
||||
aspect-ratio: 1;
|
||||
|
@ -188,6 +188,11 @@ $ha__primary_color: #03a9f4;
|
||||
width: 330px;
|
||||
}
|
||||
|
||||
.button{
|
||||
display: inline-block;
|
||||
padding: 8px 24px;
|
||||
}
|
||||
|
||||
.title {
|
||||
margin-bottom: 4px;
|
||||
}
|
||||
|
@ -156,6 +156,7 @@ Screenshot of a vertical stack card with 4 buttons and an entity selector.
|
||||
The image shows a vertical stack card with 4 buttons arranged in a horizontal stack card and an entity selector. The buttons use the toggle action to run a script, for example, the Netflix script, which starts up the TV and opens Netflix. To learn how to create scripts, refer to [scripts](/docs/scripts/).
|
||||
|
||||
```yaml
|
||||
type: vertical-stack
|
||||
cards:
|
||||
- entities:
|
||||
- entity: input_select.living_room_scene
|
||||
@ -201,5 +202,4 @@ cards:
|
||||
action: more-info
|
||||
show_name: true
|
||||
show_icon: true
|
||||
type: vertical-stack
|
||||
```
|
||||
|
@ -6,7 +6,7 @@ description: The Conditional card displays another card based on conditions.
|
||||
related:
|
||||
- docs: /dashboards/cards/
|
||||
title: Dashboard cards
|
||||
- docs: /dashboards/cards/#showing-or-hiding-a-card-conditionally
|
||||
- docs: /dashboards/cards/#showing-or-hiding-a-card-or-badge-conditionally
|
||||
title: Conditional settings on the card's visibility tab
|
||||
---
|
||||
|
||||
@ -17,7 +17,7 @@ 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/#showing-or-hiding-a-card-conditionally) tab.
|
||||
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/#showing-or-hiding-a-card-or-badge-conditionally) tab.
|
||||
|
||||
Most options for this card can be configured via the user interface.
|
||||
|
||||
|
@ -234,3 +234,50 @@ The following example limits the number of shown devices to 5:
|
||||
type: energy-devices-detail-graph
|
||||
max_devices: 5
|
||||
```
|
||||
|
||||
## Sankey energy graph
|
||||
|
||||
<p class='img'>
|
||||
<img src='/images/dashboards/energy/sankey.png' alt='Screenshot of the sankey energy graph card'>
|
||||
Screenshot of the sankey energy graph card.
|
||||
</p>
|
||||
|
||||
The sankey energy graph shows the flow of energy in your home. It starts with sources and flows into the various consumers. Devices are grouped into floors and areas if these are configured.
|
||||
|
||||
### Examples
|
||||
|
||||
```yaml
|
||||
type: energy-sankey
|
||||
```
|
||||
|
||||
The following example orients the flow from top to bottom:
|
||||
|
||||
```yaml
|
||||
type: energy-sankey
|
||||
layout: vertical
|
||||
```
|
||||
|
||||
## Using Multiple Collections
|
||||
|
||||
By default, all energy cards are linked to any `energy-date-selection` card on the view, and all `energy-date-selection` cards are linked to the same period. To enable multiple different date selections on the same view, it is necessary to link them to different collections. This is done by adding the variable `collection_key` to the card YAML, and giving this a value of any custom string that begins with `energy_`. (strings that do not start with `energy_` will generate an error).
|
||||
|
||||
All energy cards support use of `collection_key` option.
|
||||
|
||||
### Examples
|
||||
Example view with multiple collections:
|
||||
|
||||
```yaml
|
||||
type: masonry
|
||||
path: example
|
||||
cards:
|
||||
- type: energy-date-selection
|
||||
- type: energy-date-selection
|
||||
collection_key: energy_2
|
||||
|
||||
# This card is linked to the first (default) date selection
|
||||
- type: energy-usage-graph
|
||||
|
||||
# This card is linked to the second date selection
|
||||
- type: energy-usage-graph
|
||||
collection_key: energy_2
|
||||
```
|
||||
|
@ -145,6 +145,10 @@ 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]
|
||||
entity:
|
||||
required: false
|
||||
description: An optional entity ID to be used for testing the state condition. If not provided, the state of the entity being displayed is tested.
|
||||
type: string
|
||||
{% endconfiguration %}
|
||||
|
||||
*one is required (`state` or `state_not`)
|
||||
@ -178,6 +182,10 @@ below:
|
||||
required: false
|
||||
description: Entity state or ID to be below this value.*
|
||||
type: string
|
||||
entity:
|
||||
required: false
|
||||
description: An optional entity ID to be used for testing the numeric state condition. If not provided, the numeric state of the entity being displayed is tested.
|
||||
type: string
|
||||
{% endconfiguration %}
|
||||
|
||||
*at least one is required (`above` or `below`), both are also possible for values between.
|
||||
|
@ -60,7 +60,7 @@ badges:
|
||||
|
||||
## Heading badges
|
||||
|
||||
In addition to the heading text, each heading card can show small badges. They are smaller than regular [badges](/dashboards/badges/) and don't have a background. The heading badges can display sensor information in a compact and minimal style.
|
||||
In addition to the heading text, each heading card can show small badges. They are smaller than regular [badges](/dashboards/badges/) and don't have a background. The heading badges can display sensor information in a compact and minimal style. Heading badges also support [actions](/dashboards/actions/).
|
||||
|
||||
```yaml
|
||||
type: entity
|
||||
@ -108,4 +108,12 @@ tap_action:
|
||||
required: false
|
||||
description: Action taken on card tap. See [action documentation](/dashboards/actions/#tap-action). By default, it will do nothing.
|
||||
type: map
|
||||
hold_action:
|
||||
required: false
|
||||
description: Action taken on card hold. See [action documentation](/dashboards/actions/#hold-action). By default, it will do nothing.
|
||||
type: map
|
||||
double_tap_action:
|
||||
required: false
|
||||
description: Action taken on card double tap. See [action documentation](/dashboards/actions/#double-tap-action). By default, it will do nothing.
|
||||
type: map
|
||||
{% endconfiguration %}
|
||||
|
@ -71,6 +71,11 @@ fit_y_data:
|
||||
description: If true, configured Y-axis bounds would automatically extend (but not shrink) to fit the data.
|
||||
type: boolean
|
||||
default: false
|
||||
expand_legend:
|
||||
required: false
|
||||
description: If true, the legend will show all items initially
|
||||
type: boolean
|
||||
default: false
|
||||
{% endconfiguration %}
|
||||
|
||||
### Options for entities
|
||||
|
@ -61,6 +61,11 @@ allow:
|
||||
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"
|
||||
disable_sandbox:
|
||||
required: false
|
||||
description: Disables the [sandbox](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe#attr-sandbox) attribute of the iframe, e.g. required for Chrome when viewing PDFs. This is less secure and should only be used if you trust the content of the iframe.
|
||||
type: boolean
|
||||
default: false
|
||||
{% endconfiguration %}
|
||||
|
||||
### Examples
|
||||
|
@ -19,7 +19,7 @@ related:
|
||||
The map card allows you to display your home zone, entities, and other predefined zones 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'>
|
||||
<img src='/images/dashboards/map_card.webp' alt='Screenshot of the map card'>
|
||||
Screenshot of the map card.
|
||||
</p>
|
||||
|
||||
@ -57,13 +57,18 @@ type:
|
||||
description: "`map`"
|
||||
type: string
|
||||
entities:
|
||||
required: true
|
||||
description: List of entity IDs or `entity` objects (see [below](#options-for-entities)). Either this or the `geo_location_sources` configuration option is required.
|
||||
required: false
|
||||
description: List of entity IDs or `entity` objects (see [below](#options-for-entities)). Either this, `show_all`, or the `geo_location_sources` configuration option is required.
|
||||
type: list
|
||||
geo_location_sources:
|
||||
required: true
|
||||
description: List of geolocation sources or `source` objects (see [below](#options-for-geolocation-sources)). All current entities with that source will be displayed on the map. See [Geolocation](/integrations/geo_location/) platform for valid sources. Set to `all` to use all available sources. Either this or the `entities` configuration option is required.
|
||||
required: false
|
||||
description: List of geolocation sources or `source` objects (see [below](#options-for-geolocation-sources)). All current entities with that source will be displayed on the map. See [Geolocation](/integrations/geo_location/) platform for valid sources. Set to `all` to use all available sources. Either this, `show_all`, or the `entities` configuration option is required.
|
||||
type: list
|
||||
show_all:
|
||||
required: false
|
||||
description: Automatically add all entities with coordinates to the map card. (Default behavior of Map panel)
|
||||
type: boolean
|
||||
default: false
|
||||
auto_fit:
|
||||
required: false
|
||||
description: The map will follow moving `entities` by adjusting the viewport of the map each time an entity is updated.
|
||||
@ -125,7 +130,11 @@ name:
|
||||
label_mode:
|
||||
required: false
|
||||
default: name
|
||||
description: When set to `icon`, renders the entity's icon in the marker instead of text. When set to `state`, renders the entity's state as the label for the map marker instead of the entity's name. This option doesn't apply to [zone](/integrations/zone/) entities because they don't use a label but an icon.
|
||||
description: When set to `icon`, renders the entity's icon in the marker instead of text. When set to `state` or `attribute`, renders the entity's state or attribute as the label for the map marker instead of the entity's name. This option doesn't apply to [zone](/integrations/zone/) entities because they don't use a label but an icon.
|
||||
type: string
|
||||
attribute:
|
||||
required: false
|
||||
description: An entity's attribute when `label_mode` set to `attribute`.
|
||||
type: string
|
||||
focus:
|
||||
required: false
|
||||
@ -146,7 +155,11 @@ source:
|
||||
label_mode:
|
||||
required: false
|
||||
default: name
|
||||
description: When set to `icon`, renders the geolocation entity's icon in the marker instead of text. When set to `state`, renders the entity's state as the label for the map marker instead of the entity's name.
|
||||
description: When set to `icon`, renders the entity's icon in the marker instead of text. When set to `state` or `attribute`, renders the entity's state or attribute as the label for the map marker instead of the entity's name. This option doesn't apply to [zone](/integrations/zone/) entities because they don't use a label but an icon.
|
||||
type: string
|
||||
attribute:
|
||||
required: false
|
||||
description: An entity's attribute when `label_mode` set to `attribute`.
|
||||
type: string
|
||||
focus:
|
||||
required: false
|
||||
|
@ -58,6 +58,11 @@ show_empty:
|
||||
description: By default, an empty card will still be shown (resulting in a small empty box). Setting this to `false` hides that empty card instead.
|
||||
default: true
|
||||
type: boolean
|
||||
text_only:
|
||||
required: false
|
||||
description: Display the card without border, background, padding and title.
|
||||
default: false
|
||||
type: boolean
|
||||
{% endconfiguration %}
|
||||
|
||||
### Example
|
||||
|
@ -35,13 +35,31 @@ You can group cards without using horizontal or vertical stack cards.
|
||||
3. Under **Max number of sections wide**, select the maximum number of columns you want to see in the new sections view.
|
||||
4. Under **Dense section placement**, select if you want to allow the cards to be arranged automatically in order to fill gaps between cards.
|
||||
- This will remove some gaps, but it also means you have less control over the order of the cards.
|
||||
- Note that this only applies to horizontal gaps if you used sections more than one column wide.
|
||||
5. 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.
|
||||
6. Once you have created a sections view, you can start curating it:
|
||||
- [Add sections and cards](#adding-sections-and-cards-to-a-sections-view).
|
||||
- [Rearrange](#rearranging-sections-and-cards) and [show or hide sections conditionally](#show-or-hide-section-conditionally).
|
||||
- [Add a dashboard header with a title and badges](#editing-the-header).
|
||||
|
||||
## Editing the header
|
||||
|
||||
<p class='img'>
|
||||
<img src="/images/dashboards/sections_view_header_edit.png" alt="Editing the header"/>
|
||||
Editing the header
|
||||
</p>
|
||||
|
||||
1. To add a title, select the **Add title** button. The title supports [Markdown](https://commonmark.org/help/) and [templating](/docs/configuration/templating/).
|
||||
2. To add badges, elect the **Add badge** button. Follow [steps on adding badges](/dashboards/badges) to see the different possible options.
|
||||
3. To change the title and badges disposition, select the edit {% icon "mdi:edit" %} button to access header settings.
|
||||
|
||||

|
||||
|
||||
## 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.
|
||||
The view 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).
|
||||
@ -108,3 +126,22 @@ type:
|
||||
description: "`sections`"
|
||||
type: string
|
||||
{% endconfiguration %}
|
||||
|
||||
## Header YAML configuration
|
||||
|
||||
{% configuration %}
|
||||
layout:
|
||||
required: false
|
||||
description: Layout of the different elements. Can be `start`, `center`, or `responsive`. `responsive` is the same as `start` on mobile devices. It places badges and title side by side on desktop.
|
||||
type: string
|
||||
default: center
|
||||
badges_position:
|
||||
required: false
|
||||
description: Badges position. Can be `bottom` or `top`.
|
||||
type: string
|
||||
default: bottom
|
||||
card:
|
||||
required: true
|
||||
description: Card to be used as title. If you are configuring the view using the visual editor, the configuration of the [Markdown card](/dashboards/markdown) is used.
|
||||
type: map
|
||||
{% endconfiguration %}
|
||||
|
@ -64,6 +64,10 @@ footer:
|
||||
required: false
|
||||
description: Footer widget to render. See [footer documentation](/dashboards/header-footer/).
|
||||
type: map
|
||||
collection_key:
|
||||
required: false
|
||||
description: "If using `period: energy_date_selection`, you can set a custom key to match the optional key of an `energy-date-selection` card. This is not typically required, but can be useful if multiple date selection cards are used on the same view. See [energy documentation](/dashboards/energy/#using-multiple-collections)."
|
||||
type: string
|
||||
{% endconfiguration %}
|
||||
|
||||
## Example
|
||||
@ -81,7 +85,7 @@ stat_type: change
|
||||
|
||||
## Options for period
|
||||
|
||||
Periods can be configured in 3 different ways:
|
||||
Periods can be configured in 4 different ways:
|
||||
|
||||
### Calendar
|
||||
|
||||
@ -177,3 +181,16 @@ period:
|
||||
seconds: -10
|
||||
stat_type: change
|
||||
```
|
||||
|
||||
### Dynamic date selection
|
||||
|
||||
When placed on a view with an Energy date selection card, the statistic card can be linked to show data from the period selected on the date selection card.
|
||||
|
||||
Example of a period from the date selector:
|
||||
|
||||
```yaml
|
||||
type: statistic
|
||||
entity: sensor.energy_consumption
|
||||
period: energy_date_selection
|
||||
stat_type: change
|
||||
```
|
||||
|
@ -87,6 +87,11 @@ fit_y_data:
|
||||
description: If true, configured Y-axis bounds would automatically extend (but not shrink) to fit the data.
|
||||
type: boolean
|
||||
default: false
|
||||
expand_legend:
|
||||
required: false
|
||||
description: If true, the legend will show all items initially
|
||||
type: boolean
|
||||
default: false
|
||||
energy_date_selection:
|
||||
required: false
|
||||
description: If true, chart date range will follow the date selected on an `energy-date-selection` card on the same view, similar to energy cards.
|
||||
|
@ -12,11 +12,12 @@ related:
|
||||
title: Dashboard cards
|
||||
---
|
||||
|
||||
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 %}.
|
||||
The tile card gives you a quick overview of your {% term entity %}. The card allows you to add tap actions, and features to control the entity. You can also select the {% term entity %} to open 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'>
|
||||
Screenshot of tile cards.
|
||||
<img src='/images/dashboards/tile_card_tap_action.webp' alt='Screenshot of tile cards'>
|
||||
The circular background behind an icon indicates that there is a tap action.
|
||||
The "Downstairs" and "Upstairs" climate entities have a badge and a feature that is bottom-aligned.
|
||||
</p>
|
||||
|
||||
{% include dashboard/edit_dashboard.md %}
|
||||
@ -91,6 +92,12 @@ features:
|
||||
required: false
|
||||
description: Additional widgets to control your entity. See [available features](/dashboards/features).
|
||||
type: list
|
||||
features_position:
|
||||
required: false
|
||||
description: Position of the features on the tile card. Can be `bottom` or `inline`. Only the first feature will be displayed when the option is set to `inline`. `inline` is not compatible with the `vertical` option.
|
||||
type: string
|
||||
default: bottom
|
||||
|
||||
{% endconfiguration %}
|
||||
|
||||
## Examples
|
||||
@ -145,15 +152,4 @@ features:
|
||||
|
||||
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>
|
||||
|
@ -71,6 +71,11 @@ hide_create:
|
||||
description: Hide the textbox for creating new tasks at the top of the card.
|
||||
type: boolean
|
||||
default: "false"
|
||||
display_order:
|
||||
required: false
|
||||
description: "Optionally sorts the items in the to-do list for display. Options are: `none`: Show the list in its original order. `alpha_asc`: Sort the list in alphabetical order. `alpha_desc`: Sort the list in reverse alphabetical order. `duedate_asc`: Sort the list by due date (soonest first). `duedate_desc`: Sort the list by reverse due date (soonest last)."
|
||||
type: string
|
||||
default: "none"
|
||||
{% endconfiguration %}
|
||||
|
||||
### Examples
|
||||
|
@ -532,7 +532,6 @@
|
||||
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.
|
||||
link: /docs/scripts/perform-actions/
|
||||
aliases:
|
||||
- services
|
||||
- term: State
|
||||
|
@ -93,3 +93,7 @@ Missy Quarry:
|
||||
Annika Schulz:
|
||||
name: Annika Schulz
|
||||
github: anakinsbrna
|
||||
|
||||
Miranda Bishop:
|
||||
name: Miranda Bishop
|
||||
github: miranda-gb
|
488
source/_data/products.yml
Normal file
488
source/_data/products.yml
Normal file
@ -0,0 +1,488 @@
|
||||
green:
|
||||
name: "<strong>Home Assistant Green</strong>"
|
||||
distributors:
|
||||
# America
|
||||
- name: Amazon US
|
||||
ship_from: US
|
||||
ship_to: America
|
||||
url: https://www.amazon.com/dp/B0CXVKSG19?maas=maas_adg_BB51722E249D328CABB2F6DF1F8976CC_afap_abs&ref_=aa_maas&tag=maas
|
||||
logo: /images/distributors/amazon.webp
|
||||
- name: ameriDroid
|
||||
ship_from: US
|
||||
ship_to: America
|
||||
url: https://ameridroid.com/products/home-assistant-green
|
||||
logo: /images/distributors/ameridroid.webp
|
||||
- name: CloudFree
|
||||
ship_from: US
|
||||
ship_to: America
|
||||
url: https://cloudfree.shop/product/home-assistant-green/
|
||||
logo: /images/distributors/cloudfree.webp
|
||||
- name: Seeed Studio
|
||||
ship_from: US
|
||||
ship_to: America
|
||||
url: https://www.seeedstudio.com/Home-Assistant-Green-p-5792.html
|
||||
logo: /images/distributors/seeed-studio.webp
|
||||
# Asia
|
||||
- name: Seeed Studio
|
||||
ship_from: China
|
||||
ship_to: Asia
|
||||
url: https://www.seeedstudio.com/Home-Assistant-Green-p-5792.html
|
||||
logo: /images/distributors/seeed-studio.webp
|
||||
# Australia
|
||||
- name: Oz Smart Things
|
||||
ship_from: Australia
|
||||
ship_to: Australia
|
||||
url: https://www.ozsmartthings.com.au/products/home-assistant-green-smart-hub
|
||||
logo: /images/distributors/oz-smart-things.webp
|
||||
- name: Smart Guys
|
||||
ship_from: Australia
|
||||
ship_to: Australia
|
||||
url: https://smartguys.com.au/home-assistant-green.html
|
||||
logo: /images/distributors/smart-guys.webp
|
||||
- name: SmartHome
|
||||
ship_from: Australia
|
||||
ship_to: Australia
|
||||
url: https://www.smarthome.com.au/product/home-assistant-green/
|
||||
logo: /images/distributors/smarthome.webp
|
||||
# Europe
|
||||
- name: Alza.cz
|
||||
ship_from: Czechia
|
||||
ship_to: Europe
|
||||
url: https://www.alza.cz/home-assistant-green-d7998187.htm
|
||||
logo: /images/distributors/alza-cz.webp
|
||||
- name: Botland
|
||||
ship_from: Poland
|
||||
ship_to: Europe
|
||||
url: https://botland.com.pl/centralki-i-bramki-sieciowe/24319-home-assistant-green-inteligentna-centralka-nabu-casa-nc-green-1175-794677011758.html
|
||||
logo: /images/distributors/botland.webp
|
||||
- name: DinamoTech
|
||||
ship_from: Italy
|
||||
ship_to: Europe
|
||||
url: https://dinamotech.it/products/home-assistant-green
|
||||
logo: /images/distributors/dinamo-tech.webp
|
||||
- name: Domadoo
|
||||
ship_from: France
|
||||
ship_to: Europe
|
||||
url: https://www.domadoo.fr/fr/box-domotique/7046-nabu-casa-box-domotique-home-assistant-green-0794677011758.html
|
||||
logo: /images/distributors/domadoo.jpg
|
||||
- name: Everything Smart Technology
|
||||
ship_from: UK
|
||||
ship_to: Europe
|
||||
url: https://shop.everythingsmart.io/products/home-assistant-green
|
||||
logo: /images/distributors/est.webp
|
||||
- name: eWeLink device store
|
||||
ship_from: Hungary
|
||||
ship_to: Europe
|
||||
url: https://ewelinkstore.com/product/home-assistant-green-hub/
|
||||
logo: /images/distributors/ewelink.png
|
||||
- name: HAshop
|
||||
ship_from: Netherlands
|
||||
ship_to: Europe
|
||||
url: https://www.hashop.nl/Home-Assistant-Green
|
||||
logo: /images/distributors/ha-shop.webp
|
||||
- name: ROBBshop
|
||||
ship_from: Netherlands
|
||||
ship_to: Europe
|
||||
url: https://www.robbshop.nl/home-assistant-green-smart-hub
|
||||
logo: /images/distributors/robb.webp
|
||||
- name: Kjell
|
||||
ship_from: Norway
|
||||
ship_to: Europe
|
||||
url: https://www.kjell.com/no/produkter/smarte-hjem/kontroller/nabu-casa-home-assistant-green-p88430
|
||||
logo: /images/distributors/kjell-company.webp
|
||||
- name: Mauser
|
||||
ship_from: Portugal
|
||||
ship_to: Europe
|
||||
url: https://mauser.pt/catalog/product_info.php?products_id=095-3152
|
||||
logo: /images/distributors/mauser.png
|
||||
- name: mediarath
|
||||
ship_from: Germany
|
||||
ship_to: Europe
|
||||
url: https://mediarath.de/products/home-assistant-green-smart-home-hub-2x-usb-gigabit-lan-hmdi-microsd-slot
|
||||
logo: /images/distributors/mediarath.de.webp
|
||||
- name: m.nu
|
||||
ship_from: Sweden
|
||||
ship_to: Europe
|
||||
url: https://en.m.nu/controllers-smart-hubs/home-assistant-green
|
||||
logo: /images/distributors/m-nu.webp
|
||||
- name: OkosOtthon Bolt
|
||||
ship_from: Hungary
|
||||
ship_to: Europe
|
||||
url: https://okosotthon.bolt.hu/webaruhaz/termek/home-assistant-green-hub/
|
||||
logo: /images/distributors/okosotthon.png
|
||||
- name: Pi-Shop.ch
|
||||
ship_from: Switzerland
|
||||
ship_to: Europe
|
||||
url: https://www.pi-shop.ch/home-assistant-green
|
||||
logo: /images/distributors/pi-shop.webp
|
||||
- name: Pimoroni
|
||||
ship_from: UK
|
||||
ship_to: Europe
|
||||
url: https://shop.pimoroni.com/products/home-assistant-green
|
||||
logo: /images/distributors/pimoroni.webp
|
||||
- name: RaspberryPi.dk
|
||||
ship_from: Denmark
|
||||
ship_to: Europe
|
||||
url: https://raspberrypi.dk/en/product/home-assistant-green/
|
||||
logo: /images/distributors/RaspberryPi-dk.webp
|
||||
- name: Seeed Studio
|
||||
ship_from: Germany
|
||||
ship_to: Europe
|
||||
url: https://www.seeedstudio.com/Home-Assistant-Green-p-5792.html
|
||||
logo: /images/distributors/seeed-studio.webp
|
||||
- name: SmarterHOME
|
||||
ship_from: Slovakia
|
||||
ship_to: Europe
|
||||
url: https://smarterhome.sk/sk/centralne-jednotky/home-assistant-green-smart-home-hub-1490.html
|
||||
logo: /images/distributors/smarter-home.png
|
||||
- name: Swiss-Domotique
|
||||
ship_from: Switzerland
|
||||
ship_to: Europe
|
||||
url: https://shop.swiss-domotique.ch/smarthome-hub/2295-nabu-casa-home-assistant-green.html
|
||||
logo: /images/distributors/swiss-domotique.webp
|
||||
- name: The Pi Hut
|
||||
ship_from: UK
|
||||
ship_to: Europe
|
||||
url: https://thepihut.com/products/home-assistant-green
|
||||
logo: /images/distributors/pi-hut.webp
|
||||
- name: Webhallen
|
||||
ship_from: Sweden
|
||||
ship_to: Europe
|
||||
url: https://www.webhallen.com/se/product/364271-Nabu-Casa-Home-Assistant-Green
|
||||
logo: /images/distributors/webhallen.webp
|
||||
- name: WIFIShop
|
||||
ship_from: Romania
|
||||
ship_to: Europe
|
||||
url: https://www.wifishop.ro/en/homeassistant/home-assistant-green.html
|
||||
logo: /images/distributors/wifishop.webp
|
||||
- name: Inet.se
|
||||
ship_from: Sweden
|
||||
ship_to: Europe
|
||||
url: https://www.inet.se/produkt/8310063/home-assistant-green
|
||||
logo: /images/distributors/inet.webp
|
||||
yellow:
|
||||
name: "<strong>Home Assistant Yellow</strong>"
|
||||
distributors:
|
||||
# America
|
||||
- name: ameriDroid
|
||||
ship_from: US
|
||||
ship_to: America
|
||||
url: https://ameridroid.com/products/home-assistant-yellow
|
||||
logo: /images/distributors/ameridroid.webp
|
||||
- name: CloudFree
|
||||
ship_from: US
|
||||
ship_to: America
|
||||
url: https://cloudfree.shop/product/home-assistant-yellow/
|
||||
logo: /images/distributors/cloudfree.webp
|
||||
- name: Seeed Studio
|
||||
ship_from: US
|
||||
ship_to: America
|
||||
url: https://www.seeedstudio.com/Home-Assistant-Yellow-Kit-with-selectable-CM4.html
|
||||
logo: /images/distributors/seeed-studio.webp
|
||||
# Asia
|
||||
- name: Seeed Studio
|
||||
ship_from: China
|
||||
ship_to: Asia
|
||||
url: https://www.seeedstudio.com/Home-Assistant-Yellow-Kit-with-selectable-CM4.html
|
||||
logo: /images/distributors/seeed-studio.webp
|
||||
# Australia
|
||||
- name: Smart Guys
|
||||
ship_from: Australia
|
||||
ship_to: Australia
|
||||
url: https://smartguys.com.au/product/home-assistant-yellow-smart-hub/
|
||||
logo: /images/distributors/smart-guys.webp
|
||||
# Europe
|
||||
- name: Botland
|
||||
ship_from: Poland
|
||||
ship_to: Europe
|
||||
url: https://botland.com.pl/centralki-i-bramki-sieciowe/24698-home-assistant-yellow-standard-kit-inteligenta-centralka-zigbee-thread-nabu-casa-yellow-kit-std-794677011741.html
|
||||
logo: /images/distributors/botland.webp
|
||||
- name: Mauser
|
||||
ship_from: Portugal
|
||||
ship_to: Europe
|
||||
url: https://mauser.pt/catalog/product_info.php?products_id=095-3150
|
||||
logo: /images/distributors/mauser.png
|
||||
- name: Pi-Shop.ch
|
||||
ship_from: Switzerland
|
||||
ship_to: Europe
|
||||
url: https://www.pi-shop.ch/home-assistant-yellow-kit-with-power-supply-cm4-not-included
|
||||
logo: /images/distributors/pi-shop.webp
|
||||
- name: RaspberryPi.dk
|
||||
ship_from: Denmark
|
||||
ship_to: Europe
|
||||
url: https://raspberrypi.dk/en/product/home-assistant-yellow/
|
||||
logo: /images/distributors/RaspberryPi-dk.webp
|
||||
- name: Seeed Studio
|
||||
ship_from: Germany
|
||||
ship_to: Europe
|
||||
url: https://www.seeedstudio.com/Home-Assistant-Yellow-Kit-with-selectable-CM4.html
|
||||
logo: /images/distributors/seeed-studio.webp
|
||||
- name: The Pi Hut
|
||||
ship_from: UK
|
||||
ship_to: Europe
|
||||
url: https://thepihut.com/products/home-assistant-yellow
|
||||
logo: /images/distributors/pi-hut.webp
|
||||
- name: Domadoo
|
||||
ship_from: France
|
||||
ship_to: Europe
|
||||
url: https://www.domadoo.fr/en/smart-home-hub/7113-nabu-casa-home-assistant-yellow-kit-with-power-supply.html
|
||||
logo: /images/distributors/domadoo.jpg
|
||||
zbt-1:
|
||||
name: "<strong>Home Assistant Connect ZBT-1</strong>"
|
||||
distributors:
|
||||
# America
|
||||
- name: ameriDroid
|
||||
ship_from: US
|
||||
ship_to: America
|
||||
url: https://ameridroid.com/products/skyconnect
|
||||
logo: /images/distributors/ameridroid.webp
|
||||
- name: CloudFree
|
||||
ship_from: US
|
||||
ship_to: America
|
||||
url: https://cloudfree.shop/product/home-assistant-skyconnect/
|
||||
logo: /images/distributors/cloudfree.webp
|
||||
- name: Seeed Studio
|
||||
ship_from: US
|
||||
ship_to: America
|
||||
url: https://www.seeedstudio.com/Home-Assistant-SkyConnect-p-5479.html
|
||||
logo: /images/distributors/seeed-studio.webp
|
||||
# Asia
|
||||
- name: Seeed Studio
|
||||
ship_from: China
|
||||
ship_to: Asia
|
||||
url: https://www.seeedstudio.com/Home-Assistant-SkyConnect-p-5479.html
|
||||
logo: /images/distributors/seeed-studio.webp
|
||||
# Australia
|
||||
- name: Smart Guys
|
||||
ship_from: Australia
|
||||
ship_to: Australia
|
||||
url: https://smartguys.com.au/home-assistant-skyconnect.html
|
||||
logo: /images/distributors/smart-guys.webp
|
||||
# Europe
|
||||
- name: Alza.cz
|
||||
ship_from: Czech Republic
|
||||
ship_to: Europe
|
||||
url: https://www.alza.cz/home-assistant-skyconnect-usb-hub-d7815713.htm
|
||||
logo: /images/distributors/alza-cz.webp
|
||||
- name: Botland
|
||||
ship_from: Poland
|
||||
ship_to: Europe
|
||||
url: https://botland.com.pl/centralki-i-bramki-sieciowe/22759-home-assistant-skyconnect-usb-stick-zgodny-z-zigbeematterthread-794677011635.html
|
||||
logo: /images/distributors/botland.webp
|
||||
- name: DinamoTech
|
||||
ship_from: Italy
|
||||
ship_to: Europe
|
||||
url: https://dinamotech.it/products/home-assistant-connect-zbt-1
|
||||
logo: /images/distributors/dinamo-tech.webp
|
||||
- name: Domadoo
|
||||
ship_from: France
|
||||
ship_to: Europe
|
||||
url: https://www.domadoo.fr/fr/box-domotique/6938-dongle-usb-zigbee-30-sky-connect-pour-home-assistant-nabu-casa-0794677011635.html
|
||||
logo: /images/distributors/domadoo.jpg
|
||||
- name: Everything Smart Technology
|
||||
ship_from: UK
|
||||
ship_to: Europe
|
||||
url: https://shop.everythingsmart.io/products/home-assistant-skyconnect
|
||||
logo: /images/distributors/est.webp
|
||||
- name: eWeLink device store
|
||||
ship_from: Hungary
|
||||
ship_to: Europe
|
||||
url: https://ewelinkstore.com/product/home-assistant-connect-zbt-1-a-zigbee-thread-matter-usb-stick/
|
||||
logo: /images/distributors/ewelink.png
|
||||
- name: HAshop
|
||||
ship_from: Netherlands
|
||||
ship_to: Europe
|
||||
url: https://www.hashop.nl/Home-Assistant-SkyConnect
|
||||
logo: /images/distributors/ha-shop.webp
|
||||
- name: Kjell
|
||||
ship_from: Norway
|
||||
ship_to: Europe
|
||||
url: https://www.kjell.com/no/produkter/smarte-hjem/kontroller/nabu-casa-home-assistant-skyconnect-p88431
|
||||
logo: /images/distributors/kjell-company.webp
|
||||
- name: Mauser
|
||||
ship_from: Portugal
|
||||
ship_to: Europe
|
||||
url: https://mauser.pt/catalog/product_info.php?products_id=095-1222
|
||||
logo: /images/distributors/mauser.png
|
||||
- name: mediarath
|
||||
ship_from: Germany
|
||||
ship_to: Europe
|
||||
url: https://mediarath.de/products/home-assistant-connect-zbt-1-zigbee-thread-matter-usb-stick-fur-home-assistant-skyconnect
|
||||
logo: /images/distributors/mediarath.de.webp
|
||||
- name: m.nu
|
||||
ship_from: Sweden
|
||||
ship_to: Europe
|
||||
url: https://en.m.nu/zigbee/controllers-zigbee/home-assistant-skyconnect-zigbee-matter-thread
|
||||
logo: /images/distributors/m-nu.webp
|
||||
- name: OkosOtthon Bolt
|
||||
ship_from: Hungary
|
||||
ship_to: Europe
|
||||
url: https://okosotthon.bolt.hu/webaruhaz/termek/home-assistant-connect-zbt-1-zigbee-thread-matter-usb-kulcs/
|
||||
logo: /images/distributors/okosotthon.png
|
||||
- name: Pimoroni
|
||||
ship_from: UK
|
||||
ship_to: Europe
|
||||
url: https://shop.pimoroni.com/products/home-assistant-connect-zbt-1
|
||||
logo: /images/distributors/pimoroni.webp
|
||||
- name: RaspberryPi.dk
|
||||
ship_from: Denmark
|
||||
ship_to: Europe
|
||||
url: https://raspberrypi.dk/en/product/home-assistant-skyconnect/
|
||||
logo: /images/distributors/RaspberryPi-dk.webp
|
||||
- name: Robbshop
|
||||
ship_from: Netherlands
|
||||
ship_to: Europe
|
||||
url: https://www.robbshop.nl/home-assistant-skyconnect-zigbee-en-thread-usb
|
||||
logo: /images/distributors/robb.webp
|
||||
- name: Seeed Studio
|
||||
ship_from: Germany
|
||||
ship_to: Europe
|
||||
url: https://www.seeedstudio.com/Home-Assistant-SkyConnect-p-5479.html
|
||||
logo: /images/distributors/seeed-studio.webp
|
||||
- name: SmarterHOME
|
||||
ship_from: Slovakia
|
||||
ship_to: Europe
|
||||
url: https://smarterhome.sk/sk/zwave-pc-adaptery/home-assistant-connect-zbt-1-zigbee-a-thread-usb-adapter-1646.html
|
||||
logo: /images/distributors/smarter-home.png
|
||||
- name: Swiss-Domotique
|
||||
ship_from: Switzerland
|
||||
ship_to: Europe
|
||||
url: https://shop.swiss-domotique.ch/de/smarthome-zentrale/2118-nabu-casa-home-assistant-skyconnect.html
|
||||
logo: /images/distributors/swiss-domotique.webp
|
||||
- name: The Pi Hut
|
||||
ship_from: UK
|
||||
ship_to: Europe
|
||||
url: https://thepihut.com/collections/latest-raspberry-pi-products/products/home-assistant-skyconnect
|
||||
logo: /images/distributors/pi-hut.webp
|
||||
- name: Webhallen
|
||||
ship_from: Sweden
|
||||
ship_to: Europe
|
||||
url: https://www.webhallen.com/se/product/357205-Home-Assistant-SkyConnect-ZigbeeMatterThread
|
||||
logo: /images/distributors/webhallen.webp
|
||||
- name: WIFIShop
|
||||
ship_from: Romania
|
||||
ship_to: Europe
|
||||
url: https://www.wifishop.ro/en/homeassistant/home-assistant-skyconnect.html
|
||||
logo: /images/distributors/wifishop.webp
|
||||
- name: Inet.se
|
||||
ship_from: Sweden
|
||||
ship_to: Europe
|
||||
url: https://www.inet.se/produkt/8310064/home-assistant-connect-zbt-1
|
||||
logo: /images/distributors/inet.webp
|
||||
voice-pe:
|
||||
name: "<strong>Home Assistant Voice</strong> Preview Edition"
|
||||
distributors:
|
||||
# America
|
||||
- name: ameriDroid
|
||||
ship_from: US
|
||||
ship_to: America
|
||||
url: https://ameridroid.com/products/home-assistant-voice-preview-edition/
|
||||
logo: /images/distributors/ameridroid.webp
|
||||
- name: CloudFree
|
||||
ship_from: US
|
||||
ship_to: America
|
||||
url: https://cloudfree.shop/product/home-assistant-voice-preview-edition/
|
||||
logo: /images/distributors/cloudfree.webp
|
||||
- name: Seeed Studio
|
||||
ship_from: US
|
||||
ship_to: America
|
||||
url: https://www.seeedstudio.com/Home-Assistant-Voice-p-6998.html
|
||||
logo: /images/distributors/seeed-studio.webp
|
||||
# Asia
|
||||
- name: Seeed Studio
|
||||
ship_from: China
|
||||
ship_to: Asia
|
||||
url: https://www.seeedstudio.com/Home-Assistant-Voice-p-6998.html
|
||||
logo: /images/distributors/seeed-studio.webp
|
||||
# Australia
|
||||
- name: OZ Smart Things
|
||||
ship_from: Australia
|
||||
ship_to: Australia
|
||||
url: https://www.ozsmartthings.com.au/products/ha-voice-preview-edition
|
||||
logo: /images/distributors/oz-smart-things.webp
|
||||
- name: Smart Guys
|
||||
ship_from: Australia
|
||||
ship_to: Australia
|
||||
url: https://smartguys.com.au/product/home-assistant-voice-preview-edition/
|
||||
logo: /images/distributors/smart-guys.webp
|
||||
# Europe
|
||||
- name: Alza.cz
|
||||
ship_from: Czechia
|
||||
ship_to: Europe
|
||||
url: https://www.alza.cz/home-assistant-voice-preview-edition-d12741248.htm
|
||||
logo: /images/distributors/alza-cz.webp
|
||||
- name: RaspberryPi.dk
|
||||
ship_from: Denmark
|
||||
ship_to: Europe
|
||||
url: https://raspberrypi.dk/en/product/home-assistant-voice-preview-edition/
|
||||
logo: /images/distributors/RaspberryPi-dk.webp
|
||||
- name: Domadoo
|
||||
ship_from: France
|
||||
ship_to: Europe
|
||||
url: https://www.domadoo.fr/fr/box-domotique/7558-nabu-casa-home-assistant-voice-preview-edition-0860011789727.html
|
||||
logo: /images/distributors/domadoo.jpg
|
||||
- name: mediarath
|
||||
ship_from: Germany
|
||||
ship_to: Europe
|
||||
url: https://mediarath.de/products/home-assistant-voice-preview-edition-open-source-privacy-focused-voice-assistant-with-esphome
|
||||
logo: /images/distributors/mediarath.de.webp
|
||||
- name: Seeed Studio
|
||||
ship_from: Germany
|
||||
ship_to: Europe
|
||||
url: https://www.seeedstudio.com/Home-Assistant-Voice-p-6998.html
|
||||
logo: /images/distributors/seeed-studio.webp
|
||||
- name: Dinamotech
|
||||
ship_from: Italy
|
||||
ship_to: Europe
|
||||
url: https://dinamotech.it/products/home-assistant-voice
|
||||
logo: /images/distributors/dinamo-tech.webp
|
||||
- name: Botland
|
||||
ship_from: Poland
|
||||
ship_to: Europe
|
||||
url: https://botland.com.pl/asystenci-glosowi/25872-home-assistant-voice-preview-edition-asystent-glosowy-860011789727.html
|
||||
logo: /images/distributors/botland.webp
|
||||
- name: Mauser.pt
|
||||
ship_from: Portugal
|
||||
ship_to: Europe
|
||||
url: https://mauser.pt/catalog/product_info.php?products_id=095-4747
|
||||
logo: /images/distributors/mauser.png
|
||||
- name: SmarterHOME
|
||||
ship_from: Slovakia
|
||||
ship_to: Europe
|
||||
url: https://smarterhome.sk/sk/hlasovi-asistenti/home-assistant-voice-preview-edition-1714.html
|
||||
logo: /images/distributors/smarter-home.png
|
||||
- name: Webhallen
|
||||
ship_from: Sweden
|
||||
ship_to: Europe
|
||||
url: https://www.webhallen.com/377166
|
||||
logo: /images/distributors/webhallen.webp
|
||||
- name: Swiss-Domotique
|
||||
ship_from: Switzerland
|
||||
ship_to: Europe
|
||||
url: https://shop.swiss-domotique.ch/de/sound/2667-nabu-casa-home-assistant-voice-preview-edition.html
|
||||
logo: /images/distributors/swiss-domotique.webp
|
||||
- name: The Pi Hut
|
||||
ship_from: UK
|
||||
ship_to: Europe
|
||||
url: https://thepihut.com/products/home-assistant-voice-preview-edition
|
||||
logo: /images/distributors/pi-hut.webp
|
||||
- name: Everything Smart Technology
|
||||
ship_from: UK
|
||||
ship_to: Europe
|
||||
url: https://shop.everythingsmart.io/products/home-assistant-voice-preview-edition
|
||||
logo: /images/distributors/est.webp
|
||||
- name: Pimoroni
|
||||
ship_from: UK
|
||||
ship_to: Europe
|
||||
url: https://shop.pimoroni.com/products/home-assistant-voice
|
||||
logo: /images/distributors/pimoroni.webp
|
||||
- name: Inet.se
|
||||
ship_from: Sweden
|
||||
ship_to: Europe
|
||||
url: https://www.inet.se/produkt/8310094/home-assistant-voice-preview-edition
|
||||
logo: /images/distributors/inet.webp
|
||||
- name: Pi-Shop.ch
|
||||
ship_from: Switzerland
|
||||
ship_to: Europe
|
||||
url: https://www.pi-shop.ch/home-assistant-voice-preview-edition
|
||||
logo: /images/distributors/pi-shop.webp
|
@ -3,7 +3,7 @@ title: "Automation conditions"
|
||||
description: "Automations can test conditions when invoked."
|
||||
---
|
||||
|
||||
Conditions are an optional part of an automation rule. They can be used to prevent the automation's actions from being run. After a {% term trigger %} occurred, all conditions will be checked. If any of them do not return true, the automation will stop executing.
|
||||
Conditions are an optional part of an automation rule. They can be used to prevent the automation's actions from being run. After a {% term trigger %} occurred, all conditions will be checked. The automation will be executed if all conditions return true, otherwise, if any of them does not return true, the automation will stop executing.
|
||||
|
||||
Conditions look very similar to triggers, but they are very different — a trigger will look at events happening in the system, while a condition only looks at how the system looks right now. A trigger can observe that a switch is being turned on. A condition can only see if a switch is currently on or off.
|
||||
|
||||
|
@ -25,6 +25,7 @@ Triggers from all platforms will include the following data.
|
||||
|
||||
| Template variable | Data |
|
||||
| ---- | ---- |
|
||||
| `trigger.alias` | Alias of the trigger.
|
||||
| `trigger.id` | The [`id` of the trigger](/docs/automation/trigger/#trigger-id).
|
||||
| `trigger.idx` | Index of the trigger. (The first trigger idx is `0`.)
|
||||
|
||||
|
@ -797,6 +797,8 @@ automation:
|
||||
|
||||
It's also possible to use [limited templates](/docs/configuration/templating/#limited-templates) for times.
|
||||
|
||||
{% raw %}
|
||||
|
||||
```yaml
|
||||
blueprint:
|
||||
input:
|
||||
@ -821,6 +823,8 @@ blueprint:
|
||||
- "{{ my_hour }}:30:00"
|
||||
```
|
||||
|
||||
{% endraw %}
|
||||
|
||||
## Time pattern trigger
|
||||
|
||||
With the time pattern trigger, you can match if the hour, minute or second of the current time matches a specific value. You can prefix the value with a `/` to match whenever the value is divisible by that number. You can specify `*` to match any value (when using the web interface this is required, the fields cannot be left empty).
|
||||
|
@ -18,10 +18,12 @@ This section gives a high-level introduction to blueprints. To view a descriptio
|
||||
|
||||
## What is a blueprint?
|
||||
|
||||
A blueprint is a {% term script %}, {% term automation %} or [template entity](/docs/integrations/template/) configuration with certain parts marked as configurable. This allows you to create different scripts, automations or template entities based on the same blueprint.
|
||||
A blueprint is a {% term script %}, {% term automation %} or [template entity](/integrations/template/) configuration with certain parts marked as configurable. This allows you to create different scripts, automations or template entities based on the same blueprint.
|
||||
|
||||
Imagine you want to control lights based on motion. A blueprint provides the generic {% term automation %} framework, while letting you select one specific motion sensor as a {% term trigger %}, and the exact light to control. This blueprint makes it possible to create two automations. Each automation has their own configuration and act completely independently. Yet, they share some basic automation configuration so that you do not have to set this up every time.
|
||||
|
||||
Automations inherit from blueprints, which means that changes made to a blueprint will be reflected in all automations based on that blueprint the next time the automations are reloaded. This occurs as part of Home Assistant starting. To manually reload the automations, go to {% my server_controls title="**Developer tools** > **YAML**" %} and reload the automations.
|
||||
|
||||
Blueprints are shared by the community in the [blueprint community forum][blueprint-forums].
|
||||
|
||||
[blueprint-forums]: /get-blueprints
|
||||
|
@ -150,6 +150,12 @@ device:
|
||||
the set model.
|
||||
type: string
|
||||
required: false
|
||||
model_id:
|
||||
description: >
|
||||
When set, the list of areas is limited to areas with devices that have
|
||||
the set model ID.
|
||||
type: string
|
||||
required: false
|
||||
entity:
|
||||
description: >
|
||||
When entity options are provided, the list of areas is filtered by areas
|
||||
@ -485,7 +491,7 @@ devices based on the selector configuration. The value of the input will contain
|
||||
the device ID or a list of device IDs, based on if `multiple` is set to `true`.
|
||||
|
||||
A device selector can filter the list of devices, based on things like the
|
||||
manufacturer or model of the device, the entities the device provides or based
|
||||
manufacturer, model, or model ID of the device, the entities the device provides or based
|
||||
on the domain that provided the device.
|
||||
|
||||

|
||||
@ -561,6 +567,11 @@ filter:
|
||||
When set, it limits the list of devices to devices that have the set model.
|
||||
type: string
|
||||
required: false
|
||||
model_id:
|
||||
description: >
|
||||
When set, the list of devices is limited to devices that have the set model ID.
|
||||
type: string
|
||||
required: false
|
||||
multiple:
|
||||
description: >
|
||||
Allows selecting multiple devices. If set to `true`, the resulting value of
|
||||
@ -792,6 +803,12 @@ device:
|
||||
the set model.
|
||||
type: string
|
||||
required: false
|
||||
model_id:
|
||||
description: >
|
||||
When set, the list only includes floors with devices that have
|
||||
the set model ID.
|
||||
type: string
|
||||
required: false
|
||||
entity:
|
||||
description: >
|
||||
When entity options are provided, the list only includes floors
|
||||
@ -1342,6 +1359,10 @@ device:
|
||||
description: When set, it limits the targets to devices by the set model.
|
||||
type: string
|
||||
required: false
|
||||
model_id:
|
||||
description: When set, the targets are limited to devices that have the set model ID.
|
||||
type: string
|
||||
required: false
|
||||
entity:
|
||||
description: >
|
||||
When entity options are provided, the targets are limited by entities
|
||||
@ -1539,3 +1560,19 @@ The output of this selector is a list of triggers. For example:
|
||||
entity_id: "sensor.outside_temperature"
|
||||
below: 20
|
||||
```
|
||||
|
||||
### Example - Merging with existing triggers
|
||||
|
||||
If the trigger(s) should exist within a blueprint that already has some default triggers defined, and an additional customizable trigger should be merged, you need to use the `- triggers` syntax in the blueprint.
|
||||
|
||||
```yaml
|
||||
# Example trigger selector
|
||||
input:
|
||||
my_trigger_input:
|
||||
selector:
|
||||
trigger:
|
||||
triggers:
|
||||
- triggers: !input my_trigger_input
|
||||
- platform: numeric_state
|
||||
[...]
|
||||
```
|
||||
|
@ -193,7 +193,7 @@ blueprint:
|
||||
entity:
|
||||
filter:
|
||||
- domain: binary_sensor
|
||||
- device_class: motion
|
||||
device_class: motion
|
||||
target_light:
|
||||
name: Lights
|
||||
description: The lights to keep in sync.
|
||||
@ -224,7 +224,7 @@ blueprint:
|
||||
entity:
|
||||
filter:
|
||||
- domain: binary_sensor
|
||||
- device_class: motion
|
||||
device_class: motion
|
||||
target_light:
|
||||
name: Lights
|
||||
description: The lights to keep in sync.
|
||||
|
@ -3,7 +3,7 @@ title: "Packages"
|
||||
description: "Describes all there is to know about configuration packages in Home Assistant."
|
||||
---
|
||||
|
||||
Packages in Home Assistant provide a way to bundle different integration's configuration together. With packages we have a way to include different integrations, or different configuration parts using any of the `!include` directives introduced in [splitting the configuration](/docs/configuration/splitting_configuration).
|
||||
Packages in Home Assistant provide a way to bundle configurations from multiple integrations. With packages, we have a way to include multiple integrations, or parts of integrations using any of the `!include` directives introduced in [splitting the configuration](/docs/configuration/splitting_configuration).
|
||||
|
||||
Packages are configured under the core `homeassistant/packages` in the configuration and take the format of a package name (no spaces, all lower case) followed by a dictionary with the package configuration. For example, package `pack_1` would be created as:
|
||||
|
||||
|
@ -32,7 +32,7 @@ The `state` prefix indicates that this information is part of the state object (
|
||||
|
||||
### About the state
|
||||
|
||||
The screenshot shows three lights in different states (the `state.state`): `on`, `off`, and `unavailable`. Each light comes with its own entity state attributes such as `supported_color_modes`, `supported_features`. These attributes have their own state: the state of `supported_color_modes` is `color_temp` and `hs`, the state of the `supported_features` attribute is `4`.
|
||||
The screenshot shows three lights in different states (the `state.state`): `on`, `off`, and `unavailable`. Each light comes with its own entity state attributes such as `supported_color_modes`, `supported_features`. These attributes have their own state: the state of the `supported_color_modes` attribute is `color_temp` and `hs`, the state of the `supported_features` attribute is `4`.
|
||||
|
||||
<p class='img'>
|
||||
<img src='/images/integrations/light/state_light.png' alt='Screenshot showing three lights with different states: `on`, `off`, or `unavailable`'>
|
||||
|
@ -473,6 +473,7 @@ The same thing can also be expressed as a test:
|
||||
- `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.
|
||||
- `floor_entities(floor_name_or_id)` returns the list of entity IDs tied to a given floor ID or name. Can also be used as a filter.
|
||||
|
||||
#### Floors examples
|
||||
|
||||
@ -1173,6 +1174,31 @@ Some examples:
|
||||
|
||||
</div>
|
||||
|
||||
### Hashing
|
||||
|
||||
The template engine contains a few filters and functions to hash a string of
|
||||
data. A few very common hashing algorithms are supported: `md5`, `sha1`,
|
||||
`sha256`, and `sha512`.
|
||||
|
||||
Some examples:
|
||||
|
||||
{% raw %}
|
||||
|
||||
- `{{ md5("Home Assistant") }}` - renders as `f3f2b8b3b40084aa87e92b7ffb02ed13885fea2d07`
|
||||
- `{{ "Home Assistant" | md5 }}` - renders as `f3f2b8b3b40084aa87e92b7ffb02ed13885fea2d07`
|
||||
|
||||
- `{{ sha1("Home Assistant") }}` - renders as `14bffd017c73917bfda2372aaf287570597b8e82`
|
||||
- `{{ "Home Assistant" | sha1 }}` - renders as `14bffd017c73917bfda2372aaf287570597b8e82`
|
||||
|
||||
- `{{ sha256("Home Assistant") }}` - renders as `a18f473c9d3ed968a598f996dcf0b9de84de4ee04c950d041b61297a25bcea49`
|
||||
- `{{ "Home Assistant" | sha256 }}` - renders as `a18f473c9d3ed968a598f996dcf0b9de84de4ee04c950d041b61297a25bcea49`
|
||||
|
||||
- `{{ sha512("Home Assistant") }}` - renders as `f251e06eb7d3439e1a86d6497d6a4531c3e8c809f538be62f89babf147d7d63aca4e77ae475b94c654fd38d8f543f778ce80007d6afef379d8a0e5d3ddf7349d`
|
||||
- `{{ "Home Assistant" | sha512 }}` - renders as `f251e06eb7d3439e1a86d6497d6a4531c3e8c809f538be62f89babf147d7d63aca4e77ae475b94c654fd38d8f543f778ce80007d6afef379d8a0e5d3ddf7349d`
|
||||
|
||||
{% endraw %}
|
||||
|
||||
|
||||
### Regular expressions
|
||||
|
||||
For more information on regular expressions
|
||||
@ -1184,6 +1210,72 @@ See: [Python regular expression operations](https://docs.python.org/3/library/re
|
||||
- Filter `value | regex_findall(find='', ignorecase=False)` will find all regex matches of the find expression in `value` and return the array of matches.
|
||||
- Filter `value | regex_findall_index(find='', index=0, ignorecase=False)` will do the same as `regex_findall` and return the match at index.
|
||||
|
||||
### Shuffling
|
||||
|
||||
The template engine contains a filter and function to shuffle a list.
|
||||
|
||||
Shuffling can happen randomly or reproducibly using a seed. When using a seed
|
||||
it will always return the same shuffled list for the same seed.
|
||||
|
||||
Some examples:
|
||||
|
||||
{% raw %}
|
||||
|
||||
- `{{ [1, 2, 3] | shuffle }}` - renders as `[3, 1, 2]` (_random_)
|
||||
- `{{ shuffle([1, 2, 3]) }}` - renders as `[3, 1, 2]` (_random_)
|
||||
- `{{ shuffle(1, 2, 3) }}` - renders as `[3, 1, 2]` (_random_)
|
||||
|
||||
- `{{ [1, 2, 3] | shuffle("random seed") }}` - renders as `[2, 3, 1] (_reproducible_)
|
||||
- `{{ shuffle([1, 2, 3], seed="random seed") }}` - renders as `[2, 3, 1] (_reproducible_)
|
||||
- `{{ shuffle([1, 2, 3], "random seed") }}`- renders as `[2, 3, 1] (_reproducible_)
|
||||
- `{{ shuffle(1, 2, 3, seed="random seed") }}` - renders as `[2, 3, 1] (_reproducible_)
|
||||
|
||||
{% endraw %}
|
||||
|
||||
### Flatten a list of lists
|
||||
|
||||
The template engine provides a filter to flatten a list of lists: `flatten`.
|
||||
|
||||
It will take a list of lists and return a single list with all the elements.
|
||||
The depth of the flattening can be controlled using the `levels` parameter.
|
||||
The flattening process is recursive, so it will flatten all nested lists, until
|
||||
the number of levels (if specified) is reached.
|
||||
|
||||
Some examples:
|
||||
|
||||
{% raw %}
|
||||
|
||||
- `{{ flatten([1, [2, [3]], 4, [5 , 6]]) }}` - renders as `[1, 2, 3, 4, 5, 6]`
|
||||
- `{{ [1, [2, [3]], 4, [5 , 6]] | flatten }}` - renders as `[1, 2, 3, 4, 5, 6]`
|
||||
|
||||
- `{{ flatten([1, [2, [3]]], levels=1) }}` - renders as `[1, 2, [3]]`
|
||||
- `{{ [1, [2, [3]]], flatten(levels=1) }}` - renders as `[1, 2, [3]]`
|
||||
|
||||
- `{{ flatten([1, [2, [3]]], 1) }}` - renders as `[1, 2, [3]]`
|
||||
- `{{ [1, [2, [3]]], flatten(1) }}` - renders as `[1, 2, [3]]`
|
||||
|
||||
{% endraw %}
|
||||
|
||||
### Combining dictionaries
|
||||
|
||||
The template engine provides a function and filter to merge multiple dictionaries: `combine`.
|
||||
|
||||
It will take multiple dictionaries and merge them into a single dictionary. When used as a filter,
|
||||
the filter value is used as the first dictionary. The optional `recursive` parameter determines
|
||||
whether nested dictionaries should be merged (defaults to `False`).
|
||||
|
||||
Some examples:
|
||||
|
||||
{% raw %}
|
||||
|
||||
- `{{ {'a': 1, 'b': 2} | combine({'b': 3, 'c': 4}) }}` - renders as `{'a': 1, 'b': 3, 'c': 4}`
|
||||
- `{{ combine({'a': 1, 'b': 2}, {'b': 3, 'c': 4}) }}` - renders as `{'a': 1, 'b': 3, 'c': 4}`
|
||||
|
||||
- `{{ combine({'a': 1, 'b': {'x': 1}}, {'b': {'y': 2}, 'c': 4}, recursive=True) }}` - renders as `{'a': 1, 'b': {'x': 1, 'y': 2}, 'c': 4}`
|
||||
- `{{ combine({'a': 1, 'b': {'x': 1}}, {'b': {'y': 2}, 'c': 4}) }}` - renders as `{'a': 1, 'b': {'y': 2}, 'c': 4}`
|
||||
|
||||
{% endraw %}
|
||||
|
||||
## Merge action responses
|
||||
|
||||
Using action responses we can collect information from various entities at the same time.
|
||||
@ -1514,6 +1606,44 @@ When a command template renders to a valid `bytes` literal, then MQTT will publi
|
||||
- Template {% raw %}`{{ 16 }}`{% endraw %} renders to payload encoded string `"16"`.
|
||||
- Template {% raw %}`{{ pack(0x10, ">B") }}`{% endraw %} renders to a raw 1 byte payload `0x10`.
|
||||
|
||||
### Determining types
|
||||
|
||||
When working with templates, it can be useful to determine the type of
|
||||
the returned value from a method or the type of a variable at times.
|
||||
|
||||
For this, Home Assistant provides the `typeof()` template function and filter,
|
||||
which is inspired by the [JavaScript](https://en.wikipedia.org/wiki/JavaScript)
|
||||
`typeof` operator. It reveals the type of the given value.
|
||||
|
||||
This is mostly useful when you are debugging or playing with templates in
|
||||
the developer tools of Home Assistant. However, it might be useful in some
|
||||
other cases as well.
|
||||
|
||||
Some examples:
|
||||
|
||||
{% raw %}
|
||||
|
||||
- `{{ typeof(42) }}` - renders as `int`
|
||||
- `{{ typeof(42.0) }}` - renders as `float`
|
||||
- `{{ typeof("42") }}` - renders as `str`
|
||||
- `{{ typeof([1, 2, 3]) }}` - renders as `list`
|
||||
- `{{ typeof({"key": "value"}) }}` - renders as `dict`
|
||||
- `{{ typeof(True) }}` - renders as `bool`
|
||||
- `{{ typeof(None) }}` - renders as `NoneType`
|
||||
|
||||
- `{{ 42 | typeof }}` - renders as `int`
|
||||
- `{{ 42.0 | typeof }}` - renders as `float`
|
||||
- `{{ "42" | typeof }}` - renders as `str`
|
||||
- `{{ [1, 2, 3] | typeof }}` - renders as `list`
|
||||
- `{{ {"key": "value"} | typeof }}` - renders as `dict`
|
||||
- `{{ True | typeof }}` - renders as `bool`
|
||||
- `{{ None | typeof }}` - renders as `NoneType`
|
||||
|
||||
- `{{ some_variable | typeof }}` - renders the type of `some_variable`
|
||||
- `{{ states("sensor.living_room") | typeof }}` - renders the type of the result of `states()` function
|
||||
|
||||
{% endraw %}
|
||||
|
||||
## Some more things to keep in mind
|
||||
|
||||
### `entity_id` that begins with a number
|
||||
|
@ -35,7 +35,7 @@ There are also products for water usage monitoring that are based on existing co
|
||||
|
||||
- [Z-Wave](/integrations/zwave_js)
|
||||
- [Zigbee](/integrations/zha)
|
||||
- [Matter (BETA)](/integrations/matter)
|
||||
- [Matter](/integrations/matter)
|
||||
|
||||
|
||||
## Community-made sensors
|
||||
|
@ -1,31 +0,0 @@
|
||||
---
|
||||
title: "Glossary"
|
||||
description: "Home Assistant's Glossary."
|
||||
---
|
||||
|
||||
{% assign entries = site.data.glossary | sort: 'term' %}
|
||||
|
||||
The glossary covers terms which are used around Home Assistant.
|
||||
|
||||
<div class="config-vars basic">
|
||||
|
||||
{% for entry in entries %}
|
||||
|
||||
<div class="config-vars-item">
|
||||
<div class="config-vars-label">
|
||||
<a name="{{ entry.term | slugify }}" class="title-link" href="#{{ entry.term | slugify }}"></a>
|
||||
<span class="config-vars-label-name">{{ entry.term }}</span>
|
||||
</div>
|
||||
<div class="config-vars-description-and-children">
|
||||
<span class="config-vars-description">
|
||||
{{ entry.definition | markdownify | newline_to_br }}
|
||||
{%- if entry.link -%}
|
||||
<a href="{{ entry.link }}">Read more about: {{ entry.term }}</a>
|
||||
{%- endif -%}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% endfor %}
|
||||
|
||||
</div>
|
33
source/_docs/glossary.markdown
Normal file
33
source/_docs/glossary.markdown
Normal file
@ -0,0 +1,33 @@
|
||||
---
|
||||
title: "Glossary"
|
||||
description: "Home Assistant's Glossary."
|
||||
---
|
||||
|
||||
The glossary covers terms which are used around Home Assistant.
|
||||
|
||||
{% assign entries = site.data.glossary | sort: 'term' %}
|
||||
{% assign current_letter = '' %}
|
||||
|
||||
{% for entry in entries %}
|
||||
|
||||
{% assign first_letter = entry.term | slice: 0 %}
|
||||
{% if first_letter != current_letter %}
|
||||
{% assign current_letter = first_letter | upcase %}
|
||||
|
||||
## {{ current_letter }}
|
||||
|
||||
---
|
||||
|
||||
{% endif %}
|
||||
|
||||
### {{ entry.term }}
|
||||
|
||||
{{ entry.definition | markdownify }}
|
||||
|
||||
{%- if entry.link -%}
|
||||
|
||||
{{ "[Read more about " | append: "_" | append: entry.term | append: "_](" | append: entry.link | append: ")" | markdownify }}
|
||||
|
||||
{%- endif -%}
|
||||
|
||||
{% endfor %}
|
@ -81,7 +81,7 @@ Use this procedure only if the following conditions are met:
|
||||
3. Once you have opened the Home Assistant command line, enter the following command:
|
||||
- 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**: `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.
|
||||
4. You can now log in to Home Assistant using this new password.
|
||||
|
@ -36,10 +36,6 @@ name:
|
||||
description: Friendly name of the scene.
|
||||
required: true
|
||||
type: string
|
||||
description:
|
||||
description: Description of the scene.
|
||||
required: false
|
||||
type: string
|
||||
entities:
|
||||
description: Entities to control and their desired state.
|
||||
required: true
|
||||
|
@ -94,9 +94,7 @@ Variables can be templated.
|
||||
|
||||
### 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` {% term action %} will only alter the `people` variable for that sequence.
|
||||
The `variables` {% term action %} assigns the values to previously defined variables with the same name. If a variable was not previously defined, it is assigned in the top-level (script run) scope.
|
||||
|
||||
{% raw %}
|
||||
|
||||
@ -111,17 +109,17 @@ sequence:
|
||||
entity_id: device_tracker.paulus
|
||||
state: "home"
|
||||
then:
|
||||
# At this scope and this point of the sequence, people == 0
|
||||
- variables:
|
||||
people: "{{ people + 1 }}"
|
||||
# At this scope, people will now be 1 ...
|
||||
paulus_home: true
|
||||
- action: notify.notify
|
||||
data:
|
||||
message: "There are {{ people }} people home" # "There are 1 people home"
|
||||
# ... but at this scope it will still be 0
|
||||
# Variable value is now updated
|
||||
- action: notify.notify
|
||||
data:
|
||||
message: "There are {{ people }} people home" # "There are 0 people home"
|
||||
message: "There are {{ people }} people home {% if paulus_home is defined %}(including Paulus){% endif %}"
|
||||
# "There are 1 people home (including Paulus)"
|
||||
```
|
||||
|
||||
{% endraw %}
|
||||
@ -213,8 +211,8 @@ This {% term action %} evaluates the template, and if true, the script will cont
|
||||
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.
|
||||
|
||||
{% raw %}
|
||||
```yaml
|
||||
|
||||
```yaml
|
||||
# Wait until media player is stopped
|
||||
- alias: "Wait until media player is stopped"
|
||||
wait_template: "{{ is_state('media_player.floor', 'stop') }}"
|
||||
@ -258,8 +256,8 @@ With both types of waits it is possible to set a timeout after which the script
|
||||
You can also get the script to abort after the timeout by using optional `continue_on_timeout: false`.
|
||||
|
||||
{% raw %}
|
||||
```yaml
|
||||
|
||||
```yaml
|
||||
# Wait for IFTTT event or abort after specified timeout.
|
||||
- wait_for_trigger:
|
||||
- trigger: event
|
||||
@ -322,6 +320,7 @@ This can be used to take different actions based on whether or not the condition
|
||||
target:
|
||||
entity_id: switch.some_light
|
||||
```
|
||||
|
||||
{% endraw %}
|
||||
|
||||
## Fire an event
|
||||
@ -509,7 +508,7 @@ For example:
|
||||
- repeat:
|
||||
while: "{{ is_state('sensor.mode', 'Home') and repeat.index < 10 }}"
|
||||
sequence:
|
||||
- ...
|
||||
- ...
|
||||
```
|
||||
|
||||
{% endraw %}
|
||||
@ -559,8 +558,9 @@ For example:
|
||||
- repeat:
|
||||
until: "{{ is_state('device_tracker.iphone', 'home') }}"
|
||||
sequence:
|
||||
- ...
|
||||
- ...
|
||||
```
|
||||
|
||||
{% endraw %}
|
||||
|
||||
### Repeat loop variable
|
||||
@ -691,7 +691,6 @@ automation:
|
||||
|
||||
{% endraw %}
|
||||
|
||||
|
||||
More `choose` can be used together. This is the case of an IF-IF.
|
||||
|
||||
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.
|
||||
@ -856,8 +855,8 @@ Some of the caveats of running {% term actions %} in parallel:
|
||||
there is no guarantee that they will be completed in the same order.
|
||||
- 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 {% term action %} are not available
|
||||
in another parallelized {% term action %}. Each step in a parallelized has its own scope.
|
||||
- Variables created/modified in one parallelized {% term action %} can conflict with variables
|
||||
from another parallelized {% term action %}. Make sure to give them distinct names to prevent that.
|
||||
|
||||
## Stopping a script sequence
|
||||
|
||||
|
@ -149,7 +149,7 @@ Another use of the {% my developer_statistics title="statistics developer tool"
|
||||
<svg width="24" height="24" viewBox="0 0 24 24"><path d="M22,13V22H2V19L22,13M21.68,7.06L16.86,4.46L17.7,7.24L7.58,10.24C6.63,8.95 4.82,8.67 3.53,9.62C2.24,10.57 1.96,12.38 2.91,13.67C3.85,14.97 5.67,15.24 6.96,14.29C7.67,13.78 8.1,12.97 8.14,12.09L18.26,9.09L19.1,11.87L21.68,7.06Z" /></svg>
|
||||
icon. Use date & time to search for the incorrect data point and adjust the value.
|
||||
|
||||

|
||||

|
||||
|
||||
## Assist tab
|
||||
|
||||
|
@ -5,8 +5,9 @@ description: "Description of hass."
|
||||
|
||||
The command-line part of Home Assistant is `hass`.
|
||||
|
||||
This tool is only available to users of the Home Assistant Core installation method. It is started from the command line on the computer running Home Assistant Core (accessed perhaps via SSH).
|
||||
|
||||
```bash
|
||||
```text
|
||||
$ hass -h
|
||||
usage: hass [-h] [--version] [-c path_to_config_dir] [--safe-mode]
|
||||
[--debug] [--open-ui] [--skip-pip] [-v] [--log-rotate-days LOG_ROTATE_DAYS]
|
||||
|
@ -12,13 +12,14 @@ You need to have a compatible Z-Wave stick or module installed. The following de
|
||||
The firmwares of 700 and 800 series Z-Wave controllers have several bugs which impact the stability of the mesh and can cause the controller to become unresponsive. Because there is no known firmware version that is completely fixed, it is recommended to choose a firmware based on the following criteria:
|
||||
|
||||
- 700 series:
|
||||
- prefer SDK versions 7.17.2 to 7.18.x
|
||||
- prefer SDK versions 7.17.2 to 7.18.x or 7.21.6 and newer
|
||||
- SDK versions 7.19.x are okay
|
||||
- avoid SDK versions before 7.17.2
|
||||
- avoid SDK versions 7.20 to 7.21.3
|
||||
- avoid SDK versions 7.20 to 7.21.5
|
||||
|
||||
- 800 series
|
||||
- prefer SDK versions 7.22.x
|
||||
- prefer SDK versions 7.23.x and newer
|
||||
- SDK versions 7.22.x are okay
|
||||
- SDK versions 7.17.2 to 7.19.x are okay
|
||||
- avoid SDK versions before 7.17.2
|
||||
- avoid SDK versions 7.20 to 7.21.3
|
||||
|
@ -2,11 +2,11 @@
|
||||
<div class='section'>
|
||||
<h1 class="title epsilon">Common tasks</h1>
|
||||
<ul class='divided sidebar-menu'>
|
||||
<li>{% active_link /common-tasks/general/ Installation independent %}</li>
|
||||
<li>{% active_link /common-tasks/os/ Home Assistant Operating System %}</li>
|
||||
<li>{% active_link /common-tasks/container/ Home Assistant Container %}</li>
|
||||
<li>{% active_link /common-tasks/core/ Home Assistant Core %}</li>
|
||||
<li>{% active_link /common-tasks/supervised/ Home Assistant Supervised %}</li>
|
||||
<li>{% active_link /common-tasks/general/ Installation independent %}</li>
|
||||
</ul>
|
||||
</div>
|
||||
</section>
|
||||
|
@ -3,7 +3,7 @@
|
||||
{% assign percentage = 100.0 | times: active_installations | divided_by: site.data.analytics_data.reports_integrations | round: 1 %}
|
||||
<section class="aside-module grid__item one-whole lap-one-half">
|
||||
<div class='brand-logo-container section'>
|
||||
<img src='https://brands.home-assistant.io/{% if page.ha_brand %}brands{% else %}_{% endif %}/{{ domain }}/logo.png' srcset='https://brands.home-assistant.io/{% if page.ha_brand %}brands{% else %}_{% endif %}/{{ page.ha_domain }}/logo@2x.png 2x' />
|
||||
<img src='https://brands.home-assistant.io/{% if page.ha_brand %}brands{% else %}_{% endif %}/{{ page.ha_domain }}//logo.png' srcset='https://brands.home-assistant.io/{% if page.ha_brand %}brands{% else %}_{% endif %}/{{ page.ha_domain }}/logo@2x.png 2x' />
|
||||
|
||||
{%- if page.ha_config_flow and domain -%}
|
||||
{% my config_flow_start badge domain=domain %}
|
||||
|
@ -186,14 +186,14 @@
|
||||
</li>
|
||||
|
||||
<li>
|
||||
{% icon "mdi:update" %} {% active_link /common-tasks/os/ Common tasks %}
|
||||
{% icon "mdi:update" %} {% active_link /common-tasks/general/ Common tasks %}
|
||||
{% if root == 'common-tasks' or include.docs_index %}
|
||||
<ul>
|
||||
<li>{% active_link /common-tasks/general/ Installation independent %}</li>
|
||||
<li>{% active_link /common-tasks/os/ Home Assistant Operating System %}</li>
|
||||
<li>{% active_link /common-tasks/container/ Home Assistant Container %}</li>
|
||||
<li>{% active_link /common-tasks/core/ Home Assistant Core %}</li>
|
||||
<li>{% active_link /common-tasks/supervised/ Home Assistant Supervised %}</li>
|
||||
<li>{% active_link /common-tasks/general/ Installation independent %}</li>
|
||||
<li>{% active_link /docs/troubleshooting_general/ General troubleshooting %}</li>
|
||||
</ul>
|
||||
{% endif %}
|
||||
@ -279,5 +279,6 @@
|
||||
<li><a href="https://green.home-assistant.io/">Home Assistant Green {% icon "tabler:external-link" %}</a></li>
|
||||
<li><a href="https://yellow.home-assistant.io/">Home Assistant Yellow {% icon "tabler:external-link" %}</a></li>
|
||||
<li><a href="https://connectzbt1.home-assistant.io/">Home Assistant Connect ZBT-1 {% icon "tabler:external-link" %}</a></li>
|
||||
<li><a href="https://voice-pe.home-assistant.io/">Home Assistant Voice Preview Edition {% icon "tabler:external-link" %}</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
|
@ -20,11 +20,11 @@ Before creating a backup, check if you can reduce the size of the backup. This i
|
||||
|
||||
1. Check if your configuration directory contains a large database file:
|
||||
- Go to {% my system_health title="**Settings** > **System** > **Repairs**" %}.
|
||||
- From the three dot menu, select **System information** and under the **Recorder** section, look for the **Estimated Database Size (MiB)**.
|
||||
- From the three dots {% icon "mdi:dots-vertical" %} menu, select **System information** and under the **Recorder** section, look for the **Estimated Database Size (MiB)**.
|
||||
- By default, the data is kept for 10 days. If you have modified that to a longer period, check the [`recorder`](/integrations/recorder/) integration page for options to keep your database data down to a size that won't cause issues.
|
||||
- Note the keep days, purge interval, and include/exclude options.
|
||||
2. To check how much space you've used in total, go to {% my system_health title="**Settings** > **System** > **Repairs**" %}.
|
||||
- From the three dot menu, select **System information**, and check under **Home Assistant Supervisor** > **Disk used**.
|
||||
- From the three dots {% icon "mdi:dots-vertical" %} menu, select **System information**, and check under **Home Assistant Supervisor** > **Disk used**.
|
||||
- If you have add-ons installed that you no longer use, uninstall those add-ons. Some add-ons require quite a bit of space.
|
||||
3. If you want to store the backup on your network storage instead of just locally on your system, follow the steps on [adding a new network storage](/common-tasks/os/#add-a-new-network-storage) and select the **Backup** option.
|
||||
|
||||
@ -33,35 +33,53 @@ Before creating a backup, check if you can reduce the size of the backup. This i
|
||||
The automatic backup process creates a backup on a predefined schedule and also deletes old, redundant backups.
|
||||
|
||||
1. Go to {% my supervisor_backups title="**Settings** > **System** > **Backups**" %}.
|
||||
2. Under **Automatic backups**, select **Configure automatic backups**.
|
||||
3. Enable automatic backup.
|
||||
4. Define the backup schedule. It is recommended to back up daily.
|
||||
2. Under **Set up backups**, select **Set up backups**.
|
||||
3. Download the emergency kit and store it somewhere safe.
|
||||
- You need it to restore encrypted backups.
|
||||
- To learn more about backup encryption, refer to the documentation on the [backup emergency kit](/more-info/backup-emergency-kit/).
|
||||
4. Define the backup schedule.
|
||||
- It is recommended to back up **Daily**, but you can also choose to back up on specific days.
|
||||
- Define the time:
|
||||
- **System optimal** sets a time in a predefined time window as shown in the UI.
|
||||
- **Custom** lets you pick the time when you want the backup to start.
|
||||
- Make sure you pick a time when all your backup locations are up and running and available. Otherwise, the backup will fail for locations which are not available.
|
||||
5. Define how many backups you want to keep.
|
||||
- Older backups will be automatically deleted.
|
||||
- For example: if you back up daily, and select 7 backups, then the backup from 8 days ago and older will be deleted.
|
||||
6. Define the data you want to back up.
|
||||
- It is recommended to disable media and the share folder to reduce the size of the backup.
|
||||
- It is recommended to disable media and the shared folder to reduce the size of the backup.
|
||||
- A large backup also takes longer to restore.
|
||||
- Some add-ons may also be quite large.
|
||||
7. [Define the location for backups](#defining-backup-locations).
|
||||
8. Backups are encrypted. To be able to restore encrypted backups, download the emergency kit and store it somewhere safe.
|
||||
- To learn more, refer to the documentation on the [backup emergency kit](/more-info/backup-emergency-kit/).
|
||||
|
||||
### Defining backup locations
|
||||
|
||||
You might need a backup in case your system has crashed. If you only store backups on the device itself, you won't be able to access them easily. It is recommended to keep a copy on another system and ideally also one off-site.
|
||||
You might need a backup in case your system has crashed. If you only store backups on the device itself, you won't be able to access them easily. It is recommended to keep a copy on another system (outside of Home Assistant) and ideally also one off-site.
|
||||
|
||||
{% note %}
|
||||
You will find an overview of integrations which provide a backup location [here](/integrations/#backup).
|
||||
{% endnote %}
|
||||
|
||||
#### About the backup storage on Home Assistant Cloud
|
||||
|
||||
If you have Home Assistant Cloud, you can store a backup of maximum 5 GB on Home Assistant Cloud. This cloud storage space is available for all existing and new Home Assistant Cloud subscribers without additional cost. It stores one backup file: the backup that was last saved to Home Assistant Cloud. Backups are always encrypted. To restore encrypted backups, you need the encryption key stored in the [backup emergency kit](/more-info/backup-emergency-kit/).
|
||||
If you have Home Assistant Cloud, you can store a backup of maximum 5 GB on Home Assistant Cloud. This cloud storage space is available for all existing and new Home Assistant Cloud subscribers without additional cost. It stores one backup file: the backup that was last saved to Home Assistant Cloud. These backups are always encrypted. To restore encrypted backups, you need the encryption key stored in the [backup emergency kit](/more-info/backup-emergency-kit/).
|
||||
|
||||
#### To define the backup location for automatic backups
|
||||
|
||||
1. Go to {% my supervisor_backups title="**Settings** > **System** > **Backups**" %} and under **Automatic backups**, select **Configure automatic backups**.
|
||||
2. Under **Locations**, enable all the backup locations you want to use.
|
||||
2. Under **Locations**, use the toggle to enable all the backup locations you want to use.
|
||||
- If you don't see Home Assistant Cloud in the list, you are not [logged in](https://www.nabucasa.com/config/).
|
||||
- If you want to back up to your NAS (such as [Synology](/integrations/synology_dsm/#backup-location)) or a cloud provider (such as [Google Drive](/integrations/google_drive/) or [Microsoft OneDrive](/integrations/onedrive/)), check their integration documentation for specific instructions on setting up a Home Assistant backup.
|
||||
- If you don't see a network storage, you haven't added one. Follow the steps on [adding a new network storage](/common-tasks/os/#add-a-new-network-storage) and select the **Backup** option.
|
||||

|
||||

|
||||
3. For each enabled location, select the cog {% icon "mdi:cog-outline" %} to enable/disable encryption.
|
||||
- **Info**: The backup stored on Home Assistant Cloud is always encrypted.
|
||||
|
||||
### Creating a backup automation using the backup action
|
||||
|
||||
If the backup automation settings provided in the UI do not match your use case, you can manually configure your own backup automation using the [backup.create_automatic](/integrations/backup/#action-backupcreate_automatic) action.
|
||||
|
||||
Using the {% my developer_call_service service="backup.create_automatic" %} action in your own automation allows you to create automated backups on any schedule you like, or even add conditions and actions around it. For example, you could make an automation that triggers on a calendar, turns on your NAS, waits until it is online, and then triggers a backup.
|
||||
|
||||
### Creating a manual backup
|
||||
|
||||
@ -79,25 +97,20 @@ This creates a backup instantly. You can create a manual backup at any time, irr
|
||||
6. Download the [backup emergency kit](/more-info/backup-emergency-kit/) and store it somewhere safe. Make sure you take note of the backup name it belongs to.
|
||||
7. To start the backup process, select **Create backup**.
|
||||
|
||||
### Alternative: Creating a backup using the Home Assistant Command Line Interface
|
||||
|
||||
1. `ha backups list` - lists backups and their slugnames
|
||||
2. `ha backups restore slugname` - restores a specific backup
|
||||
3. `ha backups new --name nameofbackup` - create a backup
|
||||
|
||||
For additional information about command line usage, use the `ha help` command or refer to the [Home Assistant Command Line documentation](/common-tasks/os/#home-assistant-via-the-command-line).
|
||||
|
||||
### Downloading your local backups
|
||||
|
||||
When downloading the backup from the Home Assistant backup page, it is decrypted on the fly so that you can view the data using your favorite archive tool. This is done for all backup locations and also when you download from Home Assistant Cloud.
|
||||
|
||||
There are multiple ways to download your local backup from your Home Assistant instance and store it on another device:
|
||||
|
||||
**Option 1**: Download from the backup page:
|
||||
|
||||
1. Under {% my supervisor_backups title="**Settings** > **System** > **Backups**" %}, select **Show all backups**.
|
||||
2. To select one backup, on the list, single-click or tap the backup of interest.
|
||||
- To select multiple backups, select the {% icon "mdi:order-checkbox-ascending" %} button.
|
||||
3. In the dialog, select the three dots {% icon "mdi:dots-vertical" %} menu and select **Download backup**.
|
||||
2. To select multiple backups, select the {% icon "mdi:order-checkbox-ascending" %} button.
|
||||
3. Select the three dots {% icon "mdi:dots-vertical" %} menu and select **Download backup**.
|
||||
- **Result**: The selected backup is stored in the **Downloads** folder of your computer.
|
||||
4. If a backup is stored on multiple locations, you can select where you download it from:
|
||||
- Select the backup, and under **Locations**, select the three dots {% icon "mdi:dots-vertical" %} and select **Download from this location**.
|
||||
|
||||
**Option 2**: Copy backups from the backups folder:
|
||||
|
||||
@ -109,8 +122,16 @@ There are multiple ways to download your local backup from your Home Assistant i
|
||||
|
||||
If you were logged in to Home Assistant Cloud and had Cloud backup enabled when creating a backup, your last backup is stored on Home Assistant Cloud.
|
||||
|
||||
1. To download the backup, log in to your [Home Assistant Cloud account](https://account.nabucasa.com/).
|
||||
2. Under **Stored files**, you can see the latest available backup file. Select the download button.
|
||||
There are two ways to download the backup from Home Assistant Cloud:
|
||||
|
||||
- **Option 1**: From the backups page
|
||||
1. Got to {% my supervisor_backups title="**Settings** > **System** > **Backups**" %} and select **Show all backups**.
|
||||
2. Under **Stored files**, you can see the latest available backup file. Select the download button.
|
||||
|
||||
- **Option 2**: From your Home Assistant Cloud account
|
||||
1. Log in to your [Home Assistant Cloud account](https://account.nabucasa.com/).
|
||||
2. Select the backup from the list.
|
||||
3. Under **Locations**, select the three dots {% icon "mdi:dots-vertical" %} and select **Download from this location**.
|
||||
|
||||
### Deleting obsolete backups
|
||||
|
||||
@ -120,7 +141,7 @@ To delete old backups, follow these steps:
|
||||
|
||||
1. Under {% my supervisor_backups title="**Settings** > **System** > **Backups**" %}, select **Show all backups**.
|
||||
2. To delete one backup, on the list, select the backup of interest.
|
||||
- Select the three dots {% icon "mdi:dots-vertical" %} menu and select **Delete**
|
||||
- Select the three dots {% icon "mdi:dots-vertical" %} menu and select **Delete**.
|
||||
3. To delete multiple backups, select the {% icon "mdi:order-checkbox-ascending" %} button.
|
||||
- From the list of backups, select all the ones you want to delete and select **Delete selected**.
|
||||
- {% icon "mdi:information-outline" %} Consider keeping at least one recent backup for recovery purposes.
|
||||
|
@ -101,7 +101,7 @@ Use "ha [command] --help" for more information about a command.
|
||||
|
||||
You can also access the {% term "Home Assistant Operating System" %} via a directly connected keyboard and monitor, the console.
|
||||
|
||||
#### Wiping the data disk wipe from the command line
|
||||
#### Wiping the data disk from the command line
|
||||
|
||||
In {% term "Home Assistant Operating System" %}, the `ha os datadisk wipe` command wipes the data disk. The command deletes all user data as well as Home Assistant Core, Supervisor, and any installed add-ons.
|
||||
|
||||
@ -109,7 +109,12 @@ The command `ha os datadisk wipe` marks the data partition (either internal on t
|
||||
|
||||
The `ha os datadisk wipe` command can only be run from the local terminal. Connect a display and keyboard and use the terminal.
|
||||
|
||||
Note, if you have a Home Assistant Yellow, there is a red hardware button to wipe the data disk. Follow the procedure on [resetting the device](https://yellow.home-assistant.io/guides/factory-reset/).
|
||||
Note, some systems have a reset button you can use to clear the data disk, instead of using the command line:
|
||||
|
||||
- If you have a Home Assistant Yellow with a Raspberry Pi Compute Module 5, use the command line steps described above.
|
||||
|
||||
- If you have a Home Assistant Yellow with a Raspberry Pi Compute Module 4, there is a red hardware button to wipe the data disk. Follow the procedure on [resetting the Home Assistant Yellow](https://yellow.home-assistant.io/guides/factory-reset/).
|
||||
- If you have a Home Assistant Green, there is a black hardware button to wipe the data disk. Follow the procedure on [resetting the Home Assistant Green](https://green.home-assistant.io/guides/reset/).
|
||||
|
||||
#### Listing all users from the command line
|
||||
|
||||
|
@ -25,8 +25,7 @@ If you have been using a data disk previously with {% term "Home Assistant Opera
|
||||
3. Select **Move data disk**.
|
||||
4. Select the data disk from the list of available devices.
|
||||
5. Select **Move**.
|
||||
|
||||

|
||||
- Depending on the amount of data, this may take a while.
|
||||
|
||||
### Using CLI to move the data partition
|
||||
|
||||
|
@ -56,7 +56,7 @@ Server:
|
||||
"[NFS]<sup>1</sup> Remote share path":
|
||||
description: The path used to connect to the remote storage server.
|
||||
"[CIFS]<sup>2</sup> Username":
|
||||
description: The username to use when connecting to the storage server.
|
||||
description: "The username to use when connecting to the storage server. Use User Principal Name for domain accounts. For example: `user@domain.com`."
|
||||
"[CIFS]<sup>2</sup> Password":
|
||||
description: The password to use when connecting to the storage server.
|
||||
"[CIFS]<sup>2</sup> Share":
|
||||
|
@ -1,12 +1,10 @@
|
||||
Best practice for updating Home Assistant Core:
|
||||
|
||||
1. Back up your installation{% if page.installation == "os" or page.installation == "supervised" %}, using the [backup functionality](/common-tasks/general/#backups) Home Assistant offers{% endif %}.
|
||||
1. [Back up your installation](/common-tasks/general/#backups) and store the backup and the [backup emergency kit](/more-info/backup-emergency-kit/) somewhere safe.
|
||||
- This ensures that you can [restore your installation from backup](/common-tasks/general/#restoring-a-backup) if needed.
|
||||
2. Check the release notes for backward-incompatible changes on [Home Assistant release notes](/blog/categories/core/). Be sure to check all release notes between the version you are running and the one you are upgrading to. Use the search function in your browser (`CTRL + f` / `CMD + f`) and search for **Backward-incompatible changes**.
|
||||
{% if page.installation == "os" or page.installation == "supervised" %}
|
||||
3. Select **Create backup before updating** in case you encounter an issue that requires a rollback.
|
||||
4. Update Home Assistant.
|
||||
5. Review persistent notifications and log to see if there are any issues with your configuration that need to be addressed.
|
||||
{% endif %}
|
||||
3. Update Home Assistant.
|
||||
4. Review persistent notifications and log to see if there are any issues with your configuration that need to be addressed.
|
||||
|
||||
{% if page.installation == "os" or page.installation == "supervised" %}
|
||||
|
||||
|
130
source/_includes/custom/buy-dialog.html
Normal file
130
source/_includes/custom/buy-dialog.html
Normal file
@ -0,0 +1,130 @@
|
||||
{% if include.product and site.data.products[include.product] %}
|
||||
{% assign product = site.data.products[include.product] %}
|
||||
{% assign distributor_regions = product.distributors | group_by: 'ship_to' %}
|
||||
{% endif %}
|
||||
|
||||
<div class="ha-buy-dialog">
|
||||
<div class="ha-buy-dialog-inner">
|
||||
<div class="ha-buy-dialog-header">
|
||||
<div class="product-name">{{ product.name }}</div>
|
||||
<div class="close">
|
||||
<svg width="24" height="24" viewBox="0 0 24 24">
|
||||
<path
|
||||
d="M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z" />
|
||||
</svg>
|
||||
</div>
|
||||
</div>
|
||||
<div class="ha-buy-dialog-content">
|
||||
<div class="ha-buy-dialog-sidebar">
|
||||
<div class="ha-buy-dialog-sidebar-label">Shipping to</div>
|
||||
<div class="ha-buy-dialog-sidebar-tabs">
|
||||
{% for distributor_region in distributor_regions %}
|
||||
<div class="ha-buy-dialog-sidebar-tab {% if forloop.first %}active{% endif %}" aria-role="tab" aria-selected="true" aria-controls="#{{ distributor_region.name | slugify }}" data-tab="#{{ distributor_region.name | slugify }}">
|
||||
{{ distributor_region.name }}
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="ha-buy-dialog-tab-content-wrapper">
|
||||
{% for distributor_region in distributor_regions %}
|
||||
<div class="ha-buy-dialog-tab-content {% if forloop.first %}active{% endif %}" id="{{ distributor_region.name | slugify }}">
|
||||
{% assign az_ship_distributors = distributor_region.items | case_insensitive_sort: 'name' | sort: 'ship_from' %}
|
||||
<div class="ha-buy-dialog-distributor-items">
|
||||
{% for distributor in az_ship_distributors %}
|
||||
<a href="{{ distributor.url }}" target="_blank" class="ha-buy-dialog-distributor-item">
|
||||
{% if distributor.logo %}
|
||||
<img src="{{ distributor.logo }}" alt="{{ distributor.name }} logo" class="ha-buy-dialog-distributor-logo">
|
||||
{% else %}
|
||||
{{ distributor.name }}
|
||||
{% endif %}
|
||||
<span>
|
||||
Ships from {{ distributor.ship_from }}
|
||||
</span>
|
||||
</a>
|
||||
{% endfor %}
|
||||
</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<link rel="stylesheet" href="/voice-pe/nice-select2.css" />
|
||||
<script src="/voice-pe/nice-select2.js" defer></script>
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', function () {
|
||||
let dialog = document.querySelector('.ha-buy-dialog');
|
||||
let tabs = dialog.querySelectorAll('.ha-buy-dialog-sidebar-tab');
|
||||
let tabContents = dialog.querySelectorAll('.ha-buy-dialog-tab-content');
|
||||
|
||||
tabs.forEach(tab => {
|
||||
tab.addEventListener('click', function () {
|
||||
tabs = dialog.querySelectorAll('.ha-buy-dialog-sidebar-tab');
|
||||
|
||||
tabs.forEach(tab => tab.classList.remove('active'));
|
||||
tabContents.forEach(tabContent => tabContent.classList.remove('active'));
|
||||
|
||||
let tabContent = dialog.querySelector(tab.getAttribute('data-tab'));
|
||||
if(!tabContent) return;
|
||||
|
||||
tab.classList.add('active');
|
||||
tabContent.classList.add('active');
|
||||
})
|
||||
});
|
||||
|
||||
let close = dialog.querySelector('.close');
|
||||
close.addEventListener('click', function () {
|
||||
dialog.classList.remove('open');
|
||||
document.documentElement.style.overflow = "";
|
||||
});
|
||||
|
||||
let openTargets = document.querySelectorAll('.buy');
|
||||
openTargets.forEach(target => {
|
||||
target.addEventListener('click', function (e) {
|
||||
e.preventDefault();
|
||||
dialog.classList.add('open');
|
||||
document.documentElement.style.overflow = "hidden";
|
||||
focusDistributors(dialog);
|
||||
});
|
||||
});
|
||||
|
||||
if (window.location.hash === '#buy') {
|
||||
dialog.classList.add('open');
|
||||
document.documentElement.style.overflow = "hidden";
|
||||
focusDistributors(dialog);
|
||||
}
|
||||
|
||||
dialog.addEventListener('click', function (e) {
|
||||
if (!e.target.closest('.ha-buy-dialog-inner')) {
|
||||
dialog.classList.remove('open');
|
||||
document.documentElement.style.overflow = "";
|
||||
}
|
||||
});
|
||||
|
||||
document.addEventListener('keydown', function (e) {
|
||||
if (e.key === 'Escape') {
|
||||
dialog.classList.remove('open');
|
||||
document.documentElement.style.overflow = "";
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
function focusDistributors(dialog){
|
||||
let tabs = dialog.querySelectorAll('.ha-buy-dialog-sidebar-tab');
|
||||
let tabContents = dialog.querySelectorAll('.ha-buy-dialog-tab-content');
|
||||
let timezone = Intl.DateTimeFormat().resolvedOptions().timeZone;
|
||||
let region = timezone.split('/')[0].toLowerCase();
|
||||
|
||||
let defaultTab = dialog.querySelector(`.ha-buy-dialog-sidebar-tab[data-tab="#${region}"]`);
|
||||
if (defaultTab) {
|
||||
tabs.forEach(tab => tab.classList.remove('active'));
|
||||
tabContents.forEach(tabContent => tabContent.classList.remove('active'));
|
||||
|
||||
defaultTab.classList.add('active');
|
||||
let tabContent = document.querySelector(defaultTab.getAttribute('data-tab'));
|
||||
tabContent.classList.add('active');
|
||||
}
|
||||
}
|
||||
</script>
|
@ -10,4 +10,4 @@ To add the {{ title | downcase }} to your user interface:
|
||||
- This means that it is no longer automatically updated when new dashboard elements become available.
|
||||
- Once you've taken control, you can't get this specific dashboard back to update automatically. However, you can create a new default dashboard.
|
||||
- To continue, in the dialog, select the three dots {% icon "mdi:dots-vertical" %} menu, then select **Take control**.
|
||||
2. [Add a card](/dashboards/cards/#adding-cards-to-your-dashboard) to your dashboard.
|
||||
2. [Add a card and customize actions and features](/dashboards/cards/#adding-cards-to-your-dashboard) to your dashboard.
|
||||
|
@ -108,7 +108,7 @@ To write the HAOS image to the boot medium on your x86-64 hardware, there are 2
|
||||
- This means you will lose all the data as well as the previously installed operating system.
|
||||
- Back up your data before carrying out this procedure.
|
||||
2. Create a *live operating system* on a USB flash drive:
|
||||
- Follow the [Ubuntu instructions](https://ubuntu.com/tutorials/try-ubuntu-before-you-install) on writing an Ubuntu iso file onto a USB device.
|
||||
- Follow the [Ubuntu Desktop instructions](https://ubuntu.com/tutorials/try-ubuntu-before-you-install) on writing an Ubuntu Desktop iso file onto a USB device.
|
||||
3. Insert the USB flash drive into the system on which you want to run Home Assistant.
|
||||
- Boot the live operating system.
|
||||
- You might need to adjust boot order or use F10 (might be a different F-key depending on the BIOS) to select the USB flash drive as boot device.
|
||||
@ -462,7 +462,7 @@ Minimum recommended assignments:
|
||||
|
||||
1. Start the virtual machine.
|
||||
2. Observe the boot process of the Home Assistant Operating System.
|
||||
3. Once completed, you will be able to reach Home Assistant on <a href="http://homeassistant.local:8123" target="_blank">homeassistant.local:8123</a>. If you are running an older Windows version or have a stricter network configuration, you might need to access Home Assistant at <a href="http://homeassistant:8123" target="_blank">homeassistant:8123</a> or `http://X.X.X.X:8123` (replace X.X.X.X with your {{site.installation.types[page.installation_type].board}}’s IP address).
|
||||
3. Once completed, you will be able to reach Home Assistant on <a href="http://homeassistant.local:8123" target="_blank">homeassistant.local:8123</a>. If you are running an older Windows version or have a stricter network configuration, you might need to access Home Assistant at <a href="http://homeassistant:8123" target="_blank">homeassistant:8123</a> or `http://X.X.X.X:8123` (replace X.X.X.X with your virtual machine’s IP address).
|
||||
|
||||
{% endif %}
|
||||
|
||||
|
@ -1,5 +1,3 @@
|
||||
### To remove an integration instance from Home Assistant
|
||||
|
||||
1. Go to {% my integrations title="**Settings** > **Devices & services**" %} and select the integration card.
|
||||
2. From the list of devices, select the integration instance you want to remove.
|
||||
3. Next to the entry, select the three-dot {% icon "mdi:dots-vertical" %} menu. Then, select **Delete**.
|
||||
{% include integrations/remove_device_service_steps.md %}
|
@ -0,0 +1,3 @@
|
||||
1. Go to {% my integrations title="**Settings** > **Devices & services**" %} and select the integration card.
|
||||
2. From the list of devices, select the integration instance you want to remove.
|
||||
3. Next to the entry, select the three-dot {% icon "mdi:dots-vertical" %} menu. Then, select **Delete**.
|
@ -85,19 +85,26 @@
|
||||
title="GitHub"
|
||||
target="_blank"
|
||||
><iconify-icon icon="simple-icons:github"></iconify-icon></a>
|
||||
<br />
|
||||
<a
|
||||
rel="me"
|
||||
href="https://fosstodon.org/@homeassistant"
|
||||
title="Mastodon"
|
||||
target="_blank"
|
||||
><iconify-icon icon="simple-icons:mastodon"></iconify-icon></a>
|
||||
<br />
|
||||
<a
|
||||
rel="me"
|
||||
href="https://bsky.app/profile/home-assistant.io"
|
||||
title="Bluesky"
|
||||
target="_blank"
|
||||
><iconify-icon icon="simple-icons:bluesky"></iconify-icon></a>
|
||||
<a
|
||||
rel="me"
|
||||
href="https://x.com/home_assistant"
|
||||
title="X"
|
||||
target="_blank"
|
||||
><iconify-icon icon="simple-icons:x"></iconify-icon></a>
|
||||
<br />
|
||||
<a
|
||||
rel="me"
|
||||
href="https://www.facebook.com/homeassistantio"
|
||||
|
208
source/_integrations/_integration_docs_template.markdown
Normal file
208
source/_integrations/_integration_docs_template.markdown
Normal file
@ -0,0 +1,208 @@
|
||||
---
|
||||
title: My integration
|
||||
description: Example document structure and text blocks for integration documentation.
|
||||
ha_release: 2025.3
|
||||
ha_iot_class: Local Push
|
||||
ha_codeowners:
|
||||
- '@home-assistant/core'
|
||||
ha_domain: my_integration
|
||||
ha_integration_type: integration
|
||||
related:
|
||||
- url: https://developers.home-assistant.io/docs/documenting/standards
|
||||
title: Documentation standard
|
||||
- url: https://developers.home-assistant.io/docs/core/integration-quality-scale/rules/
|
||||
title: Integration Quality Scale - Rules
|
||||
- docs: /docs/glossary/
|
||||
title: Glossary
|
||||
- docs: /docs/tools/quick-bar/#my-links
|
||||
title: My link
|
||||
---
|
||||
|
||||
<!--- The integration documentation template provides a documentation structure as well as some example content per section. The example content is meant for inspiration, it may not apply for your integration or will at least have to be adapted. -->
|
||||
|
||||
<!--- Use this template together with the developer documentation, under [Documentation standard](https://developers.home-assistant.io/docs/documenting/standards) and the documentation rules of the [Integration Quality Scale](https://developers.home-assistant.io/docs/core/integration-quality-scale/rules/). -->
|
||||
|
||||
The **My integration** {% term integration %} is used to integrate with the devices of [MyCompany](https://www.mycompany.com). MyCompany creates various smart home appliances and devices and are known for their MyProduct.
|
||||
Use case: When you combine it with their other device you can do x.
|
||||
|
||||
## Supported devices
|
||||
|
||||
The following devices are known to be supported by the integration:
|
||||
|
||||
- Device 1
|
||||
- Device 2
|
||||
- Every appliance that runs MyOS
|
||||
|
||||
## Unsupported devices
|
||||
|
||||
The following devices are not supported by the integration:
|
||||
|
||||
- Device 3
|
||||
- Appliances built before 2010
|
||||
|
||||
## Prerequisites
|
||||
|
||||
1. Open the app store and install the **MyProduct** app.
|
||||
2. Create an account.
|
||||
3. Add a device to the app.
|
||||
4. Open the app and go to the **Settings** page.
|
||||
5. Select **Expose API**.
|
||||
|
||||
{% include integrations/config_flow.md %}
|
||||
|
||||
<!--- The next section is about documenting configuration variables. For details, refer to the [documentation standard on configuration variables](/docs/documenting/standards#configuration-variables). -->
|
||||
|
||||
<!--- In case your integration is used via a config flow: -->
|
||||
|
||||
{% configuration_basic %}
|
||||
Host:
|
||||
description: "The IP address of your bridge. You can find it in your router or in the Integration app under **Bridge Settings** > **Local API**."
|
||||
Local access token:
|
||||
description: "The local access token for your bridge. You can find it in the Integration app under **Bridge Settings** > **Local API**."
|
||||
{% endconfiguration_basic %}
|
||||
|
||||
<!--- In case an integration is set up via YAML in the {% term "`configuration.yaml`" %}: -->
|
||||
|
||||
{% configuration %}
|
||||
Host:
|
||||
description: "The IP address of your bridge. You can find it in your router or in the Integration app under **Bridge Settings** > **Local API**."
|
||||
required: false
|
||||
type: string
|
||||
Local access token:
|
||||
description: "The local access token for your bridge. You can find it in the Integration app under **Bridge Settings** > **Local API**."
|
||||
required: false
|
||||
type: string
|
||||
{% endconfiguration %}
|
||||
|
||||
## Configuration options
|
||||
|
||||
The integration provides the following configuration options:
|
||||
|
||||
{% configuration_basic %}
|
||||
Country code:
|
||||
description: You can specify the country code (NL or BE) of the country to display on the camera.
|
||||
Timeframe:
|
||||
description: Minutes to look ahead for precipitation forecast sensors (minimum 5, maximum 120).
|
||||
{% endconfiguration_basic %}
|
||||
|
||||
## Supported functionality
|
||||
|
||||
### Entities
|
||||
|
||||
The **My integration** integration provides the following entities.
|
||||
|
||||
#### Buttons
|
||||
|
||||
- **Start backflush**
|
||||
- **Description**: Starts the backflush process on your machine. You got 15 seconds to turn the paddle after activation.
|
||||
- **Available for machines**: all
|
||||
|
||||
#### Numbers
|
||||
|
||||
- **Dose**
|
||||
- **Description**: Dosage (in ticks) for each key
|
||||
- **Available for machines**: GS3 AV, Linea Mini.
|
||||
- **Remarks**: GS3 has this multiple times, one for each physical key (1-4), and the entities are disabled by default.
|
||||
|
||||
#### Sensors
|
||||
|
||||
- **Current coffee temperature**
|
||||
- **Description**: Current temperature of the coffee boiler.
|
||||
- **Available for machines**: all
|
||||
- **Remarks**: When the machine reaches temperature, this will be approximately 3 degrees higher than the `Coffee target temperature`, due to different measurement points.
|
||||
|
||||
- **Current steam temperature**
|
||||
- **Description**: Current temperature of the steam boiler.
|
||||
- **Available for machines**: Linea Micra, GS3 AV, GS3 MP.
|
||||
- **Remarks**: -
|
||||
|
||||
#### Selects
|
||||
|
||||
- **Prebrew/-infusion mode**
|
||||
- **Description**: Whether to use prebrew, preinfusion, or neither.
|
||||
- **Options**: Disabled, Prebrew, Preinfusion
|
||||
- **Available for machines**: Linea Micra, Linea Mini, GS3 AV
|
||||
|
||||
- **Steam level**
|
||||
- **Description**: The level your steam boiler should run at.
|
||||
- **Options**: 1, 2, 3
|
||||
- **Available for machines**: Linea Micra
|
||||
|
||||
#### Updates
|
||||
|
||||
- **Gateway firmware**
|
||||
- **Description**: Firmware status of the gateway.
|
||||
- **Available for machines**: all
|
||||
|
||||
## Actions
|
||||
|
||||
The integration provides the following actions.
|
||||
|
||||
### Action: Get schedule
|
||||
|
||||
The `my_integration.get_schedule` action is used to fetch a schedule from the integration.
|
||||
|
||||
- **Data attribute**: `config_entry_id`
|
||||
- **Description**: The ID of the config entry to get the schedule from.
|
||||
- **Optional**: No
|
||||
|
||||
## Examples
|
||||
|
||||
### Turning off the LEDs during the night
|
||||
|
||||
The status LEDs on the device can be quite bright.
|
||||
To tackle this, you can use this blueprint to easily automate the LEDs turning off when the sun goes down.
|
||||
|
||||
link to the blueprint on the [blueprints
|
||||
exchange](https://community.home-assistant.io/c/blueprints-exchange/53)
|
||||
|
||||
## Data updates
|
||||
|
||||
The **My integration** integration fetches data from the device every 5 minutes by default.
|
||||
Newer devices (the ones running MyOS) have the possibility to push data.
|
||||
In this case, pushing data is enabled when the integration is started. If enabling data push fails, the integration uses data {% term polling %}.
|
||||
|
||||
## Known limitations
|
||||
|
||||
The integration does not provide the ability to reboot, which can instead be done via the manufacturer's app.
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Can’t set up the device
|
||||
|
||||
#### Symptom: “This device can’t be reached”
|
||||
|
||||
When trying to set up the integration, the form shows the message “This device can’t be reached”.
|
||||
|
||||
##### Description
|
||||
|
||||
This means the settings on the device are incorrect, since the device needs to be enabled for local communication.
|
||||
|
||||
##### Resolution
|
||||
|
||||
To resolve this issue, try the following steps:
|
||||
|
||||
1. Make sure your device is powered up (LEDs are on).
|
||||
2. Make sure your device is connected to the internet:
|
||||
- Make sure the app of the manufacturer can see the device.
|
||||
3. Make sure the device has the local communication enabled:
|
||||
- Check the device’s settings.
|
||||
- Check the device’s manual.
|
||||
...
|
||||
|
||||
### I can't see my devices
|
||||
|
||||
Make sure the devices are visible and controllable via the manufacturer's app.
|
||||
If they are not, check the device's power and network connection.
|
||||
|
||||
### The device goes unavailable after a day
|
||||
|
||||
Make sure you turned off the device's power-saving mode.
|
||||
|
||||
## Removing the integration
|
||||
|
||||
This integration follows standard integration removal.
|
||||
|
||||
{% include integrations/remove_device_service.md %}
|
||||
|
||||
After deleting the integration, go to the app of the manufacturer and remove the Home Assistant integration from there as well.
|
@ -34,19 +34,19 @@ Device:
|
||||
description: "The Bluetooth device that is your scale."
|
||||
{% endconfiguration_basic %}
|
||||
|
||||
# Available platforms & entities
|
||||
## Available platforms & entities
|
||||
|
||||
## Binary sensors
|
||||
### Binary sensors
|
||||
|
||||
- **Timer running**: Whether the timer is currently running on the scale
|
||||
|
||||
## Buttons
|
||||
### Buttons
|
||||
|
||||
- **Tare**: Tares the scale.
|
||||
- **Reset timer**: Resets the timer. If the timer is running, it will continue to run.
|
||||
- **Start/stop timer**: Starts or stops the timer, depending on whether the timer is currently running. Does not reset, but continue the timer.
|
||||
|
||||
## Sensors
|
||||
### Sensors
|
||||
|
||||
- **Battery**: Current battery level of the scale.
|
||||
- **Volume flow rate**: Calculates the current flow rate (in mL/s) while brewing.
|
||||
|
@ -68,7 +68,7 @@ The integration will create a binary sensor for each zone that has a motion sens
|
||||
|
||||
### Switch
|
||||
|
||||
The integration will create switch entities to toggle the MyFan/ezFan setting, and to toggle air conditioning fresh air mode, if they are supported by your hardware.
|
||||
The integration will create switch entities to toggle the MyFan/ezFan setting, to toggle air conditioning fresh air mode, and to toggle MySleep$aver, if they are supported by your hardware.
|
||||
|
||||
With MyPlace, any relays will be created as switch entities.
|
||||
|
||||
|
@ -25,6 +25,7 @@ ha_zeroconf: true
|
||||
---
|
||||
|
||||
The AirGradient integration will fetch data from your [AirGradient devices](https://www.airgradient.com/).
|
||||
AirGradient creates indoor and outdoor air quality monitors that enable you know if the air quality is healthy or not. They measure metrics such as PM2.5, CO2, TVOCs, and NOx. Both the software and hardware are open-source, allowing you to customize or extend the device functionality.
|
||||
|
||||
{% important %}
|
||||
In order for the device to be set up or discovered by Home Assistant, the [firmware](https://www.airgradient.com/documentation/firmwares) version should be at least 3.1.1.
|
||||
@ -32,6 +33,11 @@ In order for the device to be set up or discovered by Home Assistant, the [firmw
|
||||
|
||||
{% include integrations/config_flow.md %}
|
||||
|
||||
{% configuration_basic %}
|
||||
Host:
|
||||
description: "The IP address or hostname for your AirGradient device."
|
||||
{% endconfiguration_basic %}
|
||||
|
||||
## Available sensors
|
||||
|
||||
The integration will fetch data from each device. The following sensors are supported:
|
||||
@ -61,3 +67,9 @@ The following entities are supported:
|
||||
- Requesting CO2 calibration
|
||||
- Requesting LED bar test
|
||||
- Toggling sharing metrics with AirGradient
|
||||
|
||||
## Remove integration
|
||||
|
||||
This integration follows standard integration removal, no extra steps are required.
|
||||
|
||||
{% include integrations/remove_device_service.md %}
|
@ -95,3 +95,8 @@ After the integration has been initialized, the user can configure any of the fo
|
||||
- **Show values averaged by the device**. Default: `on`. In its default configuration, air-Q averages the stream of sensor values. The strength of this averaging can be configured on the device side (not exposed through the HA). However, this integration allows to switch between polling the averaged and the raw data from the device. To poll noisy sensor readings from the device, set **Show values averaged by the device** to `off`.
|
||||
|
||||
- **Clip negative values**. Default: `on`. For baseline calibration purposes, certain sensor values may briefly become negative. The default behavior is to clip such values to 0.
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
For troubleshooting or when reporting an issue, please enable [debug logging](/docs/configuration/troubleshooting/#debug-logs-and-diagnostics) and restart the integration. As soon as the issue reoccurs stop the debug logging, which will trigger the download of the debug log file.
|
||||
Enabling debug logging has a slight performance impact on the system and is not recommended for long-term use.
|
||||
|
@ -30,7 +30,7 @@ Airthings API setup (needed to acquire the required ID and Secret for the Home A
|
||||
1. Login [here](https://dashboard.airthings.com/integrations/api-integration) to find your credentials.
|
||||
2. Select [Integrations](https://dashboard.airthings.com/integrations/api-integration) from the left side-bar.
|
||||
3. Click on "Request API Client" in order to set up an API connection.
|
||||
4. Name your API connection ie. "Home Assistant Integration".
|
||||
4. Name your API connection (e.g., "Home Assistant"). Note: The name field has a character limit and longer names will be truncated.
|
||||
5. Give the connection an accurate description.
|
||||
6. Select a Resource Scope.
|
||||
7. Select an access Type, i.e., Confidential.
|
||||
|
@ -40,6 +40,7 @@ This integration uses the last 6 digits of the serial number.
|
||||
- Wave Radon
|
||||
- Wave Mini
|
||||
- Wave Plus
|
||||
- Wave Enhance
|
||||
|
||||
## Sensors
|
||||
|
||||
|
@ -62,7 +62,7 @@ availability:
|
||||
required: true
|
||||
type: string
|
||||
value_template:
|
||||
description: "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract device's availability from the `topic`. To determine the devices's availability result of this template will be compared to `payload_available` and `payload_not_available`."
|
||||
description: "Defines a [template](/docs/configuration/templating/#using-value-templates-with-mqtt) to extract device's availability from the `topic`. To determine the devices's availability result of this template will be compared to `payload_available` and `payload_not_available`."
|
||||
required: false
|
||||
type: template
|
||||
availability_mode:
|
||||
@ -71,7 +71,7 @@ availability_mode:
|
||||
type: string
|
||||
default: latest
|
||||
availability_template:
|
||||
description: "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract device's availability from the `availability_topic`. To determine the devices's availability result of this template will be compared to `payload_available` and `payload_not_available`."
|
||||
description: "Defines a [template](/docs/configuration/templating/#using-value-templates-with-mqtt) to extract device's availability from the `availability_topic`. To determine the devices's availability result of this template will be compared to `payload_available` and `payload_not_available`."
|
||||
required: false
|
||||
type: template
|
||||
availability_topic:
|
||||
@ -98,7 +98,7 @@ code_trigger_required:
|
||||
type: boolean
|
||||
default: true
|
||||
command_template:
|
||||
description: "The [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) used for the command payload. Available variables: `action` and `code`."
|
||||
description: "The [template](/docs/configuration/templating/#using-command-templates-with-mqtt) used for the command payload. Available variables: `action` and `code`."
|
||||
required: false
|
||||
type: template
|
||||
default: action
|
||||
@ -182,7 +182,7 @@ icon:
|
||||
required: false
|
||||
type: icon
|
||||
json_attributes_template:
|
||||
description: "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract the JSON dictionary from messages received on the `json_attributes_topic`. Usage example can be found in [MQTT sensor](/integrations/sensor.mqtt/#json-attributes-template-configuration) documentation."
|
||||
description: "Defines a [template](/docs/configuration/templating/#using-value-templates-with-mqtt) to extract the JSON dictionary from messages received on the `json_attributes_topic`. Usage example can be found in [MQTT sensor](/integrations/sensor.mqtt/#json-attributes-template-configuration) documentation."
|
||||
required: false
|
||||
type: template
|
||||
json_attributes_topic:
|
||||
@ -271,7 +271,7 @@ unique_id:
|
||||
required: false
|
||||
type: string
|
||||
value_template:
|
||||
description: "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract the value."
|
||||
description: "Defines a [template](/docs/configuration/templating/#using-value-templates-with-mqtt) to extract the value."
|
||||
required: false
|
||||
type: template
|
||||
{% endconfiguration %}
|
||||
|
@ -151,7 +151,7 @@ Next you need create a Lambda function.
|
||||
|
||||
- Click `Services` in top navigation bar, expand the menu to display all AWS services, then under `Compute` section click `Lambda` to navigate to Lambda console. Or you may use this [link](https://console.aws.amazon.com/lambda/home)
|
||||
**IMPORTANT - Alexa Skills are only supported in specific AWS regions.** Your current server location will be displayed in the top-right corner (for example, Ohio). Select an available server from the list below ([reference](https://developer.amazon.com/en-US/docs/alexa/smarthome/develop-smart-home-skills-in-multiple-languages.html#deploy)) based on your Amazon account's locale, not your physical location. **Alexa Lambda functions created in other regions will not work properly and may prevent account linking! For example, if your locale is set to English (US) and you live in California, you must use US East (N.Virginia), not US West (Oregon). While the setup process will complete with an incorrect region, the skill will not function, and there will be no clear error messages indicating the cause.**
|
||||
- **US East (N.Virginia)** region for English (US) or English (CA) skills
|
||||
- **US East (N.Virginia)** region for English (US), English (CA) or Portuguese (BR) skills
|
||||
- **EU (Ireland)** region for English (UK), English (IN), German (DE), Spanish (ES) or French (FR) skills
|
||||
- **US West (Oregon)** region for Japanese and English (AU) skills.
|
||||
|
||||
@ -256,7 +256,7 @@ Self signed certificates will not work, but you can use a free Let's Encrypt cer
|
||||
{% endimportant %}
|
||||
|
||||
- `Client ID`:
|
||||
- `https://pitangui.amazon.com/` if you are in US
|
||||
- `https://pitangui.amazon.com/` if you are in US or BR
|
||||
- `https://layla.amazon.com/` if you are in EU
|
||||
- `https://alexa.amazon.co.jp/` if you are in JP and AU (not verified yet)
|
||||
|
||||
@ -323,7 +323,7 @@ alexa:
|
||||
type: map
|
||||
keys:
|
||||
locale:
|
||||
description: The locale of your Alexa devices. Supported locales are `de-DE`, `en-AU`, `en-CA`, `en-GB`, `en-IN`, `en-US`, `es-ES`, `es-MX`, `es-US`, `fr-CA`, `fr-FR`, `hi-IN`, `it-IT`, `ja-JP`, `nl-NL` and `pt-BR`. See [Alexa Locale](#alexa-locale) for additional information.
|
||||
description: The locale of your Alexa devices. Supported locales are `de-DE`, `en-AU`, `en-CA`, `en-GB`, `en-IN`, `en-US`, `es-ES`, `es-MX`, `es-US`,`fr-CA`, `fr-FR`, `hi-IN`, `it-IT`, `ja-JP`, `nl-NL`, and `pt-BR`. See [Alexa Locale](#alexa-locale) for additional information.
|
||||
required: false
|
||||
type: string
|
||||
default: en-US
|
||||
|
@ -292,8 +292,8 @@ elements:
|
||||
right: 25px
|
||||
bottom: 50px
|
||||
tap_action:
|
||||
action: call-service
|
||||
service: amcrest.ptz_control
|
||||
action: perform-action
|
||||
perform_action: amcrest.ptz_control
|
||||
service_data:
|
||||
entity_id: camera.lakehouse
|
||||
movement: up
|
||||
@ -304,8 +304,8 @@ elements:
|
||||
right: 25px
|
||||
bottom: 0px
|
||||
tap_action:
|
||||
action: call-service
|
||||
service: amcrest.ptz_control
|
||||
action: perform-action
|
||||
perform_action: amcrest.ptz_control
|
||||
service_data:
|
||||
entity_id: camera.lakehouse
|
||||
movement: down
|
||||
@ -316,8 +316,8 @@ elements:
|
||||
right: 50px
|
||||
bottom: 25px
|
||||
tap_action:
|
||||
action: call-service
|
||||
service: amcrest.ptz_control
|
||||
action: perform-action
|
||||
perform_action: amcrest.ptz_control
|
||||
service_data:
|
||||
entity_id: camera.lakehouse
|
||||
movement: left
|
||||
@ -328,8 +328,8 @@ elements:
|
||||
right: 0px
|
||||
bottom: 25px
|
||||
tap_action:
|
||||
action: call-service
|
||||
service: amcrest.ptz_control
|
||||
action: perform-action
|
||||
perform_action: amcrest.ptz_control
|
||||
service_data:
|
||||
entity_id: camera.lakehouse
|
||||
movement: right
|
||||
@ -340,8 +340,8 @@ elements:
|
||||
right: 50px
|
||||
bottom: 50px
|
||||
tap_action:
|
||||
action: call-service
|
||||
service: amcrest.ptz_control
|
||||
action: perform-action
|
||||
perform_action: amcrest.ptz_control
|
||||
service_data:
|
||||
entity_id: camera.lakehouse
|
||||
movement: left_up
|
||||
@ -352,8 +352,8 @@ elements:
|
||||
right: 0px
|
||||
bottom: 50px
|
||||
tap_action:
|
||||
action: call-service
|
||||
service: amcrest.ptz_control
|
||||
action: perform-action
|
||||
perform_action: amcrest.ptz_control
|
||||
service_data:
|
||||
entity_id: camera.lakehouse
|
||||
movement: right_up
|
||||
@ -364,8 +364,8 @@ elements:
|
||||
right: 50px
|
||||
bottom: 0px
|
||||
tap_action:
|
||||
action: call-service
|
||||
service: amcrest.ptz_control
|
||||
action: perform-action
|
||||
perform_action: amcrest.ptz_control
|
||||
service_data:
|
||||
entity_id: camera.lakehouse
|
||||
movement: left_down
|
||||
@ -376,8 +376,8 @@ elements:
|
||||
right: 0px
|
||||
bottom: 0px
|
||||
tap_action:
|
||||
action: call-service
|
||||
service: amcrest.ptz_control
|
||||
action: perform-action
|
||||
perform_action: amcrest.ptz_control
|
||||
service_data:
|
||||
entity_id: camera.lakehouse
|
||||
movement: right_down
|
||||
@ -388,14 +388,14 @@ elements:
|
||||
bottom: 25px
|
||||
right: 25px
|
||||
tap_action:
|
||||
action: call-service
|
||||
service: amcrest.ptz_control
|
||||
action: perform-action
|
||||
perform_action: amcrest.ptz_control
|
||||
service_data:
|
||||
entity_id: camera.lakehouse
|
||||
movement: zoom_in
|
||||
hold_action:
|
||||
action: call-service
|
||||
service: amcrest.ptz_control
|
||||
action: perform-action
|
||||
perform_action: amcrest.ptz_control
|
||||
data:
|
||||
entity_id: camera.lakehouse
|
||||
movement: zoom_out
|
||||
|
@ -569,3 +569,4 @@ cards:
|
||||
- Some devices experience disconnects every 15 seconds. This is typically resolved by rebooting the Android TV device after the initial setup of the integration.
|
||||
- If you are not able to connect to the Android TV device, or are asked to pair it again and again, try force-stopping the Android TV Remote Service and clearing its storage. On the Android TV device, go to **Settings** > **Apps** > **Show system apps**. Then, select **Android TV Remote Service** > **Storage** > **Clear storage**. You will have to pair again.
|
||||
- Some onscreen keyboards enabled by TV manufacturers do not support concurrent virtual and onscreen keyboard use. This presents whenever a text field is selected, such as "search" where a constant **use the keyboard on your mobile device** will show, preventing you from opening the onscreen keyboard to type. This can be overcome by either disabling your 3rd party keyboard and using the default Gboard keyboard or by deselecting **Enable IME** in the **Configure** page of the integration.
|
||||
- If you can't turn on your Nvidia Shield device, go to **Settings** > **Remotes & accessories** > **Simplified wake buttons** and disable the following options: **SHIELD 2019 Remote: Wake on power and Netflix buttons only** and **Controllers: Wake on NVIDIA or logo buttons only**.
|
||||
|
@ -67,5 +67,7 @@ Model:
|
||||
Maximum Tokens to Return in Response:
|
||||
description: The maximum number of tokens to generate before stopping. Note that our models may stop _before_ reaching this maximum. This parameter only specifies the absolute maximum number of tokens to generate. Different models have different maximum values for this parameter. See [models](https://docs.anthropic.com/en/docs/models-overview) for details.
|
||||
Temperature:
|
||||
description: Amount of randomness injected into the response. Use `temperature` closer to `0.0` for analytical / multiple choice, and closer to `1.0` for creative and generative tasks. Note that even with `temperature` of `0.0`, the results will not be fully deterministic.
|
||||
description: Amount of randomness injected into the response. Use `temperature` closer to `0.0` for analytical / multiple choice, and closer to `1.0` for creative and generative tasks. Note that even with `temperature` of `0.0`, the results will not be fully deterministic. This parameter is ignored if extended thinking is enabled (see below).
|
||||
Thinking budget:
|
||||
description: For models with [extending thinking](https://docs.anthropic.com/en/docs/build-with-claude/extended-thinking) support, such as Claude 3.7 Sonnet, this parameter determines the maximum number of tokens Claude is allowed use for its internal reasoning process. Larger budgets can improve response quality by enabling more thorough analysis for complex problems, although Claude may not use the entire budget allocated, especially at ranges above 32K. Anthropic suggests starting at the minimum and increasing the thinking budget incrementally to find the optimal range for Claude to perform well for your use case. Higher token counts may allow you to achieve more comprehensive and nuanced reasoning, but there may also be diminishing returns depending on the task. Be prepared for potentially longer response times due to the additional processing required for the reasoning process. The value must always be less than the `Maximum Tokens` specified. If the value is below `1024`, then extended thinking is disabled. This parameter is ignored if the model does not support extended thinking.
|
||||
{% endconfiguration_basic %}
|
||||
|
31
source/_integrations/apollo_automation.markdown
Normal file
31
source/_integrations/apollo_automation.markdown
Normal file
@ -0,0 +1,31 @@
|
||||
---
|
||||
title: Apollo Automation
|
||||
description: Connect and control your Apollo Automation ESPHome devices using the ESPHome integration
|
||||
ha_release: '2025.3'
|
||||
ha_iot_class: Local Push
|
||||
ha_category:
|
||||
- Sensor
|
||||
- Presence detection
|
||||
ha_domain: apollo_automation
|
||||
ha_integration_type: brand
|
||||
ha_supporting_domain: esphome
|
||||
ha_supporting_integration: ESPHome
|
||||
ha_platforms:
|
||||
- sensor
|
||||
works_with:
|
||||
- local
|
||||
---
|
||||
|
||||
[Apollo automation](https://apolloautomation.com/) is a member of the Made for ESPHome program.
|
||||
|
||||
Apollo Automation devices work locally and integrate seamlessly with the [ESPHome](/integrations/esphome/) {% term integration %} in Home Assistant. As all connectivity is done locally, status updates and device control from Home Assistant happen instantly.
|
||||
|
||||
{% include integrations/supported_brand.md %}
|
||||
|
||||
## Supported devices
|
||||
|
||||
The following devices are known to be supported by the integration. They are certified under the [Works with Home Assistant](https://partner.home-assistant.io/) program.
|
||||
|
||||
- [MTR-1 Multi-Target Radar Multisensor For Home Assistant (LD2450)](https://apolloautomation.com/products/mtr-1) - A tiny, but powerful radar-based (mmWave) presence sensor that can pack in many other sensors.
|
||||
- [MSR-2 mmWave Multisensor For Home Assistant (LD2410B)](https://apolloautomation.com/products/msr-2) - An even smaller multisensor that is the successor of the initial community feedback-driven design.
|
||||
- [AIR-1 Air Quality Sensor For Home Assistant](https://apolloautomation.com/products/air-1) - A small air quality multisensor that can be extended to incorporate a huge variety of sensors.
|
@ -14,17 +14,19 @@ ha_platforms:
|
||||
ha_integration_type: device
|
||||
---
|
||||
|
||||
AquaCell is a water-softening device. The [AquaCell](https://www.aquacell-waterontharder.nl/) {% term integration %} allows you to monitor your AquaCell device in Home Assistant.
|
||||
AquaCell is a water-softening device made by [Culligan](https://culliganinternational.com). The [AquaCell](https://www.aquacell-waterontharder.nl/) {% term integration %} allows you to monitor your AquaCell device in Home Assistant.
|
||||
You will need your Aquacell account information as used in the **AquaCell** app.
|
||||
|
||||
This integration also supports [Harvey](https://www.harveywatersofteners.co.uk/) softeners.
|
||||
This integration also supports other [Culligan brands](https://culliganinternational.com/brands) of water softener, such as [Harvey](https://www.harveywatersofteners.co.uk/) and [TwinTec](https://www.twintec.com/) (made by Harvey) softeners.
|
||||
|
||||
## Supported devices
|
||||
|
||||
This integration only works for softener models which have an **i-Lid** and are configured through the 'Mijn AquaCell' or 'My Harvey' mobile app.
|
||||
This integration only works for softener models which have an **i-Lid** and are configured through the 'Mijn AquaCell' or 'myHarvey' mobile app.
|
||||
These models are also recognizable by the required curved salt blocks.
|
||||
|
||||
- [AquaCell](https://www.aquacell-waterontharder.nl/aquacell)
|
||||
- [HarveyArc Water Softener](https://www.harveywatersofteners.co.uk/products/water-softeners/harveyarc-water-softener)
|
||||
- [TwinTec Cobalt](https://www.twintec.com/our-products/tt-cobalt/)
|
||||
|
||||
## Prerequisites
|
||||
|
||||
|
@ -43,3 +43,30 @@ target:
|
||||
entity_id: assist_satellite.my_entity
|
||||
media_id: ITEM_ID
|
||||
```
|
||||
|
||||
### Action `assist_satellite.start_conversation`
|
||||
|
||||
The {% my developer_call_service service="assist_satellite.start_conversation" %} action first announces a message or media id on the satellite and then listens for one or more voice commands. The satellite's configured [pipeline](/voice_control/voice_remote_local_assistant/) must use a supported [conversation agent](/integrations/conversation), such as [OpenAI](/integrations/openai_conversation) or [Google Generative AI](/integrations/google_generative_ai_conversation). The builtin Assist conversation agent does not support conversations yet.
|
||||
|
||||
If a message is to be announced, it will first be converted to a media id using the [text-to-speech](/integrations/tts) system of the satellite's configured [pipeline](/voice_control/voice_remote_local_assistant/).
|
||||
|
||||
The `extra_system_prompt` is passed to the [conversation agent](/integrations/conversation) of the satellite's configured [pipeline](/voice_control/voice_remote_local_assistant/). For large language models (LLMs) this will be appended to the prompt given to the model, allowing the LLM to understand the context of a response like "yes" or "no".
|
||||
|
||||
{% my developer_call_service badge service="assist_satellite.start_conversation" %}
|
||||
|
||||
Examples in YAML:
|
||||
|
||||
```yaml
|
||||
action: assist_satellite.start_conversation
|
||||
target:
|
||||
entity_id: assist_satellite.my_entity
|
||||
start_message: "You left the lights on in the living room. Turn them off?"
|
||||
extra_system_prompt: "The user has left the lights on in the living room and is being asked if they'd like to turn them off."
|
||||
```
|
||||
|
||||
```yaml
|
||||
action: assist_satellite.start_conversation
|
||||
target:
|
||||
entity_id: assist_satellite.my_entity
|
||||
start_media_id: ITEM_ID
|
||||
```
|
||||
|
47
source/_integrations/azure_storage.markdown
Normal file
47
source/_integrations/azure_storage.markdown
Normal file
@ -0,0 +1,47 @@
|
||||
---
|
||||
title: Azure Storage
|
||||
description: Instructions on how to setup Azure storage accounts to be used with backups.
|
||||
ha_release: 2025.3
|
||||
ha_category:
|
||||
- Backup
|
||||
ha_iot_class: Cloud Polling
|
||||
ha_config_flow: true
|
||||
ha_domain: azure_storage
|
||||
ha_codeowners:
|
||||
- '@zweckj'
|
||||
ha_integration_type: service
|
||||
ha_quality_scale: bronze
|
||||
---
|
||||
|
||||
This integration allows you to use [Azure storage accounts](https://learn.microsoft.com/en-us/azure/storage/common/storage-account-overview) for use with Home Assistant Backups.
|
||||
|
||||
{% include integrations/config_flow.md %}
|
||||
|
||||
{% configuration_basic %}
|
||||
Storage account name:
|
||||
description: "The name of the storage account. Only the name, nothing else."
|
||||
Container name:
|
||||
description: "Blob container name to store the backups. If the container does not exist, it will be created. Defaults to `hass-backups`."
|
||||
Storage account key:
|
||||
description: "One of the two storage account keys. Used to authenticate against the storage account"
|
||||
{% endconfiguration_basic %}
|
||||
|
||||
|
||||
## Known Limitations
|
||||
|
||||
- Only storage accounts that have a default URL `storageaccountname.blob.core.windows.net` are supported at this point
|
||||
- Since only key based authentication is possible, this has to be enabled in your storage account.
|
||||
|
||||
## Removing the integration
|
||||
|
||||
This integration follows standard integration removal. No extra steps are required.
|
||||
|
||||
{% include integrations/remove_device_service.md %}
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
{% details "Authentication failure" %}
|
||||
|
||||
Check that your storage account allows [`Shared Key` access](https://learn.microsoft.com/en-us/azure/storage/common/shared-key-authorization-prevent?tabs=portal#remediate-authorization-via-shared-key).
|
||||
|
||||
{% enddetails %}
|
@ -3,16 +3,21 @@ title: Backup
|
||||
description: Allow creating backups of container and core installations.
|
||||
ha_category:
|
||||
- Other
|
||||
- Sensor
|
||||
ha_release: 2022.4
|
||||
ha_quality_scale: internal
|
||||
ha_domain: backup
|
||||
ha_codeowners:
|
||||
- '@home-assistant/core'
|
||||
ha_iot_class: Calculated
|
||||
ha_platforms:
|
||||
- sensor
|
||||
ha_integration_type: system
|
||||
related:
|
||||
- docs: /common-tasks/general/#backups
|
||||
title: Backups
|
||||
- docs: /common-tasks/general/#defining-backup-locations
|
||||
title: Backup locations
|
||||
- docs: /getting-started/onboarding/
|
||||
title: Recover from backup during onboarding
|
||||
- docs: /more-info/backup-emergency-kit/
|
||||
@ -25,20 +30,36 @@ To learn how to create and restore a backup, refer to the backup section under [
|
||||
|
||||
## Actions
|
||||
|
||||
The **Backup** integration exposes an action that can be used to automate the backup
|
||||
The **Backup** integration exposes actions that can be used to automate the backup
|
||||
process.
|
||||
|
||||
However, it is no longer needed to create your own automation. Follow these steps to [set up an automatic backup from the UI](/common-tasks/general/#setting-up-an-automatic-backup-process).
|
||||
|
||||
### Action {% my developer_call_service service="backup.create" %}
|
||||
### Action backup.create_automatic
|
||||
|
||||
The {% my developer_call_service service="backup.create" %} action can be used
|
||||
to create a backup for your Home Assistant instance.
|
||||
The {% my developer_call_service service="backup.create_automatic" %} action can be used
|
||||
to create a backup of your Home Assistant instance, using the same settings as those used
|
||||
by [automatic backups](/common-tasks/general/#setting-up-an-automatic-backup-process).
|
||||
|
||||
This action can be called to create backups with pre-defined settings at a more flexible
|
||||
schedule than the schedule which can be configured for automatic backups.
|
||||
|
||||
The action has no additional options or parameters.
|
||||
|
||||
Example action:
|
||||
|
||||
```yaml
|
||||
action: backup.create_automatic
|
||||
```
|
||||
|
||||
### Action backup.create
|
||||
|
||||
The {% my developer_call_service service="backup.create" %} action can be used
|
||||
to create a backup of your Home Assistant instance.
|
||||
This action is only available in [core and container installations](/installation/#advanced-installation-methods).
|
||||
The action has no additional options or parameters.
|
||||
Example action:
|
||||
|
||||
```yaml
|
||||
action: backup.create
|
||||
```
|
||||
@ -62,3 +83,24 @@ automation:
|
||||
## Restoring a backup
|
||||
|
||||
To restore a backup, follow the steps described in [Restoring a backup](/common-tasks/general/#restoring-a-backup).
|
||||
|
||||
## Sensors
|
||||
|
||||
The **Backup** {% term integration %} provides several sensors.
|
||||
|
||||
### Backup Manager State
|
||||
|
||||
The current state of the backup system. Possible states are:
|
||||
|
||||
- Idle
|
||||
- Creating a backup
|
||||
- Receiving a backup
|
||||
- Restoring a backup
|
||||
|
||||
### Next scheduled automatic backup
|
||||
|
||||
The timestamp of the next scheduled automatic backup.
|
||||
|
||||
### Last successful automatic backup
|
||||
|
||||
The timestamp of the last successful automatic backup.
|
||||
|
@ -46,6 +46,10 @@ For devices that support Auto Comfort and are running firmware 3.1 or later, an
|
||||
|
||||
For devices that support Auto Comfort, a climate {% term entity %} allows adjusting the target temperature.
|
||||
|
||||
{% note %}
|
||||
**Climate and Climate Sensors Become Unavailable:** Climate and some sensors like temperature are provided by the remote, not the fan itself on certain models. When the fan loses connection to the remote, these entities may become unavailable while the fan remains available. Consult vendor documentation on how to re-establish connectivity between the fan and remote and reload the integration to restore entities availability.
|
||||
{% endnote %}
|
||||
|
||||
### Number
|
||||
|
||||
Adjusting the minimum and maximum speed for devices that support Auto Comfort is available.
|
||||
|
@ -13,14 +13,18 @@ ha_domain: balboa
|
||||
ha_platforms:
|
||||
- binary_sensor
|
||||
- climate
|
||||
- event
|
||||
- fan
|
||||
- light
|
||||
- select
|
||||
- switch
|
||||
- time
|
||||
ha_codeowners:
|
||||
- '@garbled1'
|
||||
- '@natekspencer'
|
||||
ha_config_flow: true
|
||||
ha_integration_type: integration
|
||||
ha_dhcp: true
|
||||
---
|
||||
|
||||
The **Balboa Spa Client** {% term integration %} adds support for [Balboa](https://www.balboawatergroup.com/) Spa WiFi Modules to be used within Home Assistant.
|
||||
@ -29,9 +33,12 @@ There is currently support for the following device types within Home Assistant:
|
||||
|
||||
- Binary sensor (Filter cycles and circulation pumps)
|
||||
- Climate
|
||||
- Event (Last known fault, if any)
|
||||
- Fan (Pumps/Jets)
|
||||
- Light
|
||||
- Select (Low/high temperature range)
|
||||
- Switch (Enable/disable filter cycle 2)
|
||||
- Time (Set filter cycle start/end times)
|
||||
|
||||
## Compatible hardware
|
||||
|
||||
|
@ -2,16 +2,16 @@
|
||||
title: Bang & Olufsen
|
||||
description: Instructions on how to integrate Bang & Olufsen devices into Home Assistant.
|
||||
ha_category:
|
||||
- Event
|
||||
- Media Player
|
||||
- Multimedia
|
||||
- Event
|
||||
ha_release: 2024.2
|
||||
ha_iot_class: Local Push
|
||||
ha_domain: bang_olufsen
|
||||
ha_platforms:
|
||||
- diagnostics
|
||||
- media_player
|
||||
- event
|
||||
- media_player
|
||||
ha_codeowners:
|
||||
- '@mj23000'
|
||||
ha_config_flow: true
|
||||
@ -53,7 +53,7 @@ The **Bang & Olufsen** integration uses the [Mozart API](https://bang-olufsen.gi
|
||||
|
||||
## Supported features
|
||||
|
||||
Currently, a single device with a `media_player` entity is created for each added physical device. For advanced automations, [events](#automations) are fired in Home Assistant.
|
||||
Currently, for each added physical device, a single device is created that includes a `media_player` entity and, if available, `event` entities.
|
||||
|
||||
### Media player
|
||||
|
||||
@ -71,9 +71,35 @@ A number of features are available through the media player entity:
|
||||
- Connect to, expand to or unexpand devices.
|
||||
- Set all connected Beolink devices to standby.
|
||||
|
||||
### Events
|
||||
|
||||
Event entities are created for each of the physical controls on your device. These controls usually have their own behaviors, so using them for automations is not always ideal.
|
||||
Available event entities:
|
||||
|
||||
- Bluetooth
|
||||
- Microphone
|
||||
- Next
|
||||
- Play / Pause
|
||||
- Favourite 1
|
||||
- Favourite 2
|
||||
- Favourite 3
|
||||
- Favourite 4
|
||||
- Previous
|
||||
- Volume
|
||||
|
||||
All of these event entities support the following event types:
|
||||
|
||||
- Release of short press
|
||||
- Long press
|
||||
- Release of long press
|
||||
- Very long press
|
||||
- Release of very long press
|
||||
|
||||
All devices except the [Beoconnect Core](https://www.bang-olufsen.com/en/dk/accessories/beoconnect-core) support device controls.
|
||||
|
||||
## Limitations
|
||||
|
||||
Currently, some features of the Mozart platform such as:
|
||||
Currently, some features of the Mozart platform are not available through the [public API](https://github.com/bang-olufsen/mozart-open-api). Some may become available at a later point, but until then the [Bang & Olufsen App](https://www.bang-olufsen.com/en/dk/story/apps) can be used to configure these settings and features:
|
||||
|
||||
- Creating timers and alarms
|
||||
- Retrieving detailed alarm and timer information
|
||||
@ -87,8 +113,6 @@ And more advanced app-centric features such as:
|
||||
- Adjusting specific sound settings
|
||||
- Pairing remotes
|
||||
|
||||
These features are not available through the API. Some may become available at a later point, but until then the [Bang & Olufsen App](https://www.bang-olufsen.com/en/dk/story/apps) can be used to configure these settings and features.
|
||||
|
||||
## Actions
|
||||
|
||||
### play_media actions
|
||||
@ -486,30 +510,6 @@ target:
|
||||
|
||||
WebSocket notifications received from the device are fired as events in Home Assistant. These can be received by listening to `bang_olufsen_websocket_event` event types, where `device_id` or `serial_number` can be used to differentiate devices.
|
||||
|
||||
### Events
|
||||
|
||||
Event entities are created for each of the physical controls on your device. These controls usually have their own behaviors, so using them for automations is not always ideal.
|
||||
Available event entities:
|
||||
- Bluetooth
|
||||
- Microphone
|
||||
- Next
|
||||
- Play / Pause
|
||||
- Favourite 1
|
||||
- Favourite 2
|
||||
- Favourite 3
|
||||
- Favourite 4
|
||||
- Previous
|
||||
- Volume
|
||||
|
||||
All of these event entities support the following event types:
|
||||
- Release of short press
|
||||
- Long press
|
||||
- Release of long press
|
||||
- Very long press
|
||||
- Release of very long press
|
||||
|
||||
All devices except the [Beoconnect Core](https://www.bang-olufsen.com/en/dk/accessories/beoconnect-core) support device controls.
|
||||
|
||||
### Getting Deezer URIs
|
||||
|
||||
To find Deezer playlist, album URIs, and user IDs for Deezer flows, the Deezer website has to be accessed. When navigating to an album, the URL will look something like: <https://www.deezer.com/en/album/ALBUM_ID>, and this needs to be converted to: `album:ALBUM_ID` and the same applies to playlists, which have the format: `playlist:PLAYLIST_ID`.
|
||||
|
@ -51,7 +51,7 @@ availability:
|
||||
required: true
|
||||
type: string
|
||||
value_template:
|
||||
description: "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract device's availability from the `topic`. To determine the devices's availability result of this template will be compared to `payload_available` and `payload_not_available`."
|
||||
description: "Defines a [template](/docs/configuration/templating/#using-value-templates-with-mqtt) to extract device's availability from the `topic`. To determine the devices's availability result of this template will be compared to `payload_available` and `payload_not_available`."
|
||||
required: false
|
||||
type: template
|
||||
availability_mode:
|
||||
@ -60,7 +60,7 @@ availability_mode:
|
||||
type: string
|
||||
default: latest
|
||||
availability_template:
|
||||
description: "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract device's availability from the `availability_topic`. To determine the devices's availability result of this template will be compared to `payload_available` and `payload_not_available`."
|
||||
description: "Defines a [template](/docs/configuration/templating/#using-value-templates-with-mqtt) to extract device's availability from the `availability_topic`. To determine the devices's availability result of this template will be compared to `payload_available` and `payload_not_available`."
|
||||
required: false
|
||||
type: template
|
||||
availability_topic:
|
||||
@ -156,7 +156,7 @@ icon:
|
||||
required: false
|
||||
type: icon
|
||||
json_attributes_template:
|
||||
description: "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract the JSON dictionary from messages received on the `json_attributes_topic`. Usage example can be found in [MQTT sensor](/integrations/sensor.mqtt/#json-attributes-template-configuration) documentation."
|
||||
description: "Defines a [template](/docs/configuration/templating/#using-value-templates-with-mqtt) to extract the JSON dictionary from messages received on the `json_attributes_topic`. Usage example can be found in [MQTT sensor](/integrations/sensor.mqtt/#json-attributes-template-configuration) documentation."
|
||||
required: false
|
||||
type: template
|
||||
json_attributes_topic:
|
||||
@ -214,7 +214,7 @@ unique_id:
|
||||
required: false
|
||||
type: string
|
||||
value_template:
|
||||
description: "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) that returns a string to be compared to `payload_on`/`payload_off` or an empty string, in which case the MQTT message will be removed. Remove this option when `payload_on` and `payload_off` are sufficient to match your payloads (i.e no preprocessing of original message is required)."
|
||||
description: "Defines a [template](/docs/configuration/templating/#using-value-templates-with-mqtt) that returns a string to be compared to `payload_on`/`payload_off` or an empty string, in which case the MQTT message will be removed. Remove this option when `payload_on` and `payload_off` are sufficient to match your payloads (i.e no preprocessing of original message is required)."
|
||||
required: false
|
||||
type: template
|
||||
{% endconfiguration %}
|
||||
|
@ -91,6 +91,8 @@ Some systems may not come with Bluetooth and require a USB adapter. Installing a
|
||||
|
||||
If you experience an unreliable Bluetooth connection, installing a short USB extension cable between your Bluetooth adapter and your Home Assistant server may improve reliability.
|
||||
|
||||
For development and testing, the developers of this Bluetooth integration primarily use a [Feasycom FSC-BP119](https://www.feasycom.com/datasheet/fsc-bp119.pdf) (CSR8510A10) 📶.
|
||||
|
||||
### Known working high-performance adapters
|
||||
|
||||
#### Cambridge Silicon Radio (CSR) -based adapters
|
||||
@ -134,6 +136,8 @@ These adapters may require additional patch files available at <a href="https://
|
||||
There is currently no supported method to install these patch files when using Home Assistant Operating System.
|
||||
{% endwarning %}
|
||||
|
||||
{% details "Broadcom (BCM) based adapters" %}
|
||||
|
||||
- ASUS USB-BT400 (BCM20702A0)
|
||||
- Cable Matters 604002-BLK (BCM20702A0)
|
||||
- GMYLE 3340 (BCM20702A0)
|
||||
@ -147,6 +151,8 @@ There is currently no supported method to install these patch files when using H
|
||||
- StarTech USBBT2EDR4 (BCM20702A0)
|
||||
- Targus ACB10US1 (BCM20702A0)
|
||||
|
||||
{% enddetails %}
|
||||
|
||||
📶 Denotes external antenna
|
||||
|
||||
Most of these adapters can hold seven (7) connections at the same time.
|
||||
@ -185,9 +191,11 @@ Known working adapters list adapters that do not meet high-performance requireme
|
||||
#### Realtek RTL8761BU adapters
|
||||
|
||||
{% warning %}
|
||||
These adapters do not have a reset pin. If they stop responding, there is currently no way for the kernel to reset them automatically. A generic USB reset for these adapters has been introduced in Linux kernel 6.1 and later.
|
||||
These adapters do not have a reset pin. When they stop responding, there is currently no way for the kernel to reset them automatically, and they may have to be physically unplugged and replugged to restore operation.
|
||||
{% endwarning %}
|
||||
|
||||
{% details "Realtek RTL8761BU adapters" %}
|
||||
|
||||
- ASUS USB-BT500 (RTL8761BU)
|
||||
- Avantree DG45 (RTL8761BU)
|
||||
- COMCAST CF-B03 (RTL8761BU)
|
||||
@ -206,10 +214,14 @@ These adapters do not have a reset pin. If they stop responding, there is curren
|
||||
- ZEXMTE Z01 (RTL8761BU) 📶
|
||||
- ZETSAGE BH451A (RTL8761BU) 📶
|
||||
|
||||
{% enddetails %}
|
||||
|
||||
📶 Denotes external antenna
|
||||
|
||||
### Unsupported adapters
|
||||
|
||||
{% details "Unsupported adapters" %}
|
||||
|
||||
- Alfa AWUS036EACS (RTL8821CU) - Frequent connection failures and drop outs
|
||||
- BASEUS BR8651A01 BA04 - Advertisement drops out
|
||||
- Belkin F8T003 ver 2. - Fails to setup and add successfully
|
||||
@ -229,6 +241,8 @@ These adapters do not have a reset pin. If they stop responding, there is curren
|
||||
- Multiple unbranded adapters labeled with CSR 4.0
|
||||
- 5 CORE CSR 4.0
|
||||
|
||||
{% enddetails %}
|
||||
|
||||
📶 Denotes external antenna
|
||||
|
||||
## Multiple adapters
|
||||
@ -268,8 +282,8 @@ The following remote adapters are supported:
|
||||
- Single active connection: ESPHome ESP32 device with firmware 2022.9.3 or later
|
||||
- Multiple active connections: ESPHome ESP32 device with firmware 2022.11.0 or later
|
||||
- [Shelly](/integrations/shelly/)
|
||||
- Bluetooth advertisement listening: Shelly v2 device with firmware 12.0 or later
|
||||
- Bluetooth advertisement bundling: Shelly v2 device with firmware 12.0 or later
|
||||
- Bluetooth advertisement listening: Shelly Gen2+ device
|
||||
- Bluetooth advertisement bundling: Shelly Gen2+ device
|
||||
- Single active connection: not supported
|
||||
- Multiple active connections: not supported
|
||||
|
||||
@ -279,7 +293,13 @@ Bluetooth advertisement bundling reduces traffic between Home Assistant and the
|
||||
|
||||
### Improving connection times
|
||||
|
||||
The connection time and performance vary greatly based on the Bluetooth adapter and interference. The below adapters are listed from best-performing to worst-performing:
|
||||
Connection time and performance vary greatly depending on the Bluetooth adapter and interference.
|
||||
|
||||
{% warning %}
|
||||
When switching to an adapter with better performance, disable the old, less performant adapters. The best signal and available connection slots are considered when making connections, and performance will be limited to the worst-performing adapter with the best signal to reach the remote device.
|
||||
{% endwarning %}
|
||||
|
||||
The below adapters are listed from best-performing to worst-performing:
|
||||
|
||||
- [Ethernet-connected Bluetooth proxies](#remote-adapters-bluetooth-proxies) running ESPHome 2023.6.0 or later with [passive scanning](https://esphome.io/components/esp32_ble_tracker.html#configuration-variables)
|
||||
- [USB High performance adapter](#known-working-high-performance-adapters) with [passive scanning](#passive-scanning)
|
||||
|
@ -24,11 +24,6 @@ ha_supporting_integration: Overkiz
|
||||
ha_release: 2022.2
|
||||
ha_codeowners:
|
||||
- '@imicknl'
|
||||
- '@vlebourl'
|
||||
- '@tetienne'
|
||||
- '@nyroDev'
|
||||
- '@tronix117'
|
||||
- '@alexfp14'
|
||||
ha_config_flow: true
|
||||
ha_platforms:
|
||||
- alarm_control_panel
|
||||
|
@ -13,6 +13,7 @@ ha_domain: bring
|
||||
ha_integration_type: service
|
||||
ha_platforms:
|
||||
- diagnostics
|
||||
- event
|
||||
- sensor
|
||||
- todo
|
||||
related:
|
||||
@ -24,44 +25,97 @@ related:
|
||||
title: To-do list card
|
||||
- url: https://www.getbring.com/
|
||||
title: Bring!
|
||||
ha_quality_scale: platinum
|
||||
---
|
||||
|
||||
The **Bring!** integration allows you to interact with your [Bring!](https://www.getbring.com/) shopping lists within Home Assistant.
|
||||
The **Bring!** integration allows you to sync your [Bring!](https://www.getbring.com/) shopping lists with Home Assistant.
|
||||
|
||||
For authentication, the integration requires the `email` and `password` you used for your Bring! account. If you want to automatically receive notifications via the Bring! app when Home Assistant adds or removes an item from the list, you should use a dedicated account (such as `email: your.name+ha@gmail.com`) to connect Home Assistant with [Bring!](https://www.getbring.com/).
|
||||
## About Bring!
|
||||
|
||||
**Bring!** is a grocery shopping list app that allows users to create shared lists and organize grocery shopping with family, partners, or roommates.
|
||||
|
||||
Available as a mobile app on [Google Play for Android](https://play.google.com/store/apps/details?id=ch.publisheria.bring) and the [App Store for iOS](https://itunes.apple.com/app/apple-store/id580669177). **Bring!** also offers a web version at [web.getbring.com](https://web.getbring.com).
|
||||
|
||||
## How you can use this integration
|
||||
|
||||
- **Automated notifications**: Receive alerts on your phone when essential items are added to your list or when the quantity of items reaches a set value.
|
||||
- **List updates based on events**: Automatically add items to your shopping list when appliances are low on supplies, like dishwasher salt, or need routine maintenance, such as tub cleaner for the washer.
|
||||
- **Voice control**: Use voice assistants connected to Home Assistant to add items to your **Bring!** list.
|
||||
- **Geofencing**: Receive reminders when you are near a specific store and need to pick up items, based on your location.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
For authentication, the integration requires the `email` and `password` of your **Bring!** account. If you don’t have an account, you can sign up via the mobile app or the web version.
|
||||
|
||||
If you signed up using **Apple ID**, **Google Sign-in**, or **Facebook Login**, you will need to create a password to use the integration.
|
||||
|
||||
- On mobile: Open the Bring! app and go to **Profile** > **More settings** > **Change password**.
|
||||
- On the web: Visit **Settings** > **Reset password** or go directly to [Reset Password](https://web.getbring.com/app/settings/resetpassword).
|
||||
|
||||
You can still log in with your existing authentication method afterward.
|
||||
|
||||
{% include integrations/config_flow.md %}
|
||||
|
||||
### Configuration parameters
|
||||
|
||||
{% configuration_basic %}
|
||||
Email:
|
||||
description: "The email address associated with your Bring! account."
|
||||
Password:
|
||||
description: "The password to log in to your Bring! account."
|
||||
{% endconfiguration_basic %}
|
||||
|
||||
## Sensors
|
||||
|
||||
- **Urgent:** Shows the number of items tagged with the **Urgent** badge on the shopping list. Completed items are excluded.
|
||||
- **On occasion:** Displays the count of items marked with the **If convenient** badge.
|
||||
- **Discount only:** Indicates the number of items tagged with the **Offer** badge.
|
||||
- **Region & Language:** The sensor can be used for diagnostics. If everything is set correctly, it will display the selected region for the shopping list. If it shows **Unknown**, the region has not been set properly in the **Bring!** app.
|
||||
- **Urgent**: Shows the number of items tagged with the **Urgent** badge on the shopping list. Completed items are excluded.
|
||||
- **On occasion**: Displays the count of items marked with the **If convenient** badge.
|
||||
- **Discount only**: Indicates the number of items tagged with the **Offer** badge.
|
||||
- **Region & Language**: The sensor can be used for diagnostics. If everything is set correctly, it will display the selected region for the shopping list. If it shows **Unknown**, the region has not been set properly in the **Bring!** app.
|
||||
- **List access**: Indicates whether the shopping list is **personal** (private) or **shared** (accessible to others).
|
||||
|
||||
## Events
|
||||
|
||||
- **Activities:** The event entity displays the most recent activity on a Bring! shopping list, including the activity type and the profile picture of the user who performed it. There are three types of activities: *Items added* (when a user adds items to the list), *Items removed* (when a user removes items), and *Items changed* (when a user modifies item details or quantity). The event attributes provide additional details, including the list of added, removed, or modified items, the user's name, and the exact time of the activity.
|
||||
|
||||
## Actions
|
||||
|
||||
You can use the actions from the [to-do list](/integrations/todo/) to create, update, or delete items on your Bring! shopping lists.
|
||||
|
||||
### Notifications
|
||||
|
||||
The **Bring** integration offers an action to send push notifications to the Bring! mobile apps of other members of a shared shopping list. The Bring! mobile app has 4 predefined notification types. Note: If you want to receive these notifications yourself, you need to use a dedicated account as mentioned above.
|
||||
The **Bring!** integration offers an action to send push notifications to the Bring! mobile apps of other members of a shared shopping list. The Bring! mobile app has 4 predefined notification types.
|
||||
|
||||
| Data attribute | Optional | Description |
|
||||
| ---------------------- | -------- | -------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `target` | no | Target Bring! list(s) whose members should be notified. |
|
||||
| `message` | no | Type of push notification to send to list members. See [Notification types](#available-notification-types). |
|
||||
| `item` | yes | **Required for `urgent_message`.** Article name to include in the message. For example: *Urgent Message - Please buy cilantro urgently*. |
|
||||
{% note %}
|
||||
|
||||
If you want to receive these notifications, you must use a dedicated account, as outlined in the [known limitations](#known-limitations).
|
||||
|
||||
{% endnote %}
|
||||
|
||||
| Data attribute | Optional | Description |
|
||||
| ---------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `target` | no | Target Bring! list(s) whose members should be notified. |
|
||||
| `message` | no | Type of push notification to send to list members. See [Notification types](#available-notification-types). |
|
||||
| `item` | yes | Required for `urgent_message`. Item to include in the message. For example: *Attention! Attention! - We still urgently need: Cilantro*. |
|
||||
|
||||
### Available notification types
|
||||
|
||||
| Notification type | Text of notification |
|
||||
| ----------------- | --------------------------------------------------- |
|
||||
| going_shopping | I'm going shopping! - Last chance to make changes |
|
||||
| changed_list | List updated - Take a look at the articles |
|
||||
| shopping_done | Shopping done - The fridge is well stocked |
|
||||
| urgent_message | Urgent Message - Please buy `Article name` urgently |
|
||||
| Notification type | Name of notification |
|
||||
| ------------------- | -------------------------------------------------------------- |
|
||||
| `going_shopping` | I'm going shopping! - Last chance for adjustments |
|
||||
| `changed_list` | I changed the list! - Take a look at the items |
|
||||
| `shopping_done` | The shopping is done! - The fridge is well stocked |
|
||||
| `urgent_message` | Attention! Attention! - We still urgently need: `[Items]` |
|
||||
|
||||
{% note %}
|
||||
|
||||
The notification that list members receive differs from the label shown in the Bring! app. This variation depends not only on the recipient’s language settings but also on the sender's profile name. Additionally, notifications may change with new app updates. Here are some example notifications:
|
||||
|
||||
- `name` is going shopping for "`shopping list name`"! Last chance to make changes
|
||||
- `name` went shopping for "`shopping list name`"! The fridge is well stocked
|
||||
- `name` updated the list "`shopping list name`"! Take a look at the articles
|
||||
- Attention, something's missing! Please buy `item` urgently
|
||||
|
||||
{% endnote %}
|
||||
|
||||
### Sending a going shopping notification
|
||||
|
||||
@ -89,3 +143,83 @@ actions:
|
||||
message: urgent_message
|
||||
item: Cilantro
|
||||
```
|
||||
|
||||
## Automations
|
||||
|
||||
Get started with these automation examples for **Bring!**, each featuring ready-to-use blueprints!
|
||||
|
||||
### Grocery shopping reminder 🛒
|
||||
|
||||
Get notified when it's time to go grocery shopping. A notification is sent when your shopping list reaches a set threshold or when urgent items are added.
|
||||
|
||||
{% my blueprint_import badge blueprint_url="https://community.home-assistant.io/t/bring-grocery-shopping-reminder/843123" %}
|
||||
|
||||
{% details "Example YAML configuration" %}
|
||||
|
||||
{% raw %}
|
||||
|
||||
```yaml
|
||||
triggers:
|
||||
- trigger: numeric_state
|
||||
entity_id: todo.shopping_list
|
||||
above: 10
|
||||
id: shopping list too long
|
||||
- trigger: numeric_state
|
||||
entity_id: sensor.shopping_list_urgent
|
||||
above: 0
|
||||
id: shopping is urgent
|
||||
actions:
|
||||
- choose:
|
||||
- conditions:
|
||||
- condition: trigger
|
||||
id: shopping list too long
|
||||
sequence:
|
||||
- action:
|
||||
- action: notify.notify
|
||||
data:
|
||||
message: >-
|
||||
The list is getting long, plan a trip to the grocery shop in
|
||||
the next days
|
||||
title: Shopping needed soon 🛒
|
||||
- conditions:
|
||||
- condition: trigger
|
||||
id: shopping is urgent
|
||||
sequence:
|
||||
- action:
|
||||
- action: notify.notify
|
||||
data:
|
||||
title: 🚨 Time to go shopping! 🛒
|
||||
message: Urgent groceries needed! Grab your shopping bag and go!
|
||||
- delay:
|
||||
hours: 1
|
||||
mode: single
|
||||
alias: "Bring!: Grocery shopping reminder 🛒"
|
||||
description: "Get notified when it's time to go grocery shopping. A notification is sent when your shopping list reaches a set threshold or when urgent items are added."
|
||||
```
|
||||
|
||||
{% endraw %}
|
||||
|
||||
{% enddetails %}
|
||||
|
||||
## Data updates
|
||||
|
||||
This integration syncs your lists by {% term polling %} the **Bring!** service every 90 seconds or immediately after an action is performed in Home Assistant, such as adding an item. If you prefer a less frequent update, **custom polling interval** can also be defined — see [Defining a custom polling interval](/common-tasks/general/#defining-a-custom-polling-interval) for details.
|
||||
|
||||
## Known limitations
|
||||
|
||||
- Changes made in Home Assistant are reflected instantly in the **Bring!** app, while changes in the Bring! app may be delayed by up to 90 seconds due to the polling interval.
|
||||
- To receive push notifications in the **Bring!** app when items are added or removed in Home Assistant, or when triggered by the `bring.send_message` action, it is recommended to use a dedicated account (such as `email:name+ha@example.com`) when setting up the integration.
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
The **Bring!** integration relies on an active internet connection to communicate with Bring!. If you encounter issues, verify that your network connection is stable. Additionally, the Bring! service itself may experience downtime, whether unexpected or due to scheduled maintenance.
|
||||
|
||||
- A **502 - Bad Gateway** error (`aiohttp.client_exceptions.ClientResponseError: 502, message='Bad Gateway'`) is known to occur occasionally (1–2 times per day) but is usually temporary. The integration will retry automatically after 90 seconds, so there’s no need to take action.
|
||||
|
||||
In any case, when reporting an issue, please enable [debug logging](/docs/configuration/troubleshooting/#debug-logs-and-diagnostics), restart the integration, and as soon as the issue reoccurs, stop the debug logging again (*download of debug log file will start automatically*). Further, if still possible, please also download the [diagnostics](/integrations/diagnostics) data. If you have collected the debug log and the diagnostics data, provide them with the issue report.
|
||||
|
||||
## Remove integration
|
||||
|
||||
This integration can be removed by following these steps:
|
||||
|
||||
{% include integrations/remove_device_service.md %}
|
||||
|
@ -20,6 +20,8 @@ ha_quality_scale: legacy
|
||||
This platform offers presence detection by looking at connected devices to a [BT Smart Hub](https://en.wikipedia.org/wiki/BT_Smart_Hub) based router.
|
||||
This router is sometimes referred to as the BT Home Hub 6.
|
||||
|
||||
It has been reported that the Plusnet Hub Two also works with this integration.
|
||||
|
||||
## Configuration
|
||||
|
||||
To use a BT Smart Hub router in your installation, add the following to your {% term "`configuration.yaml`" %} file.
|
||||
|
@ -3,6 +3,7 @@ title: BTicino
|
||||
description: Connect and control your BTicino devices using the Netatmo integration
|
||||
ha_category:
|
||||
- Binary sensor
|
||||
- Button
|
||||
- Camera
|
||||
- Climate
|
||||
- Cover
|
||||
@ -24,6 +25,7 @@ ha_codeowners:
|
||||
ha_config_flow: true
|
||||
ha_platforms:
|
||||
- binary_sensor
|
||||
- button
|
||||
- camera
|
||||
- climate
|
||||
- cover
|
||||
|
@ -3,6 +3,7 @@ title: Bubendorff
|
||||
description: Connect and control your Bubendorff devices using the Netatmo integration
|
||||
ha_category:
|
||||
- Binary sensor
|
||||
- Button
|
||||
- Camera
|
||||
- Climate
|
||||
- Cover
|
||||
@ -24,6 +25,7 @@ ha_codeowners:
|
||||
ha_config_flow: true
|
||||
ha_platforms:
|
||||
- binary_sensor
|
||||
- button
|
||||
- camera
|
||||
- climate
|
||||
- cover
|
||||
|
20
source/_integrations/burbank_water_and_power.markdown
Normal file
20
source/_integrations/burbank_water_and_power.markdown
Normal file
@ -0,0 +1,20 @@
|
||||
---
|
||||
title: Burbank Water and Power (BWP)
|
||||
description: Get energy usage from Burbank Water and Power (BWP) using the Opower integration
|
||||
ha_category:
|
||||
- Energy
|
||||
- Sensor
|
||||
ha_release: 2023.8
|
||||
ha_domain: burbank_water_and_power
|
||||
ha_integration_type: virtual
|
||||
ha_supporting_domain: opower
|
||||
ha_supporting_integration: Opower
|
||||
ha_codeowners:
|
||||
- '@tronikos'
|
||||
ha_config_flow: true
|
||||
ha_platforms:
|
||||
- sensor
|
||||
ha_iot_class: Cloud Polling
|
||||
---
|
||||
|
||||
{% include integrations/supported_brand.md %}
|
@ -40,7 +40,7 @@ availability:
|
||||
required: true
|
||||
type: string
|
||||
value_template:
|
||||
description: "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract device's availability from the `topic`. To determine the devices's availability result of this template will be compared to `payload_available` and `payload_not_available`."
|
||||
description: "Defines a [template](/docs/configuration/templating/#using-value-templates-with-mqtt) to extract device's availability from the `topic`. To determine the devices's availability result of this template will be compared to `payload_available` and `payload_not_available`."
|
||||
required: false
|
||||
type: template
|
||||
availability_mode:
|
||||
@ -49,7 +49,7 @@ availability_mode:
|
||||
type: string
|
||||
default: latest
|
||||
availability_template:
|
||||
description: "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract device's availability from the `availability_topic`. To determine the devices's availability result of this template will be compared to `payload_available` and `payload_not_available`."
|
||||
description: "Defines a [template](/docs/configuration/templating/#using-value-templates-with-mqtt) to extract device's availability from the `availability_topic`. To determine the devices's availability result of this template will be compared to `payload_available` and `payload_not_available`."
|
||||
required: false
|
||||
type: template
|
||||
availability_topic:
|
||||
@ -57,7 +57,7 @@ availability_topic:
|
||||
required: false
|
||||
type: string
|
||||
command_template:
|
||||
description: Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to generate the payload to send to `command_topic`.
|
||||
description: Defines a [template](/docs/configuration/templating/#using-command-templates-with-mqtt) to generate the payload to send to `command_topic`.
|
||||
required: false
|
||||
type: template
|
||||
command_topic:
|
||||
@ -144,7 +144,7 @@ icon:
|
||||
required: false
|
||||
type: icon
|
||||
json_attributes_template:
|
||||
description: "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract the JSON dictionary from messages received on the `json_attributes_topic`. Usage example can be found in [MQTT sensor](/integrations/sensor.mqtt/#json-attributes-template-configuration) documentation."
|
||||
description: "Defines a [template](/docs/configuration/templating/#using-value-templates-with-mqtt) to extract the JSON dictionary from messages received on the `json_attributes_topic`. Usage example can be found in [MQTT sensor](/integrations/sensor.mqtt/#json-attributes-template-configuration) documentation."
|
||||
required: false
|
||||
type: template
|
||||
json_attributes_topic:
|
||||
|
@ -17,6 +17,7 @@ ha_codeowners:
|
||||
ha_config_flow: true
|
||||
ha_integration_type: device
|
||||
ha_zeroconf: true
|
||||
ha_quality_scale: platinum
|
||||
---
|
||||
|
||||
The **Cambridge Audio** {% term integration %} allows you to control all receivers and streamers that support the [StreamMagic](https://www.cambridgeaudio.com/usa/en/products/streammagic) app.
|
||||
|
@ -104,12 +104,12 @@ For example, the following action in an automation would take a recording from "
|
||||
```yaml
|
||||
actions:
|
||||
- variables:
|
||||
entity_id: camera.yourcamera # Store the camera entity_id in a variable for reuse
|
||||
my_camera_id: camera.yourcamera # Store the camera entity_id in a variable for reuse
|
||||
- action: camera.record
|
||||
target:
|
||||
entity_id: '{{ entity_id }}'
|
||||
entity_id: '{{ my_camera_id }}'
|
||||
data:
|
||||
filename: '/tmp/{{ entity_id }}_{{ now().strftime("%Y%m%d-%H%M%S") }}.mp4'
|
||||
filename: '/tmp/{{ my_camera_id }}_{{ now().strftime("%Y%m%d-%H%M%S") }}.mp4'
|
||||
```
|
||||
|
||||
{% endraw %}
|
||||
@ -132,12 +132,12 @@ For example, the following action in an automation would take a snapshot from "y
|
||||
```yaml
|
||||
actions:
|
||||
- variables:
|
||||
entity_id: camera.yourcamera # Store the camera entity_id in a variable for reuse
|
||||
my_camera_id: camera.yourcamera # Store the camera entity_id in a variable for reuse
|
||||
- action: camera.snapshot
|
||||
target:
|
||||
entity_id: '{{ entity_id }}'
|
||||
entity_id: '{{ my_camera_id }}'
|
||||
data:
|
||||
filename: '/tmp/{{ entity_id }}_{{ now().strftime("%Y%m%d-%H%M%S") }}.jpg'
|
||||
filename: '/tmp/{{ my_camera_id }}_{{ now().strftime("%Y%m%d-%H%M%S") }}.jpg'
|
||||
```
|
||||
|
||||
{% endraw %}
|
||||
|
@ -50,7 +50,7 @@ availability:
|
||||
required: true
|
||||
type: string
|
||||
value_template:
|
||||
description: "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract device's availability from the `topic`. To determine the devices's availability result of this template will be compared to `payload_available` and `payload_not_available`."
|
||||
description: "Defines a [template](/docs/configuration/templating/#using-value-templates-with-mqtt) to extract device's availability from the `topic`. To determine the devices's availability result of this template will be compared to `payload_available` and `payload_not_available`."
|
||||
required: false
|
||||
type: template
|
||||
availability_mode:
|
||||
@ -59,7 +59,7 @@ availability_mode:
|
||||
type: string
|
||||
default: latest
|
||||
availability_template:
|
||||
description: "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract device's availability from the `availability_topic`. To determine the devices's availability result of this template will be compared to `payload_available` and `payload_not_available`."
|
||||
description: "Defines a [template](/docs/configuration/templating/#using-value-templates-with-mqtt) to extract device's availability from the `availability_topic`. To determine the devices's availability result of this template will be compared to `payload_available` and `payload_not_available`."
|
||||
required: false
|
||||
type: template
|
||||
availability_topic:
|
||||
@ -146,7 +146,7 @@ image_encoding:
|
||||
required: false
|
||||
type: string
|
||||
json_attributes_template:
|
||||
description: "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract the JSON dictionary from messages received on the `json_attributes_topic`."
|
||||
description: "Defines a [template](/docs/configuration/templating/#using-value-templates-with-mqtt) to extract the JSON dictionary from messages received on the `json_attributes_topic`."
|
||||
required: false
|
||||
type: template
|
||||
json_attributes_topic:
|
||||
|
@ -54,9 +54,11 @@ Home Assistant Cast requires your Home Assistant installation to be accessible v
|
||||
|
||||
{% note %}
|
||||
|
||||
Chromecasts generally ignore DNS servers from DHCP and will instead use Google's DNS servers, 8.8.8.8 and 8.8.4.4. This means media URLs must either be specifying the IP-address of the server directly, e.g. `http://192.168.1.1:8123/movie.mp4`, or be publicly resolvable, e.g. `http://homeassistant.internal.mydomain.com:8123/movie.mp4` where `homeassistant.internal.mydomain.com` resolves to `192.168.1.1`. A hostname which can't be publicly resolved, e.g. `http://homeassistant.local:8123/movie.mp4` will fail to play.
|
||||
Chromecasts generally don't resolve hosts through mDNS and also ignore DNS servers from DHCP, they instead use Google's public DNS servers, 8.8.8.8 and 8.8.4.4.
|
||||
|
||||
This is important when casting TTS or local media sources; the cast integration will cast such media from the `external_url` if [configured](/integrations/homeassistant/#editing-the-general-settings-in-yaml), otherwise from the Home Assistant Cloud if configured, otherwise from the [`internal_url`](/integrations/homeassistant/#editing-the-general-settings-in-yaml). Note that the Home Assistant Cloud will not be used if an `external_url` is configured.
|
||||
This means media URLs must either be specifying the IP-address of the server directly, e.g. `http://192.168.1.1:8123/movie.mp4`, or be publicly resolvable, e.g. `http://homeassistant.internal.mydomain.com:8123/movie.mp4` where `homeassistant.internal.mydomain.com` resolves to `192.168.1.1` using Google's DNS servers. A hostname which can't be publicly resolved, e.g. `http://homeassistant.local:8123/movie.mp4` will fail to play.
|
||||
|
||||
This is important when casting TTS or local media sources; the cast integration will cast such media from the local Home Assistant URL, which can be configured by navigating to **{% my network title="Settings > System > Network" %}** or by configuring an [`internal_url`](/integrations/homeassistant/#editing-the-general-settings-in-yaml).
|
||||
|
||||
{% endnote %}
|
||||
|
||||
|
@ -54,7 +54,7 @@ availability:
|
||||
required: true
|
||||
type: string
|
||||
value_template:
|
||||
description: "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract device's availability from the `topic`. To determine the devices's availability result of this template will be compared to `payload_available` and `payload_not_available`."
|
||||
description: "Defines a [template](/docs/configuration/templating/#using-value-templates-with-mqtt) to extract device's availability from the `topic`. To determine the devices's availability result of this template will be compared to `payload_available` and `payload_not_available`."
|
||||
required: false
|
||||
type: template
|
||||
availability_mode:
|
||||
@ -63,7 +63,7 @@ availability_mode:
|
||||
type: string
|
||||
default: latest
|
||||
availability_template:
|
||||
description: "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract device's availability from the `availability_topic`. To determine the devices's availability result of this template will be compared to `payload_available` and `payload_not_available`."
|
||||
description: "Defines a [template](/docs/configuration/templating/#using-value-templates-with-mqtt) to extract device's availability from the `availability_topic`. To determine the devices's availability result of this template will be compared to `payload_available` and `payload_not_available`."
|
||||
required: false
|
||||
type: template
|
||||
availability_topic:
|
||||
@ -187,7 +187,7 @@ icon:
|
||||
required: false
|
||||
type: icon
|
||||
json_attributes_template:
|
||||
description: "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract the JSON dictionary from messages received on the `json_attributes_topic`. Usage example can be found in [MQTT sensor](/integrations/sensor.mqtt/#json-attributes-template-configuration) documentation."
|
||||
description: "Defines a [template](/docs/configuration/templating/#using-value-templates-with-mqtt) to extract the JSON dictionary from messages received on the `json_attributes_topic`. Usage example can be found in [MQTT sensor](/integrations/sensor.mqtt/#json-attributes-template-configuration) documentation."
|
||||
required: false
|
||||
type: template
|
||||
json_attributes_topic:
|
||||
@ -281,7 +281,7 @@ precision:
|
||||
type: float
|
||||
default: 0.1 for Celsius and 1.0 for Fahrenheit.
|
||||
preset_mode_command_template:
|
||||
description: Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to generate the payload to send to `preset_mode_command_topic`.
|
||||
description: Defines a [template](/docs/configuration/templating/#using-command-templates-with-mqtt) to generate the payload to send to `preset_mode_command_topic`.
|
||||
required: false
|
||||
type: template
|
||||
preset_mode_command_topic:
|
||||
@ -293,7 +293,7 @@ preset_mode_state_topic:
|
||||
required: false
|
||||
type: string
|
||||
preset_mode_value_template:
|
||||
description: Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract the `preset_mode` value from the payload received on `preset_mode_state_topic`.
|
||||
description: Defines a [template](/docs/configuration/templating/#using-value-templates-with-mqtt) to extract the `preset_mode` value from the payload received on `preset_mode_state_topic`.
|
||||
required: false
|
||||
type: template
|
||||
preset_modes:
|
||||
@ -311,6 +311,27 @@ retain:
|
||||
required: false
|
||||
type: boolean
|
||||
default: false
|
||||
swing_horizontal_mode_command_template:
|
||||
description: A template to render the value sent to the `swing_horizontal_mode_command_topic` with.
|
||||
required: false
|
||||
type: template
|
||||
swing_horizontal_mode_command_topic:
|
||||
description: The MQTT topic to publish commands to change the swing horizontal mode.
|
||||
required: false
|
||||
type: string
|
||||
swing_horizontal_mode_state_template:
|
||||
description: A template to render the value received on the `swing_horizontal_mode_state_topic` with.
|
||||
required: false
|
||||
type: template
|
||||
swing_horizontal_mode_state_topic:
|
||||
description: The MQTT topic to subscribe for changes of the HVAC swing horizontal mode. If this is not set, the swing horizontal mode works in optimistic mode (see below).
|
||||
required: false
|
||||
type: string
|
||||
swing_horizontal_modes:
|
||||
description: A list of supported swing horizontal modes.
|
||||
required: false
|
||||
default: ['on', 'off']
|
||||
type: list
|
||||
swing_mode_command_template:
|
||||
description: A template to render the value sent to the `swing_mode_command_topic` with.
|
||||
required: false
|
||||
@ -333,7 +354,7 @@ swing_modes:
|
||||
default: ['on', 'off']
|
||||
type: list
|
||||
target_humidity_command_template:
|
||||
description: Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to generate the payload to send to `target_humidity_command_topic`.
|
||||
description: Defines a [template](/docs/configuration/templating/#using-command-templates-with-mqtt) to generate the payload to send to `target_humidity_command_topic`.
|
||||
required: false
|
||||
type: template
|
||||
target_humidity_command_topic:
|
||||
@ -345,7 +366,7 @@ target_humidity_state_topic:
|
||||
required: false
|
||||
type: string
|
||||
target_humidity_state_template:
|
||||
description: Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract a value for the climate `target_humidity` state.
|
||||
description: Defines a [template](/docs/configuration/templating/#using-value-templates-with-mqtt) to extract a value for the climate `target_humidity` state.
|
||||
required: false
|
||||
type: template
|
||||
temperature_command_template:
|
||||
@ -461,6 +482,9 @@ mqtt:
|
||||
- "off"
|
||||
- "cool"
|
||||
- "fan_only"
|
||||
swing_horizontal_modes:
|
||||
- "on"
|
||||
- "off"
|
||||
swing_modes:
|
||||
- "on"
|
||||
- "off"
|
||||
@ -478,6 +502,7 @@ mqtt:
|
||||
mode_command_template: "{{ value if value=="off" else "on" }}"
|
||||
temperature_command_topic: "study/ac/temperature/set"
|
||||
fan_mode_command_topic: "study/ac/fan/set"
|
||||
swing_horizontal_mode_command_topic: "study/ac/swingH/set"
|
||||
swing_mode_command_topic: "study/ac/swing/set"
|
||||
precision: 1.0
|
||||
```
|
||||
|
@ -3,6 +3,8 @@ title: Home Assistant Cloud
|
||||
description: Enable the Home Assistant Cloud integration.
|
||||
ha_release: '0.60'
|
||||
ha_category:
|
||||
- Backup
|
||||
- Speech-to-text
|
||||
- Text-to-speech
|
||||
- Voice
|
||||
ha_iot_class: Cloud Push
|
||||
@ -16,7 +18,7 @@ ha_platforms:
|
||||
ha_integration_type: system
|
||||
---
|
||||
|
||||
The Home Assistant Cloud allows you to quickly integrate your local Home Assistant with various cloud services like Amazon Alexa and Google Assistant. [Learn more.](/cloud)
|
||||
The Home Assistant Cloud allows you to quickly integrate your local Home Assistant with various cloud services like Amazon Alexa and Google Assistant. It also enables a secure remote connection, speech-to-text, text-to-speech, an offsite backup location, Webhooks support, and better WebRTC. [Learn more.](/cloud)
|
||||
|
||||
## Configuration
|
||||
|
||||
@ -29,7 +31,7 @@ cloud:
|
||||
|
||||
Documentation of further configuration possibilities are located at [NabuCasa](https://www.nabucasa.com/config/)
|
||||
|
||||
Once activated, go to the configuration panel in Home Assistant and create an account and log in. If you are not seeing the **Settings** panel, make sure you have the following option enabled in your {% term "`configuration.yaml`" %} file.
|
||||
Once activated, go to the configuration panel in Home Assistant, create an account, and log in. If you are not seeing the **Settings** panel, make sure you have the following option enabled in your {% term "`configuration.yaml`" %} file.
|
||||
|
||||
```yaml
|
||||
config:
|
||||
|
@ -28,7 +28,9 @@ ha_platforms:
|
||||
ha_integration_type: hub
|
||||
---
|
||||
|
||||
The Comelit SimpleHome integration allows you to control your [Comelit home automation devices](https://comelitgroup.it/installatore/offerta/domotica-e-smart-home).
|
||||
The **Comelit SimpleHome** {% term integration %} allows you to control your [Comelit home automation devices](https://comelitgroup.it/installatore/offerta/home-building-automation/).
|
||||
|
||||
## Supported devices
|
||||
|
||||
There is support for the following platform types within Home Assistant:
|
||||
|
||||
@ -37,6 +39,36 @@ There is support for the following platform types within Home Assistant:
|
||||
|
||||
{% include integrations/config_flow.md %}
|
||||
|
||||
## Alarm control panel
|
||||
{% configuration_basic %}
|
||||
host:
|
||||
description: The IP address of the Comelit SmartHome device.
|
||||
port:
|
||||
description: The TCP port of the Comelit SmartHome device. The default is port 80 (standard for HTTP).
|
||||
pin:
|
||||
description: The PIN of the Comelit SmartHome device.
|
||||
type:
|
||||
description: The type of Comelit SmartHome device.
|
||||
keys:
|
||||
bridge:
|
||||
description: Comelit Serial Bridge.
|
||||
vedo:
|
||||
description: Comelit VEDO System.
|
||||
{% endconfiguration_basic %}
|
||||
|
||||
## Data updates
|
||||
|
||||
This integration {% term polling polls %} data from the device every 5 seconds by default.
|
||||
|
||||
## Supported functionality
|
||||
|
||||
The **Comelit SimpleHome** {% term integration %} provides the following entities:
|
||||
|
||||
### Alarm control panel
|
||||
|
||||
The integration will create an alarm entity for each area. Additionally, it will create a sensor and a presence detection binary sensor for each zone, enhancing monitoring capabilities.
|
||||
|
||||
## Removing the integration
|
||||
|
||||
This integration follows standard integration removal. No extra steps are required.
|
||||
|
||||
{% include integrations/remove_device_service.md %}
|
||||
|
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