Merge branch 'current' into next

This commit is contained in:
Franck Nijhof 2024-01-04 11:43:18 +01:00
commit 3b081e3558
No known key found for this signature in database
GPG Key ID: D62583BA8AB11CA3
80 changed files with 2387 additions and 120 deletions

View File

@ -3,6 +3,7 @@ FROM mcr.microsoft.com/vscode/devcontainers/ruby:${VARIANT}
ARG NODE_VERSION="lts/*"
RUN su vscode -c "source /usr/local/share/nvm/nvm.sh && nvm install ${NODE_VERSION} 2>&1"
RUN su vscode -c "/usr/local/rvm/bin/rvm fix-permissions"
# Locale env vars
ENV \
@ -17,7 +18,3 @@ RUN \
ack \
&& echo "en_US UTF-8" > /etc/locale.gen \
&& locale-gen en_US.UTF-8
# Install the specific version of bundler we need
COPY Gemfile.lock ./
RUN gem install bundler -v `awk 'c&&c--;/BUNDLED WITH/{c=1}' Gemfile.lock`

View File

@ -1,16 +1,19 @@
{
"name": "home-assistant.io",
"build": {
"dockerfile": "../Dockerfile",
"dockerfile": "./Dockerfile",
"context": "..",
"args": {
"VARIANT": "2.7",
"NODE_VERSION": "18"
"VARIANT": "3.1",
"NODE_VERSION": "20"
}
},
"appPort": [4000],
"onCreateCommand": "bundle install && npm install",
"containerEnv": { "DEVCONTAINER": "true" },
"containerEnv": {
"DEVCONTAINER": "true",
"BUNDLE_PATH": "vendor/bundle"
},
"customizations": {
"vscode": {
"extensions": [

View File

@ -12,7 +12,7 @@ jobs:
- name: Setting up Node.js
uses: actions/setup-node@v4.0.1
with:
node-version: 16.x
node-version: 20
cache: "npm"
- name: Install dependencies
run: npm install
@ -29,7 +29,7 @@ jobs:
- name: Setting up Node.js
uses: actions/setup-node@v4.0.1
with:
node-version: 16.x
node-version: 20
cache: "npm"
- name: Install dependencies
run: npm install

View File

@ -1 +1 @@
2.7.2
3.1.4

View File

@ -4,7 +4,7 @@
"editorconfig.editorconfig",
"GitHub.vscode-pull-request-github",
"mrmlnc.vscode-scss",
"rebornix.Ruby",
"Shopify.ruby-lsp",
"streetsidesoftware.code-spell-checker",
"taichi.vscode-textlint",
"yzhang.markdown-all-in-one"

View File

@ -16,6 +16,8 @@ source/_integrations/adax.markdown @danielhiversen
source/_integrations/adguard.markdown @frenck
source/_integrations/advantage_air.markdown @Bre77
source/_integrations/aemet.markdown @Noltari
source/_integrations/aep_ohio.markdown @tronikos
source/_integrations/aep_texas.markdown @tronikos
source/_integrations/agent_dvr.markdown @ispysoftware
source/_integrations/air_quality.markdown @home-assistant/core
source/_integrations/airly.markdown @bieniu
@ -32,7 +34,7 @@ source/_integrations/aladdin_connect.markdown @mkmer
source/_integrations/alarm_control_panel.markdown @home-assistant/core
source/_integrations/alert.markdown @home-assistant/core @frenck
source/_integrations/alexa.markdown @home-assistant/cloud @ochlocracy @jbouwh
source/_integrations/alexa.smart_home.markdown @home-assistant/cloud @ochlocracy
source/_integrations/alexa.smart_home.markdown @home-assistant/cloud @ochlocracy @jbouwh
source/_integrations/amberelectric.markdown @madpilot
source/_integrations/ambiclimate.markdown @danielhiversen
source/_integrations/ambient_station.markdown @bachya
@ -45,9 +47,11 @@ source/_integrations/androidtv_remote.markdown @tronikos @Drafteed
source/_integrations/anova.markdown @Lash-L
source/_integrations/anthemav.markdown @hyralex
source/_integrations/anwb_energie.markdown @klaasnicolaas
source/_integrations/aosmith.markdown @bdr99
source/_integrations/apache_kafka.markdown @bachya
source/_integrations/apcupsd.markdown @yuxincs
source/_integrations/api.markdown @home-assistant/core
source/_integrations/appalachianpower.markdown @tronikos
source/_integrations/apple_tv.markdown @postlund
source/_integrations/application_credentials.markdown @home-assistant/core
source/_integrations/apprise.markdown @caronc
@ -87,6 +91,7 @@ source/_integrations/blebox.markdown @bbx-a @riokuu
source/_integrations/blink.markdown @fronzbot @mkmer
source/_integrations/bliss_automation.markdown @starkillerOG
source/_integrations/bloc_blinds.markdown @starkillerOG
source/_integrations/blue_current.markdown @Floris272 @gleeuwen
source/_integrations/bluemaestro.markdown @bdraco
source/_integrations/blueprint.markdown @home-assistant/core
source/_integrations/bluesound.markdown @thrawnarn
@ -113,6 +118,7 @@ source/_integrations/button.markdown @home-assistant/core
source/_integrations/calendar.markdown @home-assistant/core
source/_integrations/camera.markdown @home-assistant/core
source/_integrations/cast.markdown @emontnemery
source/_integrations/ccm15.markdown @ocalvo
source/_integrations/cert_expiry.markdown @jjlawren
source/_integrations/circuit.markdown @braam
source/_integrations/cisco_ios.markdown @fbradyirl
@ -121,7 +127,7 @@ source/_integrations/cisco_webex_teams.markdown @fbradyirl
source/_integrations/climate.markdown @home-assistant/core
source/_integrations/cloud.markdown @home-assistant/cloud
source/_integrations/cloudflare.markdown @ludeeus @ctalkington
source/_integrations/co2signal.markdown @jpbede
source/_integrations/co2signal.markdown @jpbede @VIKTORVAV99
source/_integrations/coinbase.markdown @tombrien
source/_integrations/color_extractor.markdown @GenericStudent
source/_integrations/comed.markdown @tronikos
@ -177,6 +183,7 @@ source/_integrations/doorbird.markdown @oblogic7 @bdraco @flacjacket
source/_integrations/dooya.markdown @starkillerOG
source/_integrations/dormakaba_dkey.markdown @emontnemery
source/_integrations/dremel_3d_printer.markdown @tkdrob
source/_integrations/drop_connect.markdown @ChandlerSystems @pfrazer
source/_integrations/dsmr.markdown @Robbie1221 @frenck
source/_integrations/dsmr_reader.markdown @depl0y @glodenox
source/_integrations/duotecno.markdown @cereal2nd
@ -205,7 +212,7 @@ source/_integrations/emulated_kasa.markdown @kbickar
source/_integrations/energie_vanons.markdown @klaasnicolaas
source/_integrations/energy.markdown @home-assistant/core
source/_integrations/energyzero.markdown @klaasnicolaas
source/_integrations/enigma2.markdown @fbradyirl
source/_integrations/enigma2.markdown @autinerd
source/_integrations/enmax.markdown @tronikos
source/_integrations/enocean.markdown @bdurrer
source/_integrations/enphase_envoy.markdown @bdraco @cgarwood @dgomes @joostlek @catsmanac
@ -237,6 +244,7 @@ source/_integrations/firmata.markdown @DaAwesomeP
source/_integrations/fitbit.markdown @allenporter
source/_integrations/fivem.markdown @Sander0542
source/_integrations/fjaraskupan.markdown @elupus
source/_integrations/flexit_bacnet.markdown @lellky @piotrbulinski
source/_integrations/flexom.markdown @imicknl @vlebourl @tetienne @nyroDev
source/_integrations/flick_electric.markdown @ZephireNZ
source/_integrations/flipr.markdown @cnico
@ -246,7 +254,7 @@ source/_integrations/flux_led.markdown @icemanch
source/_integrations/forecast_solar.markdown @klaasnicolaas @frenck
source/_integrations/forked_daapd.markdown @uvjustin
source/_integrations/fortios.markdown @kimfrellsen
source/_integrations/foscam.markdown @skgsergio
source/_integrations/foscam.markdown @skgsergio @krmarien
source/_integrations/freebox.markdown @hacf-fr @Quentame
source/_integrations/freedompro.markdown @stefano055415
source/_integrations/fritz.markdown @mammuth @AaronDavidSchneider @chemelli74 @mib1185
@ -255,6 +263,7 @@ source/_integrations/fritzbox_callmonitor.markdown @cdce8p
source/_integrations/fronius.markdown @farmio
source/_integrations/frontend.markdown @home-assistant/frontend
source/_integrations/frontier_silicon.markdown @wlcrs
source/_integrations/fujitsu_anywair.markdown @Bre77
source/_integrations/fully_kiosk.markdown @cgarwood
source/_integrations/garages_amsterdam.markdown @klaasnicolaas
source/_integrations/gardena_bluetooth.markdown @elupus
@ -308,6 +317,7 @@ source/_integrations/hisense_aehw4a1.markdown @bannhead
source/_integrations/history.markdown @home-assistant/core
source/_integrations/hive.markdown @Rendili @KJonline
source/_integrations/hlk_sw16.markdown @jameshilliard
source/_integrations/holiday.markdown @jrieger
source/_integrations/home_connect.markdown @DavidMStraub
source/_integrations/home_plus_control.markdown @chemaaa
source/_integrations/homeassistant.markdown @home-assistant/core
@ -344,6 +354,7 @@ source/_integrations/image_upload.markdown @home-assistant/core
source/_integrations/imap.markdown @jbouwh
source/_integrations/improv_ble.markdown @emontnemery
source/_integrations/incomfort.markdown @zxdavb
source/_integrations/indianamichiganpower.markdown @tronikos
source/_integrations/influxdb.markdown @mdegat01
source/_integrations/inkbird.markdown @bdraco
source/_integrations/input_boolean.markdown @home-assistant/core
@ -379,13 +390,13 @@ source/_integrations/keba.markdown @dannerph
source/_integrations/keenetic_ndms2.markdown @foxel
source/_integrations/kef.markdown @basnijholt
source/_integrations/kegtron.markdown @Ernst79
source/_integrations/kentuckypower.markdown @tronikos
source/_integrations/keyboard_remote.markdown @bendavid @lanrat
source/_integrations/keymitt_ble.markdown @spycle
source/_integrations/kitchen_sink.markdown @home-assistant/core
source/_integrations/kmtronic.markdown @dgomes
source/_integrations/knx.markdown @Julius2342 @farmio @marvin-w
source/_integrations/kodi.markdown @OnFreund
source/_integrations/komfovent.markdown @ProstoSanja
source/_integrations/konnected.markdown @heythisisnate
source/_integrations/kostal_plenticore.markdown @stegm
source/_integrations/kraken.markdown @eifinger
@ -537,7 +548,7 @@ source/_integrations/opower.markdown @tronikos
source/_integrations/oralb.markdown @bdraco @Lash-L
source/_integrations/oru.markdown @bvlaicu
source/_integrations/oru_opower.markdown @tronikos
source/_integrations/osoenergy @osohotwateriot
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
@ -573,9 +584,10 @@ source/_integrations/prometheus.markdown @knyar
source/_integrations/prosegur.markdown @dgomes
source/_integrations/proximity.markdown @mib1185
source/_integrations/proxmoxve.markdown @jhollowe @Corbeno
source/_integrations/prusalink.markdown @balloob
source/_integrations/prusalink.markdown @balloob @Skaronator
source/_integrations/ps4.markdown @ktnrg45
source/_integrations/pse.markdown @tronikos
source/_integrations/psoklahoma.markdown @tronikos
source/_integrations/pure_energie.markdown @klaasnicolaas
source/_integrations/purpleair.markdown @bachya
source/_integrations/push.markdown @dgomes
@ -583,7 +595,7 @@ source/_integrations/pushbullet.markdown @engrbm87
source/_integrations/pushover.markdown @engrbm87
source/_integrations/pvoutput.markdown @frenck
source/_integrations/pvpc_hourly_pricing.markdown @azogue
source/_integrations/qbittorrent.markdown @geoffreylagaisse
source/_integrations/qbittorrent.markdown @geoffreylagaisse @finder39
source/_integrations/qingping.markdown @bdraco @skgsergio
source/_integrations/qld_bushfire.markdown @exxamalte
source/_integrations/qnap.markdown @disforw
@ -607,6 +619,7 @@ source/_integrations/rdw.markdown @frenck @joostlek
source/_integrations/recollect_waste.markdown @bachya
source/_integrations/recorder.markdown @home-assistant/core
source/_integrations/recovery_mode.markdown @home-assistant/core
source/_integrations/refoss.markdown @ashionky
source/_integrations/rejseplanen.markdown @DarkFox
source/_integrations/remote.markdown @home-assistant/core
source/_integrations/renault.markdown @epenet
@ -614,6 +627,7 @@ source/_integrations/renson.markdown @jimmyd-be
source/_integrations/reolink.markdown @starkillerOG
source/_integrations/repairs.markdown @home-assistant/core
source/_integrations/repetier.markdown @ShadowBr0ther
source/_integrations/rest_command.markdown @jpbede
source/_integrations/rexel.markdown @imicknl @vlebourl @tetienne @nyroDev
source/_integrations/rflink.markdown @javicalle
source/_integrations/rfxtrx.markdown @danielhiversen @elupus @RobBie1221
@ -641,6 +655,7 @@ source/_integrations/scene.markdown @home-assistant/core
source/_integrations/schedule.markdown @home-assistant/core
source/_integrations/schlage.markdown @dknowles2
source/_integrations/schluter.markdown @prairieapps
source/_integrations/scl.markdown @tronikos
source/_integrations/scrape.markdown @fabaff @gjohansson-ST
source/_integrations/screenaway.markdown @starkillerOG
source/_integrations/screenlogic.markdown @dieselrabbit @bdraco
@ -724,10 +739,12 @@ source/_integrations/stt.markdown @home-assistant/core
source/_integrations/subaru.markdown @G-Two
source/_integrations/suez_water.markdown @ooii
source/_integrations/sun.markdown @Swamp-Ig
source/_integrations/sunweg.markdown @rokam
source/_integrations/supla.markdown @mwegrzynek
source/_integrations/surepetcare.markdown @benleb @danielhiversen
source/_integrations/swepco.markdown @tronikos
source/_integrations/swiss_hydrological_data.markdown @fabaff
source/_integrations/swiss_public_transport.markdown @fabaff
source/_integrations/swiss_public_transport.markdown @fabaff @miaucl
source/_integrations/switch.markdown @home-assistant/core
source/_integrations/switch_as_x.markdown @home-assistant/core
source/_integrations/switchbee.markdown @jafar-atili
@ -741,9 +758,11 @@ source/_integrations/syncthru.markdown @nielstron
source/_integrations/synology_dsm.markdown @hacf-fr @Quentame @mib1185
source/_integrations/synology_srm.markdown @aerialls
source/_integrations/system_bridge.markdown @timmo001
source/_integrations/tado.markdown @michaelarnauts @chiefdragon
source/_integrations/systemmonitor.markdown @gjohansson-ST
source/_integrations/tado.markdown @michaelarnauts @chiefdragon @erwindouna
source/_integrations/tag.markdown @balloob @dmulcahey
source/_integrations/tailscale.markdown @frenck
source/_integrations/tailwind.markdown @frenck
source/_integrations/tami4.markdown @Guy293
source/_integrations/tankerkoenig.markdown @guillempages @mib1185
source/_integrations/tapsaff.markdown @bazwilliams
@ -752,6 +771,7 @@ source/_integrations/tautulli.markdown @ludeeus @tkdrob
source/_integrations/tellduslive.markdown @fredrike
source/_integrations/template.markdown @PhracturedBlue @tetienne @home-assistant/core
source/_integrations/tesla_wall_connector.markdown @einarhauks
source/_integrations/tessie.markdown @Bre77
source/_integrations/text.markdown @home-assistant/core
source/_integrations/tfiac.markdown @fredrike @mellado
source/_integrations/thermobeacon.markdown @bdraco
@ -788,6 +808,7 @@ source/_integrations/twitch.markdown @joostlek
source/_integrations/ubiwizz.markdown @imicknl @vlebourl @tetienne @nyroDev
source/_integrations/ukraine_alarm.markdown @PaulAnnekov
source/_integrations/unifi.markdown @Kane610
source/_integrations/unifi_direct.markdown @tofuSCHNITZEL
source/_integrations/unifiled.markdown @florisvdk
source/_integrations/unifiprotect.markdown @AngellusMortis @bdraco
source/_integrations/upb.markdown @gwww
@ -811,7 +832,7 @@ 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
source/_integrations/vesync.markdown @markperdue @webdjoe @thegardenmonkey @cdnninja
source/_integrations/vicare.markdown @CFenner
source/_integrations/vilfo.markdown @ManneW
source/_integrations/vivotek.markdown @HarlemSquirrel

View File

@ -4,12 +4,14 @@ ruby '> 2.5.0'
group :development do
gem 'rake', '13.1.0'
gem 'jekyll', '4.3.2'
gem 'jekyll', '4.3.3'
gem 'compass', '1.0.3'
gem 'sass-globbing', '1.1.5'
gem 'stringex', '2.8.6'
# > 2.1.0 causes slowdowns https://github.com/sass/sassc-ruby/issues/189
gem 'sassc', '2.1.0'
gem 'rubocop', '1.59.0'
gem 'ruby-lsp', '0.13.2'
end
group :jekyll_plugins do
@ -19,8 +21,8 @@ group :jekyll_plugins do
gem 'jekyll-toc', '0.18.0'
end
gem 'sinatra', '3.1.0'
gem 'nokogiri', '1.15.5'
gem 'sinatra', '3.2.0'
gem 'nokogiri', '1.16.0'
# Windows and JRuby does not include zoneinfo files, so bundle the tzinfo-data gem
# and associated library

View File

@ -3,6 +3,8 @@ GEM
specs:
addressable (2.8.6)
public_suffix (>= 2.0.2, < 6.0)
ast (2.4.2)
base64 (0.2.0)
chunky_png (1.4.0)
colorator (1.1.0)
commonmarker (0.23.10)
@ -23,14 +25,13 @@ GEM
eventmachine (>= 0.12.9)
http_parser.rb (~> 0)
eventmachine (1.2.7)
eventmachine (1.2.7-x64-mingw32)
ffi (1.16.3)
forwardable-extended (2.6.0)
google-protobuf (3.25.1)
google-protobuf (3.25.1-x86_64-linux)
http_parser.rb (0.8.0)
i18n (1.14.1)
concurrent-ruby (~> 1.0)
jekyll (4.3.2)
jekyll (4.3.3)
addressable (~> 2.4)
colorator (~> 1.0)
em-websocket (~> 0.5)
@ -58,54 +59,76 @@ GEM
nokogiri (~> 1.12)
jekyll-watch (2.2.1)
listen (~> 3.0)
json (2.7.1)
kramdown (2.4.0)
rexml
kramdown-parser-gfm (1.1.0)
kramdown (~> 2.0)
language_server-protocol (3.17.0.3)
liquid (4.0.4)
listen (3.8.0)
rb-fsevent (~> 0.10, >= 0.10.3)
rb-inotify (~> 0.9, >= 0.9.10)
mercenary (0.4.0)
mini_portile2 (2.8.5)
multi_json (1.15.0)
mustermann (3.0.0)
ruby2_keywords (~> 0.0.1)
nokogiri (1.15.5)
mini_portile2 (~> 2.8.2)
nokogiri (1.16.0-x86_64-linux)
racc (~> 1.4)
parallel (1.24.0)
parser (3.2.2.4)
ast (~> 2.4.1)
racc
pathutil (0.16.2)
forwardable-extended (~> 2.6)
prism (0.19.0)
public_suffix (5.0.4)
racc (1.7.3)
rack (2.2.8)
rack-protection (3.1.0)
rack-protection (3.2.0)
base64 (>= 0.1.0)
rack (~> 2.2, >= 2.2.4)
rainbow (3.1.1)
rake (13.1.0)
rb-fsevent (0.11.2)
rb-inotify (0.10.1)
ffi (~> 1.0)
regexp_parser (2.8.3)
rexml (3.2.6)
rouge (4.2.0)
rubocop (1.59.0)
json (~> 2.3)
language_server-protocol (>= 3.17.0)
parallel (~> 1.10)
parser (>= 3.2.2.4)
rainbow (>= 2.2.2, < 4.0)
regexp_parser (>= 1.8, < 3.0)
rexml (>= 3.2.5, < 4.0)
rubocop-ast (>= 1.30.0, < 2.0)
ruby-progressbar (~> 1.7)
unicode-display_width (>= 2.4.0, < 3.0)
rubocop-ast (1.30.0)
parser (>= 3.2.1.0)
ruby-lsp (0.13.2)
language_server-protocol (~> 3.17.0)
prism (>= 0.19.0, < 0.20)
sorbet-runtime (>= 0.5.5685)
ruby-progressbar (1.13.0)
ruby2_keywords (0.0.5)
safe_yaml (1.0.5)
sass (3.4.25)
sass-embedded (1.63.6)
google-protobuf (~> 3.23)
rake (>= 13.0.0)
sass-embedded (1.63.6-x64-mingw32)
google-protobuf (~> 3.23)
sass-embedded (1.69.7-x86_64-linux-gnu)
google-protobuf (~> 3.25)
sass-globbing (1.1.5)
sass (>= 3.1)
sassc (2.1.0)
sassc (2.1.0-x86_64-linux)
ffi (~> 1.9)
sassc (2.1.0-x64-mingw32)
ffi (~> 1.9)
sinatra (3.1.0)
sinatra (3.2.0)
mustermann (~> 3.0)
rack (~> 2.2, >= 2.2.4)
rack-protection (= 3.1.0)
rack-protection (= 3.2.0)
tilt (~> 2.0)
sorbet-runtime (0.5.11175)
stringex (2.8.6)
terminal-table (3.0.2)
unicode-display_width (>= 1.1.1, < 3)
@ -118,21 +141,22 @@ GEM
webrick (1.8.1)
PLATFORMS
ruby
x64-mingw32
x86_64-linux
DEPENDENCIES
compass (= 1.0.3)
jekyll (= 4.3.2)
jekyll (= 4.3.3)
jekyll-commonmark (= 1.4.0)
jekyll-paginate (= 1.1.0)
jekyll-sitemap (= 1.4.0)
jekyll-toc (= 0.18.0)
nokogiri (= 1.15.5)
nokogiri (= 1.16.0)
rake (= 13.1.0)
rubocop (= 1.59.0)
ruby-lsp (= 0.13.2)
sass-globbing (= 1.1.5)
sassc (= 2.1.0)
sinatra (= 3.1.0)
sinatra (= 3.2.0)
stringex (= 2.8.6)
tzinfo (~> 2.0)
tzinfo-data
@ -141,4 +165,4 @@ RUBY VERSION
ruby 2.6.2p47
BUNDLED WITH
2.2.28
2.5.3

View File

@ -108,10 +108,10 @@ social:
account: "https://fosstodon.org/@homeassistant"
# Home Assistant release details
current_major_version: 2023
current_minor_version: 12
current_patch_version: 4
date_released: 2023-12-27
current_major_version: 2024
current_minor_version: 1
current_patch_version: 0
date_released: 2024-01-03
# Either # or the anchor link to latest release notes in the blog post.
# Must be prefixed with a # and have double quotes around it.

View File

@ -7,12 +7,7 @@ description: The Conditional card displays another card based on conditions.
The conditional card displays another card based on conditions.
<p class='img'>
<img src='/images/dashboards/conditional_card.gif' alt='Screenshot of the conditional card'>
Screenshot of the conditional card.
</p>
Note: if there are multiple conditions there will be treated as an 'and' condition. This means that for the card to show, _all_ conditions must be met.
![Screenshot of the conditional card](/images/dashboards/conditional_card.gif)
{% 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.
@ -40,6 +35,7 @@ card:
## Examples
Only show when all the conditions are met:
```yaml
type: conditional
conditions:
@ -62,6 +58,25 @@ card:
- light.bed_light
```
Example condition where only one of the conditions needs to be met:
```yaml
type: conditional
conditions:
- condition: or
conditions:
- condition: state
entity: binary_sensor.co_alert
state: 'on'
- condition: state
entity: binary_sensor.rookmelder
state: 'on'
card:
type: entities
entities:
- binary_sensor.co_alert
- binary_sensor.rookmelder
```
## Card conditions
### State

View File

@ -3,7 +3,7 @@ title: "YAML"
description: "Details about YAML to configure Home Assistant."
---
Home Assistant uses the [YAML](https://yaml.org/) syntax for configuration. YAML might take a while to get used to but is really powerful in allowing you to express complex configurations.
Home Assistant uses the [YAML](https://yaml.org/) syntax for configuration. YAML might take a while to get used to but is powerful in allowing you to express complex configurations.
While more and more integrations are configured through the UI, for some, you will add code in your [`configuration.yaml`](/docs/configuration/) file to specify its settings.
@ -21,15 +21,15 @@ notify:
The basics of YAML syntax are block collections and mappings containing key-value pairs. Each item in a collection starts with a `-` while mappings have the format `key: value`. This is somewhat similar to a Hash table or more specifically a dictionary in Python. These can be nested as well. **Beware that if you specify duplicate keys, the last value for a key is used**.
Note that indentation is an important part of specifying relationships using YAML. Things that are indented are nested "inside" things that are one level higher. So in the above example, `platform: pushbullet` is a property of (nested inside) the `notify` integration.
In YAML, indentation is important for specifying relationships. Indented lines are nested inside lines that are one level higher. In the above example, `platform: pushbullet` is a property of (nested inside) the `notify` integration.
Getting the right indentation can be tricky if you're not using an editor with a fixed width font. Tabs are not allowed to be used for indentation. Convention is to use 2 spaces for each level of indentation.
Getting the right indentation can be tricky if you're not using an editor with a fixed-width font. Tabs are not allowed to be used for indentation. The convention is to use 2 spaces for each level of indentation.
You can use the online service [YAML Validator](https://codebeautify.org/yaml-validator/) to check if your YAML syntax is correct before loading it into Home Assistant which will save you some time. If you do so, be aware that this is a third-party service and is not maintained by the Home Assistant community.
To check if your YAML syntax is correct before loading it into Home Assistant, you can use the third-party service [YAML Validator](https://codebeautify.org/yaml-validator/) (not maintained by the Home Assistant community).
<div class='note'>
Please pay attention to not storing private data (passwords, API keys, etc.) directly in your `configuration.yaml` file. Private data can be stored in either a [separate file](/docs/configuration/secrets/) or in [environmental variables](/docs/configuration/yaml/#using-environment-variables), which circumvents this security problem.
Pay attention to not storing private data (passwords, API keys, etc.) directly in your `configuration.yaml` file. Private data can be stored in either a [separate file](/docs/configuration/secrets/) or in [environmental variables](/docs/configuration/yaml/#using-environment-variables), which circumvents this security problem.
</div>

View File

@ -4,7 +4,7 @@ description: Get energy usage from AEP Ohio using the Opower integration
ha_category:
- Energy
- Sensor
ha_release: 2024.1
ha_release: 2023.8
ha_domain: aep_ohio
ha_integration_type: virtual
ha_supporting_domain: opower

View File

@ -4,7 +4,7 @@ description: Get energy usage from AEP Texas using the Opower integration
ha_category:
- Energy
- Sensor
ha_release: 2024.1
ha_release: 2023.8
ha_domain: aep_texas
ha_integration_type: virtual
ha_supporting_domain: opower

View File

@ -14,6 +14,7 @@ ha_integration_type: integration
ha_codeowners:
- '@mkmer'
ha_config_flow: true
ha_quality_scale: platinum
---
The Aladdin Connect integration lets you control Genie Aladdin Connect garage doors through Home Assistant.

View File

@ -1044,7 +1044,6 @@ Only temperature sensors are configured at this time.
- _"Alexa, what's the temperature in the kitchen?"_
- _"Alexa, what's the upstairs temperature?"_
- _"Alexa, what's the temperature of my ex-girlfriend's heart?"_
### Switch, Input Boolean

View File

@ -10,6 +10,7 @@ ha_config_flow: true
ha_codeowners:
- '@bdr99'
ha_platforms:
- sensor
- water_heater
ha_integration_type: integration
---

View File

@ -4,7 +4,7 @@ description: Get energy usage from Appalachian Power using the Opower integratio
ha_category:
- Energy
- Sensor
ha_release: 2024.1
ha_release: 2023.8
ha_domain: appalachianpower
ha_integration_type: virtual
ha_supporting_domain: opower

View File

@ -16,6 +16,9 @@ This platform allows you to detect presence by looking at connected devices to a
Supported devices (tested):
- Aruba AP-105
- Aruba AP-505
- Aruba AP-515
- Aruba IAP-315
- Aruba IAP-335
- Aruba Instant IAP-275

View File

@ -2,8 +2,8 @@
title: Blue Current
description: Instructions on how to integrate Blue Current charge points within Home Assistant.
ha_category:
- Sensor
- Car
- Sensor
ha_release: 2024.1
ha_iot_class: Cloud Push
ha_config_flow: true
@ -13,6 +13,7 @@ ha_codeowners:
ha_domain: blue_current
ha_platforms:
- sensor
ha_integration_type: integration
---
[Blue Current](https://www.bluecurrent.nl/) is an Dutch company that makes electric car chargers.

View File

@ -14,6 +14,7 @@ ha_domain: braviatv
ha_config_flow: true
ha_platforms:
- button
- diagnostics
- media_player
- remote
ha_ssdp: true

View File

@ -9,10 +9,9 @@ ha_config_flow: true
ha_codeowners:
- '@ocalvo'
ha_domain: ccm15
ha_quality_scale: platinum
ha_dhcp: true
ha_platforms:
- climate
- diagnostics
ha_integration_type: integration
---

View File

@ -15,6 +15,7 @@ ha_config_flow: true
ha_integration_type: service
ha_codeowners:
- '@jpbede'
- '@VIKTORVAV99'
---
The `Electricity Maps` sensor platform (formerly known as CO2Signal) queries the [Electricity Maps](https://www.electricitymaps.com/) API for the CO2 intensity of a specific region. Data can be collected for your home by using the latitude/longitude or a country code. This API uses the same data as <https://app.electricitymaps.com>. Not all countries/regions in the world are supported, so please consult the app to check local availability.

View File

@ -3,7 +3,6 @@ title: Cribl
description: Send events to Cribl.
ha_category:
- History
ha_iot_class: Local Push
ha_release: 0.13
ha_domain: cribl
ha_supporting_domain: splunk

View File

@ -28,6 +28,6 @@ In addition to a lock entity, each added dKey lock will also have:
<div class='note warning'>
The Dormakaba dKey lock is currently not working with USB dongles or built-in Bluetooth radios, only [ESPHome Bluetooth proxies](/integrations/bluetooth/#remote-adapters-bluetooth-proxies) work reliably.
The Dormakaba dKey lock is currently not working with USB dongles or built-in Bluetooth radios, only [ESPHome Bluetooth proxies](/integrations/bluetooth/#remote-adapters-bluetooth-proxies) configured to allow active connections work reliably.
</div>

View File

@ -6,7 +6,7 @@ ha_category:
ha_release: '0.90'
ha_iot_class: Local Polling
ha_codeowners:
- '@fbradyirl'
- '@autinerd'
ha_domain: enigma2
ha_platforms:
- media_player

View File

@ -4,7 +4,7 @@ description: Get energy usage from Enmax Energy using the Opower integration
ha_category:
- Energy
- Sensor
ha_release: '2023.10'
ha_release: 2023.8
ha_domain: enmax
ha_integration_type: virtual
ha_supporting_domain: opower

View File

@ -1,5 +1,5 @@
---
title: Flexit BACnet
title: Flexit Nordic (BACnet)
description: Instructions on how to integrate Flexit air handling unit into Home Assistant.
ha_category:
- Climate
@ -8,7 +8,11 @@ ha_iot_class: Local Polling
ha_domain: flexit_bacnet
ha_platforms:
- climate
ha_integration_type: integration
ha_integration_type: device
ha_codeowners:
- '@lellky'
- '@piotrbulinski'
ha_config_flow: true
---
Integrates [Flexit](https://www.flexit.no/en/) Nordic series air handling unit into Home Assistant.

View File

@ -7,6 +7,7 @@ ha_iot_class: Local Polling
ha_release: 0.7.3
ha_codeowners:
- '@skgsergio'
- '@krmarien'
ha_domain: foscam
ha_config_flow: true
ha_platforms:

View File

@ -1,21 +1,34 @@
---
title: Fujitsu anywAIR
description: Instructions on how to integrate Fujitsu anywAIR controller into Home Assistant.
description: Connect and control your Fujitsu anywAIR devices using the Advantage Air integration
ha_category:
- Binary switch
- Climate
- Cover
- Light
- Sensor
- Switch
- Update
- Update
ha_release: 0.117
ha_iot_class: Local Polling
ha_config_flow: true
ha_domain: fujitsu_anywair
ha_supporting_domain: advantage_air
ha_supporting_integration: Advantage Air
ha_integration_type: virtual
ha_codeowners:
- '@Bre77'
ha_integration_type: virtual
ha_config_flow: true
ha_platforms:
- binary_sensor
- climate
- cover
- diagnostics
- light
- select
- sensor
- switch
- update
ha_iot_class: Local Polling
---
{% include integrations/supported_brand.md %}

View File

@ -13,6 +13,7 @@ ha_codeowners:
ha_domain: goodwe
ha_platforms:
- button
- diagnostics
- number
- select
- sensor

View File

@ -13,7 +13,7 @@ ha_config_flow: true
ha_integration_type: integration
---
This is a sensor to collect information from your Growatt inverters using [Growatt server](https://server.growatt.com/) by default. It is possible to specify an alternative endpoint server at configuration time e.g., [SMTEN](https://server.smten.com/).
This is a sensor to collect information from your Growatt inverters using [Growatt server](https://server.growatt.com/) by default. It is possible to specify an alternative endpoint server at configuration time e.g., [SMTEN](https://server.smten.com/). To see the latest supported servers, add the integration in Home Assistant to see the configuration options.
This will log into your Growatt account and grab the first "Plant", after which it collects the inverters on this plant and creates sensors for these inverters as well as total sensors.

View File

@ -16,7 +16,6 @@ ha_platforms:
ha_integration_type: integration
ha_codeowners:
- '@abmantis'
ha_quality_scale: silver
---
The IKEA IDÅSEN integration allows you to connect your IKEA Idåsen motorized desk to Home Assistant, making it possible to control the desk height and also monitor height changes from the physical controller.

View File

@ -4,7 +4,7 @@ description: Get energy usage from Indiana Michigan Power using the Opower integ
ha_category:
- Energy
- Sensor
ha_release: 2024.1
ha_release: 2023.8
ha_domain: indianamichiganpower
ha_integration_type: virtual
ha_supporting_domain: opower

View File

@ -4,7 +4,7 @@ description: Get energy usage from Kentucky Power using the Opower integration
ha_category:
- Energy
- Sensor
ha_release: 2024.1
ha_release: 2023.8
ha_domain: kentuckypower
ha_integration_type: virtual
ha_supporting_domain: opower

View File

@ -23,6 +23,14 @@ This integration also offers a button to pick up and then hang up the call to pr
{% include integrations/config_flow.md %}
## Compatibility
Reported models with this integration include that work:
- [StarTech.com USB56KEMH2](https://www.startech.com/en-us/networking-io/usb56kemh2)
Devices that did not work:
- [StarTech.com USB56KEM3](https://www.startech.com/en-us/networking-io/usb56kem3)
## Examples
An example automation:

View File

@ -17,8 +17,6 @@ ha_platforms:
ha_codeowners:
- '@tkdrob'
ha_integration_type: integration
ha_codeowners:
- '@tkdrob'
---
The NETGEAR LTE integration for Home Assistant allows you to observe and control [NETGEAR LTE modems](https://www.netgear.com/home/mobile-wifi/lte-modems/).

View File

@ -58,8 +58,8 @@ verify ssl:
{% endconfiguration_basic %}
### API key
For the integration to work, please check that in Octoprint, the plugin Discovery is enabled and in the settings -> printer notifications menu pop-ups are enabled.
The Octoprint integration will attempt to register itself via the [application keys plugin](https://docs.octoprint.org/en/master/bundledplugins/appkeys.html). After submitting the configuration UI in Home Assistant, open the Octoprint UI and click allow on the prompt.
For the integration to work, please check that in Octoprint, the [Discovery Plugin](https://docs.octoprint.org/en/master/bundledplugins/discovery.html) is enabled and in the **Settings** -> **Printer Notifications** menu that **Enable popups** is checked.
The Octoprint integration will attempt to register itself via the [Application Keys Plugin](https://docs.octoprint.org/en/master/bundledplugins/appkeys.html). After submitting the configuration UI in Home Assistant, open the Octoprint UI and click allow on the prompt.
## Binary sensor
@ -71,6 +71,7 @@ The OctoPrint integration provides the following binary sensors:
## Sensor
The OctoPrint integration lets you monitor various states of your 3D printer and its print jobs.
Supported sensors:
- Current Printer State

View File

@ -14,7 +14,7 @@ ha_platforms:
ha_integration_type: integration
---
[OPNsense](https://opnsense.org/) is an open source HardenedBSD based firewall
[OPNsense](https://opnsense.org/) is an open source FreeBSD based firewall
and routing platform. There is currently support for the following device types
within Home Assistant:

View File

@ -1,7 +1,7 @@
---
title: OSO Energy
description: Instructions on how to integrate OSO Energy devices with Home Assistant.
ha_release: "2024.1"
ha_release: '2024.1'
ha_category:
- Sensor
- Water Heater

View File

@ -10,6 +10,7 @@ ha_codeowners:
- '@IceBotYT'
ha_domain: peco
ha_platforms:
- binary_sensor
- sensor
ha_integration_type: integration
---

View File

@ -51,10 +51,10 @@ This sensor is enabled by default. The default polling interval is 30 seconds.
The sensor exposes the different round trip times in milliseconds measured by `ping` as attributes:
- `round_trip_time_mdev`
- `round_trip_time_avg`
- `round_trip_time_min`
- `round_trip_time_max`
- `round_trip_time_mdev` - the standard deviation
- `round_trip_time_avg` - the average round trip time
- `round_trip_time_min` - the shortest round trip time
- `round_trip_time_max` - the longest round trip time
<div class='note'>
When run on Windows systems, the round trip time attributes are rounded to the nearest millisecond and the mdev value is unavailable.

View File

@ -1,16 +1,16 @@
---
title: Portland General Electric (PGE)
description: Get energy usage from Portland General Electric (PGE) using the Opower integration
description: Connect and control your Portland General Electric (PGE) devices using the Opower integration
ha_category:
- Energy
- Sensor
ha_release: 2023.9
ha_release: 2023.8
ha_domain: portlandgeneral
ha_integration_type: virtual
ha_supporting_domain: opower
ha_supporting_integration: Opower
ha_codeowners:
- '@jrigling'
- '@tronikos'
ha_config_flow: true
ha_platforms:
- sensor

View File

@ -18,21 +18,21 @@ ha_platforms:
ha_dhcp: true
---
The PrusaLink integration allows you to monitor your [Prusa 3D printer](https://www.prusa3d.com) and its progress with your Home Assistant installation. This integration works with Prusa MINI, Prusa MK3.9/MK4 and Prusa XL. It does not work with the older Raspberry Pi Prusa Link printers.
The PrusaLink integration allows you to monitor your [Prusa 3D printer](https://www.prusa3d.com) and its progress with your Home Assistant installation. This integration works with Prusa MINI/MINI+, Prusa MK3.9/MK4 and Prusa XL. It does not work with the older Raspberry Pi based Prusa Link printers.
This integration has been updated to utilize the latest v1 API endpoints, which require firmware version 4.7.0 or later. If you own a Prusa Mini, please make sure your printer is running firmware 5.1.0 or a more recent version. Firmware versions 4.7.x and 5.0.x are not available for this model.
This integration has been updated to utilize the latest v1 API endpoints, which require firmware version 4.7.0 or later. If you own a Prusa MINI/MINI+, please make sure your printer is running firmware 5.1.0 or a more recent version. Firmware versions 4.7.x and 5.0.x are not available for this model.
Firmware update guides can be found here:
- [Prusa Mini](https://help.prusa3d.com/article/firmware-updating-mini-mini_124784)
- [Prusa MK4/XL](https://help.prusa3d.com/article/how-to-update-firmware-mk4-xl_453086)
- [Prusa MINI/MINI+](https://help.prusa3d.com/article/firmware-updating-mini-mini_124784)
- [Prusa MK3.9/MK4/XL](https://help.prusa3d.com/article/how-to-update-firmware-mk4-xl_453086)
To obtain the hostname, username, and password:
- On your printer, navigate to **Settings** > **Network** > **PrusaLink**.
- Find the device's **IP address**. Alternatively, you can look for the printer's IP address or hostname on your router.
- Note that for some models, the username may not be visible, as it is hardcoded to `maker`.
- Depending on your model, the entry may not be called **Password**, but **API key**.
- Depending on your model, the password entry may not be called **Password**, but **API key**.
{% include integrations/config_flow.md %}

View File

@ -4,7 +4,7 @@ description: Get energy usage from Public Service Company of Oklahoma (PSO) usin
ha_category:
- Energy
- Sensor
ha_release: 2024.1
ha_release: 2023.8
ha_domain: psoklahoma
ha_integration_type: virtual
ha_supporting_domain: opower

View File

@ -56,4 +56,3 @@ response_variable: torrents
```
The response data contains the field `torrent_info` which contains a dictionary of torrents. The name of the torrents are the keys.

View File

@ -25,4 +25,3 @@ To start the Radio Browser, in Home Assistant, go to **Media** > **Radio Browser
You can also use the Radio Browser in automations. When creating an automation, use the **Play Media** action to pick a station from the directory. This allows you for example to create
an automation that starts playing your favorite radio station on your
Cast devices.

View File

@ -7,6 +7,8 @@ ha_release: 0.36
ha_iot_class: Local Push
ha_domain: rest_command
ha_integration_type: integration
ha_codeowners:
- '@jpbede'
---
This integration can expose regular REST commands as services. Services can be called from a [script] or in [automation].

View File

@ -4,7 +4,7 @@ description: Get energy usage from Seattle City Light (SCL) using the Opower int
ha_category:
- Energy
- Sensor
ha_release: 2024.1
ha_release: 2023.8
ha_domain: scl
ha_integration_type: virtual
ha_supporting_domain: opower

View File

@ -3,12 +3,12 @@ title: StarLine
description: Instructions on how to setup your StarLine account with Home Assistant.
ha_category:
- Binary sensor
- Button
- Car
- Lock
- Presence detection
- Sensor
- Switch
- Button
ha_release: 0.103
ha_iot_class: Cloud Polling
ha_config_flow: true
@ -17,11 +17,11 @@ ha_codeowners:
ha_domain: starline
ha_platforms:
- binary_sensor
- button
- device_tracker
- lock
- sensor
- switch
- button
ha_integration_type: integration
---

View File

@ -4,7 +4,7 @@ description: Get energy usage from Southwestern Electric Power Company (SWEPCO)
ha_category:
- Energy
- Sensor
ha_release: 2024.1
ha_release: 2023.8
ha_domain: swepco
ha_integration_type: virtual
ha_supporting_domain: opower

View File

@ -10,6 +10,8 @@ ha_config_flow: true
ha_platforms:
- sensor
ha_integration_type: integration
ha_codeowners:
- '@gjohansson-ST'
---
The System monitor integration allows you to monitor disk usage,

View File

@ -14,6 +14,7 @@ ha_iot_class: Cloud Polling
ha_codeowners:
- '@michaelarnauts'
- '@chiefdragon'
- '@erwindouna'
ha_domain: tado
ha_config_flow: true
ha_homekit: true

View File

@ -14,8 +14,11 @@ ha_platforms:
- binary_sensor
- button
- cover
- diagnostics
- number
ha_integration_type: device
ha_quality_scale: platinum
ha_dhcp: true
---
The Tailwind integration integrates [Tailwind](https://gotailwind.com/)

View File

@ -12,6 +12,7 @@ ha_codeowners:
- '@mib1185'
ha_platforms:
- binary_sensor
- diagnostics
- sensor
ha_config_flow: true
ha_integration_type: integration

View File

@ -27,7 +27,9 @@ ha_platforms:
- lock
- media_player
- number
- select
- sensor
- switch
- update
ha_integration_type: integration
---

View File

@ -107,7 +107,7 @@ Change an active timer. This changes the duration of the timer with the duration
### Service `timer.pause`
Pause a running timer. This will retain the remaining duration for later continuation. You can also use `entity_id: all` and all active timers will be paused.
Pause a running timer. This will retain the remaining duration for later continuation. To resume a timer use the `timer.start` service without passing a duration. You can also use `entity_id: all` and all active timers will be paused.
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |

View File

@ -3,8 +3,8 @@ title: Trend
description: Instructions on how to integrate Trend binary sensors into Home Assistant.
ha_category:
- Binary sensor
- Utility
- Helper
- Utility
ha_release: 0.28
ha_iot_class: Calculated
ha_quality_scale: internal

View File

@ -9,6 +9,8 @@ ha_domain: unifi_direct
ha_platforms:
- device_tracker
ha_integration_type: integration
ha_codeowners:
- '@tofuSCHNITZEL'
---
This platform allows you to detect presence by looking at devices connected to a [UniFi AP](https://www.ui.com/products/#unifi). This device tracker differs from [Ubiquiti UniFi](/integrations/unifi) because it doesn't require the UniFi Network application.

View File

@ -53,11 +53,11 @@ This {% term integration %} supports all UniFi OS Consoles that can run UniFi Pr
- Any UniFi "Dream" device (**[UDMPRO](https://store.ui.com/collections/unifi-network-unifi-os-consoles/products/udm-pro)**, **[UDR](https://store.ui.com/collections/unifi-network-unifi-os-consoles/products/dream-router)**, or **[UDMSE](https://store.ui.com/collections/unifi-network-unifi-os-consoles/products/dream-machine-se)**), _except the base UniFi Dream Machine/UDM_
- UniFi Cloud Key Gen2 Plus (**[UCKP](https://store.ui.com/collections/unifi-protect-nvr/products/unifi-cloudkey-plus)**) firmware version v2.0.24+
UCKP with Firmware v1.x **do NOT run UniFi OS**, you must upgrade to firmware `[v2.0.24](https://community.ui.com/releases/UniFi-Cloud-Key-Firmware-2-0-24/b6684f1e-8542-4660-bc0b-74e0634448e8)` or newer.
UCKP with Firmware v1.x **do NOT run UniFi OS**, you must upgrade to firmware [`v2.0.24`](https://community.ui.com/releases/UniFi-Cloud-Key-Firmware-2-0-24/b6684f1e-8542-4660-bc0b-74e0634448e8) or newer.
### Software support
The absolute **minimal** software version is `[v1.20.0](https://community.ui.com/releases/UniFi-Protect-Application-1-20-0/d43c0905-3fb4-456b-a7ca-73aa830cb011)` for UniFi Protect. If you have an older version, you will get errors trying to set up the integration. However, the general advice is the latest 2 minor versions of UniFi Protect and hardware supported by those are supported.
The absolute **minimal** software version is [`v1.20.0`](https://community.ui.com/releases/UniFi-Protect-Application-1-20-0/d43c0905-3fb4-456b-a7ca-73aa830cb011) for UniFi Protect. If you have an older version, you will get errors trying to set up the integration. However, the general advice is the latest 2 minor versions of UniFi Protect and hardware supported by those are supported.
<div class='note warning'>

View File

@ -14,7 +14,6 @@ ha_domain: utility_meter
ha_platforms:
- select
- sensor
ha_config_flow: true
ha_integration_type: helper
---

View File

@ -12,6 +12,7 @@ ha_codeowners:
- '@markperdue'
- '@webdjoe'
- '@thegardenmonkey'
- '@cdnninja'
ha_domain: vesync
ha_platforms:
- diagnostics

View File

@ -15,6 +15,7 @@ ha_config_flow: true
ha_platforms:
- stt
- tts
- wake_word
ha_iot_class: Local Push
---

View File

@ -11,10 +11,14 @@ ha_codeowners:
ha_domain: wyoming
ha_integration_type: integration
ha_platforms:
- binary_sensor
- number
- select
- stt
- switch
- tts
- wake_word
ha_config_flow: true
ha_zeroconf: true
---
The **Wyoming** {% term integration %} connects external voice services to Home Assistant using a [small protocol](https://github.com/rhasspy/rhasspy3/blob/master/docs/wyoming.md). This enables [Assist](/voice_control/) to use a variety of local [speech-to-text](/integrations/stt/), [text-to-speech](/integrations/tts/), and [wake-word-detection](/integrations/wake_word/) systems, such as:

View File

@ -0,0 +1,579 @@
---
layout: post
title: "2024.1: Happy automating!"
description: "Happy New Year! 🥂 2024.1 starts with many UI improvements to our automation editor, due date and description support for to-do items, a brand new valve entity, and more card features!"
date: 2024-01-03 00:00:00
date_formatted: "January 3, 2024"
author: Franck Nijhof
author_twitter: frenck
comments: true
categories:
- Release-Notes
- Core
og_image: /images/blog/2024-01/social.png
---
<a href='/integrations/#version/2024.1'><img src='/images/blog/2024-01/social.png' style='border: 0;box-shadow: none;'></a>
Happy New Year! 🍾
We wish you, and all the loved ones around you, all the best for 2024! 🥂
I cannot think of a better way to start the new year: Home Assistant Core 2024.1! 🎉
This release is fairly small, as expected; we are just coming out of the holiday
season. However, it does contain some nice improvements and
features to be excited about and a stunning total of 13 new integrations!
My favorite: the automation editor changes. It had quite a bunch of user
interface tweaks. Most are focused on making it friendlier and easier to use
for new and long-term users, making it quicker to find the right trigger,
condition, or action.
I greatly like this improved experience, and I hope you do too!
Enjoy the release!
../Frenck
<!--more-->
- [Automation editor improvements](#automation-editor-improvements)
- [Improved empty automations dashboard](#improved-empty-automations-dashboard)
- [Guidance when creating a new automation](#guidance-when-creating-a-new-automation)
- [Building blocks](#building-blocks)
- [Improved trigger, condition \& action buttons](#improved-trigger-condition--action-buttons)
- [Unified actions](#unified-actions)
- [Description \& due date support for to-do list items](#description--due-date-support-for-to-do-list-items)
- [New entity type: Valve](#new-entity-type-valve)
- [Swappable current/target on thermostat \& humidifier cards](#swappable-currenttarget-on-thermostat--humidifier-cards)
- [New card features](#new-card-features)
- [Other noteworthy changes](#other-noteworthy-changes)
- [New integrations](#new-integrations)
- [Integrations now available to set up from the UI](#integrations-now-available-to-set-up-from-the-ui)
- [Need help? Join the community!](#need-help-join-the-community)
- [Backward-incompatible changes](#backward-incompatible-changes)
- [All changes](#all-changes)
Don't forget to [join our release party live stream on YouTube](https://www.youtube.com/watch?v=dRwzSkKYIDs)
3 January 2024, at 12:00 PST / 21:00 CET!
<lite-youtube videoid="dRwzSkKYIDs" videotitle="Home Assistant 2024.1 Release Party"></lite-youtube>
## Automation editor improvements
The automation editor got some love for this release, with many small
improvements to make it easier for both new and long-time users.
As there are many small improvements, lets go over them individually.
PS: One quick note: all changes are UI changes, meaning that these changes
do not affect the underlying automation configuration. All your existing
automations will continue to work as they did before.
### Improved empty automations dashboard
If you start with Home Assistant, visiting the automations dashboard would
result in an empty page. That is not very helpful if you see this for the
first time. So, weve improved that!
You are now greeted by the little automation robot that explains what an
automation is and references to the documentation that can help you get started.
<img class="no-shadow" src='/images/blog/2024-01/start-automating.png' alt='Screenshot showing an empty automations dashboard, explaining what automations are.'>
A small but effective improvement to help new users get started. We have also
applied this same improvement to the scripts and scenes dashboards.
### Guidance when creating a new automation
When starting a new automation from scratch, you used to be greeted by some,
possibly, new terminology and almost a blank page with some buttons to
add triggers, conditions or actions. As a new user, this immediately imposes
a challenge: what do I need to do?
You guessed it: We have slightly improved that. We have changed the big headers
to be more descriptive and less technical. We have also added some help text to
explain each section, including examples of what they can be used for.
<img class="no-shadow" src='/images/blog/2024-01/automation-descriptions.png' alt='Screenshot showing descriptions on what each section in an automation is and can be used for.'>
Dont worry; well hide the explanation once you add elements to the sections
to keep the overview of existing automations as clean as possible.
### Building blocks
You might have noticed in the screenshots above the conditions and actions have
a new button next to them: **+ Add building block**.
Selecting these new buttons allows you to add logical elements to your
automation or scripts, like **And**, **Or**, **If-then**, **Choose**, etc.
These used to be mixed in with the conditions and actions but now have their
own dedicated button. It makes it easier to find them and declutters the
list of conditions and actions.
<img class="no-shadow" src='/images/blog/2024-01/automation-building-blocks.png' alt='Screenshot showing the new dialog that allows you to add logical building blocks to automations.'>
Notice how this now opens up a dialog? A dialog gives us more space to describe
what each building block does and room for a search box to find the one you need.
### Improved trigger, condition & action buttons
The bigger change can be found in the buttons to add a trigger, conditions,
or actions to your automation. This change was not just aimed at new users
but also long-time users.
All these buttons are used to give a dropdown that allows you to select the
type of trigger, condition, or action you want to add. This dropdown has been
replaced by a new dialog similar to the one we just saw for the building blocks.
Like the building block, it describes what each trigger, condition,
or action does. These descriptions are important, as they help you understand
what they do.
<img class="no-shadow" src='/images/blog/2024-01/add-trigger-dialog.png' alt='Screenshot showing the new add trigger dialog, which displayed the most common triggers first.'>
If you add an element, we will first show you the most used
triggers/conditions/actions by our community. We now have all others neatly
grouped. For actions, we took it a step further and unified them with
service calls.
### Unified actions
If you have been using Home Assistant for a while, you are probably familiar
with the “service call”-action that you can add to your automation. But,
honestly, what is a “service call”? It is a bit of a technical term that is
especially confusing for newer users. You just want to turn on a light, right?
This release unifies those “service calls” with all other actions, meaning
there is no “service call” anymore; that layer has been refactored from the UI.
Instead, you add an action and select the action you want to take, for example,
turn on a light.
<img class="no-shadow" src='/images/blog/2024-01/add-light-action.png' alt='Screenshot showing the new add action dialog, which now shows all possible actions, including services.'>
This means that if you add an action, you see all actions (including all
service calls), categorized, with description, and searchable! Being able
to search through all available actions is a huge improvement.
<img class="no-shadow" src='/images/blog/2024-01/add-action-search.png' alt='Screenshot showing the new add action dialog utilizing the search function to find whatever you need.'>
By default, just like with the triggers and conditions, we show you the most
used actions first and the actions for the entities you have on your system.
All others are neatly grouped by integration in the **Other actions** section.
<img class="no-shadow" src='/images/blog/2024-01/add-action-other-integrations.png' alt='Screenshot showing the new add action dialog that neatly groups all other actions that integrations provide.'>
## Description & due date support for to-do list items
The to-do list integration keeps getting better and better. This release adds
support for descriptions and due dates!
If the integration you are using supports it, you can now add descriptions to
each task on your list. It fully supports the Markdown markup to add links,
bold text, etc. If due dates (or due date + time) are supported, you can
set these.
<img class="no-shadow" src='/images/blog/2024-01/todo-dialog.png' alt='Screenshot showing the new to-do item dialog, where you now can set a description and a URL.'>
As shown in the screenshot above, there is a whole new dialog to adjust
your to-do item. But this is not the only change. The list itself has been
improved as well.
<img class="no-shadow" src='/images/blog/2024-01/todo-new-dashboard.png' alt='Screenshot showing the improve to-do dashboard, showing descriptions and highlighting overdue items.'>
It is much cleaner, all big text boxes are gone, and each item is nicely
formatted, including an excerpt of the description and the due date. If the due
date is overdue, it will be highlighted.
## New entity type: Valve
A brand new entity type has been added to Home Assistant: Valve!
Integrations can use this entity type to expose valves, such as a valve on
a radiator, pool, sprinkler system, and main house gas or water line.
<img class="no-shadow" src='/images/blog/2024-01/valve-entity-type.png' alt='Screenshot showing a valve entity in the Home Assistant UI.'>
Currently, the [Shelly integration] supports it and now provides a `valve` entity
for the Valve addon for Shelly Gas. Additionally, support for it has been
added to [MQTT], and the valve entities also work with Amazon Alexa
and Google Assistant.
Tip: Do you have a switch entity that controls a valve? You can now change the
entity type to valve in the entity settings.
[Shelly integration]: /integrations/shelly
[MQTT]: integrations/valve.mqtt
## Swappable current/target on thermostat & humidifier cards
By popular demand, the thermostat and humidifier cards now support setting
current temperature/humidity as the primary information to show on the
card.
You can enable the **show current temperature as primary information** option
in the card, which will result in the target temperature being swapped with the
current temperature in the card.
<img class="no-shadow" src='/images/blog/2024-01/climate-card-change-primary-temperature.png' alt='Screenshot showing two thermostat cards. One has the setpoint as a primary temperature, the other the current temperature.'>
## New card features
Last year, we saw many new features added to the cards, so let's start
the new year with some more!
[@Quentame] added the climate fan mode card feature. This feature can be
used with both the thermostat and the tile card:
<img class="no-shadow" src='/images/blog/2024-01/climate-fan-card-feature.png' alt='Screenshot showing the new fan mode card feature that can be used on the tile and thermostat cards.'>
Also new is the update actions card feature. This addition by [@piitaya] allows
you to add buttons to a card to trigger update actions when pressed.
<img class="no-shadow" src='/images/blog/2024-01/update-card-feature.png' alt='Screenshot showing the new update card feature the can be used on the tile card.'>
[@piitaya]: https://github.com/piitaya
[@Quentame]: https://github.com/Quentame
## Other noteworthy changes
There are many more improvements in this release; here are some of the other
noteworthy changes this release:
- Two brand new [template functions] have been added this release: `median` and
`statistical_mode`. Thanks, [@TheFes]!
- [@bieniu] added support for the brand new Shelly 3rd generation devices to
the [Shelly] integration. Nice!
- A long-time shutdown bug has been fixed: You can now run automations triggered
when Home Assistant shuts down. This could, for example, be used to send
yourself a notification when that happens. Thanks, [@tetele]!
- Created your own fan controller using [ESPHome]? You can now add preset modes
to it! Thanks, [@mill1000]!
- The [ping] integration now has the option to configure the number of seconds
that must elapse before considering a disconnected device "not at home".
Awesome, [@jpbede]!
- Looking for the ZAMG integration? It has been renamed to [GeoSphere Austria].
Thanks, [@killer0071234]!
- Got one of those Sonos amps? [@jjlawren] added support for the subwoofer
crossover setting to the [Sonos] integration. Nice!
- [@tkdrob] added support for the new calendar entity to the [Radarr] integration.
So you can see the release schedules straight from Home Assistant. Awesome!
- You can now configure the minimal number of samples the [trend] helper uses.
It allows you to make it less sensitive when there is not that much data.
Thanks, [@jpbede]!
- Got cold toes in bed? [@kbickar] to the rescue! He added support for
foot warmers to the [SleepIQ] integration. Nice!
[@bieniu]: https://github.com/bieniu
[@jjlawren]: https://github.com/jjlawren
[@jpbede]: https://github.com/jpbede
[@kbickar]: https://github.com/kbickar
[@killer0071234]: https://github.com/killer0071234
[@mill1000]: https://github.com/mill1000
[@tetele]: https://github.com/tetele
[@TheFes]: https://github.com/TheFes
[@tkdrob]: https://github.com/tkdrob
[ESPHome]: /integrations/esphome
[GeoSphere Austria]: /integrations/zamg
[ping]: /integrations/ping
[Radarr]: /integrations/radarr
[Shelly]: /integrations/shelly
[SleepIQ]: /integrations/sleepiq
[Sonos]: /integrations/sonos
[template functions]: /docs/configuration/templating/#numeric-functions-and-filters
[trend]: /integrations/trend
## New integrations
We welcome the following new integrations in this release:
- **[A. O. Smith]**, added by [@bdr99]<br />
Integrate and control your A. O. Smith water heater.
- **[Blue Current]**, added by [@Floris272]<br />
Monitor your Blue Current EV charger charge point(s).
- **[DROP]**, added by [@pfrazer]<br />
Manage your DROP Smart Water System with Home Assistant.
- **[Flexit Nordic (BACnet)]**, added by [@lellky]<br />
Control and monitor your Flexit Nordic series air handling units.
- **[Holiday]**, added by [@jrieger]<br />
Add holiday calendars to Home Assistant for powering automations.
- **[Midea CCM15 AC Controller]**, added by [@ocalvo]<br />
Use your AC connected to a Midea CCM15 AC Controller.
- **[OSO Energy]**, added by [@osohotwateriot]<br />
Use your OSO Energy water heater with Home Assistant.
- **[Sun WEG]**, added by [@rokam]<br />
Collect and monitor energy production data from your Sun WEG inverter.
- **[Tailwind]**, added by [@frenck]<br />
Operate your garage door openers connected to a Tailwind smart garage door controller.
- **[Tessie]**, added by [@Bre77]<br />
Integrate, monitor and control your Tesla vehicle connected to the Tessie platform.
- **[Refoss]**, added by [@ashionky]<br />
Use your Refoss smart devices directly with Home Assistant.
- **[Valve]**, added by [@cibernox]<br />
An entity type for valves, which can be used by integrations to expose valves.
- **[Vogel's MotionMount]**, added by [@RJPoelstra]<br />
Control the position of your Vogel's MotionMount TV mount.
[@ashionky]: https://github.com/ashionky
[@bdr99]: https://github.com/bdr99
[@Bre77]: https://github.com/Bre77
[@cibernox]: https://github.com/cibernox
[@Floris272]: https://github.com/Floris272
[@frenck]: https://github.com/frenck
[@jrieger]: https://github.com/jrieger
[@lellky]: https://github.com/lellky
[@ocalvo]: https://github.com/ocalvo
[@osohotwateriot]: https://github.com/osohotwateriot
[@pfrazer]: https://github.com/pfrazer
[@RJPoelstra]: https://github.com/RJPoelstra
[@rokam]: https://github.com/rokam
[A. O. Smith]: /integrations/aosmith
[Blue Current]: /integrations/blue_current
[DROP]: /integrations/drop_connect
[Flexit Nordic (BACnet)]: /integrations/flexit_bacnet
[Holiday]: /integrations/holiday
[Midea CCM15 AC Controller]: /integrations/ccm15
[OSO Energy]: /integrations/osoenergy
[Refoss]: /integrations/refoss
[Sun WEG]: /integrations/sunweg
[Tailwind]: /integrations/tailwind
[Tessie]: /integrations/tessie
[Valve]: /integrations/valve
[Vogel's MotionMount]: /integrations/motionmount
This release also has a new virtual integration. Virtual integrations are stubs
that are handled by other (existing) integrations to help with findability.
The following virtual integrations have been added:
- **[AEP Ohio]**, provided by [Opower]
- **[AEP Texas]**, provided by [Opower]
- **[Appalachian Power]**, provided by [Opower]
- **[Fujitsu anywAIR]**, provided by [Advantage Air]
- **[Indiana Michigan Power]**, provided by [Opower]
- **[Kentucky Power]**, provided by [Opower]
- **[Public Service Company of Oklahoma (PSO)]**, provided by [Opower]
- **[Seattle City Light]**, provided by [Opower]
- **[Southwestern Electric Power Company (SWEPCO)]**, provided by [Opower]
[Advantage Air]: /integrations/advantage_air
[AEP Ohio]: /integrations/aep_ohio
[AEP Texas]: /integrations/aep_texas
[Appalachian Power]: /integrations/appalachianpower
[Fujitsu anywAIR]: /integrations/fujitsu_anywair
[Indiana Michigan Power]: /integrations/indianamichiganpower
[Kentucky Power]: /integrations/kentuckypower
[Opower]: /integrations/opower
[Public Service Company of Oklahoma (PSO)]: /integrations/psoklahoma
[Seattle City Light]: /integrations/scl
[Southwestern Electric Power Company (SWEPCO)]: /integrations/swepco
## Integrations now available to set up from the UI
The following integrations are now available via the Home Assistant UI:
- **[Netgear LTE]**, done by [@tkdrob]
- **[StreamLabs]**, done by [@joostlek]
- **[Suez Water]**, done by [@joostlek]
- **[Swiss public transport]**, done by [@miaucl]
- **[System Monitor]**, done by [@gjohansson-ST]
- **[Trend]**, done by [@jpbede]
[@gjohansson-ST]: https://github.com/gjohansson-ST
[@joostlek]: https://github.com/joostlek
[@jpbede]: https://github.com/jpbede
[@miaucl]: https://github.com/miaucl
[@tkdrob]: https://github.com/tkdrob
[Netgear LTE]: /integrations/netgear_lte
[StreamLabs]: /integrations/streamlabswater
[Suez Water]: /integrations/suez_water
[Swiss public transport]: /integrations/swiss_public_transport
[System Monitor]: /integrations/systemmonitor
[Trend]: /integrations/trend
## Need help? Join the community!
Home Assistant has a great community of users who are all more than willing
to help each other out. So, join us!
Our very active [Discord chat server](/join-chat) is an excellent place to be
at, and don't forget to join our amazing [forums](https://community.home-assistant.io/).
Found a bug or issue? Please report it in our [issue tracker](https://github.com/home-assistant/core/issues),
to get it fixed! Or, check [our help page](/help) for guidance for more
places you can go.
Are you more into email? [Sign-up for our Building the Open Home Newsletter](/newsletter)
to get the latest news about features, things happening in our community and
other news about building an Open Home; straight into your inbox.
## Backward-incompatible changes
{% details "Blink" %}
The service calls of Blink have been adjusted. This affects
`blink.trigger_camera`, `blink.save_video` and `blink.save_recent_clips`.
This change will require these service calls to be updated with a `target` for
the camera and by removing `name` from `data` of the blink service calls.
For example, service call before 2023.11:
```yaml
service: blink.save_video
data:
name: Front door
filename: test.mp4
```
Service call after 2023.11 and before 2024.1:
```yaml
service: blink.save_video
data:
device_id: 87dc3b85c18ee84f8c322a95e8230eb2
name: Front door
filename: test.mp4
```
New service call:
```yaml
service: blink.save_video
target:
entity_id:
- camera.front_door
data:
filename: test.mp4
```
---
The `blink.send_pin` service now uses an integration/configuration entry selector:
Example service call before 2023.11:
```yaml
service: blink.send_pin
data:
pin: "1234"
```
Service call after 2023.11 and before 2024.1:
```yaml
service: blink.send_pin
data:
pin: "1234"
device_id: 87dc3b85c18ee84f8c322a95e8230eb2
```
New service call:
```yaml
service: blink.send_pin
data:
config_entry_id: a1bee602deade2b09bc522749bbce48e
pin: "1234"
```
---
The `blink.blink_update` service is deprecated and will be removed in 2024.7.0.
Use the `homeassistant.update_entity` service instead.
([@mkmer] - [#105413]) ([documentation](/integrations/blink))
[@mkmer]: https://github.com/mkmer
[#105413]: https://github.com/home-assistant/core/pull/105413
{% enddetails %}
{% details "Home Assistant shutdown event" %}
The event key in the (undocumented) trigger data for the `homeassistant` trigger
platform is now the string `shutdown` for a `homeassistant` trigger configured
to fire on shutdown instead of an `Event` object.
([@tetele] - [#91165]) ([documentation](/integrations/homeassistant))
[@tetele]: https://github.com/tetele
[#91165]: https://github.com/home-assistant/core/pull/91165
{% enddetails %}
{% details "Modbus" %}
Setting `swap: none` has been removed from the Modbus configuration.
It is identical to omitting it: `swap:`.
([@janiversen] - [#104713]) ([documentation](/integrations/modbus))
[@janiversen]: https://github.com/janiversen
[#104713]: https://github.com/home-assistant/core/pull/104713
{% enddetails %}
{% details "PrusaLink" %}
- The printer state now contains several new statuses, most importantly
"attention", which always needs your intervention.
- Firmware 4.7.0 is now the minimum version for Prusa XL and MK4.
- Firmware 5.1.0 is now the minimum version for Prusa Mini since 4.7.x and 5.0.x
aren't available for the Mini.
([@Skaronator] - [#103396]) ([documentation](/integrations/prusalink))
[@Skaronator]: https://github.com/Skaronator
[#103396]: https://github.com/home-assistant/core/pull/103396
{% enddetails %}
{% details "Reolink" %}
The Reolink `Infrared lights in night mode` entity has been migrated from
the `light` to the `switch` domain.
This means the entity ID also changed, and automations and dashboards may need
to be adjusted to use the new entity ID.
If you want to go back to the light domain, use the
[switch_as_x "Show as" option](/integrations/switch_as_x/#change-device-type-of-a-switch-from-the-existing-entity)
on the new `Infrared lights in night mode` switch entity and select light.
([@starkillerOG] - [#105916]) ([documentation](/integrations/reolink))
[@starkillerOG]: https://github.com/starkillerOG
[#105916]: https://github.com/home-assistant/core/pull/105916
{% enddetails %}
{% details "Shelly" %}
The minimum supported firmware version for generation 1 devices is 1.11.0 (2021-07-15).
The minimum supported firmware version for generation 2 devices is 1.0.0 (2023-08-03).
You must update your devices to the firmware versions listed or newer.
([@bieniu] - [#105384]) ([documentation](/integrations/shelly))
[@bieniu]: https://github.com/bieniu
[#105384]: https://github.com/home-assistant/core/pull/105384
{% enddetails %}
If you are a custom integration developer and want to learn about breaking
changes and new features available for your integration: Be sure to follow our
[developer blog][devblog]. The following are the most notable for this release:
- [Changes to EntityDescription data classes](https://developers.home-assistant.io/blog/2023/12/11/entity-description-changes/)
- [Config entry now supports minor versions](https://developers.home-assistant.io/blog/2023/12/18/config-entry-minor-version/)
- [Deprecated constants create a log entry](https://developers.home-assistant.io/blog/2023/12/19/constant-deprecation/)
- [Deprecating all magic numbers for supported features](https://developers.home-assistant.io/blog/2023/12/28/support-feature-magic-numbers-deprecation/)
[devblog]: https://developers.home-assistant.io/blog/
## All changes
Of course, there is a lot more in this release. You can find a list of
all changes made here: [Full changelog for Home Assistant Core 2024.1](/changelogs/core-2024.1)

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 243 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 262 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 389 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 255 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 276 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 270 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 214 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 207 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 288 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 213 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 232 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 245 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 129 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 252 KiB