From 07715f3b71d18f8dd91272ae1dd17c75664f7824 Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Wed, 26 Jan 2022 19:57:34 +0100 Subject: [PATCH 001/148] Sync codebase with docs for 2022.2 --- CODEOWNERS | 70 +++++++++++-------- source/_integrations/aemet.markdown | 2 - source/_integrations/airvisual.markdown | 1 + source/_integrations/ambient_station.markdown | 1 + .../_integrations/aussie_broadband.markdown | 10 +-- source/_integrations/axis.markdown | 1 + source/_integrations/brother.markdown | 1 + source/_integrations/co2signal.markdown | 1 + source/_integrations/coinbase.markdown | 1 + source/_integrations/cpuspeed.markdown | 2 + source/_integrations/deconz.markdown | 1 + source/_integrations/dnsip.markdown | 2 + source/_integrations/doorbird.markdown | 3 +- source/_integrations/dsmr_reader.markdown | 2 +- source/_integrations/ecobee.markdown | 2 + source/_integrations/elgato.markdown | 1 + .../_integrations/evil_genius_labs.markdown | 1 + source/_integrations/flunearyou.markdown | 1 + source/_integrations/flux_led.markdown | 3 +- source/_integrations/fortios.markdown | 4 +- source/_integrations/fritz.markdown | 1 + source/_integrations/fritzbox.markdown | 1 + source/_integrations/github.markdown | 1 + source/_integrations/goodwe.markdown | 7 +- source/_integrations/guardian.markdown | 1 + .../_integrations/homekit_controller.markdown | 1 + source/_integrations/homewizard.markdown | 1 + source/_integrations/intellifire.markdown | 2 + source/_integrations/iqvia.markdown | 1 + source/_integrations/knx.markdown | 1 + source/_integrations/konnected.markdown | 3 +- source/_integrations/lametric.markdown | 1 + source/_integrations/launch_library.markdown | 3 +- source/_integrations/lookin.markdown | 1 + source/_integrations/luftdaten.markdown | 2 + source/_integrations/mazda.markdown | 1 + source/_integrations/mobile_app.markdown | 2 +- source/_integrations/nam.markdown | 1 + source/_integrations/nanoleaf.markdown | 1 + source/_integrations/nest.markdown | 1 + source/_integrations/netatmo.markdown | 1 + source/_integrations/nmap_tracker.markdown | 2 - source/_integrations/notion.markdown | 1 + source/_integrations/onvif.markdown | 1 + source/_integrations/open_meteo.markdown | 1 + source/_integrations/openuv.markdown | 1 + source/_integrations/overkiz.markdown | 5 +- source/_integrations/philips_js.markdown | 1 + source/_integrations/proxmoxve.markdown | 1 - source/_integrations/pvoutput.markdown | 2 + source/_integrations/qnap.markdown | 2 - .../_integrations/rainforest_eagle.markdown | 1 + source/_integrations/rainmachine.markdown | 1 + source/_integrations/rdw.markdown | 1 + source/_integrations/recollect_waste.markdown | 1 + source/_integrations/renault.markdown | 1 + source/_integrations/repetier.markdown | 1 + source/_integrations/ridwell.markdown | 2 + source/_integrations/roku.markdown | 1 + source/_integrations/rtsp_to_webrtc.markdown | 1 - source/_integrations/screenlogic.markdown | 1 + source/_integrations/sensibo.markdown | 2 + source/_integrations/shelly.markdown | 1 + source/_integrations/smhi.markdown | 2 + source/_integrations/solax.markdown | 1 + source/_integrations/soma.markdown | 1 + source/_integrations/sonos.markdown | 1 + source/_integrations/statistics.markdown | 1 + source/_integrations/stookalert.markdown | 1 + source/_integrations/switcher_kis.markdown | 1 + source/_integrations/synology_dsm.markdown | 2 + source/_integrations/tado.markdown | 1 - source/_integrations/tailscale.markdown | 1 + source/_integrations/tibber.markdown | 1 + source/_integrations/tile.markdown | 1 + .../_integrations/trafikverket_train.markdown | 1 + .../trafikverket_weatherstation.markdown | 1 + source/_integrations/tuya.markdown | 2 + source/_integrations/twentemilieu.markdown | 1 + source/_integrations/twinkly.markdown | 2 + source/_integrations/ubus.markdown | 2 - source/_integrations/unifi.markdown | 1 + source/_integrations/unifiprotect.markdown | 4 +- source/_integrations/uptimerobot.markdown | 2 +- source/_integrations/vallox.markdown | 3 + source/_integrations/verisure.markdown | 1 + source/_integrations/vesync.markdown | 2 +- source/_integrations/vicare.markdown | 3 +- source/_integrations/vlc_telnet.markdown | 2 +- source/_integrations/watttime.markdown | 1 + source/_integrations/webostv.markdown | 1 + source/_integrations/whois.markdown | 3 +- .../_integrations/yamaha_musiccast.markdown | 1 + source/_integrations/yeelight.markdown | 1 - source/_integrations/zeroconf.markdown | 2 +- source/_integrations/zha.markdown | 2 +- source/_integrations/zwave_js.markdown | 1 + 97 files changed, 159 insertions(+), 69 deletions(-) diff --git a/CODEOWNERS b/CODEOWNERS index 2cb7c511164..3e9b003903c 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -14,7 +14,6 @@ source/_integrations/acmeda.markdown @atmurray source/_integrations/adax.markdown @danielhiversen source/_integrations/adguard.markdown @frenck source/_integrations/advantage_air.markdown @Bre77 -source/_integrations/aemet.markdown @noltari source/_integrations/agent_dvr.markdown @ispysoftware source/_integrations/airly.markdown @bieniu source/_integrations/airnow.markdown @asymworks @@ -32,7 +31,7 @@ source/_integrations/ambiclimate.markdown @danielhiversen source/_integrations/ambient_station.markdown @bachya source/_integrations/amcrest.markdown @flacjacket source/_integrations/analytics.markdown @home-assistant/core @ludeeus -source/_integrations/androidtv.markdown @JeffLIrion +source/_integrations/androidtv.markdown @JeffLIrion @ollo69 source/_integrations/apache_kafka.markdown @bachya source/_integrations/api.markdown @home-assistant/core source/_integrations/apple_tv.markdown @postlund @@ -41,6 +40,7 @@ source/_integrations/aprs.markdown @PhilRW source/_integrations/arcam_fmj.markdown @elupus source/_integrations/arest.markdown @fabaff source/_integrations/arris_tg2492lg.markdown @vanbalken +source/_integrations/aseko_pool_live.markdown @milanmeu source/_integrations/asuswrt.markdown @kennedyshead @ollo69 source/_integrations/atag.markdown @MatsNL source/_integrations/aten_pe.markdown @mtdcr @@ -48,6 +48,7 @@ source/_integrations/atome.markdown @baqs source/_integrations/august.markdown @bdraco source/_integrations/aurora.markdown @djtimca source/_integrations/aurora_abb_powerone.markdown @davet2001 +source/_integrations/aussie_broadband.markdown @nickw444 @Bre77 source/_integrations/auth.markdown @home-assistant/core source/_integrations/automation.markdown @home-assistant/core source/_integrations/avea.markdown @pattyland @@ -97,7 +98,7 @@ source/_integrations/coolmaster.markdown @OnFreund source/_integrations/coronavirus.markdown @home-assistant/core source/_integrations/counter.markdown @fabaff source/_integrations/cover.markdown @home-assistant/core -source/_integrations/cpuspeed.markdown @fabaff +source/_integrations/cpuspeed.markdown @fabaff @frenck source/_integrations/crownstone.markdown @Crownstone @RicArch97 source/_integrations/cups.markdown @fabaff source/_integrations/daikin.markdown @fredrike @@ -117,7 +118,8 @@ source/_integrations/dht.markdown @thegardenmonkey source/_integrations/digital_ocean.markdown @fabaff source/_integrations/discogs.markdown @thibmaek source/_integrations/dlna_dmr.markdown @StevenLooman @chishm -source/_integrations/doorbird.markdown @oblogic7 @bdraco +source/_integrations/dnsip.markdown @gjohansson-ST +source/_integrations/doorbird.markdown @oblogic7 @bdraco @flacjacket source/_integrations/dsmr.markdown @Robbie1221 @frenck source/_integrations/dsmr_reader.markdown @depl0y source/_integrations/dunehd.markdown @bieniu @@ -133,6 +135,7 @@ source/_integrations/egardia.markdown @jeroenterheerdt source/_integrations/eight_sleep.markdown @mezz64 @raman325 source/_integrations/elgato.markdown @frenck source/_integrations/elkm1.markdown @gwww @bdraco +source/_integrations/elmax.markdown @albertogeniola source/_integrations/elv.markdown @majuss source/_integrations/emby.markdown @mezz64 source/_integrations/emoncms.markdown @borpin @@ -166,14 +169,14 @@ source/_integrations/flo.markdown @dmulcahey source/_integrations/flock.markdown @fabaff source/_integrations/flume.markdown @ChrisMandich @bdraco source/_integrations/flunearyou.markdown @bachya -source/_integrations/flux_led.markdown @icemanch +source/_integrations/flux_led.markdown @icemanch @bdraco 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/freebox.markdown @hacf-fr @Quentame source/_integrations/freedompro.markdown @stefano055415 -source/_integrations/fritz.markdown @mammuth @AaronDavidSchneider @chemelli74 +source/_integrations/fritz.markdown @mammuth @AaronDavidSchneider @chemelli74 @mib1185 source/_integrations/fritzbox.markdown @mib1185 @flabbamann source/_integrations/fronius.markdown @nielstron @farmio source/_integrations/frontend.markdown @home-assistant/frontend @@ -191,6 +194,7 @@ source/_integrations/gitter.markdown @fabaff source/_integrations/glances.markdown @fabaff @engrbm87 source/_integrations/goalzero.markdown @tkdrob source/_integrations/gogogate2.markdown @vangorra @bdraco +source/_integrations/goodwe.markdown @mletenay @starkillerOG source/_integrations/google_assistant.markdown @home-assistant/cloud source/_integrations/google_cloud.markdown @lufton source/_integrations/gpsd.markdown @fabaff @@ -217,6 +221,7 @@ source/_integrations/homeassistant.markdown @home-assistant/core source/_integrations/homekit.markdown @bdraco source/_integrations/homekit_controller.markdown @Jc2k @bdraco source/_integrations/homematic.markdown @pvizeli @danielperna84 +source/_integrations/homewizard.markdown @DCSBL source/_integrations/honeywell.markdown @rdfurman source/_integrations/http.markdown @home-assistant/core source/_integrations/huawei_lte.markdown @scop @fphammerle @@ -236,12 +241,14 @@ source/_integrations/image.markdown @home-assistant/core source/_integrations/incomfort.markdown @zxdavb source/_integrations/influxdb.markdown @fabaff @mdegat01 source/_integrations/input_boolean.markdown @home-assistant/core +source/_integrations/input_button.markdown @home-assistant/core source/_integrations/input_datetime.markdown @home-assistant/core source/_integrations/input_number.markdown @home-assistant/core source/_integrations/input_select.markdown @home-assistant/core source/_integrations/input_text.markdown @home-assistant/core source/_integrations/insteon.markdown @teharris1 source/_integrations/integration.markdown @dgomes +source/_integrations/intellifire.markdown @jeeftor source/_integrations/intesishome.markdown @jnimmo source/_integrations/ios.markdown @robbiet480 source/_integrations/iotawatt.markdown @gtdiehl @jyavenard @@ -263,12 +270,12 @@ source/_integrations/keyboard_remote.markdown @bendavid @lanrat source/_integrations/kmtronic.markdown @dgomes source/_integrations/knx.markdown @Julius2342 @farmio @marvin-w source/_integrations/kodi.markdown @OnFreund @cgtobi -source/_integrations/konnected.markdown @heythisisnate @kit-klein +source/_integrations/konnected.markdown @heythisisnate source/_integrations/kostal_plenticore.markdown @stegm source/_integrations/kraken.markdown @eifinger source/_integrations/kulersky.markdown @emlove -source/_integrations/lametric.markdown @robbiet480 -source/_integrations/launch_library.markdown @ludeeus +source/_integrations/lametric.markdown @robbiet480 @frenck +source/_integrations/launch_library.markdown @ludeeus @DurgNomis-drol source/_integrations/lcn.markdown @alengwenus source/_integrations/lg_netcast.markdown @Drafteed source/_integrations/life360.markdown @pnbruckner @@ -278,9 +285,9 @@ source/_integrations/litterrobot.markdown @natekspencer source/_integrations/local_ip.markdown @issacg source/_integrations/logger.markdown @home-assistant/core source/_integrations/logi_circle.markdown @evanjd -source/_integrations/lookin.markdown @ANMalko +source/_integrations/lookin.markdown @ANMalko @bdraco source/_integrations/luci.markdown @mzdrale -source/_integrations/luftdaten.markdown @fabaff +source/_integrations/luftdaten.markdown @fabaff @frenck source/_integrations/lupusec.markdown @majuss source/_integrations/lutron.markdown @JonGilmore source/_integrations/lutron_caseta.markdown @swails @bdraco @@ -305,7 +312,7 @@ source/_integrations/mill.markdown @danielhiversen source/_integrations/min_max.markdown @fabaff source/_integrations/minecraft_server.markdown @elmurato source/_integrations/minio.markdown @tkislan -source/_integrations/mobile_app.markdown @robbiet480 +source/_integrations/mobile_app.markdown @home-assistant/core source/_integrations/modbus.markdown @adamchengtkc @janiversen @vzahradnik source/_integrations/modem_callerid.markdown @tkdrob source/_integrations/modern_forms.markdown @wonderslug @@ -337,8 +344,8 @@ source/_integrations/nextcloud.markdown @meichthys source/_integrations/nfandroidtv.markdown @tkdrob source/_integrations/nightscout.markdown @marciogranzotto source/_integrations/nilu.markdown @hfurubotten +source/_integrations/nina.markdown @DeerMaximum source/_integrations/nissan_leaf.markdown @filcole -source/_integrations/nmap_tracker.markdown @bdraco source/_integrations/nmbs.markdown @thibmaek source/_integrations/no_ip.markdown @fabaff source/_integrations/noaa_tides.markdown @jdelaney72 @@ -359,9 +366,11 @@ source/_integrations/ohmconnect.markdown @robbiet480 source/_integrations/ombi.markdown @larssont source/_integrations/omnilogic.markdown @oliver84 @djtimca @gentoosu source/_integrations/onboarding.markdown @home-assistant/core +source/_integrations/oncue.markdown @bdraco source/_integrations/ondilo_ico.markdown @JeromeHXP source/_integrations/onewire.markdown @garbled1 @epenet source/_integrations/onvif.markdown @hunterjm +source/_integrations/open_meteo.markdown @frenck source/_integrations/openerz.markdown @misialq source/_integrations/opengarage.markdown @danielhiversen source/_integrations/openhome.markdown @bazwilliams @@ -371,6 +380,7 @@ source/_integrations/openweathermap.markdown @fabaff @freekode @nzapponi source/_integrations/opnsense.markdown @mtreinish source/_integrations/orangepi_gpio.markdown @pascallj source/_integrations/oru.markdown @bvlaicu +source/_integrations/overkiz.markdown @imicknl @vlebourl @tetienne source/_integrations/ovo_energy.markdown @timmo001 source/_integrations/ozw.markdown @cgarwood @marcelveldt @MartinHjelmare source/_integrations/p1_monitor.markdown @klaasnicolaas @@ -394,14 +404,13 @@ source/_integrations/profiler.markdown @bdraco source/_integrations/progettihwsw.markdown @ardaseremet source/_integrations/prometheus.markdown @knyar source/_integrations/prosegur.markdown @dgomes -source/_integrations/proxmoxve.markdown @k4ds3 @jhollowe @Corbeno +source/_integrations/proxmoxve.markdown @jhollowe @Corbeno source/_integrations/ps4.markdown @ktnrg45 source/_integrations/push.markdown @dgomes -source/_integrations/pvoutput.markdown @fabaff +source/_integrations/pvoutput.markdown @fabaff @frenck source/_integrations/pvpc_hourly_pricing.markdown @azogue source/_integrations/qbittorrent.markdown @geoffreylagaisse source/_integrations/qld_bushfire.markdown @exxamalte -source/_integrations/qnap.markdown @colinodell source/_integrations/quantum_gateway.markdown @cisasteelersfan source/_integrations/qvr_pro.markdown @oblogic7 source/_integrations/qwikswitch.markdown @kellerza @@ -417,7 +426,7 @@ source/_integrations/recollect_waste.markdown @bachya source/_integrations/recorder.markdown @home-assistant/core source/_integrations/rejseplanen.markdown @DarkFox source/_integrations/renault.markdown @epenet -source/_integrations/repetier.markdown @MTrab +source/_integrations/repetier.markdown @MTrab @ShadowBr0ther source/_integrations/rflink.markdown @javicalle source/_integrations/rfxtrx.markdown @danielhiversen @elupus @RobBie1221 source/_integrations/ridwell.markdown @bachya @@ -430,6 +439,7 @@ source/_integrations/roomba.markdown @pschmitt @cyr-ius @shenxn source/_integrations/roon.markdown @pavoni source/_integrations/rpi_gpio_pwm.markdown @soldag source/_integrations/rpi_power.markdown @shenxn @swetoast +source/_integrations/rtsp_to_webrtc.markdown @allenporter source/_integrations/ruckus_unleashed.markdown @gabe565 source/_integrations/safe_mode.markdown @home-assistant/core source/_integrations/saj.markdown @fredericvl @@ -437,12 +447,13 @@ source/_integrations/samsungtv.markdown @escoand @chemelli74 source/_integrations/scene.markdown @home-assistant/core source/_integrations/schluter.markdown @prairieapps source/_integrations/scrape.markdown @fabaff -source/_integrations/screenlogic.markdown @dieselrabbit +source/_integrations/screenlogic.markdown @dieselrabbit @bdraco source/_integrations/script.markdown @home-assistant/core source/_integrations/search.markdown @home-assistant/core source/_integrations/select.markdown @home-assistant/core source/_integrations/sense.markdown @kbickar -source/_integrations/sensibo.markdown @andrey-git +source/_integrations/senseme.markdown @mikelawrence @bdraco +source/_integrations/sensibo.markdown @andrey-git @gjohansson-ST source/_integrations/sentry.markdown @dcramer @frenck source/_integrations/serial.markdown @fabaff source/_integrations/seven_segments.markdown @fabaff @@ -468,13 +479,14 @@ source/_integrations/smarthab.markdown @outadoc source/_integrations/smartthings.markdown @andrewsayre source/_integrations/smarttub.markdown @mdz source/_integrations/smarty.markdown @z0mbieprocess +source/_integrations/smhi.markdown @gjohansson-ST source/_integrations/sms.markdown @ocalvo source/_integrations/smtp.markdown @fabaff source/_integrations/solaredge.markdown @frenck source/_integrations/solaredge_local.markdown @drobtravels @scheric source/_integrations/solarlog.markdown @Ernst79 source/_integrations/solax.markdown @squishykid -source/_integrations/soma.markdown @ratsept +source/_integrations/soma.markdown @ratsept @sebfortier2288 source/_integrations/somfy.markdown @tetienne source/_integrations/sonarr.markdown @ctalkington source/_integrations/songpal.markdown @rytilahti @shenxn @@ -488,7 +500,8 @@ source/_integrations/sql.markdown @dgomes source/_integrations/squeezebox.markdown @rajlaud source/_integrations/srp_energy.markdown @briglx source/_integrations/starline.markdown @anonym-tsk -source/_integrations/statistics.markdown @fabaff +source/_integrations/statistics.markdown @fabaff @ThomDietrich +source/_integrations/steamist.markdown @bdraco source/_integrations/stiebel_eltron.markdown @fucm source/_integrations/stookalert.markdown @fwestenberg @frenck source/_integrations/stream.markdown @hunterjm @uvjustin @allenporter @@ -509,9 +522,8 @@ source/_integrations/synology_dsm.markdown @hacf-fr @Quentame @mib1185 source/_integrations/synology_srm.markdown @aerialls source/_integrations/syslog.markdown @fabaff source/_integrations/system_bridge.markdown @timmo001 -source/_integrations/tado.markdown @michaelarnauts @noltari +source/_integrations/tado.markdown @michaelarnauts source/_integrations/tag.markdown @balloob @dmulcahey -source/_integrations/tahoma.markdown @philklei source/_integrations/tailscale.markdown @frenck source/_integrations/tankerkoenig.markdown @guillempages source/_integrations/tapsaff.markdown @bazwilliams @@ -533,14 +545,13 @@ source/_integrations/totalconnect.markdown @austinmroczek source/_integrations/tplink.markdown @rytilahti @thegardenmonkey source/_integrations/traccar.markdown @ludeeus source/_integrations/tractive.markdown @Danielhiversen @zhulik @bieniu -source/_integrations/trafikverket_train.markdown @endor-force -source/_integrations/trafikverket_weatherstation.markdown @endor-force +source/_integrations/trafikverket_train.markdown @endor-force @gjohansson-ST +source/_integrations/trafikverket_weatherstation.markdown @endor-force @gjohansson-ST source/_integrations/transmission.markdown @engrbm87 @JPHutchins source/_integrations/tts.markdown @pvizeli source/_integrations/tuya.markdown @Tuya @zlinoliver @METISU @frenck source/_integrations/twentemilieu.markdown @frenck -source/_integrations/twinkly.markdown @dr1rrb -source/_integrations/ubus.markdown @noltari +source/_integrations/twinkly.markdown @dr1rrb @Robbie1221 source/_integrations/unifi.markdown @Kane610 source/_integrations/unifiled.markdown @florisvdk source/_integrations/unifiprotect.markdown @briis @AngellusMortis @bdraco @@ -553,7 +564,7 @@ source/_integrations/uptimerobot.markdown @ludeeus source/_integrations/usb.markdown @bdraco source/_integrations/usgs_earthquakes_feed.markdown @exxamalte source/_integrations/utility_meter.markdown @dgomes -source/_integrations/vallox.markdown @andre-richter +source/_integrations/vallox.markdown @andre-richter @slovdahl @viiru- source/_integrations/velbus.markdown @Cereal2nd @brefra source/_integrations/velux.markdown @Julius2342 source/_integrations/venstar.markdown @garbled1 @@ -580,6 +591,7 @@ source/_integrations/webostv.markdown @bendavid @thecode source/_integrations/websocket_api.markdown @home-assistant/core source/_integrations/wemo.markdown @esev source/_integrations/whirlpool.markdown @abmantis +source/_integrations/whois.markdown @frenck source/_integrations/wiffi.markdown @mampfes source/_integrations/wilight.markdown @leofig-rj source/_integrations/wirelesstag.markdown @sergeymaysak @@ -597,7 +609,7 @@ source/_integrations/xmpp.markdown @fabaff @flowolf source/_integrations/yale_smart_alarm.markdown @gjohansson-ST source/_integrations/yamaha_musiccast.markdown @vigonotion @micha91 source/_integrations/yandex_transport.markdown @rishatik92 @devbis -source/_integrations/yeelight.markdown @rytilahti @zewelor @shenxn @starkillerOG +source/_integrations/yeelight.markdown @zewelor @shenxn @starkillerOG source/_integrations/yeelightsunflower.markdown @lindsaymarkward source/_integrations/yi.markdown @bachya source/_integrations/youless.markdown @gjong diff --git a/source/_integrations/aemet.markdown b/source/_integrations/aemet.markdown index fe5bce9d3aa..a4382b17073 100644 --- a/source/_integrations/aemet.markdown +++ b/source/_integrations/aemet.markdown @@ -7,8 +7,6 @@ ha_category: - Sensor ha_iot_class: Cloud Polling ha_config_flow: true -ha_codeowners: - - '@noltari' ha_domain: aemet ha_platforms: - sensor diff --git a/source/_integrations/airvisual.markdown b/source/_integrations/airvisual.markdown index d205b439b6d..55ea9f0e3b0 100644 --- a/source/_integrations/airvisual.markdown +++ b/source/_integrations/airvisual.markdown @@ -10,6 +10,7 @@ ha_codeowners: ha_domain: airvisual ha_config_flow: true ha_platforms: + - diagnostics - sensor --- diff --git a/source/_integrations/ambient_station.markdown b/source/_integrations/ambient_station.markdown index ea555926294..46919a66408 100644 --- a/source/_integrations/ambient_station.markdown +++ b/source/_integrations/ambient_station.markdown @@ -11,6 +11,7 @@ ha_codeowners: ha_domain: ambient_station ha_platforms: - binary_sensor + - diagnostics - sensor --- diff --git a/source/_integrations/aussie_broadband.markdown b/source/_integrations/aussie_broadband.markdown index 8bacac2ad3e..616da313790 100644 --- a/source/_integrations/aussie_broadband.markdown +++ b/source/_integrations/aussie_broadband.markdown @@ -2,17 +2,17 @@ title: Aussie Broadband description: Instructions on how to integrate Aussie Broadband within Home Assistant. ha_category: -- Network -- Sensor + - Network + - Sensor ha_release: 2022.2 ha_iot_class: Cloud Polling ha_config_flow: true ha_codeowners: -- '@nickw444' -- '@Bre77' + - '@nickw444' + - '@Bre77' ha_domain: aussie_broadband ha_platforms: -- sensor + - sensor --- The Aussie Broadband integration displays various service metrics using the [Aussie Broadband API](https://myaussie-api.aussiebroadband.com.au). diff --git a/source/_integrations/axis.markdown b/source/_integrations/axis.markdown index ae894175cc0..e9cc5f8fb4d 100644 --- a/source/_integrations/axis.markdown +++ b/source/_integrations/axis.markdown @@ -20,6 +20,7 @@ ha_dhcp: true ha_platforms: - binary_sensor - camera + - diagnostics - light - switch --- diff --git a/source/_integrations/brother.markdown b/source/_integrations/brother.markdown index db3a927dc9d..8e5598be928 100644 --- a/source/_integrations/brother.markdown +++ b/source/_integrations/brother.markdown @@ -12,6 +12,7 @@ ha_domain: brother ha_quality_scale: platinum ha_zeroconf: true ha_platforms: + - diagnostics - sensor --- diff --git a/source/_integrations/co2signal.markdown b/source/_integrations/co2signal.markdown index 26efc46fb96..0c05344a9c5 100644 --- a/source/_integrations/co2signal.markdown +++ b/source/_integrations/co2signal.markdown @@ -7,6 +7,7 @@ ha_release: 0.87 ha_iot_class: Cloud Polling ha_domain: co2signal ha_platforms: + - diagnostics - sensor ha_config_flow: true --- diff --git a/source/_integrations/coinbase.markdown b/source/_integrations/coinbase.markdown index d9ca6393b24..7faf3bb95f9 100644 --- a/source/_integrations/coinbase.markdown +++ b/source/_integrations/coinbase.markdown @@ -8,6 +8,7 @@ ha_release: 0.61 ha_iot_class: Cloud Polling ha_domain: coinbase ha_platforms: + - diagnostics - sensor ha_codeowners: - '@tombrien' diff --git a/source/_integrations/cpuspeed.markdown b/source/_integrations/cpuspeed.markdown index edc2f6a3bc7..1605cf04f8c 100644 --- a/source/_integrations/cpuspeed.markdown +++ b/source/_integrations/cpuspeed.markdown @@ -8,9 +8,11 @@ ha_release: pre 0.7 ha_iot_class: Local Push ha_codeowners: - '@fabaff' + - '@frenck' ha_domain: cpuspeed ha_config_flow: true ha_platforms: + - diagnostics - sensor --- diff --git a/source/_integrations/deconz.markdown b/source/_integrations/deconz.markdown index 705380da8e2..6d71ea9255a 100644 --- a/source/_integrations/deconz.markdown +++ b/source/_integrations/deconz.markdown @@ -24,6 +24,7 @@ ha_ssdp: true ha_platforms: - alarm_control_panel - binary_sensor + - diagnostics - climate - cover - fan diff --git a/source/_integrations/dnsip.markdown b/source/_integrations/dnsip.markdown index 58ac84a299d..32b0ad9c823 100644 --- a/source/_integrations/dnsip.markdown +++ b/source/_integrations/dnsip.markdown @@ -9,6 +9,8 @@ ha_release: '0.40' ha_domain: dnsip ha_platforms: - sensor +ha_codeowners: + - '@gjohansson-ST' --- The DNS IP integration will expose an IP address, fetched via DNS resolution, as its value. It provides both IPv4 and IPv6 lookup as separate sensors depending on accessibility to resolvers. diff --git a/source/_integrations/doorbird.markdown b/source/_integrations/doorbird.markdown index f7c6465d497..68016716c27 100644 --- a/source/_integrations/doorbird.markdown +++ b/source/_integrations/doorbird.markdown @@ -11,11 +11,12 @@ ha_config_flow: true ha_codeowners: - '@oblogic7' - '@bdraco' + - '@flacjacket' ha_domain: doorbird ha_zeroconf: true ha_platforms: - - button - camera + - button --- The `doorbird` implementation allows you to integrate your [DoorBird](https://www.doorbird.com/) device in Home Assistant. diff --git a/source/_integrations/dsmr_reader.markdown b/source/_integrations/dsmr_reader.markdown index 98fc77d3a6c..1e270df1045 100644 --- a/source/_integrations/dsmr_reader.markdown +++ b/source/_integrations/dsmr_reader.markdown @@ -4,7 +4,7 @@ description: Instructions on how to integrate DSMR Reader. ha_category: - Energy - Sensor -ha_iot_class: Cloud Polling +ha_iot_class: Local Push ha_release: 0.103 ha_codeowners: - '@depl0y' diff --git a/source/_integrations/ecobee.markdown b/source/_integrations/ecobee.markdown index c13fda908ed..892f2de5e7f 100644 --- a/source/_integrations/ecobee.markdown +++ b/source/_integrations/ecobee.markdown @@ -22,6 +22,8 @@ ha_platforms: - notify - sensor - weather +ha_zeroconf: true +ha_homekit: true --- The `ecobee` integration lets you control and view sensor data from [ecobee](https://ecobee.com) thermostats. diff --git a/source/_integrations/elgato.markdown b/source/_integrations/elgato.markdown index bc38964c2f7..10d56b2d269 100644 --- a/source/_integrations/elgato.markdown +++ b/source/_integrations/elgato.markdown @@ -13,6 +13,7 @@ ha_domain: elgato ha_zeroconf: true ha_platforms: - button + - diagnostics - light --- diff --git a/source/_integrations/evil_genius_labs.markdown b/source/_integrations/evil_genius_labs.markdown index 00d09059204..a9216f0fc91 100644 --- a/source/_integrations/evil_genius_labs.markdown +++ b/source/_integrations/evil_genius_labs.markdown @@ -10,6 +10,7 @@ ha_codeowners: - '@balloob' ha_domain: evil_genius_labs ha_platforms: + - diagnostics - light --- diff --git a/source/_integrations/flunearyou.markdown b/source/_integrations/flunearyou.markdown index a94bbe5fa14..a83df3230cd 100644 --- a/source/_integrations/flunearyou.markdown +++ b/source/_integrations/flunearyou.markdown @@ -10,6 +10,7 @@ ha_codeowners: ha_domain: flunearyou ha_config_flow: true ha_platforms: + - diagnostics - sensor --- diff --git a/source/_integrations/flux_led.markdown b/source/_integrations/flux_led.markdown index 059d9406de1..781ebcbd375 100644 --- a/source/_integrations/flux_led.markdown +++ b/source/_integrations/flux_led.markdown @@ -15,11 +15,12 @@ ha_platforms: - button - light - number - - select - sensor + - select - switch ha_codeowners: - '@icemanch' + - '@bdraco' ha_quality_scale: platinum ha_config_flow: true ha_dhcp: true diff --git a/source/_integrations/fortios.markdown b/source/_integrations/fortios.markdown index d302b31d172..cc94800cbd3 100644 --- a/source/_integrations/fortios.markdown +++ b/source/_integrations/fortios.markdown @@ -1,8 +1,8 @@ --- title: FortiOS description: Instructions on how to use Fortinet FortiOS to track devices in Home Assistant. -ha_category: - - Presence Detection +ha_category: + - Presence Detection ha_iot_class: Local Polling ha_release: 0.97 ha_domain: fortios diff --git a/source/_integrations/fritz.markdown b/source/_integrations/fritz.markdown index 51eded2c278..6716a316355 100644 --- a/source/_integrations/fritz.markdown +++ b/source/_integrations/fritz.markdown @@ -12,6 +12,7 @@ ha_codeowners: - '@mammuth' - '@AaronDavidSchneider' - '@chemelli74' + - '@mib1185' ha_iot_class: Local Polling ha_platforms: - binary_sensor diff --git a/source/_integrations/fritzbox.markdown b/source/_integrations/fritzbox.markdown index 5be5c300b7e..310a1c6e07c 100644 --- a/source/_integrations/fritzbox.markdown +++ b/source/_integrations/fritzbox.markdown @@ -14,6 +14,7 @@ ha_config_flow: true ha_ssdp: true ha_platforms: - binary_sensor + - diagnostics - climate - light - sensor diff --git a/source/_integrations/github.markdown b/source/_integrations/github.markdown index e6f9860834f..0babed50e2d 100644 --- a/source/_integrations/github.markdown +++ b/source/_integrations/github.markdown @@ -8,6 +8,7 @@ ha_release: 0.88 ha_iot_class: Cloud Polling ha_domain: github ha_platforms: + - diagnostics - sensor ha_codeowners: - '@timmo001' diff --git a/source/_integrations/goodwe.markdown b/source/_integrations/goodwe.markdown index d19d3e4605b..39da7c38fab 100644 --- a/source/_integrations/goodwe.markdown +++ b/source/_integrations/goodwe.markdown @@ -1,5 +1,5 @@ --- -title: GoodWe +title: GoodWe Inverter description: Instructions on how to connect your GoodWe Inverter to Home Assistant. ha_category: - Sensor @@ -8,10 +8,13 @@ ha_iot_class: Local Polling ha_config_flow: true ha_release: 2022.2 ha_codeowners: - - "@mletenay" + - '@mletenay' + - '@starkillerOG' ha_domain: goodwe ha_platforms: + - number - sensor + - select --- The GoodWe integration will poll a [GoodWe](http://www.goodwe.com/) solar inverter over the local network and present its runtime values as sensors in Home Assistant. diff --git a/source/_integrations/guardian.markdown b/source/_integrations/guardian.markdown index 16caa94415d..b03e063816f 100644 --- a/source/_integrations/guardian.markdown +++ b/source/_integrations/guardian.markdown @@ -14,6 +14,7 @@ ha_domain: guardian ha_zeroconf: true ha_platforms: - binary_sensor + - diagnostics - sensor - switch ha_dhcp: true diff --git a/source/_integrations/homekit_controller.markdown b/source/_integrations/homekit_controller.markdown index f8d19a64ce2..0190b3193a9 100644 --- a/source/_integrations/homekit_controller.markdown +++ b/source/_integrations/homekit_controller.markdown @@ -27,6 +27,7 @@ ha_platforms: - binary_sensor - camera - button + - diagnostics - climate - cover - fan diff --git a/source/_integrations/homewizard.markdown b/source/_integrations/homewizard.markdown index 45c8a8f2b99..bc333b6a0f2 100644 --- a/source/_integrations/homewizard.markdown +++ b/source/_integrations/homewizard.markdown @@ -11,6 +11,7 @@ ha_codeowners: - '@DCSBL' ha_platforms: - sensor + - switch ha_zeroconf: true --- diff --git a/source/_integrations/intellifire.markdown b/source/_integrations/intellifire.markdown index 3414d2c07fa..7c622c5c514 100644 --- a/source/_integrations/intellifire.markdown +++ b/source/_integrations/intellifire.markdown @@ -9,6 +9,8 @@ ha_codeowners: - '@jeeftor' ha_domain: intellifire ha_config_flow: true +ha_platforms: + - binary_sensor --- IntelliFire Wi-Fi fireplace modules provide app-based and Alexa control to various fireplaces. The modules do expose an unencrypted HTTP endpoint on the network that provides status information. This integration will read that URL and create a set of sensors displaying the current fireplace state. diff --git a/source/_integrations/iqvia.markdown b/source/_integrations/iqvia.markdown index e7771363f15..a86426737ad 100644 --- a/source/_integrations/iqvia.markdown +++ b/source/_integrations/iqvia.markdown @@ -10,6 +10,7 @@ ha_codeowners: - '@bachya' ha_domain: iqvia ha_platforms: + - diagnostics - sensor --- diff --git a/source/_integrations/knx.markdown b/source/_integrations/knx.markdown index 1c776b03256..db01d874bd6 100644 --- a/source/_integrations/knx.markdown +++ b/source/_integrations/knx.markdown @@ -27,6 +27,7 @@ ha_quality_scale: silver ha_platforms: - binary_sensor - button + - diagnostics - climate - cover - fan diff --git a/source/_integrations/konnected.markdown b/source/_integrations/konnected.markdown index 8f8dc4df672..7525d481223 100644 --- a/source/_integrations/konnected.markdown +++ b/source/_integrations/konnected.markdown @@ -6,11 +6,10 @@ ha_category: - Binary Sensor - Switch - Sensor -ha_iot_class: Local Polling +ha_iot_class: Local Push ha_release: '0.70' ha_codeowners: - '@heythisisnate' - - '@kit-klein' ha_config_flow: true ha_domain: konnected ha_ssdp: true diff --git a/source/_integrations/lametric.markdown b/source/_integrations/lametric.markdown index 04a322e8f3b..1f0419cb3f6 100644 --- a/source/_integrations/lametric.markdown +++ b/source/_integrations/lametric.markdown @@ -8,6 +8,7 @@ ha_iot_class: Cloud Push ha_release: 0.49 ha_codeowners: - '@robbiet480' + - '@frenck' ha_domain: lametric ha_platforms: - notify diff --git a/source/_integrations/launch_library.markdown b/source/_integrations/launch_library.markdown index 41afe10ae53..97494a0b0c7 100644 --- a/source/_integrations/launch_library.markdown +++ b/source/_integrations/launch_library.markdown @@ -10,7 +10,9 @@ ha_codeowners: - '@DurgNomis-drol' ha_domain: launch_library ha_platforms: + - diagnostics - sensor +ha_config_flow: true --- The `launch_library` sensor will provide you with information about the next planned space launch. @@ -20,4 +22,3 @@ The `launch_library` sensor will provide you with information about the next pla The data this platform presents comes from [launchlibrary.net][launchlibrary]. [launchlibrary]: https://launchlibrary.net/ - diff --git a/source/_integrations/lookin.markdown b/source/_integrations/lookin.markdown index edd64fcf737..997bba8be34 100644 --- a/source/_integrations/lookin.markdown +++ b/source/_integrations/lookin.markdown @@ -10,6 +10,7 @@ ha_release: 2021.11 ha_iot_class: Local Push ha_codeowners: - '@ANMalko' + - '@bdraco' ha_domain: lookin ha_config_flow: true ha_platforms: diff --git a/source/_integrations/luftdaten.markdown b/source/_integrations/luftdaten.markdown index 465d6aa2cae..41ebce7ef01 100644 --- a/source/_integrations/luftdaten.markdown +++ b/source/_integrations/luftdaten.markdown @@ -10,8 +10,10 @@ ha_config_flow: true ha_quality_scale: gold ha_codeowners: - '@fabaff' + - '@frenck' ha_domain: luftdaten ha_platforms: + - diagnostics - sensor --- diff --git a/source/_integrations/mazda.markdown b/source/_integrations/mazda.markdown index a2a168ba61b..b5406689402 100644 --- a/source/_integrations/mazda.markdown +++ b/source/_integrations/mazda.markdown @@ -14,6 +14,7 @@ ha_codeowners: - '@bdr99' ha_domain: mazda ha_platforms: + - diagnostics - device_tracker - lock - sensor diff --git a/source/_integrations/mobile_app.markdown b/source/_integrations/mobile_app.markdown index 27439673049..b064648d54f 100644 --- a/source/_integrations/mobile_app.markdown +++ b/source/_integrations/mobile_app.markdown @@ -7,7 +7,7 @@ ha_release: 0.89 ha_config_flow: true ha_quality_scale: internal ha_codeowners: - - '@robbiet480' + - '@home-assistant/core' ha_domain: mobile_app ha_iot_class: Local Push ha_platforms: diff --git a/source/_integrations/nam.markdown b/source/_integrations/nam.markdown index 846269c4cf3..09dda88e64a 100644 --- a/source/_integrations/nam.markdown +++ b/source/_integrations/nam.markdown @@ -11,6 +11,7 @@ ha_codeowners: ha_domain: nam ha_platforms: - button + - diagnostics - sensor ha_quality_scale: platinum ha_zeroconf: true diff --git a/source/_integrations/nanoleaf.markdown b/source/_integrations/nanoleaf.markdown index 24344ae1f02..595fa4fe8b5 100644 --- a/source/_integrations/nanoleaf.markdown +++ b/source/_integrations/nanoleaf.markdown @@ -13,6 +13,7 @@ ha_release: 0.67 ha_domain: nanoleaf ha_platforms: - button + - diagnostics - light ha_zeroconf: true ha_ssdp: true diff --git a/source/_integrations/nest.markdown b/source/_integrations/nest.markdown index 75a38df640a..c9bddf02fc1 100644 --- a/source/_integrations/nest.markdown +++ b/source/_integrations/nest.markdown @@ -19,6 +19,7 @@ ha_dhcp: true ha_platforms: - binary_sensor - camera + - diagnostics - climate - sensor --- diff --git a/source/_integrations/netatmo.markdown b/source/_integrations/netatmo.markdown index 3dc3bd01a37..db0319a68c1 100644 --- a/source/_integrations/netatmo.markdown +++ b/source/_integrations/netatmo.markdown @@ -18,6 +18,7 @@ ha_domain: netatmo ha_homekit: true ha_platforms: - camera + - diagnostics - climate - light - sensor diff --git a/source/_integrations/nmap_tracker.markdown b/source/_integrations/nmap_tracker.markdown index a63762437a2..37993b3422c 100644 --- a/source/_integrations/nmap_tracker.markdown +++ b/source/_integrations/nmap_tracker.markdown @@ -9,8 +9,6 @@ ha_domain: nmap_tracker ha_platforms: - device_tracker ha_config_flow: true -ha_codeowners: - - '@bdraco' --- As an alternative to the router-based device tracking, it is possible to directly scan the network for devices by using Nmap. The IP addresses to scan can be specified in any format that Nmap understands, including the network-prefix notation (`192.168.1.1/24`) and the range notation (`192.168.1.1-255`). diff --git a/source/_integrations/notion.markdown b/source/_integrations/notion.markdown index ac37c7610c1..bfc4c53b5e3 100644 --- a/source/_integrations/notion.markdown +++ b/source/_integrations/notion.markdown @@ -13,6 +13,7 @@ ha_codeowners: ha_domain: notion ha_platforms: - binary_sensor + - diagnostics - sensor --- diff --git a/source/_integrations/onvif.markdown b/source/_integrations/onvif.markdown index 63b52c46d2d..edb03ee088e 100644 --- a/source/_integrations/onvif.markdown +++ b/source/_integrations/onvif.markdown @@ -12,6 +12,7 @@ ha_config_flow: true ha_platforms: - binary_sensor - camera + - button - sensor --- diff --git a/source/_integrations/open_meteo.markdown b/source/_integrations/open_meteo.markdown index 825e4716ccf..9c26e2f7aeb 100644 --- a/source/_integrations/open_meteo.markdown +++ b/source/_integrations/open_meteo.markdown @@ -10,6 +10,7 @@ ha_codeowners: - '@frenck' ha_domain: open_meteo ha_platforms: + - diagnostics - weather --- diff --git a/source/_integrations/openuv.markdown b/source/_integrations/openuv.markdown index 50765a0e7bb..13132915ec6 100644 --- a/source/_integrations/openuv.markdown +++ b/source/_integrations/openuv.markdown @@ -13,6 +13,7 @@ ha_codeowners: ha_domain: openuv ha_platforms: - binary_sensor + - diagnostics - sensor --- diff --git a/source/_integrations/overkiz.markdown b/source/_integrations/overkiz.markdown index 3e62a8c18fb..58cfef023c5 100644 --- a/source/_integrations/overkiz.markdown +++ b/source/_integrations/overkiz.markdown @@ -17,22 +17,23 @@ ha_release: 2022.2 ha_config_flow: true ha_iot_class: Cloud Polling ha_codeowners: - - '@tetienne' - '@imicknl' - '@vlebourl' + - '@tetienne' ha_domain: overkiz ha_dhcp: true ha_zeroconf: true ha_platforms: - binary_sensor - button + - diagnostics - cover - light - lock - number - scene - - select - sensor + - select - switch --- diff --git a/source/_integrations/philips_js.markdown b/source/_integrations/philips_js.markdown index cabd61f997a..b2eff1c0961 100644 --- a/source/_integrations/philips_js.markdown +++ b/source/_integrations/philips_js.markdown @@ -15,6 +15,7 @@ ha_platforms: - light - media_player - remote + - switch --- The `philips_js` platform allows you to control Philips TVs which expose the [jointSPACE](http://jointspace.sourceforge.net/) JSON-API. diff --git a/source/_integrations/proxmoxve.markdown b/source/_integrations/proxmoxve.markdown index 976f328efda..7bb8b278018 100644 --- a/source/_integrations/proxmoxve.markdown +++ b/source/_integrations/proxmoxve.markdown @@ -6,7 +6,6 @@ ha_category: ha_release: 0.103 ha_iot_class: Local Polling ha_codeowners: - - '@k4ds3' - '@jhollowe' - '@Corbeno' ha_domain: proxmoxve diff --git a/source/_integrations/pvoutput.markdown b/source/_integrations/pvoutput.markdown index 15ee252a46a..937868a78d4 100644 --- a/source/_integrations/pvoutput.markdown +++ b/source/_integrations/pvoutput.markdown @@ -11,7 +11,9 @@ ha_codeowners: ha_config_flow: true ha_domain: pvoutput ha_platforms: + - diagnostics - sensor +ha_quality_scale: platinum --- The PVOutput integration consumes information from [PVOutput](https://pvoutput.org/) which was uploaded by your solar photovoltaic (PV) system. diff --git a/source/_integrations/qnap.markdown b/source/_integrations/qnap.markdown index bc0662975c1..66d158da674 100644 --- a/source/_integrations/qnap.markdown +++ b/source/_integrations/qnap.markdown @@ -5,8 +5,6 @@ ha_category: - System Monitor ha_release: 0.38 ha_iot_class: Local Polling -ha_codeowners: - - '@colinodell' ha_domain: qnap ha_platforms: - sensor diff --git a/source/_integrations/rainforest_eagle.markdown b/source/_integrations/rainforest_eagle.markdown index 09765677da7..7496eea30b6 100644 --- a/source/_integrations/rainforest_eagle.markdown +++ b/source/_integrations/rainforest_eagle.markdown @@ -11,6 +11,7 @@ ha_codeowners: - '@jcalbert' ha_domain: rainforest_eagle ha_platforms: + - diagnostics - sensor ha_config_flow: true ha_dhcp: true diff --git a/source/_integrations/rainmachine.markdown b/source/_integrations/rainmachine.markdown index c9092cdc6f5..6fe9444df2e 100644 --- a/source/_integrations/rainmachine.markdown +++ b/source/_integrations/rainmachine.markdown @@ -14,6 +14,7 @@ ha_codeowners: ha_domain: rainmachine ha_platforms: - binary_sensor + - diagnostics - sensor - switch ha_zeroconf: true diff --git a/source/_integrations/rdw.markdown b/source/_integrations/rdw.markdown index ccb9bfd48b4..38c568c993b 100644 --- a/source/_integrations/rdw.markdown +++ b/source/_integrations/rdw.markdown @@ -14,6 +14,7 @@ ha_codeowners: ha_domain: rdw ha_platforms: - binary_sensor + - diagnostics - sensor --- diff --git a/source/_integrations/recollect_waste.markdown b/source/_integrations/recollect_waste.markdown index 643d4a23af7..2ef84e6134c 100644 --- a/source/_integrations/recollect_waste.markdown +++ b/source/_integrations/recollect_waste.markdown @@ -10,6 +10,7 @@ ha_codeowners: - '@bachya' ha_config_flow: true ha_platforms: + - diagnostics - sensor --- diff --git a/source/_integrations/renault.markdown b/source/_integrations/renault.markdown index 1e210b88b85..470b5ac2299 100644 --- a/source/_integrations/renault.markdown +++ b/source/_integrations/renault.markdown @@ -16,6 +16,7 @@ ha_domain: renault ha_platforms: - binary_sensor - button + - diagnostics - device_tracker - sensor - select diff --git a/source/_integrations/repetier.markdown b/source/_integrations/repetier.markdown index 38a37e93d7a..889e909a38a 100644 --- a/source/_integrations/repetier.markdown +++ b/source/_integrations/repetier.markdown @@ -8,6 +8,7 @@ ha_release: 0.94 ha_iot_class: Local Polling ha_codeowners: - '@MTrab' + - '@ShadowBr0ther' ha_domain: repetier ha_platforms: - sensor diff --git a/source/_integrations/ridwell.markdown b/source/_integrations/ridwell.markdown index 70110c66854..2c0c4614541 100644 --- a/source/_integrations/ridwell.markdown +++ b/source/_integrations/ridwell.markdown @@ -10,7 +10,9 @@ ha_codeowners: - '@bachya' ha_config_flow: true ha_platforms: + - diagnostics - sensor + - switch --- The Ridwell integration allows users to track waste recycling pickups scheduled with [Ridwell](https://www.ridwell.com). diff --git a/source/_integrations/roku.markdown b/source/_integrations/roku.markdown index 66e088745a3..f91547a104d 100644 --- a/source/_integrations/roku.markdown +++ b/source/_integrations/roku.markdown @@ -18,6 +18,7 @@ ha_ssdp: true ha_homekit: true ha_platforms: - binary_sensor + - diagnostics - media_player - remote - sensor diff --git a/source/_integrations/rtsp_to_webrtc.markdown b/source/_integrations/rtsp_to_webrtc.markdown index 24baaea0dc6..f150bc94967 100644 --- a/source/_integrations/rtsp_to_webrtc.markdown +++ b/source/_integrations/rtsp_to_webrtc.markdown @@ -6,7 +6,6 @@ ha_category: ha_config_flow: true ha_release: 2022.2 ha_iot_class: Local Push -ha_quality_scale: internal ha_codeowners: - '@allenporter' ha_domain: rtsp_to_webrtc diff --git a/source/_integrations/screenlogic.markdown b/source/_integrations/screenlogic.markdown index 8ef314b9667..6552630305d 100644 --- a/source/_integrations/screenlogic.markdown +++ b/source/_integrations/screenlogic.markdown @@ -13,6 +13,7 @@ ha_config_flow: true ha_dhcp: true ha_codeowners: - '@dieselrabbit' + - '@bdraco' ha_domain: screenlogic ha_platforms: - binary_sensor diff --git a/source/_integrations/sensibo.markdown b/source/_integrations/sensibo.markdown index f64a6ab99e1..9f4ceef1249 100644 --- a/source/_integrations/sensibo.markdown +++ b/source/_integrations/sensibo.markdown @@ -8,9 +8,11 @@ ha_iot_class: Cloud Polling ha_config_flow: true ha_codeowners: - '@andrey-git' + - '@gjohansson-ST' ha_domain: sensibo ha_platforms: - climate +ha_homekit: true --- Integrates [Sensibo](https://sensibo.com) Air Conditioning controller into Home Assistant. diff --git a/source/_integrations/shelly.markdown b/source/_integrations/shelly.markdown index 1f79b32e213..a2ca790db55 100644 --- a/source/_integrations/shelly.markdown +++ b/source/_integrations/shelly.markdown @@ -22,6 +22,7 @@ ha_zeroconf: true ha_platforms: - binary_sensor - button + - diagnostics - climate - cover - light diff --git a/source/_integrations/smhi.markdown b/source/_integrations/smhi.markdown index 28f644fc5c6..78ecf1c5071 100644 --- a/source/_integrations/smhi.markdown +++ b/source/_integrations/smhi.markdown @@ -10,6 +10,8 @@ ha_config_flow: true ha_domain: smhi ha_platforms: - weather +ha_codeowners: + - '@gjohansson-ST' --- The `smhi` integration adds support for the [SMHI.se](https://www.smhi.se/) web service as a source for meteorological data for your location. diff --git a/source/_integrations/solax.markdown b/source/_integrations/solax.markdown index 9c8771876d7..8604e1665cc 100644 --- a/source/_integrations/solax.markdown +++ b/source/_integrations/solax.markdown @@ -11,6 +11,7 @@ ha_codeowners: ha_domain: solax ha_platforms: - sensor +ha_config_flow: true --- The `solax` integration connects Home Assistant to Solax solar power inverters. Solax inverters may be connected to a home Wi-Fi network and expose a REST API. This integration retrieves information such as photovoltaic power production, battery levels and power, and how much power is being fed back into the grid. diff --git a/source/_integrations/soma.markdown b/source/_integrations/soma.markdown index cefb87e17b3..f205a4b7ed9 100644 --- a/source/_integrations/soma.markdown +++ b/source/_integrations/soma.markdown @@ -9,6 +9,7 @@ ha_config_flow: true ha_release: '0.100' ha_codeowners: - '@ratsept' + - '@sebfortier2288' ha_domain: soma ha_platforms: - cover diff --git a/source/_integrations/sonos.markdown b/source/_integrations/sonos.markdown index 2cdea4e003e..72d982d6cc6 100644 --- a/source/_integrations/sonos.markdown +++ b/source/_integrations/sonos.markdown @@ -15,6 +15,7 @@ ha_codeowners: ha_ssdp: true ha_platforms: - binary_sensor + - diagnostics - media_player - number - sensor diff --git a/source/_integrations/statistics.markdown b/source/_integrations/statistics.markdown index 6b613dcf36d..dd76cab4cb8 100644 --- a/source/_integrations/statistics.markdown +++ b/source/_integrations/statistics.markdown @@ -9,6 +9,7 @@ ha_release: '0.30' ha_quality_scale: internal ha_codeowners: - '@fabaff' + - '@ThomDietrich' ha_domain: statistics ha_platforms: - sensor diff --git a/source/_integrations/stookalert.markdown b/source/_integrations/stookalert.markdown index 8e792ebe977..ffe37429e82 100644 --- a/source/_integrations/stookalert.markdown +++ b/source/_integrations/stookalert.markdown @@ -13,6 +13,7 @@ ha_domain: stookalert ha_config_flow: true ha_platforms: - binary_sensor + - diagnostics --- The Stookalert integration queries the [RIVM Stookalert](https://www.rivm.nl/stookalert) API for unfavorable weather conditions or poor air quality. With a Stookalert, the RIVM calls on people not to burn wood. This can prevent health problems in people in the area. diff --git a/source/_integrations/switcher_kis.markdown b/source/_integrations/switcher_kis.markdown index 93230033fad..d0a0b607232 100644 --- a/source/_integrations/switcher_kis.markdown +++ b/source/_integrations/switcher_kis.markdown @@ -13,6 +13,7 @@ ha_platforms: - sensor - switch ha_config_flow: true +ha_quality_scale: platinum --- This `Switcher` integration allows you to control your [Switcher Devices](https://www.switcher.co.il/). diff --git a/source/_integrations/synology_dsm.markdown b/source/_integrations/synology_dsm.markdown index 74116d79ebb..376c1f9f151 100644 --- a/source/_integrations/synology_dsm.markdown +++ b/source/_integrations/synology_dsm.markdown @@ -16,6 +16,8 @@ ha_ssdp: true ha_platforms: - binary_sensor - camera + - button + - diagnostics - sensor - switch --- diff --git a/source/_integrations/tado.markdown b/source/_integrations/tado.markdown index 1b09bda080c..f37859d266c 100644 --- a/source/_integrations/tado.markdown +++ b/source/_integrations/tado.markdown @@ -13,7 +13,6 @@ ha_release: 0.41 ha_iot_class: Cloud Polling ha_codeowners: - '@michaelarnauts' - - '@noltari' ha_domain: tado ha_config_flow: true ha_homekit: true diff --git a/source/_integrations/tailscale.markdown b/source/_integrations/tailscale.markdown index aa4068171eb..0e3bb6c58f4 100644 --- a/source/_integrations/tailscale.markdown +++ b/source/_integrations/tailscale.markdown @@ -13,6 +13,7 @@ ha_codeowners: ha_domain: tailscale ha_platforms: - binary_sensor + - diagnostics - sensor ha_quality_scale: platinum --- diff --git a/source/_integrations/tibber.markdown b/source/_integrations/tibber.markdown index d3e7fd71dd1..b8fb2211662 100644 --- a/source/_integrations/tibber.markdown +++ b/source/_integrations/tibber.markdown @@ -13,6 +13,7 @@ ha_codeowners: ha_domain: tibber ha_config_flow: true ha_platforms: + - diagnostics - notify - sensor --- diff --git a/source/_integrations/tile.markdown b/source/_integrations/tile.markdown index ad1a9bf56be..b1fd53c4e4a 100644 --- a/source/_integrations/tile.markdown +++ b/source/_integrations/tile.markdown @@ -10,6 +10,7 @@ ha_codeowners: ha_domain: tile ha_config_flow: true ha_platforms: + - diagnostics - device_tracker --- diff --git a/source/_integrations/trafikverket_train.markdown b/source/_integrations/trafikverket_train.markdown index 49a326c4ae1..6038e4de159 100644 --- a/source/_integrations/trafikverket_train.markdown +++ b/source/_integrations/trafikverket_train.markdown @@ -8,6 +8,7 @@ ha_release: 0.96 ha_iot_class: Cloud Polling ha_codeowners: - '@endor-force' + - '@gjohansson-ST' ha_domain: trafikverket_train ha_platforms: - sensor diff --git a/source/_integrations/trafikverket_weatherstation.markdown b/source/_integrations/trafikverket_weatherstation.markdown index 6971df71739..87071698208 100644 --- a/source/_integrations/trafikverket_weatherstation.markdown +++ b/source/_integrations/trafikverket_weatherstation.markdown @@ -9,6 +9,7 @@ ha_config_flow: true ha_domain: trafikverket_weatherstation ha_codeowners: - '@endor-force' + - '@gjohansson-ST' ha_platforms: - sensor --- diff --git a/source/_integrations/tuya.markdown b/source/_integrations/tuya.markdown index 60fba6ba8fc..a27270d4a97 100644 --- a/source/_integrations/tuya.markdown +++ b/source/_integrations/tuya.markdown @@ -26,9 +26,11 @@ ha_codeowners: - '@METISU' - '@frenck' ha_platforms: + - alarm_control_panel - binary_sensor - camera - button + - diagnostics - climate - cover - fan diff --git a/source/_integrations/twentemilieu.markdown b/source/_integrations/twentemilieu.markdown index 6795f6015c4..9efcb757a29 100644 --- a/source/_integrations/twentemilieu.markdown +++ b/source/_integrations/twentemilieu.markdown @@ -11,6 +11,7 @@ ha_codeowners: - '@frenck' ha_domain: twentemilieu ha_platforms: + - diagnostics - sensor ha_quality_scale: platinum --- diff --git a/source/_integrations/twinkly.markdown b/source/_integrations/twinkly.markdown index 6d5cb600a04..7afb530ebdb 100644 --- a/source/_integrations/twinkly.markdown +++ b/source/_integrations/twinkly.markdown @@ -9,8 +9,10 @@ ha_domain: twinkly ha_iot_class: Local Polling ha_codeowners: - '@dr1rrb' + - '@Robbie1221' ha_platforms: - light +ha_dhcp: true --- The Twinkly integration allows you to control [Twinkly](https://twinkly.com/) LED string from Home Assistant. diff --git a/source/_integrations/ubus.markdown b/source/_integrations/ubus.markdown index 4ed1603edf2..65a531ac900 100644 --- a/source/_integrations/ubus.markdown +++ b/source/_integrations/ubus.markdown @@ -8,8 +8,6 @@ ha_iot_class: Local Polling ha_domain: ubus ha_platforms: - device_tracker -ha_codeowners: - - '@noltari' --- This is a presence detection scanner for [OpenWrt](https://openwrt.org/) using [ubus](https://wiki.openwrt.org/doc/techref/ubus). It scans for changes in `hostapd.*`, which will detect and report changes in devices connected to the access point on the router. diff --git a/source/_integrations/unifi.markdown b/source/_integrations/unifi.markdown index 2b03ef67c00..81b23f872d6 100644 --- a/source/_integrations/unifi.markdown +++ b/source/_integrations/unifi.markdown @@ -15,6 +15,7 @@ ha_codeowners: ha_domain: unifi ha_ssdp: true ha_platforms: + - diagnostics - device_tracker - sensor - switch diff --git a/source/_integrations/unifiprotect.markdown b/source/_integrations/unifiprotect.markdown index 7ebec9308c5..042ac33b0c8 100644 --- a/source/_integrations/unifiprotect.markdown +++ b/source/_integrations/unifiprotect.markdown @@ -26,14 +26,14 @@ ha_codeowners: ha_domain: unifiprotect ha_platforms: - binary_sensor - - button - camera + - button - light - lock - media_player - number - - select - sensor + - select - switch --- diff --git a/source/_integrations/uptimerobot.markdown b/source/_integrations/uptimerobot.markdown index c8f1c6403b8..27e22fb54c1 100644 --- a/source/_integrations/uptimerobot.markdown +++ b/source/_integrations/uptimerobot.markdown @@ -10,7 +10,7 @@ ha_codeowners: ha_domain: uptimerobot ha_platforms: - binary_sensor - - sensor + - diagnostics ha_quality_scale: platinum ha_config_flow: true --- diff --git a/source/_integrations/vallox.markdown b/source/_integrations/vallox.markdown index 4183e742401..4f213ae0456 100644 --- a/source/_integrations/vallox.markdown +++ b/source/_integrations/vallox.markdown @@ -9,10 +9,13 @@ ha_release: 0.96 ha_iot_class: Local Polling ha_domain: vallox ha_platforms: + - binary_sensor - fan - sensor ha_codeowners: - '@andre-richter' + - '@slovdahl' + - '@viiru-' --- The `vallox` integration lets you control any Vallox ventilation unit that is supported by the [vallox_websocket_api](https://github.com/yozik04/vallox_websocket_api) (follow the link for a list of supported units). diff --git a/source/_integrations/verisure.markdown b/source/_integrations/verisure.markdown index d3d9cc312e8..ab0e853b7a7 100644 --- a/source/_integrations/verisure.markdown +++ b/source/_integrations/verisure.markdown @@ -18,6 +18,7 @@ ha_platforms: - alarm_control_panel - binary_sensor - camera + - diagnostics - lock - sensor - switch diff --git a/source/_integrations/vesync.markdown b/source/_integrations/vesync.markdown index 43749fe82f9..e14019db1b2 100644 --- a/source/_integrations/vesync.markdown +++ b/source/_integrations/vesync.markdown @@ -16,8 +16,8 @@ ha_domain: vesync ha_platforms: - fan - light - - switch - sensor + - switch --- The `vesync` integration enables you to control smart switches and outlets connected to the VeSync App. diff --git a/source/_integrations/vicare.markdown b/source/_integrations/vicare.markdown index 9f6f8ec10f5..529fa8a51dd 100644 --- a/source/_integrations/vicare.markdown +++ b/source/_integrations/vicare.markdown @@ -10,10 +10,10 @@ ha_config_flow: true ha_domain: vicare ha_platforms: - binary_sensor + - button - climate - sensor - water_heater - - button ha_dhcp: true --- @@ -130,4 +130,3 @@ Additional data from ViCare is available as separate sensors. The sensors are au ## Button Button entities are available for triggering like a one-time charge of the water heater. - \ No newline at end of file diff --git a/source/_integrations/vlc_telnet.markdown b/source/_integrations/vlc_telnet.markdown index af74840b0ad..0afb7bde652 100644 --- a/source/_integrations/vlc_telnet.markdown +++ b/source/_integrations/vlc_telnet.markdown @@ -1,5 +1,5 @@ --- -title: VLC media player Telnet +title: VLC media player via Telnet description: Instructions on how to integrate VLC media player into Home Assistant using the telnet interface. ha_category: - Media Player diff --git a/source/_integrations/watttime.markdown b/source/_integrations/watttime.markdown index 0d5fa0a60d8..71f9cd5a406 100644 --- a/source/_integrations/watttime.markdown +++ b/source/_integrations/watttime.markdown @@ -10,6 +10,7 @@ ha_codeowners: - '@bachya' ha_config_flow: true ha_platforms: + - diagnostics - sensor --- diff --git a/source/_integrations/webostv.markdown b/source/_integrations/webostv.markdown index 16286b41209..5ff67295a10 100644 --- a/source/_integrations/webostv.markdown +++ b/source/_integrations/webostv.markdown @@ -15,6 +15,7 @@ ha_ssdp: true ha_platforms: - media_player - notify +ha_quality_scale: platinum --- The `webostv` platform allows you to control a [LG](https://www.lg.com/) webOS Smart TV. diff --git a/source/_integrations/whois.markdown b/source/_integrations/whois.markdown index e2c092a7818..e6d9d53775d 100644 --- a/source/_integrations/whois.markdown +++ b/source/_integrations/whois.markdown @@ -8,8 +8,9 @@ ha_iot_class: Cloud Polling ha_domain: whois ha_config_flow: true ha_codeowners: - - "@frenck" + - '@frenck' ha_platforms: + - diagnostics - sensor --- diff --git a/source/_integrations/yamaha_musiccast.markdown b/source/_integrations/yamaha_musiccast.markdown index 08ddd54e147..09dbd6b5e8b 100644 --- a/source/_integrations/yamaha_musiccast.markdown +++ b/source/_integrations/yamaha_musiccast.markdown @@ -14,6 +14,7 @@ ha_domain: yamaha_musiccast ha_platforms: - media_player - number + - select --- The Yamaha MusicCast integration allows you to control [Yamaha MusicCast Receivers](https://usa.yamaha.com/products/audio_visual/musiccast/index.html) from Home Assistant. diff --git a/source/_integrations/yeelight.markdown b/source/_integrations/yeelight.markdown index af51348ac63..61edb9dfc58 100644 --- a/source/_integrations/yeelight.markdown +++ b/source/_integrations/yeelight.markdown @@ -7,7 +7,6 @@ ha_release: 0.32 ha_iot_class: Local Push ha_config_flow: true ha_codeowners: - - '@rytilahti' - '@zewelor' - '@shenxn' - '@starkillerOG' diff --git a/source/_integrations/zeroconf.markdown b/source/_integrations/zeroconf.markdown index cf744403f49..69ec319cf54 100644 --- a/source/_integrations/zeroconf.markdown +++ b/source/_integrations/zeroconf.markdown @@ -53,4 +53,4 @@ Configure the virtual machine to accept this traffic by adding the `trustGuestRx ``` -This only works with the `virtio` network adapter type and it is disabled by default for security reasons. See [the libvirt documentation](https://libvirt.org/formatdomain.html#elementsNICS) for more details. \ No newline at end of file +This only works with the `virtio` network adapter type and it is disabled by default for security reasons. See [the libvirt documentation](https://libvirt.org/formatdomain.html#elementsNICS) for more details. diff --git a/source/_integrations/zha.markdown b/source/_integrations/zha.markdown index 8c14b2c5b0f..b080ad38efa 100644 --- a/source/_integrations/zha.markdown +++ b/source/_integrations/zha.markdown @@ -35,8 +35,8 @@ ha_platforms: - light - lock - number - - select - sensor + - select - siren - switch ha_zeroconf: true diff --git a/source/_integrations/zwave_js.markdown b/source/_integrations/zwave_js.markdown index dfdcdbc532a..66f076e17e8 100644 --- a/source/_integrations/zwave_js.markdown +++ b/source/_integrations/zwave_js.markdown @@ -23,6 +23,7 @@ ha_codeowners: ha_domain: zwave_js ha_platforms: - binary_sensor + - diagnostics - climate - cover - fan From 29d55b6757354e2cb86e8f2f475fd8e89f9e59d1 Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Wed, 26 Jan 2022 20:36:42 +0100 Subject: [PATCH 002/148] 2022.2.0: Beta release notes --- _config.yml | 8 +- .../_posts/2022-02-02-release-20222.markdown | 6675 +++++++++++++++++ 2 files changed, 6679 insertions(+), 4 deletions(-) create mode 100644 source/_posts/2022-02-02-release-20222.markdown diff --git a/_config.yml b/_config.yml index dc5db2220bb..a8d9a475956 100644 --- a/_config.yml +++ b/_config.yml @@ -105,10 +105,10 @@ social: account: home_assistant # Home Assistant release details -current_major_version: 2021 -current_minor_version: 12 -current_patch_version: 10 -date_released: 2022-01-17 +current_major_version: 2022 +current_minor_version: 02 +current_patch_version: 0 +date_released: 2022-02-02 # Either # or the anchor link to latest release notes in the blog post. # Must be prefixed with a # and have double quotes around it. diff --git a/source/_posts/2022-02-02-release-20222.markdown b/source/_posts/2022-02-02-release-20222.markdown new file mode 100644 index 00000000000..f76d34f20ac --- /dev/null +++ b/source/_posts/2022-02-02-release-20222.markdown @@ -0,0 +1,6675 @@ +--- +layout: post +title: "2022.2: Beta release notes" +description: "The work in progress beta release notes for 2022.2." +date: 2022-01-25 00:00:00 +date_formatted: "Februari 02, 2022" +author: Franck Nijhof +author_twitter: frenck +comments: true +categories: +- Release-Notes +- Core +og_image: /images/blog/2022-2/social.png +--- + + + +These are the beta release notes for Home Assistant Core 2022.2 (and is thus a +work in progress). + +If you encounter any issues with the beta release, please report them on GitHub: + +- Issues with integrations, automations and such (Core related):
+ +- Issues with the frontend/Lovelace:
+ +- Issues with the Supervisor:
+ +- Issues with the documentation:
+ + +Please be sure to include the beta version you are running in the issue +version field (not title), so we can classify your issue correctly. + +Issues introduced in the beta are processed with priority. + +--- + +The release notes are currently a work in progress, and quite a bit has to +be done. So bear with me during this beta, as I try to make some sense of +a release that contains over 2.5K merged contributions! (An absolute record). + +I'm not sure if this is really fitting, it is Februari already... but since +this is the first release of the year, I'm still going to say it: + +**Happy New Year 🥂** + +Now don't be scared when you look at the breaking changes section. It is a lot, +however, most of those are cleanup of old deprecations or caused by things +moving to the UI. No better way to start a fresh year, by cleaning up 🧹 + +../Frenck + +- [New media player bar, local media...](#new-media-player-bar-local-media) +- [Diagnostics for Integration & Device](#diagnostics-for-integration--device) +- [Improved handling of device tracker entities](#improved-handling-of-device-tracker-entities) +- [Streamlining experiences](#streamlining-experiences) +- [More Advanced things](#more-advanced-things) +- [Python 3.8 dropped](#python-38-dropped) +- [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) +- [If you need help...](#if-you-need-help) +- [Breaking Changes](#breaking-changes) +- [Farewell to the following](#farewell-to-the-following) +- [All changes](#all-changes) + + + + + +## New media player bar, local media... + +The media browser, has been renamed to: "Media". Nice, simple, and clean. + +And it now has an nice media bar in the button to control the media you +are playing: + +

+Screenshot from GitHub PR, needs to be replaced +Screenshot from GitHub PR, needs to be replaced +

+ +Sonos, VLC (via Telnet) and Roku now support playing local media. +And Sonos can now even browse other supported media. For example, if you have +set up the Spotify and Sonos integration, you can now browse your Spotify to +play it on your Sonos devices. + +## Diagnostics for Integration & Device + +To make debugging and reporting issues easier, both in terms of reporting it, +but also for developers to fix them, we have introduce an new integration: +Diagnostics. + +Diagnostics can be provided by integrations, to allow you to download +information about your integration instance or a device, directly from the +Home Assistant frontend. + +

+Screenshot from GitHub PR, needs to be replaced +Screenshot from GitHub PR, needs to be replaced +

+ +This data can be extremely helpful in finding the root causes of issues +and getting them fixed. + +Integrations that have adopted it this release (needs to be writte out nicely) + +- Add diagnostics support to Sonos ([@jjlawren] - [#64576]) ([sonos docs]) +- Add diagnostics support to Tuya ([@frenck] - [#64374]) ([tuya docs]) +- Add diagnostics support to Verisure ([@frenck] - [#64789]) ([verisure docs]) +- Add diagnostics to Launch Library ([@ludeeus] - [#64871]) ([launch_library docs]) +- Add diagnostics support to RDW ([@frenck] - [#64787]) +- Add diagnostics support to Stookalert ([@frenck] - [#64747]) ([stookalert docs]) +- Add diagnostics support to CPU Speed ([@frenck] - [#64745]) ([cpuspeed docs]) +- Add diagnostics support to Whois ([@frenck] - [#64855]) ([whois docs]) +- Add event statistics to Sonos diagnostics ([@jjlawren] - [#64845]) ([sonos docs]) +- Add diagnostics to Notion ([@bachya] - [#64713]) ([notion docs]) +- Add diagnostics to Flu Near You ([@bachya] - [#64597]) ([flunearyou docs]) +- Add diagnostics to ReCollect Waste ([@bachya] - [#64814]) ([recollect_waste docs]) +- Add diagnostics support to Tailscale ([@frenck] - [#64649]) ([tailscale docs]) +- Add diagnostics support to Sensor.Community ([@frenck] - [#64636]) ([luftdaten docs]) +- Add diagnostics support to Elgato ([@frenck] - [#64652]) ([elgato docs]) +- Add diagnostics to NAM ([@bieniu] - [#64743]) ([nam docs]) +- Add diagnostics support to PVOutput ([@frenck] - [#64625]) ([pvoutput docs]) +- Add diagnostics support to Open-Meteo ([@frenck] - [#64645]) ([open_meteo docs]) +- Add diagnostics to Renault integration ([@epenet] - [#64531]) ([renault docs]) ([diagnostics docs]) +- Add rainforest diagnostics ([@balloob] - [#64647]) ([rainforest_eagle docs]) +- Add diagnostics support to TwenteMilieu ([@frenck] - [#64627]) ([twentemilieu docs]) +- Add diagnostics to Brother integration ([@bieniu] - [#64478]) ([brother docs]) +- Add CO2signal diagnostics ([@balloob] - [#64646]) ([co2signal docs]) +- Add diagnostics platform to AVM Fritz!Smarthome ([@mib1185] - [#64657]) ([fritzbox docs]) +- Add diagnostics support to Axis integration ([@Kane610] - [#64637]) ([axis docs]) +- Add diagnostics support for homekit_controller ([@Jc2k] - [#64773]) ([homekit_controller docs]) +- Add diagnostics support to roku ([@ctalkington] - [#64729]) ([roku docs]) +- Add diagnostics platform to Shelly ([@mib1185] - [#64660]) ([shelly docs]) +- Add diagnostics to OpenUV ([@bachya] - [#64716]) ([openuv docs]) +- Add diagnostics support to UniFi Network integration ([@Kane610] - [#64640]) ([unifi docs]) +- Add diagnostics to IQVIA ([@bachya] - [#64602]) ([iqvia docs]) +- Add diagnostics to Elexa Guardian ([@bachya] - [#64599]) ([guardian docs]) +- Add diagnostics integration ([@balloob] - [#64330]) ([default_config docs]) ([diagnostics docs]) (new-integration) +- Add zwave_js support for diagnostics ([@raman325] - [#64336]) ([zwave_js docs]) +- Add diagnostics to RainMachine ([@bachya] - [#64788]) ([rainmachine docs]) +- Add diagnostics to Nanoleaf ([@ludeeus] - [#64835]) ([nanoleaf docs]) +- Add diagnostics to Synology DSM integration ([@mib1185] - [#64480]) ([synology_dsm docs]) +- Add diagnostics to Mazda integration ([@bdr99] - [#64606]) ([mazda docs]) +- Add diagnostics to deCONZ integration ([@Kane610] - [#64585]) ([deconz docs]) +- Tibber diagnostics ([@Danielhiversen] - [#64472]) ([tibber docs]) +- Add evil genius labs diagnostics ([@balloob] - [#64339]) ([evil_genius_labs docs]) +- Add diagnostic information for nest ([@allenporter] - [#64405]) ([nest docs]) +- Add diagnostics to the core files ([@epenet] - [#64417]) +- Fix attr spelling error in Nest SDM SensorBase ([@iMicknl] - [#64490]) ([nest docs]) +- Add diagnostics for the AirVisual integration ([@bachya] - [#64479]) ([airvisual docs]) +- Add diagnostics to KNX ([@farmio] - [#64471]) ([knx docs]) +- Add diagnostics to Overkiz integration ([@iMicknl] - [#64427]) ([overkiz docs]) +- Add zwave_js device diagnostics ([@raman325] - [#64504]) +- Add device diagnostics support to Tuya ([@frenck] - [#64537]) ([tuya docs]) +- Add diagnostics to Netatmo integration ([@cgtobi] - [#64392]) ([netatmo docs]) +- Add diagnostics to Ambient PWS ([@bachya] - [#64489]) ([ambient_station docs]) ([airvisual docs]) +- Add diagnostics to GitHub integration ([@ludeeus] - [#64385]) ([github docs]) +- Add diagnostics to UptimeRobot ([@ludeeus] - [#64905]) ([uptimerobot docs]) +- Add diagnostics for Coinbase ([@TomBrien] - [#64900]) +- Add diagnostics to Tile ([@bachya] - [#64875]) ([tile docs]) +- Add diagnostics to Ridwell ([@bachya] - [#64863]) ([ridwell docs]) +- Add diagnostics to WattTime ([@bachya] - [#64887]) ([watttime docs]) + +## Improved handling of device tracker entities + +If you run an integration that provides device tracker, from lets say, your +router or somehting like a UniFi integration; than you are probably aware those +can create lots of entities! + +For some this may be overwhelming, this as of today, by default, only device +tracker enties that match up with an existing - known by Home Assistant - device +will be enabled by default. + +This keeps our Home Assistant nice and tidy, but also gives you the possibility +to enable those extra ones you like to have, yourself. + +## Streamlining experiences + +We recently published a blog on our focus for this year: +[Streamlining experiences](/blog/2022/01/19/streamlining-experiences/). + +Things done in this release with that focus: + +- When a integration has a single device or a single service, if you now + click on the "1 device" shown in the integration card, it will directly + go to that device (instead of showing the table with a single device). + (Single device links to device page (#11387) @balloob) + +- "Check for updates" in configuration screen. This will check + for Core, Operating System & Add-on updates with a single click. + +

+Screenshot from GitHub PR, needs to be replaced +Screenshot from GitHub PR, needs to be replaced +

+ +- Finding known issues for an integration in our issue trackers + +

+Screenshot from GitHub PR, needs to be replaced +Screenshot from Discord, needs to be replaced +

+ +- Visit device/service and documention on discovered items. + +

+Screenshot from GitHub PR, needs to be replaced +Screenshot from GitHub PR, needs to be replaced +

+ +- Search in top left of configuration dashboard (needs screenshot) + +- Scenes now have a state, last activated timestamp (like a button entity, last pressed) + +- Zones now have a state! Instead of "zoning" they now show the counter of the + number of people entities in the zone. This means you easily automate + when "someone" gets home, or when everybody left home. + +## More Advanced things + +Short hand condition nation is now supported in conditions actions as well. +For use in automations and scripts. + +For example (needs better example): + +{% raw %} + +```yaml +sequence: + - condition: "{{ is_state('device_tracker.iphone', 'away') }}" +``` + +{% endraw %} + +- Support shorthand templates in condition actions ([@emontnemery] - [#61177]) + + +We now have an [immediate if (`iif`)](/docs/configuration/templating/#immediate-if-iif) template function that can be used: + +Syntax: `iif(condition, if_true, if_false, if_none)` + +Examples: + +{% raw %} + +```yaml +{{ iif(is_state('light.kitchen', 'on'), 'Yes', 'No') }} +{{ is_state('light.kitchen', 'on') | iif('Yes', 'No') }} +{{ (state('light.kitchen') == 'on') | iif('Yes', 'No') }} +``` + +{% endraw %} + +- Add iif (immediate if) template function/filter ([@frenck] - [#61428]) + +- Add slugify as a template filter ([@ZephireNZ] - [#58724]) +- Add is_number as a test for use in select, selectattr, reject, and re… ([@Petro31] - [#63732]) + + +## Python 3.8 dropped + +Python 3.8 was previously deprecated and support for is has been dropped. +Home Assistant currently requires Python 3.9. + +If you run Home Assistant OS, Home Assistant Container or Home Assistant +Supervised: We have taken care of this for you and no action from your end +is required for this. + +## Other noteworthy changes + +There is much more juice in this release; here are some of the other +noteworthy changes this release: + +This list needs to be sorted, reduced and styled. +Interesting PRs found in Core: + +- Enable local fulfillment google assistant ([@LoekSangers] - [#63218]) ([google_assistant docs]) +- Add unique_id to the statistics component ([@ThomDietrich] - [#59205]) ([statistics docs]) +- Add Venstar runtimes and battery sensors ([@garbled1] - [#60414]) ([venstar docs]) +- Update Apple TV integration to support tvOS 15 ([@postlund] - [#58665]) ([apple_tv docs]) +- Add support for app launching in Apple TV ([@postlund] - [#61732]) ([apple_tv docs]) +- Add Yamaha MusicCast Select Entities ([@micha91] - [#60645]) ([yamaha_musiccast docs]) +- Add local access for Adax ([@Danielhiversen] - [#60019]) ([adax docs]) +- Add sensors to Mill local heaters ([@Danielhiversen] - [#61247]) ([mill docs]) +- Add media_player platform to Lookin ([@ANMalko] - [#61337]) ([lookin docs]) (new-platform) +- Add Tibber estimated hour consumption sensor ([@Danielhiversen] - [#62003]) ([tibber docs]) +- Add hardware version to the device registry ([@bdraco] - [#61650]) +- Add hardware version support to homekit controller ([@bdraco] - [#61743]) ([homekit_controller docs]) +- Add Tibber peak hour, monthly consumption and monthly cost sensors ([@Danielhiversen] - [#61853]) ([tibber docs]) +- Add battery entity for Maxcube devices ([@petslane] - [#58699]) ([maxcube docs]) +- Add xiaomi miio gateway hw version ([@starkillerOG] - [#62274]) ([xiaomi_miio docs]) +- Add hardware version to bond ([@bdraco] - [#62256]) ([bond docs]) +- Add reboot button to Magic Home/flux_led ([@bdraco] - [#62323]) ([flux_led docs]) +- Add switch to enable/disable music mode in Magic Home/flux_led ([@bdraco] - [#62320]) ([flux_led docs]) +- Support Plex resuming and playback offset ([@jjlawren] - [#61468]) ([plex docs]) +- Add zones support to flux_led ([@bdraco] - [#61072]) ([flux_led docs]) +- Add support for changing Magic Home socket power restore state ([@bdraco] - [#62301]) ([flux_led docs]) +- Add USB discover for Sonoff zigbee dongle plus ([@OpenMyDog] - [#62171]) ([zha docs]) +- Add set_music_mode service to flux_led for detailed music mode control ([@bdraco] - [#62429]) ([flux_led docs]) +- Add input_button support to HomeKit ([@frenck] - [#62590]) ([homekit docs]) +- Add input_button support to Alexa ([@frenck] - [#62592]) ([alexa docs]) +- Add input_button support to Google Assistant ([@frenck] - [#62593]) ([google_assistant docs]) +- Add connectsense to homekit_controller ([@ecoen66] - [#62675]) ([homekit_controller docs]) +- Add identify buttons to ZHA devices ([@dmulcahey] - [#61495]) ([zha docs]) +- Generic thermostat presets ([@brianegge] - [#56080]) ([generic_thermostat docs]) +- Add new buttons for Shelly Gas ([@bieniu] - [#63099]) ([shelly docs]) +- Add hardware version to Roku device info ([@ctalkington] - [#63249]) ([roku docs]) +- Add unique_id configuration variable to command_line integration ([@rautesamtr] - [#58596]) ([command_line docs]) +- Add mqtt entity attributes command templates ([@jbouwh] - [#61937]) ([mqtt docs]) +- Add support for Pet Feeder (cwwsq) in Tuya ([@vauriga] - [#61359]) ([tuya docs]) +- Add philips.light.hbulb support ([@syssi] - [#62417]) ([xiaomi_miio docs]) +- Add hardware revision support to homekit ([@bdraco] - [#63336]) ([homekit docs]) +- Add support for Sonos microphone binary_sensor ([@jjlawren] - [#63097]) ([sonos docs]) +- Prometheus to support input_number ([@yozik04] - [#58964]) ([prometheus docs]) +- Add Goodwe solar inverter integration ([@mletenay] - [#58503]) ([goodwe docs]) (new-integration) +- Add additional service to set advanced Hue scene options ([@marcelveldt] - [#63035]) ([hue docs]) +- Add support for curtain device class to google assistant ([@emontnemery] - [#63380]) ([google_assistant docs]) +- Updated the support of Tuya Circuit Breaker 'dlq' ([@slydiman] - [#63519]) ([tuya docs]) +- Add support for Levoit Core 300S air purifier to VeSync integration ([@RefineryX] - [#62488]) ([vesync docs]) +- Tuya Alarm Initial commit ([@leeyuentuen] - [#60080]) ([tuya docs]) (new-platform) (new-integration) +- Give scenes last activated state ([@frenck] - [#62673]) ([scene docs]) ([homeassistant docs]) +- Tibber cost statistics ([@Danielhiversen] - [#63626]) ([tibber docs]) +- Add is_number as a test for use in select, selectattr, reject, and re… ([@Petro31] - [#63732]) +- Add DSMR config options for EasyMeter/Q3D ([@Aeroid] - [#63669]) ([dsmr docs]) +- Expose WLED configuration URL of discovered device ([@frenck] - [#63983]) ([wled docs]) +- Add light platform to LOOKin ([@ANMalko] - [#64076]) ([lookin docs]) (new-platform) +- Add HomeConnect Refrigerator ([@BraveChicken1] - [#63850]) ([home_connect docs]) +- Set unique id for config entry in smhi ([@gjohansson-ST] - [#63547]) ([smhi docs]) +- Add electric vehicle sensors to Mazda integration ([@bdr99] - [#64099]) ([mazda docs]) +- Revamp github integration ([@ludeeus] - [#64190]) ([github docs]) (breaking-change) +- Add AQHI sensor for Environment Canada ([@gwww] - [#63644]) ([environment_canada docs]) +- Add HVAC modes of climate entities to Prometheus exporter ([@rnurgaliyev] - [#62144]) ([prometheus docs]) +- Extract fibaro switch energy attributes into sensors ([@rappenze] - [#63697]) ([fibaro docs]) (breaking-change) +- Initial Tuya support for FSD based fans ([@candreacchio] - [#64283]) ([tuya docs]) (new-integration) +- Add Volumio repeat support ([@m4rkireland] - [#64132]) +- Expose deCONZ configuration url from discovered entry ([@Kane610] - [#64519]) ([deconz docs]) +- Add Home Assistant Content user ([@balloob] - [#64337]) ([http docs]) ([websocket_api docs]) ([auth docs]) ([cast docs]) ([media_source docs]) (breaking-change) +- Allow Sonos to browse and play local media via media browser ([@balloob] - [#64603]) +- Add support for Soma Tilt devices ([@sebfortier2288] - [#49734]) ([soma docs]) +- Add siren platform to devolo Home Control ([@Shutgun] - [#53400]) ([devolo_home_control docs]) +- Add dishwasher program to Home Connect Integration ([@jan-loeffler] - [#61237]) ([home_connect docs]) +- Add local media browser to VLC ([@balloob] - [#64655]) ([media_source docs]) ([vlc_telnet docs]) +- Fix webostv media player ([@thecode] - [#64690]) ([webostv docs]) +- Add tests for LCN switch platform ([@alengwenus] - [#52590]) ([lcn docs]) +- Refactor Tuya DPCode and data type handling ([@frenck] - [#64707]) ([tuya docs]) +- Add warning when calling deprecated bond services ([@bdraco] - [#64744]) ([bond docs]) +- Allow toggles (switches) state to be None ([@frenck] - [#64621]) (breaking-change) +- Add command template for MQTT button ([@jbouwh] - [#63838]) ([mqtt docs]) +- Add service send command in Tuya Vacuum ([@dougiteixeira] - [#63417]) ([tuya docs]) +- Expose entity device temperature from cluster in ZHA ([@rforro] - [#64189]) ([zha docs]) +- Enable Low Latency HLS (LL-HLS) by default to lower stream latency ([@allenporter] - [#64643]) ([stream docs]) +- Add option to select quality of camera snapshots taken from Synology DSM connected cameras ([@mib1185] - [#58306]) ([synology_dsm docs]) +- Add support for preset modes to bond fans ([@bdraco] - [#64786]) ([bond docs]) +- Start depreciation of custom services in Advantage Air ([@Bre77] - [#58777]) ([advantage_air docs]) (breaking-change) +- ESPHome prevent connecting to different hosts when IP reassigned ([@OttoWinter] - [#64559]) ([esphome docs]) +- Update method names reflecting changes in UniFi library ([@Kane610] - [#64817]) ([unifi docs]) +- Make sensor name consistent with other homekit_controller entity names ([@Jc2k] - [#64821]) ([homekit_controller docs]) +- Remove source and channel attributes from local version ([@ludeeus] - [#64827]) ([version docs]) (breaking-change) +- Add more vicare binary sensors and clean up constants ([@oischinger] - [#64780]) ([vicare docs]) +- Add missing voices to Amazon Polly ([@aomann] - [#64708]) +- Add Home Connect CookProcessor (Bosch Cookit) ([@noxhirsch] - [#62445]) ([home_connect docs]) +- Add a reboot button for ONVIF devices ([@esev] - [#61522]) ([onvif docs]) +- Allow roku to browse and play local media ([@ctalkington] - [#64799]) ([roku docs]) +- Add additional energy sensors to Eve Energy ([@Jc2k] - [#64826]) ([homekit_controller docs]) +- Refactor Tuya Fans ([@frenck] - [#64765]) ([tuya docs]) +- Allow browsing the Spotify media player in Sonos ([@balloob] - [#64921]) ([sonos docs]) ([spotify docs]) +- Use local Sonos API for Plex music playback ([@jjlawren] - [#63357]) ([sonos docs]) ([cast docs]) ([plex docs]) +- Add unique_id to modbus entities ([@Tathar] - [#64634]) ([modbus docs]) + +From things from the frontend that might be of interest: + +* Allow downloading diagnostics of a config entry (#11345) @balloob +* Reflect media browser panel state in URL (#11317) @balloob +* Ensure disabled device entity names are shown (#11334) @spacegaier +* Allow pressing enter to pick item at the top of the list (#11139) @balloob +* Add period option to statistics card (#10982) @bramkragten +* Add overflow menu to discovered integration item (#11165) @frenck +* use motion-sensor/-off (#11142) @Mariusthvdb +* Single device links to device page (#11387) @balloob +* Add Search Icon to Config Dashboard (#11375) @zsarnett +* Move energy to Dashboards (#11386) @zsarnett +* Add backup size to backup table (#11365) @ludeeus +* Allow downloading device diagnostics (#11370) @balloob +* Allow tab to show/hide password button for keyboard accessibility (#11416) @steverep + +This release adds support for long-term statistics to the following integrations: + +- Add state class to screenlogic sensors ([@bdraco] - [#64941]) ([screenlogic docs]) +- Add state class to powerwall charge sensor ([@bdraco] - [#64939]) ([powerwall docs]) +- Add state class to hunterdouglas_powerview ([@bdraco] - [#64936]) ([hunterdouglas_powerview docs]) +- Add state class to emonitor sensors ([@bdraco] - [#64934]) ([emonitor docs]) +- Add state class to nexia sensors ([@bdraco] - [#64932]) ([nexia docs]) +- Add state classes to august sensors ([@bdraco] - [#64931]) ([august docs]) +- Add edl21 sensor state class and device class ([@StephanU] - [#56968]) ([edl21 docs]) +- - Add state class support to Luftdaten ([@frenck] - [#62585]) ([luftdaten docs]) +- Add SensorStateClass to Kraken sensors ([@eifinger] - [#63590]) ([kraken docs]) +- Add long term statistics to buienradar ([@tedvdb] - [#58917]) ([buienradar docs]) + + +And the following integrations now have entity categories: + +- Add entity categories. ([@stegm] - [#63165]) ([kostal_plenticore docs]) +- Aurora ABB add entity category ([@davet2001] - [#61231]) ([aurora_abb_powerone docs]) +- Add Netgear entity category and configuration url ([@starkillerOG] - [#62260]) ([netgear docs]) +- Add entity category to DSMR ([@starkillerOG] - [#62262]) ([dsmr docs]) +- Motion blinds add entity category ([@starkillerOG] - [#62266]) ([motion_blinds docs]) +- Hyperion add entity category ([@starkillerOG] - [#62268]) ([hyperion docs]) +- Use entity class attributes for Mazda integration ([@bdr99] - [#59869]) ([mazda docs]) + + +## New Integrations + +We welcome the following new integration this release: + +- [`input_button`][input_button docs], added by [@frenck] +- [Aseko Pool Live][aseko_pool_live docs], added by [@milanmeu] +- [Aussie Broadband][aussie_broadband docs], added by [@nickw444] +- [Diagnostics][diagnostics docs], added by [@balloob] +- [Elmax][elmax docs], added by [@albertogeniola] +- [GoodWe][goodwe docs], added by [@mletenay] +- [HomeWizard Energy][homewizard_energy docs], added by [@DCSBL] +- [IntelliFire][intellifire docs], added by [@jeeftor] +- [NINA][nina docs], added by [@DeerMaximum] +- [Oncue by Kohler][oncue docs], added by [@bdraco] +- [Open-Meteo][open_meteo docs], added by [@frenck] +- [Overkiz][overkiz docs], added by [@iMicknl] +- [RTSPtoWebRTC][webrtc docs], added by [@allenporter] +- [SenseME][senseme docs], added by [@bdraco] +- [Steamist][steamist docs], added by [@bdraco] +- [UniFi Protect][unifiprotect docs], added by [@AngellusMortis] + + +## Integrations now available to set up from the UI + +The following integrations are now available via the Home Assistant UI: + +- [Android TV][androidtv docs], done by [@ollo69] +- [CPU Speed][cpuspeed docs], done by [@frenck] +- [DNS IP][dnsip docs], done by [@gjohansson-ST] +- [Launch Library][launch_library docs], done by [@DurgNomis-drol] +- [LG webOS Smart TV][webostv docs], done by [@thecode] +- [PVOutput][pvoutput docs], done by [@frenck] +- [Sensibo][sensibo docs], done by [@gjohansson-ST] +- [Vallox][vallox docs], done by [@slovdahl] +- [Version][version docs], done by [@ludeeus] +- [Whois][whois docs], done by [@frenck] + +## If you need help... + +...don't hesitate to use our very active [forums](https://community.home-assistant.io/) or join us for a little [chat](https://discord.gg/c5DvZ4e). + +Experiencing issues introduced by this release? Please report them in our [issue tracker](https://github.com/home-assistant/core/issues). Make sure to fill in all fields of the issue template. + + + +## Breaking Changes + +Below is a listing of the breaking change for this release, per subject or +integration. Click on one of those to read more about the breaking change +for that specific item. + +{% details "GPIO Integrations" %} + +As of this release, all integration intefacing with GPIO directly, have been +deprecated. + +There are multiple reasons for this, which includes a general low usage of +these integrations. For most Home Assistant installation, GPIO isn't easily +usable and more often the integrations are unmainted. + +More information can be found in +[Architectural Decission Record 0019](https://github.com/home-assistant/architecture/blob/master/adr/0019-GPIO.md). + +Additionally, there are many projects around that handle these purposes of GPIO +better than Home Assistant. For example, our sister project ESPHome, or +the MQTT IO project, and many more. + +We do not forbid the use of GPIO, but we are merely deprecating and removing +built-in integrations, providing GPIO functionality from Core. We welcome +custom integrations (existing or new ones) to provide alternatives. However, +for most cases we recommend on using dedicated hardware, like a ESP device, +instead. + +The following integrations have been deprecated and will be removed in +Home Assistant Core **2022.4**: + +- BeagleBone Black GPIO +- BH1750 +- Blinkt! +- Bosch BME280 Environmental Sensor +- Bosch BME680 Environmental Sensor +- Bosch BMP280 Environmental Sensor +- DHT Sensor +- Enviro pHAT +- HTU21D(F) Sensor +- mcp23017 +- MH-Z19 CO2 Sensor +- Orange Pi GPIO +- pcal9535a +- pi4ioe5v9xxxx +- PiFace Digital I/O (PFIO) +- Piglow +- pigpio Daemon PWM LED +- Raspberry Pi RF +- Rasphihats +- Sense HAT +- Sensirion SHT31 +- Time of Flight + +The following integration have been deprecated and will be removed in +Home Assistant Core **2022.6**: + +- 1-Wire (SysBus only!) +- Raspberry Pi GPIO + +Note: 1-Wire is a special case, as it supports both the SysBus and connecting +to a remote owfs server. The use of the SysBus is deprecated, however, +connecting to a remote owfs server is not. + +{% enddetails %} + +{% details "Fan/Humidifer/Light/Remote/Siren/Switch/Vaccuum" %} + +Previously, toggle-based entities (like `fan`, `light`, `switch`, `remote`, `siren`, `vacuum`, `humidifier`) could have the state `on` or `off`, and in case the device was unreachable: `unavailable`. However, compared to other entities, toggle entities aren't able to have an `unknown` state, this now has changed. + +As of now, toggle-based entities can now have the `on`, `off`, `unavailable`, or `unknown` state. + +You might need to adapt your automations or scripts to take this new `unknown` state into account. + +([@frenck] - [#64621]) + +{% enddetails %} + +{% details "iOS" %} + +The Home Assistant iOS/macOS app supports notification actions defined [in the notification itself](https://companion.home-assistant.io/docs/notifications/actionable-notifications/); the old method of defining push categories in the iOS integration is now deprecated and will be removed in the future. + +([@zacwest] - [#61078]) ([ios docs]) + +{% enddetails %} + +{% details "Flume" %} + +The previously deprecated YAML configuration of the Flume integration has been removed. + +Flume is now configured via the UI, any existing YAML configuration has been imported +in previous releases and can now be safely removed from your YAML configuration files. + +([@tkdrob] - [#61517]) ([flume docs]) + +{% enddetails %} + +{% details "Sensor.Community (previously: Luftdaten)" %} + +The Luftdaten integration has been renamed to Sensor.Community; which is +the new name of the Luftdaten project. + +The previously deprecated YAML configuration of this integration +has been removed. + +Sensor.Community is now configured via the UI, any existing YAML configuration +has been imported in previous releases and can now be safely removed from your +YAML configuration files. + +([@frenck] - [#61748] [#62865]) ([luftdaten docs]) + +{% enddetails %} + +{% details "Foscam" %} + +The previously deprecated YAML configuration of the Foscam integration +has been removed. + +Foscam is now configured via the UI, any existing YAML configuration +has been imported in previous releases and can now be safely removed from your +YAML configuration files. + +([@tkdrob] - [#61761]) ([foscam docs]) + +{% enddetails %} + +{% details "Enphase Envoy" %} + +The previously deprecated YAML configuration of the Enphase Envoy integration +has been removed. + +Enphase Envoy is now configured via the UI, any existing YAML configuration +has been imported in previous releases and can now be safely removed from your +YAML configuration files. + +([@tkdrob] - [#61840]) ([enphase_envoy docs]) + +{% enddetails %} + +{% details "Azure Event Hub" %} + +The Azure Event Hub integration migrated to configuration via the +UI. Configuring Azure Event Hub via YAML configuration has been +deprecated and will be removed in a future Home Assistant release. + +Your existing YAML configuration is automatically imported on upgrade to this +release; and thus can be safely removed from your YAML configuration after upgrading. + +([@eavanvalkenburg] - [#61155]) ([azure_event_hub docs]) + +{% enddetails %} + +{% details "FortiOS" %} + +The integration now requires FortiOS 6.4.3 and newer. + +([@kimfrellsen] - [#61970]) ([fortios docs]) + +{% enddetails %} + +{% details "Zero-configuration networking (zeroconf)" %} + +This change is only a concern for custom integration developers. + +Currently zeroconf matching only allows matching the `macaddress`, `model`, and `manufacturer` properties along with the `name` from the ZeroconfServiceInfo. + +Since properties are arbitrarily defined by the zeroconf service, +the list of named properties has grown over time. + +Matching now allows for any arbitrarily defined property. +All property matches must be lowercase, wildcards are supported + +The top level keys `model`, `manufacturer`, and `macaddress` +are now deprecated from the `manifest.json` file and should +be moved into a `properties` dict. + +For example: +``` +- {"type":"_airplay._tcp.local.","model":"appletv*"} ++ {"type":"_airplay._tcp.local.","properties":{"model":"appletv*"}} +``` + +([@bdraco] - [#62133]) ([zeroconf docs]) + +{% enddetails %} + +{% details "Environment Canada" %} + +The previously deprecated YAML configuration of the Environment Canada +integration has been removed. + +Environment Canada is now configured via the UI, any existing YAML configuration +has been imported in previous releases and can now be safely removed from your +YAML configuration files. + +([@tkdrob] - [#61839]) ([environment_canada docs]) + +--- + +The sensors no longer have `Timestamp` as an extra state attribute, instead, +use the new `timestamp` sensor that can be used in automations that track state changes. + +The sensors alert sensors (`advisories`, `endings`, `statements`, `warnings`, and `watches`) state is now a count of the number of active alerts for the sensor type +and the extra state attributes contain the alert text and alert timestamp. + +The attributes are named `alert_` and `alert_time_` where is 1 for alert 1, 2 for alert 2, etc. + +([@gwww] - [#58615]) ([environment_canada docs]) + +{% enddetails %} + +{% details "OpenGarage" %} + +The previously deprecated YAML configuration of the OpenGarage +integration has been removed. + +OpenGarage is now configured via the UI, any existing YAML configuration +has been imported in previous releases and can now be safely removed from your +YAML configuration files. + +- Remove deprecated yaml config from opengarage ([@tkdrob] - [#61961]) ([opengarage docs]) (breaking-change) + +{% enddetails %} + +{% details "Aurora ABB PowerOne Solar PV" %} + +The previously deprecated YAML configuration of the Aurora ABB PowerOne Solar PV +integration has been removed. + +Aurora ABB PowerOne Solar PV is now configured via the UI, any existing YAML +configuration has been imported in previous releases and can now be safely +removed from your YAML configuration files. + +([@tkdrob] - [#62317]) ([aurora_abb_powerone docs]) + +{% enddetails %} + +{% details "Efergy" %} + +The previously deprecated YAML configuration of the Efergy +integration has been removed. + +Efergy is now configured via the UI, any existing YAML configuration +has been imported in previous releases and can now be safely removed from your +YAML configuration files. + +([@tkdrob] - [#61520]) ([efergy docs]) + +{% enddetails %} + +{% details "Magic Home" %} + +The previously deprecated YAML configuration of the Magic Home +integration has been removed. + +Magic Home is now configured via the UI, any existing YAML configuration +has been imported in previous releases and can now be safely removed from your +YAML configuration files. + +([@tkdrob] - [#61844]) ([flux_led docs]) + +{% enddetails %} + +{% details "Broadlink" %} + +The previously deprecated YAML configuration of the Broadlink +integration has been removed. + +Broadlink is now configured via the UI, any existing YAML configuration +has been imported in previous releases and can now be safely removed from your +YAML configuration files. + +([@tkdrob] - [#62341]) ([broadlink docs]) + +{% enddetails %} + +{% details "CO2 Signal" %} + +The previously deprecated YAML configuration of the CO2 Signal +integration has been removed. + +CO2 Signal is now configured via the UI, any existing YAML configuration +has been imported in previous releases and can now be safely removed from your +YAML configuration files. + +([@tkdrob] - [#62343]) ([co2signal docs]) + +{% enddetails %} + +{% details "DLNA Digital Media Renderer" %} + +The previously deprecated YAML configuration of the DLNA Digital Media Renderer +integration has been removed. + +DLNA Digital Media Renderer is now configured via the UI, any existing YAML +configurationhas been imported in previous releases and can now be safely +removed from your YAML configuration files. + +([@tkdrob] - [#62344]) ([dlna_dmr docs]) + +{% enddetails %} + +{% details "Android TV" %} + +The Android TV integration migrated to configuration via the +UI. Configuring Android TV via YAML configuration has been +deprecated and will be removed in a future Home Assistant release. + +Your existing YAML configuration is automatically imported on upgrade to this +release; and thus can be safely removed from your YAML configuration after upgrading. + +- Add config_flow to AndroidTV integration ([@ollo69] - [#54444]) ([androidtv docs]) (breaking-change) + +{% enddetails %} + +{% details "Nuki" %} + +The previously deprecated YAML configuration of the Nuki +integration has been removed. + +Nuki is now configured via the UI, any existing YAML +configurationhas been imported in previous releases and can now be safely +removed from your YAML configuration files. + +([@tkdrob] - [#62470]) ([nuki docs]) + +{% enddetails %} + +{% details "Honeywell Total Connect Comfort (US)" %} + +The previously deprecated YAML configuration of the Honeywell Total Connect Comfort +integration has been removed. + +Honeywell Total Connect Comfort is now configured via the UI, any existing YAML +configurationhas been imported in previous releases and can now be safely +removed from your YAML configuration files. + + +([@tkdrob] - [#62469]) ([honeywell docs]) + +{% enddetails %} + +{% details "Google Maps Travel Time" %} + +The previously deprecated YAML configuration of the Google Maps Travel Time +integration has been removed. + +Google Maps Travel Time is now configured via the UI, any existing YAML +configurationhas been imported in previous releases and can now be safely +removed from your YAML configuration files. + +([@tkdrob] - [#62468]) ([google_travel_time docs]) + +{% enddetails %} + +{% details "Philips TV" %} + +The previously deprecated YAML configuration of the Philips TV +integration has been removed. + +Philips TV is now configured via the UI, any existing YAML +configurationhas been imported in previous releases and can now be safely +removed from your YAML configuration files. + +([@tkdrob] - [#62471]) ([philips_js docs]) + +{% enddetails %} + +{% details "TP-Link Kasa Smart" %} + +The previously deprecated YAML configuration of the TP-Link Kasa Smart +integration has been removed. + +TP-Link Kasa Smart is now configured via the UI, any existing YAML +configurationhas been imported in previous releases and can now be safely +removed from your YAML configuration files. + +([@bdraco] - [#62457]) ([tplink docs]) + +{% enddetails %} + +{% details "RIVM Stookalert" %} + +The previously deprecated YAML configuration of the Stookalert +integration has been removed. + +Stookalert is now configured via the UI, any existing YAML +configurationhas been imported in previous releases and can now be safely +removed from your YAML configuration files. + +([@frenck] - [#61007]) ([stookalert docs]) + +{% enddetails %} + +{% details "VLC media player Telnet" %} + +The previously deprecated YAML configuration of the VLC media player Telnet +integration has been removed. + +VLC media player Telnet is now configured via the UI, any existing YAML +configurationhas been imported in previous releases and can now be safely +removed from your YAML configuration files. + +([@tkdrob] - [#62542]) ([vlc_telnet docs]) + +{% enddetails %} + +{% details "Logitech Squeezebox" %} + +The previously deprecated YAML configuration of the Logitech Squeezebox +integration has been removed. + +Logitech Squeezebox is now configured via the UI, any existing YAML +configurationhas been imported in previous releases and can now be safely +removed from your YAML configuration files. + +([@tkdrob] - [#62537]) ([squeezebox docs]) + +{% enddetails %} + +{% details "Groups: Locks" %} + +The behavior of grouped locks has been reversed such that "unlocked" is +mapped to `on` and "locked" to off. + +This means that: + +- A group with mixed domains will be considered `on` if any lock included in + the group is unlocked. +- A group of locks will be considered "unlocked" if any lock included in the +- group is unlocked. + +([@emontnemery] - [#62580]) ([lock docs]) ([group docs]) + +{% enddetails %} + +{% details "Binary Sensors" %} + +Previously, `binary_sensor` entities could have the state `on`, `off`, and +in case the device was unreachable: `unavailable`. + +However, compared to other entities, it wasn't able to have the `unknown` state, +which has been added this release. + +So, a `binary_sensor` entity can now have the `on`, `off`, `unavailable`, or `unknown` state. + +You might need to adapt your automations or scripts to take this new +`unknown` state into account. + +([@frenck] - [#60193]) ([binary_sensor docs]) + +{% enddetails %} + +{% details "BMW Connected Drive" %} + +The `charging_time_remaining` (in hours) has been replaced with +`charging_end_time` (timestamp) to not clutter the Home Assistant state machine. + +You might need to adapt your automations or scripts for this change. + +([@rikroe] - [#60942]) ([bmw_connected_drive docs]) + +--- + +All ``bmw_connected_drive.*` services are deprecated. +Please use the new button entities with the `button.press` service instead. + +([@rikroe] - [#63136]) ([bmw_connected_drive docs]) + +{% enddetails %} + +{% details "Sensibo" %} + +The Sensibo integration migrated to configuration via the +UI. Configuring Sensibo via YAML configuration has been +deprecated and will be removed in a future Home Assistant release. + +Your existing YAML configuration is automatically imported on upgrade to this +release; and thus can be safely removed from your YAML configuration after upgrading. + +([@gjohansson-ST] - [#60900]) ([sensibo docs]) + +{% enddetails %} + +{% details "SwitchBot" %} + +The SwitchBot integration migrated to configuration via the +UI in a previous release already. Configuring SwitchBot via YAML configuration +has now been deprecated and will be removed in a future Home Assistant release. + +Your existing YAML configuration is already automatically imported; and thus +can be safely removed from your YAML configuration. + +([@tkdrob] - [#62583]) ([switchbot docs]) + +{% enddetails %} + +{% details "Trafikverket Train" %} + +The planned time, estimated time and and actual time sensor attributes have +been correct to be UTC isoformatted string which is standard in Home Assistant. + +Previously displayed as `2021-12-23T09:07:00` and now correctly set as `2021-12-23T09:07:00+00:00`. + +This may affect templates or automations based on these attributes. + +([@gjohansson-ST] - [#62636]) ([trafikverket_train docs]) + +{% enddetails %} + +{% details "Samsung SyncThru Printer" %} + +The previously deprecated YAML configuration of the Samsung SyncThru Printer +integration has been removed. + +Samsung SyncThru Printer is now configured via the UI, any existing YAML +configurationhas been imported in previous releases and can now be safely +removed from your YAML configuration files. + +([@tkdrob] - [#62541]) ([syncthru docs]) + +{% enddetails %} + +{% details "Version" %} + +The Version integration migrated to configuration via the +UI. Configuring Version via YAML configuration has been +deprecated and will be removed in a future Home Assistant release. + +Your existing YAML configuration is automatically imported on upgrade to this +release; and thus can be safely removed from your YAML configuration after upgrading. + +Additionally, the `source` and `channel` attributes have been removed from +the Version sensor for the local source. + +([@ludeeus] - [#54642] [#64827]) ([version docs]) + +{% enddetails %} + +{% details "Templates: Binary Sensors" %} + +Template trigger binary sensor should start with `unknown` value rather than always starting with `false`/`off`. This matches the template binary sensor behavior +with other sensors. + +([@amosyuen] - [#62769]) ([template docs]) + +{% enddetails %} + +{% details "PVOutput" %} + +The PVOutput integration migrated to configuration via the +UI. Configuring PVOutput via YAML configuration has been +deprecated and will be removed in a future Home Assistant release. + +Your existing YAML configuration is automatically imported on upgrade to this +release; and thus can be safely removed from your YAML configuration after upgrading. + +Additionally, all sensor attributes of the PVOutput sensor, +have been extracted in their own dedicated sensors. + +This applies to the following PVOutput attributes: + +- `energy_generation` +- `power_generation` +- `energy_consumption` +- `power_consumption` +- `efficiency` +- `temperature` +- `voltage` + +If you relied on these in your automation or scripts, you need to adopt those to use the new separate sensors instead. The attributes are currently available, however, deprecated and will be removed in Home Assistant Core 2022.4. + +([@frenck] - [#62667] [#62894]) ([pvoutput docs]) + +{% enddetails %} + +{% details "Vallox" %} + +The Vallox integration migrated to configuration via the +UI. Configuring Vallox via YAML configuration has been +deprecated and will be removed in a future Home Assistant release. + +Your existing YAML configuration is automatically imported on upgrade to this +release; and thus can be safely removed from your YAML configuration after upgrading. + +([@slovdahl] - [#62780]) ([vallox docs]) + +{% enddetails %} + +{% details "CPU Speed" %} + +The CPU Speed integration migrated to configuration via the +UI. Configuring CPU Speed via YAML configuration has been +deprecated and will be removed in a future Home Assistant release. + +Your existing YAML configuration is automatically imported on upgrade to this +release; and thus can be safely removed from your YAML configuration after upgrading. + +([@frenck] - [#62929]) ([cpuspeed docs]) + +{% enddetails %} + +{% details "Nest" %} + +The Legacy "Works With Nest API" is deprecated and support will be removed +in Home Assistant Core 2022.5; See our [documentation for using the Smart Device +Management API](/integrations/nest/) instead. + +([@allenporter] - [#63027]) ([nest docs]) + +{% enddetails %} + +{% details "MQTT" %} + +The MQTT lights no longer support, the previously deprecated, `value_template`;`state_value_template` should be used instead. + +([@emontnemery] - [#62682]) ([mqtt docs]) + +---- + +Previouysly MQTT climate would only publish to `hold_command_topic` or ` away_mode_command_topic` if the new mode is not the same as the current state. + +As of this release MQTT always publishes on both command topics (`hold_command_topic` and ` away_mode_command_topic`) (if defined) which makes it more predictable +what update the MQTT device will receive. + +([@jbouwh] - [#63463]) ([mqtt docs]) + +---- + +The `send_if_off` config parameter of the climate platform, which limits +publishing if the current operation mode is `HVAC_MODE_OFF`, is now +deprecated. + +This will break applications that depend on this feature. + +([@jbouwh] - [#63814]) ([mqtt docs]) + +{% enddetails %} + +{% details "Waze Travel Time" %} + +The previously deprecated YAML configuration of the Waze Travel Time +integration has been removed. + +Waze Travel Time is now configured via the UI, any existing YAML +configurationhas been imported in previous releases and can now be safely +removed from your YAML configuration files. + +([@tkdrob] - [#62543]) ([waze_travel_time docs]) + +{% enddetails %} + +{% details "SMA Solar" %} + +The previously deprecated YAML configuration of the SMA Solar +integration has been removed. + +SMA Solar is now configured via the UI, any existing YAML +configurationhas been imported in previous releases and can now be safely +removed from your YAML configuration files. + +([@tkdrob] - [#62472]) ([sma docs]) + +{% enddetails %} + +{% details "Nanoleaf" %} + +The Nanoleaf integration migrated to configuration via the +UI in a previous release already. Configuring Nanoleaf via YAML configuration +has now been deprecated and will be removed in a future Home Assistant release. + +Your existing YAML configuration is already automatically imported; and thus +can be safely removed from your YAML configuration. + +([@milanmeu] - [#63404]) ([nanoleaf docs]) + +{% enddetails %} + + +{% details "Viessmann ViCare" %} + +The scan interval option has been removed, since the default should be fine +in almost all cases. + +If you really need more fine-grained control you can disable automatic updates +in the system settings for the Viessmann ViCare integration and automate the +polling of the entities with the +[`homeassistant.update_entity`](/docs/scripts/service-calls#homeassistant-services) +service. + +([@oischinger] - [#63343]) ([vicare docs]) + +{% enddetails %} + +{% details "DSMR" %} + +The `sensor.energy_consumption_total` sensor for DSMR versions 2.2 and 4 has +been removed. Meters with these versions do not provide this data, +so this sensor can be safely removed. You might need to clean up +the orphaned entity in your setup. + +([@rhpijnacker] - [#63436]) ([dsmr docs]) + +{% enddetails %} + +{% details "Nissan Leaf" %} + +The service to start a charge has been deprecated; it is replaced with a button. + +Replace the `nissan_leaf.start_charge` service in any existing automations with `button.press` for the new `button.start_NICKNAME_charging` entity. + +The `nissan_leaf.start_charge` service is now deprecated and will be removed +in a future release. + +([@filcole] - [#62948]) ([nissan_leaf docs]) + +{% enddetails %} + +{% details "ReCollect Waste" %} + +ReCollect Waste no longer stories "next pickup" information as attributes of the "current pickup" sensor; instead, both pickups are now their own sensors. + +([@bachya] - [#62558]) ([recollect_waste docs]) + +{% enddetails %} + +{% details "AVM FRITZ!SmartHome" %} + +The `lock` and `devicelock` attributes are removed from all entities and now exposed as own sensors. + +([@mib1185] - [#60426]) ([fritzbox docs]) + +{% enddetails %} + +{% details "Launch Library" %} + +The Launch Libraryintegration migrated to configuration via the +UI. Configuring Launch Library via YAML configuration has been +deprecated and will be removed in a future Home Assistant release. + +Your existing YAML configuration is automatically imported on upgrade to this +release; and thus can be safely removed from your YAML configuration after upgrading. + +([@DurgNomis-drol] - [#62416]) ([launch_library docs]) + +--- + +Attributes on the current sensor is changed. Names of these attributes are +changed to better describe what information they provide. (Ex. `agency` changed +name to `provider` as this is the more correct terminology.) New attributes are +added to give more information about where it takes place. + +The `stream` attribute ios moved to the new sensor, and changed it's name to `stream_live` as it represent if the stream is live and not if a stream is +available. + +And finally, the attribute `launch_time` moved into it's own sensor. This made +it possible to add some information about the launch window start and end as attributes for the new sensor. This sensor will also contain the `stream_live` attribute. + +([@DurgNomis-drol] - [#64203]) ([launch_library docs]) + +{% enddetails %} + +{% details "Media Player Classic Home Cinema (MPC-HC)" %} + +The Media Player Classic Home Cinema (MPC-HC) integration has been deprecated +and will be removed in Home Assistant Core 2022.4. + +This integration is removed under [Architectural Decision Record 0004](https://github.com/home-assistant/architecture/blob/master/adr/0004-webscraping.md). + +([@frenck] - [#63598]) ([mpchc docs]) + +{% enddetails %} + +{% details "VeSync" %} + +Previous versions of this integration exposed power and energy usage from +VeSync outlets as state attributes on the `switch` entity itself. This used the deprecated properties: `current_power_w` and `today_energy_kwh`. + +In this version, these two attributes have been removed from the `switch` +entity and split into two new diagnostic sensor entities that are attached to +the same Device. + +Automations and template entities based on the state attribute mechanism should +be updated accordingly. + +([@decompil3d] - [#61837]) ([vesync docs]) + +{% enddetails %} + +{% details "NETGEAR" %} + +The previously deprecated YAML configuration of the NETGEAR +integration has been removed. + +NETGEAR is now configured via the UI, any existing YAML +configurationhas been imported in previous releases and can now be safely +removed from your YAML configuration files. + +([@epenet] - [#63862]) ([netgear docs]) + +{% enddetails %} + +{% details "Apple iCloud" %} + +The Apple iCloud integration migrated to configuration via the +UI in a previous release already. Configuring Apple iCloud via YAML configuration +has now been deprecated and will be removed in a future Home Assistant release. + +Your existing YAML configuration is already automatically imported; and thus +can be safely removed from your YAML configuration. + +([@epenet] - [#63875]) ([icloud docs]) + +{% enddetails %} + +{% details "Nmap Tracker" %} + +The previously deprecated YAML configuration of the Nmap Tracker +integration has been removed. + +Nmap Tracker is now configured via the UI, any existing YAML +configurationhas been imported in previous releases and can now be safely +removed from your YAML configuration files. + +([@epenet] - [#63863]) ([nmap_tracker docs]) + +{% enddetails %} + +{% details "Keenetic NDMS2 Router" %} + +The previously deprecated YAML configuration of the Keenetic NDMS2 Router +integration has been removed. + +Keenetic NDMS2 Router is now configured via the UI, any existing YAML +configurationhas been imported in previous releases and can now be safely +removed from your YAML configuration files. + +([@epenet] - [#63860]) ([keenetic_ndms2 docs]) + +{% enddetails %} + +{% details "AVM FRITZ!Box Tools" %} + +The previously deprecated YAML configuration of the AVM FRITZ!Box Tools +integration has been removed. + +AVM FRITZ!Box Tools is now configured via the UI, any existing YAML +configurationhas been imported in previous releases and can now be safely +removed from your YAML configuration files. + +[@epenet] - [#63857]) ([fritz docs]) + +---- + +The `reboot` and `reconnect` services are deprecated and will be removed in future release. Please use the newly provided button entities instead. + +([@chemelli74] - [#61483]) ([fritz docs]) + +{% enddetails %} + +{% details "Python 3.8 support dropped" %} + +Python 3.8 support has previously been deprecated and now has been removed. +Home Assistant now requires Python 3.9 to run. + +If you are using Home Assistant OS, Home Assistant Container, or Home Assistant Supervised installation method, you don't have to do anything. In those cases, we all handle this for you. Your system has been using Python 3.9 for quite some time already. + +([@frenck] - [#63883]) + +{% enddetails %} + +{% details "Foursquare" %} + +The data associated with `foursquare.checkin` event is now available as a +dictionary item with key "text". + +If you use this event in your automation or scripts, you'd need to adjust to +to match this change. + +([@epenet] - [#63982]) ([foursquare docs]) + +{% enddetails %} + +{% details "VIZIO SmartCast" %} + +If an integrated `vizio` TV supports apps and the source is currently a non-app +input (e.g. HDMI-1), the `app_id` and `app_name` attributes will no longer be in the media player entity's state. + +When the TV is using an app, the `app_name` will still always be visible and the `app_id` will continue to only be shown if the app is not recognized. + +([@raman325] - [#64025]) ([vizio docs]) + +{% enddetails %} + +{% details "Twinkly" %} + +Key `host` is removed from the (extra) state attribute of the light entity. + +([@RobBie1221] - [#64139]) ([twinkly docs]) + +{% enddetails %} + +{% details "LG webOS Smart TV" %} + +The LG webOS Smart TV integration migrated to configuration via the +UI. Configuring LG webOS Smart TV via YAML configuration has been +deprecated and will be removed in a future Home Assistant release. + +Your existing YAML configuration is automatically imported on upgrade to this +release; and thus can be safely removed from your YAML configuration after upgrading. + +The [turn on action](/integrations/webostv/#turn-on-action) for turning on the +TV via `WakeOnLan` or `HDMI-CEC` was using a service call via YAML, the turn on action is changed to use a custom automation trigger `webostv.turn_on` or a device trigger automation that can be setup from the UI. + +**Example trigger automation:** + +```yaml +automation: + trigger: + - platform: webostv.turn_on + entity_id: media_player.lg_webos_smart_tv + action: + - service: wake_on_lan.send_magic_packet + data: + mac: AA-BB-CC-DD-EE-FF +``` + +([@thecode] - [#64117]) ([webostv docs]) + +{% enddetails %} + +{% details "DoorBird" %} + +The relays and IR light switches are removed and replaced with corresponding +buttons entities. Any scripts or automations which reference these switches to +turn them on should change to instead press the button instead. + +([@flacjacket] - [#63995]) ([doorbird docs]) + +{% enddetails %} + +{% details "GitHub" %} + +The YAML configuration for the `github` sensor platform has been removed. + +There was no viable automatic migration of the configuration, so you need to +manually remove the configuration from your configuration file and set it up +again in the integration panel. + +Previously this integration created 1 sensor for each repository, now this +is split out to multiple entities which are mostly disabled by default +(you can enable the entities you want this integration to provide). + +Support for GitHub enterprise has been removed. + +([@ludeeus] - [#64190]) ([github docs]) + +{% enddetails %} + +{% details "Z-Wave JS" %} + +Due to a schema change, `zwave-js-server` version 1.14.0 or greater is required. +Ensure you are using the latest version of `zwave-js-server` (or the add-ons +that provides those). + +([@raman325] - [#64407]) ([zwave_js docs]) + +{% enddetails %} + +{% details "Fibaro" %} + +The energy values are exposed now as separate sensor entities and therefore the +state attribute `current_energy_kwh` was removed from all other entities. + +If you use the state attribute `current_energy_kwh` you need to change +that to use the new energy sensors instead. + +([@rappenze] - [#63697]) ([fibaro docs]) + +{% enddetails %} + +{% details "HomeKit" %} + +HomeKit will now automatically exclude entities with an entity category such as +a configuration or diagnostic entity unless they have been explicitly included. + +To explicitly include an entity: + +- YAML: Add the entity to the filter in either the `include_entities` or `include_entity_globs` fields. +- UI: Select the entity in the UI in include mode. If you are using exclude mode, a second bridge can be created in include mode. + +([@bdraco] - [#64492]) ([homekit docs]) + +{% enddetails %} + +{% details "API" %} + +The `/api/discovery_info` endpoint was deprecated in 2021.10, and has since only +returned blank values. From this version, the `/api/discovery_info` endpoint has +been removed completly. + +([@ludeeus] - [#64534]) ([api docs]) + +{% enddetails %} + +{% details "DNS IP" %} + +The DNS IP integration migrated to configuration via the +UI. Configuring DNS IP via YAML configuration has been +deprecated and will be removed in a future Home Assistant release. + +Your existing YAML configuration is automatically imported on upgrade to this +release; and thus can be safely removed from your YAML configuration after upgrading. + +([@gjohansson-ST] - [#62843]) ([dnsip docs]) + +{% enddetails %} + +{% details "Apple Push Notification Service (APNS)" %} + +The Apple Push Notification Service (APNS) integration has been deprecated and +will be removed in Home Assistant 2022.4. Please note, this does not affect +our mobile companion apps; as they do not use this integration for their +notifications. + +([@frenck] - [#64629]) ([apns docs]) + +{% enddetails %} + +{% details "WebSocket API / Media Source" %} + +This concerns custom integration developers only. + +The parameters for `async_sign_path` have changed. Refresh token is now a keyword parameter. If called as part of a HTTP or WebSocket request, the users refresh token will automatically be used. + +([@balloob] - [#64337]) + +{% enddetails %} + +{% details "Bond" %} + +The custom `start_increasing_brightness`, `start_decreasing_brightness` and `stop` services are now deprecated and will be removed in a future release. + +Please use the new button entities, that replace those, instead. + +([@bdraco] - [#64725]) ([bond docs]) + +{% enddetails %} + +{% details "Advantage Air" %} + +The `advantage_air.set_myzone` service has been depreciated and will be removed +in a future version of Home Assistant. + +Please use the `select.select_option` service on the MyZone select entity to change this value on supported systems instead. + +([@Bre77] - [#58777]) ([advantage_air docs]) + +{% enddetails %} + +{% details "Synology DSM" %} + +The `reboot` and `shutdown` services are deprecated and will be removed in future release. Please use the new button entities instead. + +([@mib1185] - [#57352]) ([synology_dsm docs]) (breaking-change) + +{% enddetails %} + +{% details "Fan" %} + +This is more a breaking change for custom integration developers. + +Now that all core fans are using the new fan entity model, the compatibility shim +has been removed. Custom integrations that have not yet switched to the new +fan model. For more information see: + + + +Preset modes and percentages will continue to be translated back to legacy speeds +until 2022.3 in order to give users a bit more time to update automations. + +([@bdraco] - [#59781]) ([fan docs]) + +{% enddetails %} + +{% details "Whois" %} + +The Whois integration migrated to configuration via the +UI. Configuring Whois via YAML configuration has been +deprecated and will be removed in a future Home Assistant release. + +Your existing YAML configuration is automatically imported on upgrade to this +release; and thus can be safely removed from your YAML configuration after upgrading. + +([@frenck] - [#63069]) ([whois docs]) + +{% enddetails %} + + +{% details "SolaX Power" %} + +The SolaX Power integration migrated to configuration via the +UI. Configuring SolaX Power via YAML configuration has been +deprecated and will be removed in a future Home Assistant release. + +Your existing YAML configuration is automatically imported on upgrade to this +release; and thus can be safely removed from your YAML configuration after upgrading. + +([@tokenize47] - [#56620]) ([solax docs]) + +{% enddetails %} + +## Farewell to the following + +The following integrations are no longer available as of this release: + +- **TaHoma** has been removed. The integration has been broken and now been + superseded by the [Overkiz](/integrations/overkiz) integration. + ([@iMicknl] - [#62607]) +- **Arduino** the now long time deprecated integration has been removed. + ([@frenck] - [#63406]) +- **EE Bright Box** has been broken en disabled for over a year now. + It has now been removed. ([@epenet] - [#63839]) + +## All changes + +{% details "Click to see all changes!" %} + +- 2022! Happy New Year! ([@frenck] - [#60936]) +- Updated code as per comment in #60676 ([@Swamp-Ig] - [#60682]) ([izone docs]) +- Remove legacy fan compatibility shim ([@bdraco] - [#59781]) ([fan docs]) ([demo docs]) ([template docs]) (breaking-change) +- Update integrations to use `async_setup_platforms` ([@cdce8p] - [#60956]) +- Add unique_id to the statistics component ([@ThomDietrich] - [#59205]) ([statistics docs]) +- Address late review of eight_sleep ([@raman325] - [#60951]) ([eight_sleep docs]) +- Improve asuswrt code readability ([@Chen-IL] - [#60975]) ([asuswrt docs]) +- Use platform enum (5) [P-R] ([@cdce8p] - [#60943]) +- Use platform enum (2) [E-G] ([@cdce8p] - [#60933]) +- Use platform enum (6) [S] ([@cdce8p] - [#60944]) +- Use platform enum (7) [T-Z] ([@cdce8p] - [#60948]) +- Use state variable from mpchc ([@infeeeee] - [#59341]) ([mpchc docs]) +- Revert "Use language independent variable to read MPC-HC state" ([@cgarwood] - [#60993]) ([mpchc docs]) +- Fix missing test assertion in ZHA siren test ([@dmulcahey] - [#61009]) ([zha docs]) +- Fix panasonic_viera tests ([@cdce8p] - [#60999]) ([panasonic_viera docs]) +- Remove deprecated base entity classes ([@frenck] - [#61006]) +- Add nina integration ([@DeerMaximum] - [#56647]) ([nina docs]) (new-integration) +- Remove deprecated YAML configuration from DSMR ([@frenck] - [#61008]) ([dsmr docs]) +- Address late review of Balboa ([@garbled1] - [#61004]) ([balboa docs]) +- Add Venstar runtimes and battery sensors ([@garbled1] - [#60414]) ([venstar docs]) +- Don't use ConfigEntry update listener for Fronius ([@farmio] - [#61017]) ([fronius docs]) +- Prevent ZHA coordinator from showing unavailable ([@dmulcahey] - [#61068]) ([zha docs]) +- Adjust yeelight ssdp_listener tests ([@epenet] - [#61065]) ([yeelight docs]) +- Add Aseko Pool Live integration ([@milanmeu] - [#56299]) +- Use platform enum (4) [M-O] ([@cdce8p] - [#60940]) +- Use platform enum (3) [H-L] ([@cdce8p] - [#60937]) +- Update Apple TV integration to support tvOS 15 ([@postlund] - [#58665]) ([apple_tv docs]) +- Add Yamaha MusicCast Select Entities ([@micha91] - [#60645]) ([yamaha_musiccast docs]) +- Add max/min/step to NumberEntityDescription ([@epenet] - [#61100]) ([xiaomi_miio docs]) ([number docs]) ([wallbox docs]) +- Add Open-Meteo integration ([@frenck] - [#60379]) ([open_meteo docs]) (new-integration) +- Use dataclass properties in Zeroconf tests ([@epenet] - [#61109]) ([zeroconf docs]) +- Revert "Add Open-Meteo integration (#60379)" ([@epenet] - [#61130]) ([open_meteo docs]) +- Bump cache version CI ([@balloob] - [#61137]) +- Block pytest_asyncio ([@balloob] - [#61141]) +- Add volume and tv metadata to Apple TV ([@postlund] - [#61107]) ([apple_tv docs]) +- Deprecate ios push config (in favor of inline actions) ([@zacwest] - [#61078]) ([ios docs]) (breaking-change) +- Replace deprecated DEVICE_CLASS constants with new enums in Hue integration ([@marcelveldt] - [#61149]) ([hue docs]) +- Change ondilo_ico update interval to 5 minutes ([@Alex9779] - [#61153]) ([ondilo_ico docs]) +- Add Onewire diagnostic and config switches and binary_sensors ([@garbled1] - [#59309]) ([onewire docs]) +- Fix flaky tests with unsynchronized stream `available` assertions ([@allenporter] - [#61167]) +- Fix incorrect docstring in automation trace code ([@emontnemery] - [#61168]) +- Minor deduplication of condition validation code ([@emontnemery] - [#61170]) ([automation docs]) +- Elmax integration ([@albertogeniola] - [#59321]) ([elmax docs]) (new-integration) +- Update MagicHome/flux_led OUIs for DHCP discovery ([@bdraco] - [#61192]) ([flux_led docs]) +- Add local access for Adax ([@Danielhiversen] - [#60019]) ([adax docs]) +- Use list comprehension in onewire sensor descriptions ([@epenet] - [#61157]) ([onewire docs]) +- Jewish Calendar: Do not convert datetimes to UTC ([@balloob] - [#61222]) ([jewish_calendar docs]) +- Bump actions/upload-artifact from 2.2.4 to 2.3.0 (@dependabot - [#61215]) +- Updating naming for flux_led ([@bdraco] - [#61187]) ([flux_led docs]) +- Address late review of Adax ([@Danielhiversen] - [#61200]) ([adax docs]) +- Fix flaky tests around frame helper ([@epenet] - [#61179]) +- Attempt to fix flaky prometheus test ([@emontnemery] - [#61242]) ([prometheus docs]) +- Statistics refactor testcases in async pytest style ([@ThomDietrich] - [#60935]) ([statistics docs]) +- Refactor recorder queue handling ([@emontnemery] - [#61161]) ([recorder docs]) +- Use SensorDeviceClass and SensorStateClass enums in Aurora ABB ([@davet2001] - [#61245]) ([aurora_abb_powerone docs]) +- Improve Sonos tests, begin adding coverage ([@jjlawren] - [#61198]) ([sonos docs]) +- Use new DeviceClass enums in ads ([@epenet] - [#61249]) ([ads docs]) +- Use new DeviceClass enums in acmeda ([@epenet] - [#61248]) ([acmeda docs]) +- Use new DeviceClass enums in accuweather ([@epenet] - [#61246]) ([accuweather docs]) +- Use new DeviceClass enums in abode ([@epenet] - [#61244]) ([abode docs]) +- Use _attr_* in whois integration ([@milanmeu] - [#61250]) ([whois docs]) +- Refactor Prometheus tests ([@alim4r] - [#60451]) ([prometheus docs]) +- Use new SensorDeviceClass enum in airvisual ([@epenet] - [#61261]) ([airvisual docs]) +- Use new DeviceClass, StateClass and EntityCategory enums in ambient_station ([@epenet] - [#61266]) ([ambient_station docs]) +- Use new BinarySensorDeviceClass enum in amcrest ([@epenet] - [#61268]) ([amcrest docs]) +- Use new SensorStateClass enum in amberelectric ([@epenet] - [#61265]) ([amberelectric docs]) +- Use new DeviceClass and StateClass enums in ambee ([@epenet] - [#61264]) ([ambee docs]) +- Use new CoverDeviceClass enum in aladdin_connect ([@epenet] - [#61262]) ([aladdin_connect docs]) +- Use new EntityCategory enum in airthings ([@epenet] - [#61260]) ([airthings docs]) +- Use new SensorStateClass enum in airnow ([@epenet] - [#61259]) ([airnow docs]) +- Use new DeviceClass and StateClass enums in airly ([@epenet] - [#61258]) ([airly docs]) +- Use new SensorDeviceClass enums in aemet ([@epenet] - [#61256]) ([aemet docs]) +- Use new DeviceClass and EntityCategory enums in advantage_air ([@epenet] - [#61255]) ([advantage_air docs]) +- Use new SensorDeviceClass in aqualogic ([@epenet] - [#61272]) ([aqualogic docs]) +- Remove log flooding prevention logic from discovery info ([@epenet] - [#61243]) ([zeroconf docs]) ([mqtt docs]) ([ssdp docs]) ([dhcp docs]) ([usb docs]) +- Use new EntityCategory enum in Surepetcare ([@Danielhiversen] - [#61282]) ([surepetcare docs]) +- Use new SensorDeviceClass enum in awair ([@epenet] - [#61290]) ([awair docs]) +- Use new SensorDeviceClass in apcupsd ([@epenet] - [#61271]) ([apcupsd docs]) +- Use new SensorDeviceClass in arlo ([@epenet] - [#61274]) ([arlo docs]) +- Use new SensorDeviceClass in arwn ([@epenet] - [#61275]) ([arwn docs]) +- Use new DeviceClass and StateClass enums in aseko_pool_live ([@epenet] - [#61276]) ([aseko_pool_live docs]) +- Use new DeviceClass and StateClass enums in atome ([@epenet] - [#61284]) ([atome docs]) +- Use new SwitchDeviceClass in aten_pe ([@epenet] - [#61281]) ([aten_pe docs]) +- Use new EntityCategory enum in Tibber ([@Danielhiversen] - [#61279]) ([tibber docs]) +- Use new EntityCategory in rfxtrx ([@Danielhiversen] - [#61295]) ([rfxtrx docs]) +- Use new EntityCategory in Mill ([@Danielhiversen] - [#61294]) ([mill docs]) +- Use new BinarySensorDeviceClass enum in axis ([@epenet] - [#61291]) ([axis docs]) +- Use new BinarySensorDeviceClass enum in balboa ([@epenet] - [#61292]) ([balboa docs]) +- Use new EntityCategory in Tractive ([@Danielhiversen] - [#61289]) ([tractive docs]) +- Use new EntityCategory enum in Switchbot ([@Danielhiversen] - [#61280]) ([switchbot docs]) +- Use new EntityCategory in Opengarage ([@Danielhiversen] - [#61285]) ([opengarage docs]) +- Use new DeviceClass and EntityCategory enums in august ([@epenet] - [#61288]) ([august docs]) +- Use new SensorDeviceClass enum in atag ([@epenet] - [#61278]) ([atag docs]) +- Use _attr_* in android_ip_webcam ([@epenet] - [#61270]) ([android_ip_webcam docs]) +- Aurora ABB add entity category ([@davet2001] - [#61231]) ([aurora_abb_powerone docs]) +- Use new DeviceClass enums in alexa ([@epenet] - [#61263]) ([alexa docs]) +- Use new CoverDeviceClass in bond ([@epenet] - [#61322]) ([bond docs]) +- Use new DeviceClass enums in bmw ([@epenet] - [#61321]) ([bmw_connected_drive docs]) +- Use new SensorDeviceClass enum in bmp280 ([@epenet] - [#61320]) ([bmp280 docs]) +- Use new SensorDeviceClass enum in bme280 ([@epenet] - [#61319]) ([bme280 docs]) +- Use SensorDeviceClass enum in beewi_smartclim ([@epenet] - [#61313]) ([beewi_smartclim docs]) +- Ues new SensorDeviceClass in bme680 ([@epenet] - [#61318]) ([bme680 docs]) +- Use DeviceClass and StateClass enums in broadlink ([@epenet] - [#61326]) ([broadlink docs]) +- Add sensors to Mill local heaters ([@Danielhiversen] - [#61247]) ([mill docs]) +- Use DeviceClass and StateClass enums in bbox ([@epenet] - [#61309]) ([bbox docs]) +- Use SensorDeviceClass enum in bh1750 ([@epenet] - [#61314]) ([bh1750 docs]) +- Use new DeviceClass enums in blink ([@epenet] - [#61315]) ([blink docs]) +- Use new DeviceClass enums in bloomsky ([@epenet] - [#61316]) ([bloomsky docs]) +- Use new DeviceClass enums in bosch_shc ([@epenet] - [#61324]) ([bosch_shc docs]) +- Use new MediaPlayerDeviceClass enum in braviatv ([@epenet] - [#61325]) ([braviatv docs]) +- Use new enums in brother ([@epenet] - [#61327]) ([brother docs]) +- Use new CoverDeviceClass enum in brunt ([@epenet] - [#61328]) ([brunt docs]) +- Use new SensorDeviceClass enum in buienradar ([@epenet] - [#61329]) ([buienradar docs]) +- Use new SensorDeviceClass enum in canary ([@epenet] - [#61330]) ([canary docs]) +- Use new SensorDeviceClass in cert_expiry ([@epenet] - [#61331]) ([cert_expiry docs]) +- Use new SensorStateClass enum in co2signal ([@epenet] - [#61333]) ([co2signal docs]) +- Use new DeviceClass and StateClass enums in comfoconnect ([@epenet] - [#61334]) ([comfoconnect docs]) +- Use new BinarySensorDeviceClass enum in concord232 ([@epenet] - [#61335]) ([concord232 docs]) +- Use new DeviceClass and EntityCategory enums in cloud ([@epenet] - [#61332]) ([cloud docs]) +- Use new SensorDeviceClass and SensorStateClass in velbus ([@Cereal2nd] - [#61339]) ([velbus docs]) +- Use new DeviceClass and StateClass enums in daikin ([@epenet] - [#61340]) ([daikin docs]) +- Use new DeviceClass and StateClass enums in darksky ([@epenet] - [#61342]) ([darksky docs]) +- Use _attr_* in delijn ([@epenet] - [#61344]) ([delijn docs]) +- Use new SensorDeviceClass enum in dht ([@epenet] - [#61349]) ([dht docs]) +- Use _attr_* in dte_energy_bridge ([@epenet] - [#61353]) ([dte_energy_bridge docs]) +- Use new SensorStateClass enum in dsmr_reader ([@epenet] - [#61352]) ([dsmr_reader docs]) +- Use new CoverDeviceClass enum in dynalite ([@epenet] - [#61354]) ([dynalite docs]) +- Use new enums in devolo_home_network ([@epenet] - [#61348]) ([devolo_home_network docs]) +- Use new MediaPlayerDeviceClass enum in directv ([@epenet] - [#61351]) ([directv docs]) +- Use new enums in devolo_home_control ([@epenet] - [#61345]) ([devolo_home_control docs]) +- Use _attr_* in abode ([@epenet] - [#61357]) ([abode docs]) +- Use new BinarySensorDeviceClass enum in digital_ocean ([@epenet] - [#61350]) ([digital_ocean docs]) +- Use new enums in deconz ([@epenet] - [#61343]) ([deconz docs]) +- Use new DeviceClass enums in blebox ([@epenet] - [#61361]) ([blebox docs]) +- Use new SensorDeviceClass enum in emonitor ([@epenet] - [#61385]) ([emonitor docs]) +- Improve type checking for rfxtrx ([@elupus] - [#58837]) ([rfxtrx docs]) +- Revert "Skip duplicated data when calculating fossil energy consumption (#60599)" ([@emontnemery] - [#61323]) ([energy docs]) +- Use new enums in energy ([@epenet] - [#61386]) ([energy docs]) +- Use find_coordinates in waze_travel_time ([@eifinger] - [#61400]) ([waze_travel_time docs]) +- Use new SensorDeviceClass in dsmr-reader ([@epenet] - [#61371]) ([dsmr_reader docs]) +- Use new DeviceClass and StateClass enums in ecobee ([@epenet] - [#61372]) ([ecobee docs]) +- Use new DeviceClass enums in econet ([@epenet] - [#61375]) ([econet docs]) +- Use new SensorDeviceClass enum in eddystone_temperature ([@epenet] - [#61376]) ([eddystone_temperature docs]) +- Use new DeviceClass and StateClass enums in efergy ([@epenet] - [#61377]) ([efergy docs]) +- Use new BinarySensorDeviceClass enum in egardia ([@epenet] - [#61378]) ([egardia docs]) +- Use new EntityCategory enum in elgato ([@epenet] - [#61379]) ([elgato docs]) +- Use new SensorStateClass in eliqonline ([@epenet] - [#61380]) ([eliqonline docs]) +- Use new SensorDeviceClass enum in ebusd ([@epenet] - [#61374]) ([ebusd docs]) +- Use new DeviceClass and StateClass enums in emoncms ([@epenet] - [#61381]) ([emoncms docs]) +- Use new DeviceClass and StateClass enums in enocean ([@epenet] - [#61387]) ([enocean docs]) +- Use new DeviceClass and StateClass in enphase_envoy ([@epenet] - [#61388]) ([enphase_envoy docs]) +- Use SensorDeviceClass in envirophat ([@epenet] - [#61389]) ([envirophat docs]) +- Use SensorDeviceClass in environment_canada ([@epenet] - [#61390]) ([environment_canada docs]) +- Mill, use native_value ([@Danielhiversen] - [#61382]) ([mill docs]) +- Use new DeviceClass enums in ezviz ([@epenet] - [#61383]) ([ezviz docs]) +- Use new enums in esphome ([@epenet] - [#61391]) ([esphome docs]) +- Optimise state attributes in delijn ([@epenet] - [#61424]) ([delijn docs]) +- Speed up demo lock tests ([@emontnemery] - [#61425]) ([demo docs]) +- Break long lines in discovery_info ([@epenet] - [#61431]) +- Use new DeviceClass enums in flipr ([@epenet] - [#61439]) ([flipr docs]) +- Use new SensorDeviceClass enum in foobot ([@epenet] - [#61442]) ([foobot docs]) +- Use new DeviceClass enums in fibaro ([@epenet] - [#61437]) ([fibaro docs]) +- Use new DeviceClass constants in flo ([@epenet] - [#61440]) ([flo docs]) +- Use new enums in forecast_solar ([@epenet] - [#61443]) ([forecast_solar docs]) +- Use new SensorDeviceClass enum in freebox ([@epenet] - [#61444]) ([freebox docs]) +- Use new enums in fjaraskupan ([@epenet] - [#61438]) ([fjaraskupan docs]) +- Use BinarySensorDeviceClass in ffmpeg ([@epenet] - [#61436]) ([ffmpeg_noise docs]) ([ffmpeg_motion docs]) +- Use new SensorStateClass enum in flunearyou ([@epenet] - [#61441]) ([flunearyou docs]) +- Use new enums in fritzbox ([@epenet] - [#61447]) ([fritzbox docs]) +- Use new enums in fritz ([@epenet] - [#61446]) ([fritz docs]) +- Add media_player platform to Lookin ([@ANMalko] - [#61337]) ([lookin docs]) (new-platform) +- Remove external library discovery call in Sonos ([@jjlawren] - [#61461]) ([sonos docs]) +- Add events and device triggers to LCN ([@alengwenus] - [#58745]) ([lcn docs]) +- Drop nmap_tracker code owner ([@bdraco] - [#61476]) ([nmap_tracker docs]) +- Pickup codeowner for lookin ([@bdraco] - [#61474]) ([lookin docs]) +- Use Platform enum in ZHA ([@dmulcahey] - [#61016]) ([zha docs]) +- Use async_on_unload from config entry in ZHA ([@dmulcahey] - [#61015]) ([zha docs]) +- Clean up state class and device class usage in ZHA ([@dmulcahey] - [#61049]) ([zha docs]) +- Add instant arming for totalconnect ([@austinmroczek] - [#60156]) ([totalconnect docs]) +- Reduce cpu requirements for apple_tv mdns and discovery ([@bdraco] - [#61346]) ([apple_tv docs]) +- Bump pylitterbot to 2021.12.0 ([@natekspencer] - [#61536]) ([litterrobot docs]) +- Refactor ZHA entity matching process ([@Adminiuga] - [#60063]) ([zha docs]) +- Use new enums in gogogate2 ([@epenet] - [#61515]) ([gogogate2 docs]) +- Use relative import within component for nest media source ([@allenporter] - [#61571]) ([nest docs]) +- Update HVAC action handling in ZHA climate devices ([@dmulcahey] - [#61460]) ([zha docs]) +- Fix totalconnect service schema ([@austinmroczek] - [#61595]) ([totalconnect docs]) +- Fix freedompro tests ([@cdce8p] - [#61012]) ([freedompro docs]) +- Use relative imports [L-R] ([@mib1185] - [#61575]) +- Use new SensorDeviceClass enum in gios ([@epenet] - [#61609]) ([gios docs]) +- Use new BinarySensorDeviceClass in eight_sleep ([@epenet] - [#61610]) ([eight_sleep docs]) +- Use new SensorDeviceClass enum in glances ([@epenet] - [#61613]) ([glances docs]) +- Use new enums in goalzero ([@epenet] - [#61518]) ([goalzero docs]) +- Use relative imports [S-Z] ([@mib1185] - [#61576]) +- Bump blinkpy to 0.18.0 ([@funkybunch] - [#61538]) ([blink docs]) +- Use new enums in freedompro ([@epenet] - [#61445]) ([freedompro docs]) +- Use platform enum (8) [Misc] ([@cdce8p] - [#61013]) +- Bump pillow from 8.2.0 to 8.3.2 ([@nohn] - [#61661]) +- Remove duplicated statistics rows ([@emontnemery] - [#61146]) ([recorder docs]) +- Upgrade hangups to 0.4.16 ([@cdce8p] - [#61678]) ([hangouts docs]) +- Add color mode support to zwave light ([@emontnemery] - [#55264]) ([zwave docs]) +- Use SwitchDeviceClass in gree ([@epenet] - [#61656]) ([gree docs]) +- Use SensorDeviceClass in gtfs ([@epenet] - [#61657]) ([gtfs docs]) +- Use new enums in guardian ([@epenet] - [#61660]) ([guardian docs]) +- Use new enums in homekit-controller ([@epenet] - [#61689]) ([homekit_controller docs]) +- Improve balboa tests ([@MartinHjelmare] - [#61691]) ([balboa docs]) +- Fix typo transponder in LCN ([@LEJOUI] - [#61658]) ([lcn docs]) +- Use new enums in growatt_server ([@epenet] - [#61655]) ([growatt_server docs]) +- Use SensorDeviceClass in greeneye-monitor ([@epenet] - [#61653]) ([greeneye_monitor docs]) +- Use new DeviceClass enum in geniushub ([@epenet] - [#61608]) ([geniushub docs]) +- Update sisyphus-control to version 3.1.2 ([@jkeljo] - [#58198]) ([sisyphus docs]) +- Use relative imports [A-H] ([@mib1185] - [#61574]) +- Use BinarySensorDeviceClass in hikvision ([@epenet] - [#61722]) ([hikvision docs]) +- Use _attr_* in hddtemp ([@epenet] - [#61721]) ([hddtemp docs]) +- Use SensorStateClass in hassio ([@epenet] - [#61720]) ([hassio docs]) +- Fix updating apple_tv addresses ([@bdraco] - [#61724]) ([apple_tv docs]) +- Use async_on_unload for Nut update_listener ([@ollo69] - [#61589]) ([nut docs]) +- Add configuration_url to syncthru devices ([@scop] - [#61508]) ([syncthru docs]) +- Remove deprecated yaml config from flume ([@tkdrob] - [#61517]) ([flume docs]) (breaking-change) +- Add support for app launching in Apple TV ([@postlund] - [#61732]) ([apple_tv docs]) +- Use attr* in garages_amsterdam ([@epenet] - [#61605]) ([garages_amsterdam docs]) +- Use new HumidifierDeviceClass enum in generic_hygrostat ([@epenet] - [#61607]) ([generic_hygrostat docs]) +- Use new DeviceClass enums in google-assistant ([@epenet] - [#61611]) ([google_assistant docs]) +- Upgrade vehicle to 0.3.0 ([@frenck] - [#61738]) ([rdw docs]) +- Upgrade sentry-sdk to 1.5.1 ([@frenck] - [#61735]) ([sentry docs]) +- Use _attr_* in danfoss_air ([@epenet] - [#61341]) ([danfoss_air docs]) +- Use _attr_* in ecoal_boiler ([@epenet] - [#61363]) ([ecoal_boiler docs]) +- Fix typo in wolflink strings.sensor.json ([@lunmay] - [#61716]) ([wolflink docs]) +- Typo fixes for Adax in strings.json ([@lunmay] - [#61492]) ([adax docs]) +- Upgrades Garages Amsterdam to v3.0.0 ([@klaasnicolaas] - [#61734]) ([garages_amsterdam docs]) +- Upgrade black to 21.12b0 ([@frenck] - [#61741]) +- Use SensorDeviceClass enum in Luftdaten ([@frenck] - [#61746]) ([luftdaten docs]) +- Remove deprecated YAML configuration from Luftdaten ([@frenck] - [#61748]) ([luftdaten docs]) (breaking-change) +- Use new SwitchDeviceClass enum in home-plus-control ([@epenet] - [#61760]) ([home_plus_control docs]) +- Use new enums in homematic ([@epenet] - [#61765]) ([homematic docs]) +- Use new enums in huisbaasje ([@epenet] - [#61776]) ([huisbaasje docs]) +- Use new SensorDeviceClass enum in homeassistant-triggers ([@epenet] - [#61764]) ([homeassistant docs]) +- Use new enums in homematicip_cloud ([@epenet] - [#61768]) ([homematicip_cloud docs]) +- Use new SensorDeviceClass enum in hvv_departures ([@epenet] - [#61780]) ([hvv_departures docs]) +- Use new enums in huawei-lte ([@epenet] - [#61771]) ([huawei_lte docs]) +- Use new enums in hydrawise ([@epenet] - [#61781]) ([hydrawise docs]) +- Use new enums in hunterdouglas_powerview ([@epenet] - [#61777]) ([hunterdouglas_powerview docs]) +- Use new enums in hue ([@epenet] - [#61772]) ([hue docs]) +- Use SensorDeviceClass enum in htu21d ([@epenet] - [#61770]) ([htu21d docs]) +- Remove deprecated yaml from foscam ([@tkdrob] - [#61761]) ([foscam docs]) (breaking-change) +- Add twinkly DHCP support ([@pvizeli] - [#61434]) ([twinkly docs]) +- Use new DeviceClass enums in iaqualink ([@epenet] - [#61805]) ([iaqualink docs]) +- Use new enums in integration ([@epenet] - [#61803]) ([integration docs]) +- Use new SensorDeviceClass in ihc ([@epenet] - [#61799]) ([ihc docs]) +- Use SensorDeviceClass in incomfort ([@epenet] - [#61800]) ([incomfort docs]) +- Use new BinarySensorDeviceClass in insteon ([@epenet] - [#61801]) ([insteon docs]) +- Use new enums in iotawatt ([@epenet] - [#61802]) ([iotawatt docs]) +- Use SensorDeviceClass in icloud ([@epenet] - [#61804]) ([icloud docs]) +- Use new DeviceClass enums in hive ([@epenet] - [#61758]) ([hive docs]) +- Use new DeviceClass enum in home_connect ([@epenet] - [#61759]) ([home_connect docs]) +- Last reset is no longer deprecated ([@Danielhiversen] - [#61816]) ([sensor docs]) +- Improve warnings when a zone trigger is referencing a none-existing zone ([@emontnemery] - [#61763]) ([zone docs]) +- Use SensorStateClass in iqvia ([@epenet] - [#61823]) ([iqvia docs]) +- Use SensorDeviceClass in ipp ([@epenet] - [#61822]) ([ipp docs]) +- Use SensorDeviceClass in islamic_prayer_times ([@epenet] - [#61824]) ([islamic_prayer_times docs]) +- Use SensorDeviceClass in jewish-calendar ([@epenet] - [#61827]) ([jewish_calendar docs]) +- Revert pillow 8.3.2 ([@MartinHjelmare] - [#61793]) ([qrcode docs]) ([tensorflow docs]) ([proxy docs]) ([seven_segments docs]) ([doods docs]) ([sighthound docs]) ([image docs]) +- Use new CoverDeviceClass in knx ([@epenet] - [#61868]) ([knx docs]) +- Support publishing MQTT messages with raw bytes payloads ([@jbouwh] - [#61090]) ([mqtt docs]) +- Use new BinarySensorDeviceClass in keenetic_ndms2 ([@epenet] - [#61867]) ([keenetic_ndms2 docs]) +- Use new enums in keba ([@epenet] - [#61869]) ([keba docs]) +- Use new enums in kostal_plenticore ([@epenet] - [#61871]) ([kostal_plenticore docs]) +- Tidy up package constraint messages ([@epenet] - [#61866]) +- Use new DeviceClass enums in konnected ([@epenet] - [#61870]) ([konnected docs]) +- Remove deprecated yaml config from enphase envoy ([@tkdrob] - [#61840]) ([enphase_envoy docs]) (breaking-change) +- Use SensorDeviceClass in lacrosse ([@epenet] - [#61879]) ([lacrosse docs]) +- Use new enums in litterrobot ([@epenet] - [#61884]) ([litterrobot docs]) +- Use new DeviceClass enums in lutron_caseta ([@epenet] - [#61887]) ([lutron_caseta docs]) +- Use new enums in lookin ([@epenet] - [#61885]) ([lookin docs]) +- Use BinarySensorDeviceClass in lutron ([@epenet] - [#61886]) ([lutron docs]) +- Use _attr_attribution in meteoclimatic ([@epenet] - [#61898]) ([meteoclimatic docs]) +- Use new SensorDeviceClass in metoffice ([@epenet] - [#61899]) ([metoffice docs]) +- Use new SensorDeviceClass in meteoclimatic ([@epenet] - [#61897]) ([meteoclimatic docs]) +- Use new enums in meteo-france ([@epenet] - [#61896]) ([meteo_france docs]) +- Use new enums in melcloud ([@epenet] - [#61894]) ([melcloud docs]) +- Use new enums in lyric ([@epenet] - [#61888]) ([lyric docs]) +- Use new enums in miflora ([@epenet] - [#61922]) ([miflora docs]) +- Fix typo in template select ([@emontnemery] - [#61919]) ([template docs]) +- Use SensorDeviceClass in mhz19 ([@epenet] - [#61923]) ([mhz19 docs]) +- Use new BinarySensorDeviceClass in minecraft_server ([@epenet] - [#61924]) ([minecraft_server docs]) +- Use new SensorDeviceClass in mitemp-bt ([@epenet] - [#61925]) ([mitemp_bt docs]) +- Use new enums in modern_forms ([@epenet] - [#61930]) ([modern_forms docs]) +- Use new enums in motioneye ([@epenet] - [#61932]) ([motioneye docs]) +- Use new enums in myq ([@epenet] - [#61933]) ([myq docs]) +- Use new enums in mullvad ([@epenet] - [#61934]) ([mullvad docs]) +- Make config entry disabled_by an enum ([@scop] - [#60445]) ([config docs]) ([zwave_js docs]) +- Don't log DB connection string on error ([@balloob] - [#61927]) ([recorder docs]) +- Use new enums in notion ([@epenet] - [#61950]) ([notion docs]) +- Use new enums in nest ([@epenet] - [#61942]) ([nest docs]) +- A few RFLink tests ([@javicalle] - [#58544]) ([rflink docs]) +- Use RegistryEntryDisabler ([@scop] - [#60436]) +- Clean up dirt from recollect_waste yaml ([@tkdrob] - [#61964]) ([recollect_waste docs]) +- Use Enums in zoneminder ([@tkdrob] - [#61975]) ([zoneminder docs]) +- Use Enums in zamg ([@tkdrob] - [#61976]) ([zamg docs]) +- Use new BinarySensorDeviceClass in isy994 ([@epenet] - [#61825]) ([isy994 docs]) +- Use new enums in nexia ([@epenet] - [#61952]) ([nexia docs]) +- Bump pyatv to 0.9.8 ([@postlund] - [#61959]) ([apple_tv docs]) +- Bump actions/upload-artifact from 2.3.0 to 2.3.1 (@dependabot - [#62004]) +- Use enums in wiffi ([@tkdrob] - [#61984]) ([wiffi docs]) +- Use enums in wirelesstag ([@tkdrob] - [#61985]) ([wirelesstag docs]) +- Use enums in wemo ([@tkdrob] - [#61983]) ([wemo docs]) +- Use enums in xbee ([@tkdrob] - [#61982]) ([xbee docs]) +- Use enums in xiaomi_aqara ([@tkdrob] - [#61981]) ([xiaomi_aqara docs]) +- Use enums in withings ([@tkdrob] - [#61987]) ([withings docs]) +- Use enums in wolflink ([@tkdrob] - [#61988]) ([wolflink docs]) +- Use enums in yandex_transport ([@tkdrob] - [#61978]) ([yandex_transport docs]) +- Use enums in velux ([@tkdrob] - [#61991]) ([velux docs]) +- Use enums in youless ([@tkdrob] - [#61977]) ([youless docs]) +- Use enums in vallox ([@tkdrob] - [#61992]) ([vallox docs]) +- Use enums in webostv ([@tkdrob] - [#62000]) ([webostv docs]) +- Use enums in waterfurnace ([@tkdrob] - [#61999]) ([waterfurnace docs]) +- Use enums in waqi ([@tkdrob] - [#61998]) ([waqi docs]) +- Use enums in vilfo ([@tkdrob] - [#61995]) ([vilfo docs]) +- Prevent apple_tv rediscovery from secondary identifiers ([@bdraco] - [#61973]) ([apple_tv docs]) +- Tweak comment for ENERGY sensor device class ([@emontnemery] - [#62006]) ([sensor docs]) +- Use enums in vicare ([@tkdrob] - [#61994]) ([vicare docs]) +- Use new enums in mysensors ([@epenet] - [#61935]) ([mysensors docs]) +- Bump version to 2022.2.0dev0 ([@frenck] - [#62011]) +- Add Tibber estimated hour consumption sensor ([@Danielhiversen] - [#62003]) ([tibber docs]) +- Add hardware version to the device registry ([@bdraco] - [#61650]) +- Use new enums in netgear ([@epenet] - [#61943]) ([netgear docs]) +- Add hardware version support to homekit controller ([@bdraco] - [#61743]) ([homekit_controller docs]) +- Use enums in toon ([@tkdrob] - [#62021]) ([toon docs]) +- Use enums in tractive ([@tkdrob] - [#62024]) ([tractive docs]) +- Handle color temp to RGBWW conversion ([@bdraco] - [#61473]) ([light docs]) +- Use enums in utility_meter ([@tkdrob] - [#62033]) ([utility_meter docs]) +- Use enums in upnp ([@tkdrob] - [#62031]) ([upnp docs]) +- Use enums in updated ([@tkdrob] - [#62030]) ([updater docs]) +- Use enums in unifi ([@tkdrob] - [#62029]) ([unifi docs]) +- Use entity category enums in tuya ([@tkdrob] - [#62028]) ([tuya docs]) +- Use enums in trafikverket_weatherstation ([@tkdrob] - [#62027]) ([trafikverket_weatherstation docs]) +- Use enums in trafikverket_train ([@tkdrob] - [#62026]) ([trafikverket_train docs]) +- Use enums in tradfri ([@tkdrob] - [#62025]) ([tradfri docs]) +- Use enums in tplink ([@tkdrob] - [#62023]) ([tplink docs]) +- Use enums in totalconnect ([@tkdrob] - [#62022]) ([totalconnect docs]) +- Use enums in tolo ([@tkdrob] - [#62020]) ([tolo docs]) +- Implement DataUpdateCoordinator for Fritz ([@chemelli74] - [#60909]) ([fritz docs]) +- Add buttons and deprecate services for Fritz ([@chemelli74] - [#61483]) ([fritz docs]) (breaking-change) +- Fix mfi tests ([@epenet] - [#61904]) ([mfi docs]) +- Use enums in shelly ([@tkdrob] - [#62035]) ([shelly docs]) +- Use enums in ring ([@tkdrob] - [#62041]) ([ring docs]) +- Use enums in uptime ([@tkdrob] - [#62032]) ([uptime docs]) +- Use enums in skybell ([@tkdrob] - [#62053]) ([skybell docs]) +- use enums in skybeacon ([@tkdrob] - [#62052]) ([skybeacon docs]) +- Use enums in sensehat ([@tkdrob] - [#62051]) ([sensehat docs]) +- Use enums in senses ([@tkdrob] - [#62050]) ([sense docs]) +- Use enums in sht31 ([@tkdrob] - [#62036]) ([sht31 docs]) +- Use enums in simplisafe ([@tkdrob] - [#62037]) ([simplisafe docs]) +- Use enums in repetier ([@tkdrob] - [#62038]) ([repetier docs]) +- Use enums in rfxtrx ([@tkdrob] - [#62039]) ([rfxtrx docs]) +- Use enums in ridwell ([@tkdrob] - [#62040]) ([ridwell docs]) +- Use enums in risco ([@tkdrob] - [#62042]) ([risco docs]) +- Use enum in roku ([@tkdrob] - [#62043]) ([roku docs]) +- Use enums in rova ([@tkdrob] - [#62044]) ([rova docs]) +- Use enums in samsung_tv ([@tkdrob] - [#62047]) ([samsungtv docs]) +- Use enums in qnap ([@tkdrob] - [#62055]) ([qnap docs]) +- Use enums philips_js ([@tkdrob] - [#62063]) ([philips_js docs]) +- Use new enums in mqtt ([@epenet] - [#61936]) ([mqtt docs]) +- Use enums in rdw ([@tkdrob] - [#62059]) ([rdw docs]) +- Use new enums in mobile_app ([@epenet] - [#61929]) ([mobile_app docs]) +- Clean up upcloud ([@tkdrob] - [#61971]) ([upcloud docs]) +- Use new enums in nx584 ([@epenet] - [#61948]) ([nx584 docs]) +- Use DeviceClass Enum in concord232 schema ([@epenet] - [#61968]) ([concord232 docs]) +- Use DeviceClass Enum in ness-alarm schema ([@epenet] - [#61969]) ([ness_alarm docs]) +- Use enums for Panasonic Viera ([@tkdrob] - [#62062]) ([panasonic_viera docs]) +- Use enums in ovo_energy ([@tkdrob] - [#62087]) ([ovo_energy docs]) +- Use enums in oasa_telematics ([@tkdrob] - [#62077]) ([oasa_telematics docs]) +- Use enums in picnic ([@tkdrob] - [#62065]) ([picnic docs]) +- Use enums in ping ([@tkdrob] - [#62066]) ([ping docs]) +- Use enums in pluugwise ([@tkdrob] - [#62067]) ([plugwise docs]) +- Use new enums in nws ([@epenet] - [#61947]) ([nws docs]) +- Use new enums in neato ([@epenet] - [#61939]) ([neato docs]) +- Use SensorDeviceClass in mfi ([@epenet] - [#61900]) ([mfi docs]) +- Use enums in plaato ([@tkdrob] - [#62069]) ([plaato docs]) +- Minor refactor of template fan ([@emontnemery] - [#61856]) ([template docs]) +- Use enums in rpi_power ([@tkdrob] - [#62046]) ([rpi_power docs]) +- Minor refactor of template light ([@emontnemery] - [#61857]) ([template docs]) +- Use enums in ozw ([@tkdrob] - [#62088]) ([ozw docs]) +- Minor refactor of template lock ([@emontnemery] - [#61858]) ([template docs]) +- Minor refactor of template number ([@emontnemery] - [#61863]) ([template docs]) +- Use enums in openuv ([@tkdrob] - [#62085]) ([openuv docs]) +- Use enums in recollect_waste ([@tkdrob] - [#62060]) ([recollect_waste docs]) +- Use enums in rainmachine ([@tkdrob] - [#62058]) ([rainmachine docs]) +- Minor refactor of template weather ([@emontnemery] - [#61861]) ([template docs]) +- Minor refactor of template alarm ([@emontnemery] - [#61862]) ([template docs]) +- Use enums in ondilo_ico ([@tkdrob] - [#62081]) ([ondilo_ico docs]) +- Use enums in poolsense ([@tkdrob] - [#62071]) ([poolsense docs]) +- Use enums in octoprint ([@tkdrob] - [#62079]) ([octoprint docs]) +- Minor refactor of template select ([@emontnemery] - [#62091]) ([template docs]) +- Minor refactor of template switch ([@emontnemery] - [#61859]) ([template docs]) +- Use enums in openverse ([@tkdrob] - [#62082]) ([openevse docs]) +- Use enums in venstar ([@tkdrob] - [#61993]) ([venstar docs]) +- Use enums in screenlogic ([@tkdrob] - [#62049]) ([screenlogic docs]) +- Use enums in Powerwall ([@tkdrob] - [#62072]) ([powerwall docs]) +- Add config flow to Azure Event Hub integration ([@eavanvalkenburg] - [#61155]) ([azure_event_hub docs]) (breaking-change) +- Minor refactor of template vacuum ([@emontnemery] - [#61860]) ([template docs]) +- Use DeviceClass Enums in airly tests ([@davet2001] - [#61989]) ([airly docs]) +- Use DeviceClass Enums in abode tests ([@davet2001] - [#61980]) ([abode docs]) +- Use DeviceClass Enums in advantage_air tests ([@davet2001] - [#61986]) ([advantage_air docs]) +- Use DeviceClass Enums in accuweather tests ([@davet2001] - [#61990]) ([accuweather docs]) +- Add Open-Meteo integration (second attempt) ([@frenck] - [#61742]) ([open_meteo docs]) (new-integration) +- Use DeviceClass Enums in brother tests ([@davet2001] - [#62110]) ([brother docs]) +- Use DeviceClass Enums in ambee tests ([@davet2001] - [#62108]) ([ambee docs]) +- Small cleanup of Luftdaten constants ([@frenck] - [#61757]) ([luftdaten docs]) +- Improve tests for template binary sensor ([@emontnemery] - [#62103]) ([template docs]) +- Use new enums in nzbget ([@epenet] - [#61946]) ([nzbget docs]) +- Use DeviceClass Enums in deconz tests ([@davet2001] - [#62114]) ([deconz docs]) +- Use DeviceClass Enums in canary tests ([@davet2001] - [#62113]) ([canary docs]) +- Handle None values in weather entity forecast ([@rianadon] - [#61467]) ([weather docs]) +- Use DeviceClass Enums in elgato tests ([@davet2001] - [#62121]) ([elgato docs]) +- Tweak core add_job and async_add_job docstrings ([@emontnemery] - [#62112]) +- Use DeviceClass Enums in arlo tests ([@davet2001] - [#62095]) ([arlo docs]) +- Use enums in obihai ([@tkdrob] - [#62078]) ([obihai docs]) +- Use enums in opengarage ([@tkdrob] - [#62083]) ([opengarage docs]) +- Use enums in p1_monitor ([@tkdrob] - [#62061]) ([p1_monitor docs]) +- Use enums in pvoutput ([@tkdrob] - [#62073]) ([pvoutput docs]) +- Use enums in openweathermap ([@tkdrob] - [#62086]) ([openweathermap docs]) +- Use enums in Omnilogic ([@tkdrob] - [#62080]) ([omnilogic docs]) +- Use enums in opentherm_gw ([@tkdrob] - [#62084]) ([opentherm_gw docs]) +- Use enums in Point ([@tkdrob] - [#62070]) ([point docs]) +- Use enums in xiaomi_miio ([@tkdrob] - [#61979]) ([xiaomi_miio docs]) +- Use enums in pi_hole ([@tkdrob] - [#62064]) ([pi_hole docs]) +- Use enums in roomba ([@tkdrob] - [#62045]) ([roomba docs]) +- Use enums in rainforest_eagle ([@tkdrob] - [#62057]) ([rainforest_eagle docs]) +- Use new enums in netatmo ([@epenet] - [#61941]) ([netatmo docs]) +- Use new enums in netgear_lte ([@epenet] - [#61955]) ([netgear_lte docs]) +- Use new enums in nextbus ([@epenet] - [#61954]) ([nextbus docs]) +- Use new enums in nissan_leaf ([@epenet] - [#61951]) ([nissan_leaf docs]) +- Use new enums in neurio_energy ([@epenet] - [#61953]) ([neurio_energy docs]) +- Use new enums in nuki ([@epenet] - [#61949]) ([nuki docs]) +- Use new enums in motion_blinds ([@epenet] - [#61931]) ([motion_blinds docs]) +- Use attr** in lightwave ([@epenet] - [#61881]) ([lightwave docs]) +- Use attr** in linux-battery ([@epenet] - [#61883]) ([linux_battery docs]) +- Use _attr_attribution in flipr ([@epenet] - [#61889]) ([flipr docs]) +- Use _attr_attribution in goalzero ([@epenet] - [#61890]) ([goalzero docs]) +- Use attr** in meteoalarm ([@epenet] - [#61895]) ([meteoalarm docs]) +- Use new enums in nanoleaf ([@epenet] - [#61938]) ([nanoleaf docs]) +- Use new enums in nam ([@epenet] - [#61940]) ([nam docs]) +- Use new SensorDeviceClass in juicenet ([@epenet] - [#61828]) ([juicenet docs]) +- Use enums in satel_integra ([@tkdrob] - [#62048]) ([satel_integra docs]) +- Use DeviceClass Enum in KNX schema ([@farmio] - [#61960]) ([knx docs]) +- Use DeviceClass Enums in axis tests ([@davet2001] - [#62096]) ([axis docs]) +- Use enums in rachio ([@tkdrob] - [#62056]) ([rachio docs]) +- Use enums in pvpc_hourly_pricing ([@tkdrob] - [#62076]) ([pvpc_hourly_pricing docs]) +- Use DeviceClass Enums in devolo_home_control tests ([@davet2001] - [#62116]) ([devolo_home_control docs]) +- Use DeviceClass Enums in directv tests ([@davet2001] - [#62118]) ([directv docs]) +- Use DeviceClass Enums in energy tests ([@davet2001] - [#62122]) ([energy docs]) +- Use DeviceClass Enums in efergy tests ([@davet2001] - [#62119]) ([efergy docs]) +- Use EntityCategory Enums in elkm1 ([@davet2001] - [#62123]) ([elkm1 docs]) +- Use DeviceClass Enums in google_assistant tests ([@davet2001] - [#62142]) ([google_assistant docs]) +- Use DeviceClass Enums in goalzero tests ([@davet2001] - [#62136]) ([goalzero docs]) +- Use DeviceClass Enums in blebox tests ([@davet2001] - [#62109]) ([blebox docs]) +- Use DeviceClass Enums in forecast_solar tests ([@davet2001] - [#62132]) ([forecast_solar docs]) +- Use DeviceClass Enums in gios tests ([@davet2001] - [#62135]) ([gios docs]) +- Use DeviceClass Enums in gogogate2 tests ([@davet2001] - [#62137]) ([gogogate2 docs]) +- Use enums in sensor tests ([@tkdrob] - [#62152]) ([sensor docs]) +- Use enums in helpers tests ([@tkdrob] - [#62141]) +- Use enums for testing_config ([@tkdrob] - [#62140]) +- Use enums in unifi tests ([@tkdrob] - [#62151]) ([unifi docs]) +- Fix threading error in qwikswitch ([@emontnemery] - [#62173]) ([qwikswitch docs]) +- Move Solarlog state to entity description ([@Ernst79] - [#62093]) ([solarlog docs]) +- Use new SensorDeviceClass enum in climacell ([@epenet] - [#61362]) ([climacell docs]) +- Fix threading error in demo vacuum ([@emontnemery] - [#62165]) ([demo docs]) +- Use enums in wallbox ([@tkdrob] - [#61997]) ([wallbox docs]) +- Add Tibber peak hour, monthly consumption and monthly cost sensors ([@Danielhiversen] - [#61853]) ([tibber docs]) +- Fix threading error in litejet ([@emontnemery] - [#62185]) ([litejet docs]) +- Fix threading error in recorder tests ([@emontnemery] - [#62187]) ([recorder docs]) +- Update fortios device_tracker ([@kimfrellsen] - [#61970]) ([fortios docs]) (breaking-change) +- Add battery entity for Maxcube devices ([@petslane] - [#58699]) ([maxcube docs]) +- Upgrades P1 Monitor to v1.0.1 ([@klaasnicolaas] - [#62201]) ([p1_monitor docs]) +- Address late review of nina ([@DeerMaximum] - [#61915]) ([nina docs]) +- Use DeviceClass Enums in greeneye_monitor tests ([@davet2001] - [#62143]) ([greeneye_monitor docs]) +- Fix codeowners for tests in hassfest ([@frenck] - [#62204]) +- Use enums in utility_meter tests ([@tkdrob] - [#62190]) ([utility_meter docs]) +- Fix Wemo create task for awaitable ([@esev] - [#62159]) ([wemo docs]) +- Use enums in roku tests ([@tkdrob] - [#62196]) ([roku docs]) +- Use enums in samsungtv tests ([@tkdrob] - [#62195]) ([samsungtv docs]) +- Fix threading error in stream tests ([@bdraco] - [#62221]) ([stream docs]) +- Use new enums in sonos ([@epenet] - [#62202]) ([sonos docs]) +- Remove myself from yeelight codeowners ([@rytilahti] - [#62239]) ([yeelight docs]) +- Add Netgear entity category and configuration url ([@starkillerOG] - [#62260]) ([netgear docs]) +- Add entity category to DSMR ([@starkillerOG] - [#62262]) ([dsmr docs]) +- Motion blinds add entity category ([@starkillerOG] - [#62266]) ([motion_blinds docs]) +- Hyperion add entity category ([@starkillerOG] - [#62268]) ([hyperion docs]) +- Add ATTR_HW_VERSION to homeassistant.const ([@bdraco] - [#62258]) +- Add software version to screenlogic ([@bdraco] - [#62255]) ([screenlogic docs]) +- Use new enums in smarttub ([@epenet] - [#62216]) ([smarttub docs]) +- Use new enums in smart_meter_texas ([@epenet] - [#62210]) ([smart_meter_texas docs]) +- Use enums in statistics tests ([@tkdrob] - [#62191]) ([statistics docs]) +- Use new enums in smappee ([@epenet] - [#62209]) ([smappee docs]) +- Finish using enums in wled ([@tkdrob] - [#62189]) ([wled docs]) +- Add xiaomi miio gateway hw version ([@starkillerOG] - [#62274]) ([xiaomi_miio docs]) +- Update rokuecp to 0.8.5 ([@ctalkington] - [#62285]) ([roku docs]) +- Move Device Class definition to Home Assistant for MusicCast Select Entities ([@micha91] - [#61218]) ([yamaha_musiccast docs]) +- Bump aioridwell to 2021.12.2 ([@bachya] - [#62284]) ([ridwell docs]) +- Use new DeviceClass enums in homekit ([@epenet] - [#61665]) ([homekit docs]) +- Add wemo config_flow test to get 100% coverage ([@esev] - [#62158]) ([wemo docs]) +- Fix hw_version not updating from an entity device_info ([@bdraco] - [#62254]) +- Add network support to flux_led discovery ([@bdraco] - [#61132]) ([flux_led docs]) +- Use DeviceClass Enums in homekit_controller tests ([@davet2001] - [#62219]) ([homekit_controller docs]) +- Add a switch to opt-in to/opt-out of the next Ridwell pickup ([@bachya] - [#62293]) ([ridwell docs]) +- Add hardware version to bond ([@bdraco] - [#62256]) ([bond docs]) +- Add support for enabling/disabling cloud access in flux_led ([@bdraco] - [#61138]) ([flux_led docs]) +- Speed up stream tests by 40-50% with shared data ([@allenporter] - [#62300]) ([stream docs]) +- Add pico remote support to non-pro lutron caseta bridges ([@bdraco] - [#61032]) ([lutron_caseta docs]) +- Persist nest media events to disk backed storage ([@allenporter] - [#61641]) ([nest docs]) +- Align zeroconf matching with ZeroconfServiceInfo ([@bdraco] - [#62133]) ([zeroconf docs]) ([axis docs]) ([doorbird docs]) ([apple_tv docs]) ([samsungtv docs]) ([nam docs]) (breaking-change) +- Cleanup tests for lcn events and device triggers ([@alengwenus] - [#61719]) ([lcn docs]) +- Don't add Fronius entities with unknown state ([@farmio] - [#62282]) ([fronius docs]) +- Use enums in zwave_js ([@tkdrob] - [#62130]) ([zwave_js docs]) +- Add unique ID to config entry in Luftdaten ([@frenck] - [#62176]) ([luftdaten docs]) +- Use DeviceClass Enums in filter tests ([@davet2001] - [#62138]) ([filter docs]) +- Finish using enums in srp_energy ([@tkdrob] - [#62192]) ([srp_energy docs]) +- Change unload for P1 Monitor ([@klaasnicolaas] - [#62213]) ([p1_monitor docs]) +- Use new enums in smarthab ([@epenet] - [#62208]) ([smarthab docs]) +- Cleanup attr** usage in uptime ([@epenet] - [#62212]) ([uptime docs]) +- Use _attr_** in slide ([@epenet] - [#62206]) ([slide docs]) +- Use new enums in saj ([@epenet] - [#62205]) ([saj docs]) +- Use new enums in sleepiq ([@epenet] - [#62203]) ([sleepiq docs]) +- Use _attr_attribution in poolsense ([@epenet] - [#62180]) ([poolsense docs]) +- Use _attr_** in openweathermap ([@epenet] - [#62179]) ([openweathermap docs]) +- Use _attr_attribution in sense ([@epenet] - [#62181]) ([sense docs]) +- Use enums in zwave ([@tkdrob] - [#62131]) ([zwave docs]) +- Remove deprecated yaml config from environment canada ([@tkdrob] - [#61839]) ([environment_canada docs]) (breaking-change) +- Support additional Apple TV device types ([@postlund] - [#61104]) ([apple_tv docs]) +- Add additional guarding to color_rgb_to_rgbww ([@bdraco] - [#62220]) +- Add reboot button to Magic Home/flux_led ([@bdraco] - [#62323]) ([flux_led docs]) +- Move Magic Home/flux_led coordinator to its own module ([@bdraco] - [#62324]) ([flux_led docs]) +- Remove deprecated yaml config from opengarage ([@tkdrob] - [#61961]) ([opengarage docs]) (breaking-change) +- Add switch to enable/disable music mode in Magic Home/flux_led ([@bdraco] - [#62320]) ([flux_led docs]) +- Remove deprecated yaml config from aurora abb ([@tkdrob] - [#62317]) ([aurora_abb_powerone docs]) (breaking-change) +- Use enums for rest tests ([@tkdrob] - [#62197]) ([rest docs]) +- Make core config source an enum ([@scop] - [#61966]) +- Mark camera unavailable when keepalive stream fails ([@allenporter] - [#62294]) ([camera docs]) ([stream docs]) +- Bumped boschshcpy 0.2.19 to 0.2.27 ([@tschamm] - [#62326]) ([bosch_shc docs]) +- Remove deprecated yaml config from Efergy ([@tkdrob] - [#61520]) ([efergy docs]) (breaking-change) +- Use migration helper in Ridwell ([@bachya] - [#62327]) ([ridwell docs]) +- Add homekit discovery to ecobee ([@bdraco] - [#62334]) ([ecobee docs]) +- Use migration helper in RainMachine ([@bachya] - [#62328]) ([rainmachine docs]) +- Simplify nest test patch using new keyword ([@allenporter] - [#62336]) ([nest docs]) +- Add zeroconf discovery to ecobee for non-homekit models ([@bdraco] - [#62335]) ([ecobee docs]) +- Replace Guardian logged errors with HomeAssistantError in service handlers ([@bachya] - [#62342]) ([guardian docs]) +- Remove deprecated yaml config from flux_led ([@tkdrob] - [#61844]) ([flux_led docs]) (breaking-change) +- Replace RainMachine logged errors with HomeAssistantError in service handlers ([@bachya] - [#62350]) ([rainmachine docs]) +- Replace OpenUV logged errors with `HomeAssistantError` in service handlers ([@bachya] - [#62349]) ([openuv docs]) +- Remove deprecated yaml config from enphase_envoy ([@tkdrob] - [#62348]) ([enphase_envoy docs]) (breaking-change) +- Re-add `binary_sensor` attribute for AlarmDecoder that was inadvertently removed ([@ajschmidt8] - [#62351]) ([alarmdecoder docs]) +- Remove deprecated yaml config from broadlink ([@tkdrob] - [#62341]) ([broadlink docs]) (breaking-change) +- Fix typing for wemo ([@esev] - [#62157]) ([wemo docs]) +- Add a camera specific logger to help diagnose stream errors ([@allenporter] - [#61647]) ([camera docs]) ([stream docs]) +- Support Plex resuming and playback offset ([@jjlawren] - [#61468]) ([plex docs]) +- Improve SSDP callback performance ([@bdraco] - [#62359]) ([ssdp docs]) +- Use the Platform enum in wemo ([@esev] - [#62153]) ([wemo docs]) +- Improve evil genius labs error handling ([@balloob] - [#62365]) ([evil_genius_labs docs]) +- Use enums in smartthings ([@tkdrob] - [#62198]) ([smartthings docs]) +- Invalidate CI cache by bumping caching version ([@frenck] - [#62383]) +- Fix typo in Kostal Plenticore integration entity ([@ThomDietrich] - [#62380]) ([kostal_plenticore docs]) +- Replace SimpliSafe logged errors with `HomeAssistantError` in service handlers ([@bachya] - [#62352]) ([simplisafe docs]) +- Add zones support to flux_led ([@bdraco] - [#61072]) ([flux_led docs]) +- Remove deprecated yaml config from co2signal ([@tkdrob] - [#62343]) ([co2signal docs]) (breaking-change) +- Use new enums in sms ([@epenet] - [#62372]) ([sms docs]) +- Remove deprecated yaml config from dlna_dmr ([@tkdrob] - [#62344]) ([dlna_dmr docs]) (breaking-change) +- Use attr** in linode ([@epenet] - [#61882]) ([linode docs]) +- Use new enums in spc ([@epenet] - [#62384]) ([spc docs]) +- Use new enums in soma ([@epenet] - [#62377]) ([soma docs]) +- Use _attr_attribution in synology_dsm ([@epenet] - [#62382]) ([synology_dsm docs]) +- Use new enums in solax ([@epenet] - [#62376]) ([solax docs]) +- Statistics component typing ([@ThomDietrich] - [#60997]) ([statistics docs]) +- Use new enums in solaredge_local ([@epenet] - [#62374]) ([solaredge_local docs]) +- Cleanup stale setup from CO2Signal ([@frenck] - [#62395]) ([co2signal docs]) +- Add input_button ([@frenck] - [#62008]) ([demo docs]) ([default_config docs]) ([input_button docs]) (new-integration) +- Update CODEOWNERS and correct iot class for Konnected ([@heythisisnate] - [#62391]) +- Use new enums in synology_dsm ([@epenet] - [#62398]) ([synology_dsm docs]) +- Use new enums in switcher_kis ([@epenet] - [#62400]) ([switcher_kis docs]) +- Use new enums in syncthru ([@epenet] - [#62399]) ([syncthru docs]) +- Use new enums in systemmonitor ([@epenet] - [#62401]) ([systemmonitor docs]) +- Use new enums in system_bridge ([@epenet] - [#62402]) ([system_bridge docs]) +- Use new enums in speedtestdotnet ([@epenet] - [#62405]) ([speedtestdotnet docs]) +- Use new enums in supla ([@epenet] - [#62406]) ([supla docs]) +- Use new enums in starline ([@epenet] - [#62407]) ([starline docs]) +- Use new enums in switchbot ([@epenet] - [#62404]) ([switchbot docs]) +- Use new enums in subaru ([@epenet] - [#62403]) ([subaru docs]) +- Use attr** in solax ([@epenet] - [#62397]) ([solax docs]) +- Use new enums in spider ([@epenet] - [#62396]) ([spider docs]) +- Use DeviceClass Enums in devolo_home_network tests ([@davet2001] - [#62117]) ([devolo_home_network docs]) +- Use new enums in solaredge ([@epenet] - [#62373]) ([solaredge docs]) +- Use new enums in somfy ([@epenet] - [#62378]) ([somfy docs]) +- Use attr** in somfy-mylink ([@epenet] - [#62381]) ([somfy_mylink docs]) +- Use attr** in smarty ([@epenet] - [#62371]) ([smarty docs]) +- Make device automation type an enum ([@scop] - [#62354]) ([homekit docs]) ([mobile_app docs]) ([device_automation docs]) +- Update "Code Coverage" task to use numprocesses ([@epenet] - [#61449]) +- Refactor kaiterra to use SensorEntityDescription ([@epenet] - [#61865]) ([kaiterra docs]) +- Use DeviceClass Enums in homekit ([@davet2001] - [#62218]) ([homekit docs]) +- Fix Non-thread-safe operation in wemo tests ([@esev] - [#62418]) ([wemo docs]) +- Add config_flow to AndroidTV integration ([@ollo69] - [#54444]) ([androidtv docs]) (breaking-change) +- Use new enums in watttime ([@epenet] - [#62430]) ([watttime docs]) +- Use new enums in verisure ([@epenet] - [#62433]) ([verisure docs]) +- Use new enums in wled ([@epenet] - [#62431]) ([wled docs]) +- Use new enums in tesla_wall_connector ([@epenet] - [#62434]) ([tesla_wall_connector docs]) +- Use new enums in temper ([@epenet] - [#62428]) ([temper docs]) +- Use new enums in ted5000 ([@epenet] - [#62425]) ([ted5000 docs]) +- Use new enums in tasmota ([@epenet] - [#62427]) ([tasmota docs]) +- Use new enums in tellduslive ([@epenet] - [#62426]) ([tellduslive docs]) +- Add reauth flow to Tile ([@bachya] - [#62415]) ([tile docs]) +- Use new enums in tahoma ([@epenet] - [#62424]) ([tahoma docs]) +- Use new enums in tado ([@epenet] - [#62423]) ([tado docs]) +- Use attr** in tellstick sensor ([@epenet] - [#62422]) ([tellstick docs]) +- Use new enums in zwave_js ([@epenet] - [#62432]) ([zwave_js docs]) +- Use DeviceAutomationType in tests/components/[h-l]* ([@scop] - [#62441]) +- Use DeviceAutomationType in tests/components/[a-f]* ([@scop] - [#62440]) +- Use DeviceAutomationType in tests/components/[m-r]* ([@scop] - [#62443]) +- Use new enums in sma ([@epenet] - [#62439]) ([sma docs]) +- Add support for changing Magic Home socket power restore state ([@bdraco] - [#62301]) ([flux_led docs]) +- Cast types in wemo rather than converting ([@esev] - [#62454]) ([wemo docs]) +- Remove deprecated yaml config from nuki ([@tkdrob] - [#62470]) ([nuki docs]) (breaking-change) +- Cleanup stale setup/import from Nuki ([@frenck] - [#62476]) ([nuki docs]) +- Enable PYTHONASYNCIODEBUG in tests ([@emontnemery] - [#62104]) +- Use on_level when turning an Insteon dimmer on ([@MZachmann] - [#62321]) ([insteon docs]) +- Bump docker/login-action from 1.10.0 to 1.12.0 (@dependabot - [#62462]) +- Remove deprecated yaml config from honeywell ([@tkdrob] - [#62469]) ([honeywell docs]) (breaking-change) +- Remove deprecated yaml config from google travel time ([@tkdrob] - [#62468]) ([google_travel_time docs]) (breaking-change) +- Update Solax library to 0.2.9 ([@ppetru] - [#62464]) ([solax docs]) +- Remove deprecated yaml config from philips_js ([@tkdrob] - [#62471]) ([philips_js docs]) (breaking-change) +- Remove legacy migration and yaml from tplink ([@bdraco] - [#62457]) ([tplink docs]) (breaking-change) +- Add slugify as a template filter ([@ZephireNZ] - [#58724]) +- Use DeviceAutomationType in tests/components/[s-z]* ([@scop] - [#62450]) +- Add USB discover for Sonoff zigbee dongle plus ([@OpenMyDog] - [#62171]) ([zha docs]) +- Clean up ssdp flow in dlna_dmr ([@tkdrob] - [#62466]) ([dlna_dmr docs]) +- Add device registry information to Blink entities ([@decompil3d] - [#62449]) ([blink docs]) +- Add set_music_mode service to flux_led for detailed music mode control ([@bdraco] - [#62429]) ([flux_led docs]) +- Support shorthand templates in condition actions ([@emontnemery] - [#61177]) +- Mark removed config schemas as removed ([@frenck] - [#61014]) +- Remove deprecated YAML configuration from Stookalert ([@frenck] - [#61007]) ([stookalert docs]) (breaking-change) +- Deprecate mcp23017 integration (ADR-0019) ([@frenck] - [#62484]) ([mcp23017 docs]) (breaking-change) +- Deprecate pcal9535a integration (ADR-0019) ([@frenck] - [#62487]) ([pcal9535a docs]) (breaking-change) +- Use SensorDeviceClass enum in sensor device automations ([@emontnemery] - [#62480]) ([sensor docs]) +- Assert current state of script condition validation in tests ([@emontnemery] - [#62486]) +- Don't pollute config dir with deleted duplicated statistics ([@emontnemery] - [#62489]) ([recorder docs]) +- Save original + duplicate pairs when deleting duplicated statistics ([@emontnemery] - [#62498]) ([recorder docs]) +- Deprecate Sensirion SHT31 integration (ADR-0019) ([@frenck] - [#62496]) ([sht31 docs]) (breaking-change) +- Deprecate DHT Sensor integration (ADR-0019) ([@frenck] - [#62495]) ([dht docs]) (breaking-change) +- Deprecate BH1750 integration (ADR-0019) ([@frenck] - [#62493]) ([bh1750 docs]) (breaking-change) +- Wrap shorthand template conditions during schema validation ([@emontnemery] - [#62485]) +- Improve debug log when warning about a dip in total_increasing sensor ([@emontnemery] - [#62501]) ([sensor docs]) +- Deprecate pi4ioe5v9xxxx integration (ADR-0019) ([@frenck] - [#62491]) ([pi4ioe5v9xxxx docs]) (breaking-change) +- Add iif (immediate if) template function/filter ([@frenck] - [#61428]) +- Deprecate BeagleBone Black GPIO integration (ADR-0019) ([@frenck] - [#62492]) ([bbb_gpio docs]) (breaking-change) +- Use EntityCategory enum for MusicCast entity types ([@micha91] - [#62303]) ([yamaha_musiccast docs]) +- Use DeviceClass Enums in iotawatt tests ([@davet2001] - [#62512]) ([iotawatt docs]) +- Use DeviceClass Enums in integration tests ([@davet2001] - [#62511]) ([integration docs]) +- Remaining DeviceAutomationType bits ([@scop] - [#62508]) +- Use SensorStateClass Enums in fritzbox tests ([@davet2001] - [#62134]) ([fritzbox docs]) +- Use new enums in nzbget tests ([@davet2001] - [#62524]) ([nzbget docs]) +- Use new enums in nam tests ([@davet2001] - [#62522]) ([nam docs]) +- Use new enums in mysensors tests ([@davet2001] - [#62521]) ([mysensors docs]) +- Use new enums in mqtt tests ([@davet2001] - [#62520]) ([mqtt docs]) +- Fix backwards vol.Coerce order in flux_led ([@bdraco] - [#62509]) ([flux_led docs]) +- Use new enums in mobile_app tests ([@davet2001] - [#62517]) ([mobile_app docs]) +- Implement DataUpdateCoordinator in luftdaten ([@frenck] - [#62313]) ([luftdaten docs]) +- Use enums in tasmota tests ([@tkdrob] - [#62150]) ([tasmota docs]) +- Remove deprecated yaml config from vlc_telnet ([@tkdrob] - [#62542]) ([vlc_telnet docs]) (breaking-change) +- Use platform enums in withings tests ([@tkdrob] - [#62551]) ([withings docs]) +- Update nest mac addresses based on newer generation hardware ([@allenporter] - [#62525]) ([nest docs]) +- Use platform enums in ring tests ([@tkdrob] - [#62565]) ([ring docs]) +- Put access to ffmpeg hass.data behind a method ([@allenporter] - [#62570]) +- Add correct callback annotation in configurator ([@balloob] - [#62569]) ([configurator docs]) +- Use enums for ozw tests ([@davet2001] - [#62547]) ([ozw docs]) +- Use new enums in knx tests ([@davet2001] - [#62513]) ([knx docs]) +- Change Brunt cover device class ([@eavanvalkenburg] - [#62578]) ([brunt docs]) +- Support setting Aqara Hub Volume via homekit_controller ([@Jc2k] - [#62538]) ([homekit_controller docs]) +- Use new enums in litterrobot tests ([@davet2001] - [#62515]) ([litterrobot docs]) +- Use new enums in mfi tests ([@davet2001] - [#62516]) ([mfi docs]) +- Use new enums in modbus tests ([@davet2001] - [#62518]) ([modbus docs]) +- Use new enums in modern_forms tests ([@davet2001] - [#62519]) ([modern_forms docs]) +- Use platform enums in utility_meter tests ([@tkdrob] - [#62553]) ([utility_meter docs]) +- Remove deprecated yaml config from squeezebox ([@tkdrob] - [#62537]) ([squeezebox docs]) (breaking-change) +- Add state class support to Luftdaten ([@frenck] - [#62585]) ([luftdaten docs]) +- Flip behavior for grouped locks ([@emontnemery] - [#62580]) ([lock docs]) ([group docs]) (breaking-change) +- Add strict typing to Luftdaten ([@frenck] - [#62588]) ([luftdaten docs]) +- Allow binary sensor state to be None ([@frenck] - [#60193]) ([binary_sensor docs]) (breaking-change) +- Round imperial values to two decimals in bmw_connected_drive ([@rikroe] - [#62531]) ([bmw_connected_drive docs]) +- Replace charging_time_remaining with charging_end_time in bmw_connected_drive ([@rikroe] - [#60942]) ([bmw_connected_drive docs]) (breaking-change) +- Improve config flow Luftdaten ([@frenck] - [#62589]) ([luftdaten docs]) +- Use platform enums in rest tests ([@tkdrob] - [#62564]) ([rest docs]) +- Use platform enums in vizio tests ([@tkdrob] - [#62555]) ([vizio docs]) +- Use platform enums in plex tests ([@tkdrob] - [#62561]) ([plex docs]) +- Store deleted duplicated statistics in .storage ([@emontnemery] - [#62574]) ([recorder docs]) +- Use new enums in p1_monitor tests ([@davet2001] - [#62548]) ([p1_monitor docs]) +- Use new enums in picnic tests ([@davet2001] - [#62549]) ([picnic docs]) +- Use new enums for prometheus tests ([@davet2001] - [#62550]) ([prometheus docs]) +- Add get_image method to Stream ([@uvjustin] - [#61918]) ([stream docs]) +- Allow adding new devices to an Aqara hub via homekit_controller ([@Jc2k] - [#62600]) ([homekit_controller docs]) +- Bump pysma to 0.6.10 ([@rklomp] - [#62599]) ([sma docs]) +- Extract PVOutput logic into PyPi package ([@frenck] - [#62625]) ([pvoutput docs]) +- Derive mypy python_version from REQUIRED_PYTHON_VER ([@scop] - [#62616]) +- Add secondary codeowner to statistics integration ([@ThomDietrich] - [#62622]) ([statistics docs]) +- Implement config_Flow for Sensibo ([@gjohansson-ST] - [#60900]) ([sensibo docs]) (breaking-change) +- Improve Insteon responsiveness ([@teharris1] - [#62612]) ([insteon docs]) +- Add deprecation warning to switchbot yaml config ([@tkdrob] - [#62583]) ([switchbot docs]) (breaking-change) +- Speed up connecting to legacy flux_led devices ([@bdraco] - [#62614]) ([flux_led docs]) +- Reduce boilerplate code in entry init of rfxtrx ([@elupus] - [#58844]) ([rfxtrx docs]) +- Use relative imports in sensor ([@epenet] - [#62638]) ([sensor docs]) +- Bump async-upnp-client to 0.23.2 ([@StevenLooman] - [#62634]) ([upnp docs]) ([yeelight docs]) ([dlna_dmr docs]) ([ssdp docs]) +- Add input_button support to HomeKit ([@frenck] - [#62590]) ([homekit docs]) +- Bump PyISY to v3.0.1 ([@shbatm] - [#62646]) ([isy994 docs]) +- Add strict typing to PVOutput ([@frenck] - [#62628]) ([pvoutput docs]) +- Dismiss existing discoveries when a HomeKit device is paired ([@bdraco] - [#62632]) ([homekit_controller docs]) +- Add base integration tests to Luftdaten ([@frenck] - [#62594]) ([luftdaten docs]) +- Increase test coverage for google calendar ([@allenporter] - [#62648]) ([google docs]) +- Add input_button support to Alexa ([@frenck] - [#62592]) ([alexa docs]) +- Add input_button support to Google Assistant ([@frenck] - [#62593]) ([google_assistant docs]) +- Azure Event Hub code improvements ([@eavanvalkenburg] - [#62584]) +- Remove unnecessary checks before calling os.makedirs ([@emontnemery] - [#62576]) +- Add sensor device classes for apparent and reactive power ([@emontnemery] - [#62010]) ([sensor docs]) ([template docs]) +- Provide clearer feedback in Coinbase when authentication fails ([@TomBrien] - [#62627]) ([coinbase docs]) +- Correct extra attributes trafikverket_train ([@gjohansson-ST] - [#62636]) ([trafikverket_train docs]) (breaking-change) +- Remove deprecated yaml config from Syncthru ([@tkdrob] - [#62541]) ([syncthru docs]) (breaking-change) +- Update flux_led dhcp matching for older devices ([@bdraco] - [#62577]) ([flux_led docs]) +- Support Tuya cover with operation mach_operate ([@marcuslonnberg] - [#62650]) ([tuya docs]) +- Use SensorDeviceClass in thermoworks_smoke ([@epenet] - [#62637]) ([thermoworks_smoke docs]) +- Add sensor tests to Luftdaten ([@frenck] - [#62663]) ([luftdaten docs]) +- Remove TaHoma integration ([@iMicknl] - [#62607]) ([tahoma docs]) (breaking-change) +- Add subfolder globbing to partial linters ([@epenet] - [#62683]) +- Reject MQTT cover discovery using unsupported tilt_invert_state ([@emontnemery] - [#62680]) ([mqtt docs]) +- Add Overkiz integration (with base + sensor entity) ([@iMicknl] - [#62640]) ([overkiz docs]) (new-integration) +- Add connectsense to homekit_controller ([@ecoen66] - [#62675]) ([homekit_controller docs]) +- Fix pylint plugin which checks relative imports ([@KapJI] - [#62693]) ([zha docs]) +- Add DeviceInfo to Sensibo ([@gjohansson-ST] - [#62668]) ([sensibo docs]) +- Add config flow to version integration ([@ludeeus] - [#54642]) ([version docs]) (breaking-change) +- Use new enums in rdw tests ([@davet2001] - [#62707]) ([rdw docs]) +- Use new enums in smartthings tests ([@davet2001] - [#62708]) ([smartthings docs]) +- Review AndroidTV option flow strings ([@ollo69] - [#62601]) ([androidtv docs]) +- Use new enums in huisbaasje tests ([@davet2001] - [#62714]) ([huisbaasje docs]) +- Use new enums in zwave tests ([@davet2001] - [#62711]) ([zwave docs]) +- Add identify buttons to ZHA devices ([@dmulcahey] - [#61495]) ([zha docs]) +- Add lock entity to Overkiz integration ([@iMicknl] - [#62713]) ([overkiz docs]) (new-platform) +- Add button entity to Overkiz integration ([@iMicknl] - [#62719]) ([overkiz docs]) +- Generic thermostat presets ([@brianegge] - [#56080]) ([generic_thermostat docs]) +- Add missing __init__.py to overkiz tests ([@bdraco] - [#62727]) ([overkiz docs]) +- Add basic type hints to advantage_air ([@epenet] - [#62737]) ([advantage_air docs]) +- Add basic type hints to abode ([@epenet] - [#62730]) ([abode docs]) +- Add basic type hints to ads ([@epenet] - [#62738]) ([ads docs]) +- CI: Use wheel to install base requirements ([@cdce8p] - [#62743]) +- Fix HomeKit sensor update check ([@br3sc4] - [#62705]) ([homekit docs]) +- Upgrade vehicle to 0.3.1 ([@frenck] - [#62747]) ([rdw docs]) +- Use lock in Camera.create_stream ([@uvjustin] - [#62757]) ([camera docs]) ([stream docs]) +- Add number entity to Overkiz integration ([@iMicknl] - [#62732]) ([overkiz docs]) +- Store wemo device sw_version & upnp connections ([@esev] - [#62758]) ([wemo docs]) +- Add lqi and rssi sensors back to ZHA ([@dmulcahey] - [#62716]) ([zha docs]) +- Add zwave_js support for Fortrezz SSA3 ([@raman325] - [#62765]) ([zwave_js docs]) +- Add device info to Luftdaten ([@frenck] - [#62692]) ([luftdaten docs]) +- Bump google-nest-sdm to 1.0.0 ([@allenporter] - [#62783]) ([nest docs]) +- Add unifiprotect integration ([@AngellusMortis] - [#62697]) ([unifiprotect docs]) (new-integration) +- Huawei LTE simplifications ([@scop] - [#62770]) ([huawei_lte docs]) +- Allow generic camera conf without still_image_url ([@uvjustin] - [#62611]) ([generic docs]) +- Bumped boschshcpy 0.2.27 to 0.2.28 ([@tschamm] - [#62778]) ([bosch_shc docs]) +- Add huawei_lte hardware version ([@scop] - [#62773]) ([huawei_lte docs]) +- Cleanup HomeKit names to avoid unknown error when adding ([@bdraco] - [#62831]) ([homekit docs]) +- Use ConfigEntryDisabler enum ([@mib1185] - [#62816]) ([config docs]) +- Remove unused homekit.start service ([@bdraco] - [#62827]) ([homekit docs]) +- Update to pycarwings 2.13 ([@filcole] - [#62821]) ([nissan_leaf docs]) +- Added XML RSS as Content-Type ([@kristjanbjarni] - [#62822]) ([rest docs]) +- Add light entity to Overkiz integration ([@iMicknl] - [#62835]) ([overkiz docs]) (new-platform) +- Followup PR for UniFi Protect integration ([@AngellusMortis] - [#62806]) ([unifiprotect docs]) +- Bump mypy to 0.930 ([@cgtobi] - [#62642]) +- Add basic type hints to ffmpeg ([@epenet] - [#62744]) ([ffmpeg docs]) +- Refactor entity_category str types ([@davet2001] - [#62790]) ([mqtt docs]) ([neato docs]) ([shelly docs]) ([tasmota docs]) +- Address feedback to Overkiz integration ([@iMicknl] - [#62841]) ([overkiz docs]) +- Code improvements Sensibo ([@gjohansson-ST] - [#62810]) ([sensibo docs]) +- Improve Elmax code quality ([@albertogeniola] - [#61273]) ([elmax docs]) +- Set a suggested_area on nest devices based on the Google Home room name ([@allenporter] - [#62871]) ([nest docs]) +- Init template trigger binary sensor to None instead of False ([@amosyuen] - [#62769]) ([template docs]) (breaking-change) +- Update to iaqualink 0.4.1 ([@flz] - [#53745]) ([iaqualink docs]) +- Add configuration flow to PVOutput ([@frenck] - [#62667]) ([pvoutput docs]) (breaking-change) +- Add unique id to DHCP step in Config Flow for Overkiz ([@iMicknl] - [#62847]) ([overkiz docs]) +- Add myself as codeowner for Luftdaten ([@frenck] - [#62888]) ([luftdaten docs]) +- Fix missing power and energy sensors for light switches in bosch_shc ([@tschamm] - [#62802]) ([bosch_shc docs]) +- Slightly improve Open-Meteo configuration flow ([@frenck] - [#62869]) ([open_meteo docs]) +- Add basic support for EntityDescription in PVOutput ([@frenck] - [#62887]) ([pvoutput docs]) +- Add unique ID to PVOutput entities ([@frenck] - [#62890]) ([pvoutput docs]) +- Add setup type hints to sonos, unifi and wake_on_lan ([@epenet] - [#62876]) ([sonos docs]) +- Add type hint to adguard service calls ([@epenet] - [#62893]) ([adguard docs]) +- Ensure service calls are typed [a-d] ([@epenet] - [#62891]) +- Add basic type hints to xiaomi_miio ([@epenet] - [#62889]) ([xiaomi_miio docs]) +- Add scene entity to Overkiz integration ([@iMicknl] - [#62884]) ([overkiz docs]) (new-platform) +- Extract attribute into sensor for PVOutput ([@frenck] - [#62894]) ([pvoutput docs]) (breaking-change) +- Add basic type hints to nissan_leaf ([@filcole] - [#62904]) ([nissan_leaf docs]) +- Add binary sensor entity to Overkiz integration ([@iMicknl] - [#62913]) ([overkiz docs]) (new-platform) +- Use shorthand attributes in the CPU Speed integration ([@frenck] - [#62896]) ([cpuspeed docs]) +- Ensure service calls are typed [o-r] ([@epenet] - [#62920]) +- Ensure service calls are typed [v-z] ([@epenet] - [#62923]) ([zwave docs]) ([velux docs]) ([wake_on_lan docs]) ([webostv docs]) ([vesync docs]) +- Add strict typing to CPU Speed ([@frenck] - [#62924]) ([cpuspeed docs]) +- Ensure service calls are typed [h-i] ([@epenet] - [#62914]) +- Ensure service calls are typed [e-g] ([@epenet] - [#62912]) +- Ensure service calls are typed [s-u] ([@epenet] - [#62922]) +- Update pvo to 0.2.0 ([@frenck] - [#62926]) ([pvoutput docs]) +- Ensure service calls are typed [k-n] ([@epenet] - [#62917]) +- Deprecate Bosch BME680 Environmental Sensor (ADR-0019) ([@frenck] - [#62936]) ([bme680 docs]) (breaking-change) +- Deprecate Bosch BMP280 Environmental Sensor (ADR-0019) ([@frenck] - [#62937]) ([bmp280 docs]) (breaking-change) +- Add reauthentication handling to PVOutput ([@frenck] - [#62932]) ([pvoutput docs]) +- Fix incorrect state class for Ambient PWS rain rate sensor ([@bachya] - [#62946]) ([ambient_station docs]) +- Add basic type hints to homekit_controller ([@epenet] - [#62880]) ([homekit_controller docs]) +- Add myself as codeowner for Whois ([@frenck] - [#62958]) ([whois docs]) +- Convert Vallox integration to config flow ([@slovdahl] - [#62780]) ([vallox docs]) (breaking-change) +- Use Platform constants all over the place 1/3 ([@slovdahl] - [#62952]) +- Add configuration flow to CPU Speed ([@frenck] - [#62929]) ([cpuspeed docs]) (breaking-change) +- Deprecate HTU21D(F) Sensor (ADR-0019) ([@frenck] - [#62956]) ([htu21d docs]) (breaking-change) +- Deprecate Time of Flight (ADR-0019) ([@frenck] - [#62955]) ([tof docs]) (breaking-change) +- Use Platform constants all over the place 2/3 ([@slovdahl] - [#62953]) +- Use Platform constants all over the place 3/3 ([@slovdahl] - [#62954]) +- Add strict typing to Whois ([@frenck] - [#62959]) ([whois docs]) +- Add CO device class to binary_sensor entity model ([@epenet] - [#61962]) ([binary_sensor docs]) +- Deprecate Bosch BME280 Environmental Sensor (ADR-0019) ([@frenck] - [#62934]) ([bme280 docs]) (breaking-change) +- Rename Luftdaten -> Sensor.Community ([@frenck] - [#62865]) ([luftdaten docs]) (breaking-change) +- Add device info to PVOutput ([@frenck] - [#62951]) ([pvoutput docs]) +- Add basic type hints to command_line ([@epenet] - [#62877]) ([command_line docs]) +- Add unique ID to CPU Speed sensor ([@frenck] - [#62961]) ([cpuspeed docs]) +- Remove myself from proxmoxve component codeowners ([@k4ds3] - [#62963]) ([proxmoxve docs]) +- Fix zwave_js ZWaveTiltCover docstring ([@andre-richter] - [#62972]) ([zwave_js docs]) +- Don't throw when a Zigbee device has an unknown ZCL cluster ([@Adminiuga] - [#62964]) ([zha docs]) +- Add UniFi Protect media_player ([@AngellusMortis] - [#62895]) ([unifiprotect docs]) (new-platform) +- Bump google-nest-sdm to 1.1.0 ([@allenporter] - [#62977]) ([nest docs]) +- Add basic type hints to alexa ([@epenet] - [#62878]) ([alexa docs]) +- Reload nest integration when new devices are added ([@allenporter] - [#62976]) ([nest docs]) +- Add type hints to nissan_leaf integration ([@filcole] - [#62967]) ([nissan_leaf docs]) +- Add basic type hints to cast ([@epenet] - [#62746]) ([cast docs]) +- Ensure service calls are typed in homeassistant ([@epenet] - [#62915]) ([homeassistant docs]) +- Add unique id check in wiffi config flow ([@mampfes] - [#60388]) ([wiffi docs]) +- Clean up Tuya loggers ([@frenck] - [#62999]) ([tuya docs]) +- Update ZHA to use apparent power ([@dmulcahey] - [#62990]) ([zha docs]) +- Add unique id to nissanleaf entities ([@filcole] - [#62824]) ([nissan_leaf docs]) +- Fix Hue motion sensor state if sensor is disabled ([@marcelveldt] - [#63000]) ([hue docs]) +- Add setup type hints to plex ([@epenet] - [#62883]) ([plex docs]) +- Allow sending GroupValueResponse telegrams with knx.send service ([@MirkoLenz] - [#62639]) ([knx docs]) +- Detect unsupported system in CPU Speed integration ([@frenck] - [#63012]) ([cpuspeed docs]) +- Update stream errors with additional error information ([@allenporter] - [#62900]) ([stream docs]) +- Update legacy nest config flow tests to use modern best practices ([@allenporter] - [#63019]) ([nest docs]) +- Feedback from previous PR ([@AngellusMortis] - [#63022]) ([unifiprotect docs]) +- Add UniFi Protect button ([@AngellusMortis] - [#63001]) ([unifiprotect docs]) +- Add myself as codeowner for CPU Speed ([@frenck] - [#63034]) ([cpuspeed docs]) +- Ensure service calls are typed [m-z] ([@epenet] - [#63014]) +- Add full test coverage to CPU Speed ([@frenck] - [#63042]) ([cpuspeed docs]) +- Deprecate the Legacy Works with Nest API ([@allenporter] - [#63027]) ([nest docs]) (breaking-change) +- Adds missing strings ([@AngellusMortis] - [#63046]) ([unifiprotect docs]) +- Fixes UniFi Protect reconnect issues ([@AngellusMortis] - [#63047]) ([unifiprotect docs]) +- Fix local_file partial tests ([@epenet] - [#63023]) ([local_file docs]) +- Introduce const file in Whois ([@frenck] - [#63051]) ([whois docs]) +- Catch bluetooth_tracker OSError ([@atmurray] - [#60437]) ([bluetooth_tracker docs]) +- CI: Cache pip wheels ([@cdce8p] - [#62755]) +- Vallox config flow follow-up fixes ([@slovdahl] - [#63032]) ([vallox docs]) +- Bump fritzconnection and remove workarounds ([@chemelli74] - [#63050]) ([fritz docs]) ([fritzbox_callmonitor docs]) +- CI: Fix pip cache restore key ([@cdce8p] - [#63075]) +- Address feedback to Overkiz integration (round 2) ([@iMicknl] - [#63036]) ([overkiz docs]) +- Refresh device_info for Shelly devices ([@chemelli74] - [#62899]) ([shelly docs]) +- Fix unique id for Fritz buttons ([@chemelli74] - [#63072]) ([fritz docs]) +- Bump library to version 1.0.7 ([@bieniu] - [#63078]) ([shelly docs]) +- Ensure service calls are typed [a-j] ([@epenet] - [#63013]) +- Use StrEnum in Tuya constants ([@frenck] - [#63073]) ([tuya docs]) +- Use original PyAv in stream ([@uvjustin] - [#63079]) ([stream docs]) +- Add hw info for Shelly devices ([@chemelli74] - [#62643]) ([shelly docs]) +- Ensure admin service calls are typed ([@epenet] - [#63093]) +- Improve typing in core service registration ([@epenet] - [#63005]) +- Add configuration flow to Whois ([@frenck] - [#63069]) ([whois docs]) (breaking-change) +- Use mesh topology and add 3 more attr for Fritz ([@chemelli74] - [#63049]) ([fritz docs]) +- Bumps pyunifiprotect to 1.4.8 ([@AngellusMortis] - [#63113]) ([unifiprotect docs]) +- Add init type hints [a] ([@epenet] - [#63098]) +- Bump google-nest-sdm to 1.2.0 ([@allenporter] - [#63121]) ([nest docs]) +- Bump pypck to 0.7.12 ([@alengwenus] - [#63119]) ([lcn docs]) +- Add init type hints [e] ([@epenet] - [#63102]) +- Remove deprecated Connection class from octoprint ConfigFlow ([@milanmeu] - [#63117]) ([octoprint docs]) +- Make Sonos alarm `unique_id` unique with multiple households ([@jjlawren] - [#62645]) ([sonos docs]) +- Add color mode support to switch light ([@frenck] - [#63124]) ([switch docs]) +- Cleanup switch light ([@frenck] - [#63127]) ([switch docs]) +- Update Adax-local to 0.1.3 ([@Danielhiversen] - [#63129]) ([adax docs]) +- Enable strict typing for Overkiz integration ([@iMicknl] - [#63108]) ([overkiz docs]) +- Add velbus USB dicovery ([@Cereal2nd] - [#62596]) ([velbus docs]) +- Mill, add HVAC_MODE_OFF for gen 3 heaters ([@Danielhiversen] - [#63134]) ([mill docs]) +- Bump google-nest-sdm to 1.2.1 ([@allenporter] - [#63151]) ([nest docs]) +- Add UniFi Protect light platform ([@AngellusMortis] - [#63137]) ([unifiprotect docs]) (new-platform) +- Implement an rtsp to webrtc registry in camera ([@allenporter] - [#62962]) ([camera docs]) ([nest docs]) ([amcrest docs]) ([doorbird docs]) ([onvif docs]) ([foscam docs]) +- Clean up patching of setup platforms for UniFi Protect integration ([@AngellusMortis] - [#63156]) ([unifiprotect docs]) +- Adax, unique id and title should be string ([@Danielhiversen] - [#63132]) ([adax docs]) +- Bump mill-local to 0.1.1 and add device info ([@Danielhiversen] - [#63141]) ([mill docs]) +- Add entity categories. ([@stegm] - [#63165]) ([kostal_plenticore docs]) +- Mill use walrus operator ([@Danielhiversen] - [#63166]) ([mill docs]) +- Move constants to const file for generic ([@davet2001] - [#63179]) ([generic docs]) +- Keep entity state management within entity ([@allenporter] - [#63183]) ([camera docs]) (breaking-change) (new-integration) +- Improve wiffi config flow handling ([@mampfes] - [#63167]) ([wiffi docs]) +- Add new buttons for Shelly Gas ([@bieniu] - [#63099]) ([shelly docs]) +- Add `rtsptowebrtc` integration ([@allenporter] - [#59660]) ([webrtc docs]) (new-integration) +- Refactor enum zwave js tests ([@davet2001] - [#62712]) ([zwave_js docs]) +- Add UniFi Protect switch platform ([@AngellusMortis] - [#63177]) ([unifiprotect docs]) (new-platform) +- Add init type hints [f-g] ([@epenet] - [#63186]) +- Add init type hints [n-o] ([@epenet] - [#63190]) +- Upgrade flake8-noqa to 1.2.1 ([@cdce8p] - [#63170]) +- Add init type hints [t-u] ([@epenet] - [#63194]) +- Drop use of HomeAssistantType in elmax ([@epenet] - [#63105]) ([elmax docs]) +- Fix management of Fritz repeaters ([@chemelli74] - [#63110]) ([fritz docs]) +- Use DeviceClass Enum in alarmdecoder schema ([@epenet] - [#61967]) ([alarmdecoder docs]) +- Run `gen_requirements_all` script on changes to `setup.py` ([@cdce8p] - [#63171]) +- Add init type hints [d] ([@epenet] - [#63101]) +- Add init type hints [v-z] ([@epenet] - [#63195]) +- Add init type hints [m] ([@epenet] - [#63189]) +- Add init type hints [s] ([@epenet] - [#63193]) +- Add init type hints [h-j] ([@epenet] - [#63187]) +- Add init type hints [k-l] ([@epenet] - [#63188]) +- Add init type hints [p-q] ([@epenet] - [#63191]) +- Add init type hints [r] ([@epenet] - [#63192]) +- Bump dsmr-parser dependency to 0.31 ([@rhpijnacker] - [#63123]) ([dsmr docs]) +- Add init type hints [b-c] ([@epenet] - [#63100]) +- Fix incorrect parameter name/hint in mqtt climate ([@epenet] - [#63106]) ([mqtt docs]) +- Revert nest reloading due to lock up ([@allenporter] - [#63206]) ([nest docs]) +- Drop deprecated CONF_NAMES from onewire ([@epenet] - [#61094]) ([onewire docs]) +- Add type hint to reload_config in homeassistant scene ([@epenet] - [#63094]) ([homeassistant docs]) +- Ensure service calls are typed in todoist ([@epenet] - [#63020]) ([todoist docs]) +- Make ATTR_ENTITY_ID required in local_file service call ([@epenet] - [#63017]) ([local_file docs]) +- Add basic type hints to broadlink ([@epenet] - [#62879]) ([broadlink docs]) +- Introduce const file in Nissan Leaf ([@filcole] - [#63082]) ([nissan_leaf docs]) +- Use more narrow exception catching in `nest` ([@allenporter] - [#63225]) ([nest docs]) +- Bump google-nest-sdm to 1.3.0 ([@allenporter] - [#63224]) ([nest docs]) +- Add Oncue by Kohler integration ([@bdraco] - [#63203]) ([oncue docs]) (new-integration) +- Ensure service calls are typed in remember-the-milk ([@epenet] - [#63018]) ([remember_the_milk docs]) +- Add UniFi Protect number platform ([@AngellusMortis] - [#63220]) ([unifiprotect docs]) +- Add missing schema to dominos order service ([@epenet] - [#63016]) ([dominos docs]) +- Add entity_category to oncue sensors ([@bdraco] - [#63231]) ([oncue docs]) +- Add support for oncue connectivity binary sensor ([@bdraco] - [#63232]) ([oncue docs]) (new-platform) +- Use shorthand attributes in Tuya camera platform ([@frenck] - [#63228]) ([tuya docs]) +- Simplify nest reauth config flow ([@allenporter] - [#63058]) ([nest docs]) +- Update rokuecp to 0.9.0 ([@ctalkington] - [#63234]) ([roku docs]) +- Add link into statistics unit mismatch warning ([@mdegat01] - [#62217]) ([sensor docs]) +- Refactor static attributes to class attrs for UniFi Protect ([@AngellusMortis] - [#63236]) ([unifiprotect docs]) +- Improve tests for generic camera ([@davet2001] - [#63197]) ([generic docs]) +- Run `hassfest` on changes to `.strict-typing` ([@cdce8p] - [#63237]) +- Fix oncue string for already_configured ([@bdraco] - [#63248]) ([oncue docs]) +- Add hardware version to Roku device info ([@ctalkington] - [#63249]) ([roku docs]) +- Add binary_sensor platform to roku ([@ctalkington] - [#63238]) ([roku docs]) (new-platform) +- Add basic type hints to mqtt ([@epenet] - [#62875]) ([mqtt docs]) +- Add mqtt encoding support for publishing ([@jbouwh] - [#62739]) ([mqtt docs]) +- Add type hints to google_assistant ([@epenet] - [#62748]) ([google_assistant docs]) +- Add button platform to template integration ([@raman325] - [#61908]) ([template docs]) +- Improve test coverage of template button ([@emontnemery] - [#63265]) ([template docs]) +- Add turned on or off device trigger to toggle entity ([@emontnemery] - [#61089]) +- Add alarm_control_panel setup type hints ([@epenet] - [#63264]) +- Add binary_sensor setup type hints [h-n] ([@epenet] - [#63269]) +- Add binary_sensor setup type hints [o-r] ([@epenet] - [#63270]) +- Add unique_id configuration variable to command_line integration ([@rautesamtr] - [#58596]) ([command_line docs]) +- Fix relative import issue in device_automation ([@epenet] - [#63274]) ([device_automation docs]) +- Add air_quality setup type hints ([@epenet] - [#63263]) ([demo docs]) ([norway_air docs]) ([opensensemap docs]) ([kaiterra docs]) ([nilu docs]) ([blebox docs]) +- Add init type hints [misc] ([@epenet] - [#63261]) +- Update to pyoctoprintapi 1.7 ([@rfleming71] - [#63254]) ([octoprint docs]) +- Bump caldav version to 0.8.2 ([@chpego] - [#63280]) ([caldav docs]) +- Add climate setup type hints [m-z] ([@epenet] - [#63279]) +- Add binary_sensor setup type hints [a-f] ([@epenet] - [#63268]) +- Add binary_sensor setup type hints [s-z] ([@epenet] - [#63271]) +- Add calendar setup type hints ([@epenet] - [#63272]) ([google docs]) ([demo docs]) ([caldav docs]) ([todoist docs]) +- Add strict typing to `core.py` (4) - Misc ([@cdce8p] - [#63242]) +- Add camera setup type hints ([@epenet] - [#63277]) +- Add climate setup type hints [a-l] ([@epenet] - [#63278]) +- Address late review comments for version integration ([@ludeeus] - [#63283]) ([version docs]) +- Bump async-upnp-client==0.23.3 ([@StevenLooman] - [#63282]) ([upnp docs]) ([yeelight docs]) ([dlna_dmr docs]) ([ssdp docs]) +- Downgrade OctoPrint printer disconnected errors ([@timmo001] - [#63076]) ([octoprint docs]) +- Add eq3btsmart presets on, off, auto and manual mode ([@bvweerd] - [#54586]) ([eq3btsmart docs]) +- Add light setup type hints [a-i] ([@epenet] - [#63291]) +- Add mqtt entity attributes command templates ([@jbouwh] - [#61937]) ([mqtt docs]) +- Add fan setup type hints ([@epenet] - [#63287]) +- Add light setup type hints [l-r] ([@epenet] - [#63292]) +- Add cover setup type hints ([@epenet] - [#63285]) +- Fix MQTT cover not using tilt_command_template ([@jbouwh] - [#63080]) ([mqtt docs]) +- Fix mqtt reloading and rework tests ([@jbouwh] - [#62950]) ([mqtt docs]) +- Add image_processing setup type hints ([@epenet] - [#63290]) +- Add humidifier setup type hints ([@epenet] - [#63289]) ([ecobee docs]) ([demo docs]) ([generic_hygrostat docs]) +- Add device_tracker setup type hints ([@epenet] - [#63286]) ([mobile_app docs]) ([starline docs]) ([mazda docs]) +- Add light setup type hints [s-z] ([@epenet] - [#63293]) +- Add lock setup type hints ([@epenet] - [#63296]) +- Add media_player setup type hints [a-l] ([@epenet] - [#63297]) +- Mqtt rework on value templates ([@jbouwh] - [#62105]) ([mqtt docs]) +- Add MQTT encoding parameter for all subscribed topics ([@jbouwh] - [#62263]) ([mqtt docs]) +- Add media_player setup type hints [m-x] ([@epenet] - [#63298]) +- Add geo_location setup type hints ([@epenet] - [#63288]) ([demo docs]) ([ign_sismologia docs]) ([qld_bushfire docs]) ([geo_json_events docs]) ([usgs_earthquakes_feed docs]) ([geonetnz_quakes docs]) ([gdacs docs]) +- Add setup type hints to all template platforms ([@epenet] - [#63295]) ([template docs]) +- Add setup type hints to all demo platforms ([@epenet] - [#63294]) ([demo docs]) +- Add setup type hints to select, vacuum and water_heater ([@epenet] - [#63300]) ([hive docs]) ([ecovacs docs]) ([harmony docs]) ([econet docs]) ([incomfort docs]) ([vicare docs]) ([atag docs]) ([sharkiq docs]) +- Add weather setup type hints ([@epenet] - [#63301]) ([ecobee docs]) ([environment_canada docs]) ([ipma docs]) ([darksky docs]) ([aemet docs]) ([met_eireann docs]) +- Add switch setup type hints [a-f] ([@epenet] - [#63302]) +- Add switch setup type hints [s-z] ([@epenet] - [#63305]) +- Skip raw encoding test for cover ([@jbouwh] - [#63322]) ([mqtt docs]) +- Fix typo in CPU Speed translation key ([@frenck] - [#63284]) ([cpuspeed docs]) +- Reject MQTT light discovery using unsupported value_template ([@emontnemery] - [#62682]) ([mqtt docs]) (breaking-change) +- Add setup type hints to number, remote and scene ([@epenet] - [#63299]) +- Cleanup handling of unsupported config keys in MQTT fan ([@emontnemery] - [#62681]) ([mqtt docs]) +- Add sensor setup type hints [w-z] ([@epenet] - [#63308]) +- Add sensor setup type hints [s] ([@epenet] - [#63310]) +- Add sensor setup type hints [r] ([@epenet] - [#63312]) +- Add sensor setup type hints [m-n] ([@epenet] - [#63314]) +- Add sensor setup type hints [o-q] ([@epenet] - [#63313]) +- Add sensor setup type hints [i-l] ([@epenet] - [#63315]) +- Add sensor setup type hints [g-h] ([@epenet] - [#63316]) +- Add sensor setup type hints [c-d] ([@epenet] - [#63318]) +- Add sensor setup type hints [a-b] ([@epenet] - [#63319]) +- Add sensor setup type hints [e-f] ([@epenet] - [#63317]) +- Add sensor setup type hints [t-v] ([@epenet] - [#63309]) +- Add basic type hints to acmeda ([@epenet] - [#62736]) ([acmeda docs]) +- Add switch setup type hints [g-m] ([@epenet] - [#63303]) +- Add switch setup type hints [n-r] ([@epenet] - [#63304]) +- Allow mobile app registrations only supporting websocket push ([@balloob] - [#63208]) ([mobile_app docs]) +- Weather units: climacell (1.3/4) ([@rianadon] - [#61472]) ([climacell docs]) +- Add UniFi Protect select platform ([@AngellusMortis] - [#63337]) ([unifiprotect docs]) +- Use enums in smartthings tests ([@tkdrob] - [#62194]) ([smartthings docs]) +- Address late review of #63238 ([@ctalkington] - [#63358]) ([roku docs]) +- Use built-in Jinja min and max filters in templates ([@avee87] - [#60327]) +- Add SensorDeviceClass to statistics component, improve structures ([@ThomDietrich] - [#62629]) ([statistics docs]) +- Remove invalid return values in setup methods [r-z] ([@epenet] - [#63365]) +- Remove invalid return values in setup methods [a-h] ([@epenet] - [#63362]) +- Remove invalid return values in setup methods [i-p] ([@epenet] - [#63363]) +- Bump rtsp_to_webrtc to 0.4.0 ([@allenporter] - [#63359]) ([rtsp_to_webrtc docs]) +- Only rely on device status when adding Tuya entities ([@frenck] - [#63074]) ([tuya docs]) +- Remove deprecated yaml config from waze_travel_time ([@tkdrob] - [#62543]) ([waze_travel_time docs]) (breaking-change) +- Add select entities to ZHA ([@dmulcahey] - [#62718]) ([zha docs]) +- Allow password-less login to jellyfin ([@esev] - [#61646]) ([jellyfin docs]) +- Add configuration_url for ONVIF ([@esev] - [#61526]) ([onvif docs]) +- Add MAC to WLED device ([@balloob] - [#63349]) ([wled docs]) +- Update influxdb dependency to `5.3.1` ([@mdegat01] - [#62228]) ([influxdb docs]) ([sensor docs]) +- Simplify device registry update ([@scop] - [#62868]) +- Make review link exclude PRs with failing tests ([@davet2001] - [#63373]) +- Fix `ensure_list` typing ([@cdce8p] - [#63311]) +- Remove some unused TypeVars ([@cdce8p] - [#63346]) ([energy docs]) +- Add device to Wallbox integration ([@Eernie] - [#63011]) ([wallbox docs]) +- Add support for Pet Feeder (cwwsq) in Tuya ([@vauriga] - [#61359]) ([tuya docs]) +- Add philips.light.hbulb support ([@syssi] - [#62417]) ([xiaomi_miio docs]) +- Remove deprecated yaml config from sma ([@tkdrob] - [#62472]) ([sma docs]) (breaking-change) +- Use entity class attributes for Mazda integration ([@bdr99] - [#59869]) ([mazda docs]) +- Add support for philips js screen state ([@elupus] - [#62775]) ([philips_js docs]) (new-platform) +- Add hardware revision support to homekit ([@bdraco] - [#63336]) ([homekit docs]) +- Add little slack to CodeCov project/config-flows threshold ([@frenck] - [#63379]) +- Cleanup nest config flow ([@allenporter] - [#63351]) ([nest docs]) +- Convert Risco sensor states to timestamps ([@OnFreund] - [#63139]) ([risco docs]) +- Use BinarySensorDeviceClass enum in binary_sensor device automations ([@epenet] - [#62635]) ([binary_sensor docs]) +- Offer local control option when there are multiple zeroconf homekit matches ([@bdraco] - [#62649]) ([zeroconf docs]) +- Implement retry for Netatmo webhook registration ([@cgtobi] - [#62597]) ([netatmo docs]) +- Set nest climate hvac_action to report idle when hvac mode is not off ([@allenporter] - [#62811]) ([nest docs]) +- Drop device_class in wallbox number ([@epenet] - [#62438]) ([wallbox docs]) +- Add counter entities support to Prometheus component ([@rnurgaliyev] - [#62410]) ([prometheus docs]) +- Keep flux_led device time in sync ([@bdraco] - [#63259]) ([flux_led docs]) +- Update PyVicare to 2.15.0 ([@tschnilo] - [#63342]) ([vicare docs]) +- Add support for Add-on discovery in rtsp_to_webrtc ([@allenporter] - [#63211]) ([rtsp_to_webrtc docs]) +- Complete strict typing to Humidifier entity platform ([@frenck] - [#61021]) ([device_automation docs]) ([humidifier docs]) +- Add strict typing to `core.py` (2) - State ([@cdce8p] - [#63240]) +- Start using `ParamSpec` for decorator functions ([@cdce8p] - [#63148]) ([sonos docs]) ([tplink docs]) ([dlna_dmr docs]) ([vlc_telnet docs]) ([zwave_js docs]) ([evil_genius_labs docs]) +- Add Picnic last_order_max_order_time sensor ([@hmmbob] - [#63169]) ([picnic docs]) +- Add support for Sonos microphone binary_sensor ([@jjlawren] - [#63097]) ([sonos docs]) +- Prometheus to support input_number ([@yozik04] - [#58964]) ([prometheus docs]) +- Add strict typing to `core.py` (6) - Implicit reexport ([@cdce8p] - [#63345]) +- Parse Risco event time as local ([@OnFreund] - [#63395]) ([risco docs]) +- Simplify WLED config flow, use device name for config entry ([@frenck] - [#63377]) ([wled docs]) +- Improve test coverage for PVOutput ([@frenck] - [#63048]) ([pvoutput docs]) +- Add unique_id to tellstick devices ([@michaelarnauts] - [#63391]) ([tellstick docs]) +- Add a lock on nest stream URL creation to avoid multiple in flight at once ([@allenporter] - [#63212]) ([nest docs]) +- Add Goodwe solar inverter integration ([@mletenay] - [#58503]) ([goodwe docs]) (new-integration) +- Add setup type hints to august ([@epenet] - [#63388]) ([august docs]) +- Fix Heat Service, bump pyEight to 0.2.0 ([@mezz64] - [#63405]) ([eight_sleep docs]) +- Set the nest configuration title to a user friendly name ([@allenporter] - [#62886]) ([nest docs]) +- Fix type hint in http register_view ([@epenet] - [#63385]) ([http docs]) +- Add additional service to set advanced Hue scene options ([@marcelveldt] - [#63035]) ([hue docs]) +- Deprecate Nanoleaf YAML ([@milanmeu] - [#63404]) ([nanoleaf docs]) (breaking-change) +- Remove groups.yaml from default config ([@emontnemery] - [#63366]) +- Make device tracker entities work better ([@balloob] - [#63328]) ([device_tracker docs]) +- Update holidays to 0.12 ([@frenck] - [#63389]) ([workday docs]) +- Remove deprecated Arduino integration ([@frenck] - [#63406]) ([arduino docs]) (breaking-change) +- Add external Tibber statistics ([@Danielhiversen] - [#62249]) ([tibber docs]) +- Add sensor tests to PVOutput ([@frenck] - [#63400]) ([pvoutput docs]) +- Add setup type hints [h] ([@epenet] - [#63438]) ([homematic docs]) ([hangouts docs]) ([homeworks docs]) ([hikvision docs]) ([hp_ilo docs]) ([haveibeenpwned docs]) +- Add setup type hints [i-k] ([@epenet] - [#63444]) ([ios docs]) ([keyboard_remote docs]) ([ihc docs]) ([idteck_prox docs]) ([itach docs]) ([integration docs]) +- Remove unused group config view ([@emontnemery] - [#63434]) ([config docs]) +- Add setup type hints to history ([@epenet] - [#63441]) ([history docs]) +- Add MAC to Roku device ([@ctalkington] - [#63422]) ([roku docs]) +- Bump influxdb-client dependency to 1.24.0 ([@mdegat01] - [#63397]) +- Fix internet access switch for Fritz Wi-Fi guest devices ([@chemelli74] - [#63407]) ([fritz docs]) +- Add setup type hints [e] ([@epenet] - [#63430]) ([elkm1 docs]) ([entur_public_transport docs]) ([eddystone_temperature docs]) +- Add setup type hints to magicseaweed ([@epenet] - [#63451]) ([magicseaweed docs]) +- Add setup type hints [l] ([@epenet] - [#63450]) +- Add setup type hints [f] ([@epenet] - [#63431]) ([feedreader docs]) ([file docs]) ([fail2ban docs]) ([fints docs]) ([folder docs]) ([filesize docs]) +- Add setup type hints [g] ([@epenet] - [#63432]) ([group docs]) ([gc100 docs]) ([garadget docs]) ([greenwave docs]) ([goodwe docs]) +- Add setup type hints [a] ([@epenet] - [#63424]) ([api docs]) ([asterisk_mbox docs]) ([anel_pwrctrl docs]) ([alpha_vantage docs]) ([arest docs]) ([airtouch4 docs]) +- Upgrade python_opendata_transport to 0.3.0 ([@agners] - [#63409]) ([swiss_public_transport docs]) +- Use imports from `core` ([@cdce8p] - [#63458]) ([modbus docs]) ([tradfri docs]) ([surepetcare docs]) ([aftership docs]) ([homeassistant docs]) +- Use imports from `helpers.typing` ([@cdce8p] - [#63459]) ([mqtt docs]) ([trafikverket_weatherstation docs]) ([sensibo docs]) ([yale_smart_alarm docs]) ([rainforest_eagle docs]) ([iotawatt docs]) ([airthings docs]) +- Import `image_processing` constants from `const` ([@cdce8p] - [#63461]) +- Use SensorDeviceClass in `sensor` and `helpers` packages ([@cdce8p] - [#63452]) ([sensor docs]) +- Fix exception import locations ([@cdce8p] - [#63454]) ([automation docs]) ([tplink docs]) ([samsungtv docs]) ([yale_smart_alarm docs]) ([azure_event_hub docs]) ([nam docs]) +- Add support for curtain device class to google assistant ([@emontnemery] - [#63380]) ([google_assistant docs]) +- Add setup type hints [b] ([@epenet] - [#63427]) ([blinkt docs]) ([balboa docs]) ([bosch_shc docs]) +- Add setup type hints [c-d] ([@epenet] - [#63428]) ([coinbase docs]) ([daikin docs]) ([darksky docs]) ([cups docs]) ([dexcom docs]) ([compensation docs]) +- Add setup type hints [m] ([@epenet] - [#63456]) ([microsoft_face docs]) ([maxcube docs]) ([mqtt_statestream docs]) ([mochad docs]) ([mvglive docs]) ([mcp23017 docs]) ([mazda docs]) +- Remove debug print ([@chemelli74] - [#63460]) +- Remove colinodell as QNAP codeowner ([@colinodell] - [#63474]) ([qnap docs]) +- Improve nest camera failure handling on removal ([@allenporter] - [#63207]) ([nest docs]) +- Support media_player grouping services for Sonos ([@jjlawren] - [#63256]) ([sonos docs]) +- Add setup type hints [o-q] ([@epenet] - [#63465]) ([pilight docs]) ([qwikswitch docs]) ([qnap docs]) ([onkyo docs]) ([pyload docs]) ([pulseaudio_loopback docs]) ([pi4ioe5v9xxxx docs]) ([powerwall docs]) +- Add setup type hints [r] ([@epenet] - [#63472]) ([rpi_pfio docs]) ([roomba docs]) ([raincloud docs]) ([rpi_gpio docs]) ([rest docs]) ([rmvtransport docs]) ([rpi_rf docs]) +- Add setup type hints [n] ([@epenet] - [#63462]) ([nmbs docs]) ([netdata docs]) ([nx584 docs]) ([nederlandse_spoorwegen docs]) ([netio docs]) ([nexia docs]) +- Use const imports [a-e] ([@cdce8p] - [#63467]) +- Use const imports [g-i] ([@cdce8p] - [#63468]) ([input_select docs]) ([group docs]) ([hive docs]) +- Add setup type hints [t-u] ([@epenet] - [#63480]) ([thethingsnetwork docs]) ([tibber docs]) ([uk_transport docs]) ([tank_utility docs]) ([torque docs]) ([tmb docs]) +- Add setup type hints [x-z] ([@epenet] - [#63485]) ([zabbix docs]) ([zoneminder docs]) ([ziggo_mediabox_xl docs]) ([xbee docs]) +- Use correct relative imports [n-z] ([@cdce8p] - [#63471]) +- Use correct relative imports [a-m] ([@cdce8p] - [#63470]) +- Add setup type hints [s] (part 2) ([@epenet] - [#63479]) +- Add setup type hints [s] (part 1) ([@epenet] - [#63476]) ([shopping_list docs]) ([skybell docs]) ([sisyphus docs]) ([satel_integra docs]) ([scrape docs]) ([season docs]) +- Add setup type hints to homeassistant ([@epenet] - [#63439]) ([homeassistant docs]) +- Add link flags for grpc armv7 wheels ([@allenporter] - [#62779]) +- Add unique id to flic buttons ([@tomhennigan] - [#61496]) ([flic docs]) +- Sort google_assistant consts ([@emontnemery] - [#63487]) ([google_assistant docs]) +- Support passing callbacks to start.async_at_start ([@emontnemery] - [#63473]) +- Use const imports [l-z] ([@cdce8p] - [#63469]) +- Add setup type hints [v-w] ([@epenet] - [#63484]) +- Add timeouts to CI jobs ([@cdce8p] - [#63491]) +- Fix 3rd party imports ([@cdce8p] - [#63455]) ([mqtt docs]) ([goalzero docs]) +- Mark PVOutput as platinum on the integration quality scale ([@frenck] - [#63453]) ([pvoutput docs]) +- UniFi Protect test refactoring ([@AngellusMortis] - [#63486]) ([unifiprotect docs]) +- Deprecate Sense HAT (ADR-0019) ([@frenck] - [#63500]) ([sensehat docs]) (breaking-change) +- Deprecate Raspberry Pi RF (ADR-0019) ([@frenck] - [#63501]) ([rpi_rf docs]) (breaking-change) +- Improve cleanup service for Fritz ([@chemelli74] - [#61484]) ([fritz docs]) +- Use Platform enum [emulated_hue] ([@cdce8p] - [#63498]) ([emulated_hue docs]) +- Add configuration url to kostal plenticore ([@stegm] - [#63502]) ([kostal_plenticore docs]) +- Bump google-cloud-pubsub to 2.9.0 ([@allenporter] - [#63493]) ([google_pubsub docs]) +- Enable local fulfillment google assistant ([@LoekSangers] - [#63218]) ([google_assistant docs]) +- Add 'fire_event' command to websocket api ([@niecore] - [#63378]) ([websocket_api docs]) +- Improve server selection for Plex config flows ([@jjlawren] - [#63408]) ([plex docs]) +- Address late review of vicare config flow ([@oischinger] - [#63343]) ([vicare docs]) (breaking-change) +- Bump dsmr-parser dependency to 0.32 ([@rhpijnacker] - [#63436]) ([dsmr docs]) (breaking-change) +- Revert "Bump google-cloud-pubsub to 2.9.0 (to bump grpcio)" ([@frenck] - [#63517]) ([google_pubsub docs]) +- Revert "Add link flags for grpc armv7 wheels" ([@allenporter] - [#63518]) +- Upgrade pynuki to 1.5.2 ([@pree] - [#62866]) ([nuki docs]) +- Add UniFi Protect binary_sensor platform ([@AngellusMortis] - [#63489]) ([unifiprotect docs]) (new-platform) +- Optimise sleep time for nissan leaf servers ([@filcole] - [#62857]) ([nissan_leaf docs]) +- Add button to start leaf charge ([@filcole] - [#62948]) ([nissan_leaf docs]) (breaking-change) +- Deprecate PiFace Digital I/O (PFIO) (ADR-0019) ([@frenck] - [#63506]) ([rpi_pfio docs]) (breaking-change) +- Deprecate Orange Pi GPIO (ADR-0019) ([@frenck] - [#63507]) ([orangepi_gpio docs]) (breaking-change) +- Deprecate MH-Z19 CO2 Sensor (ADR-0019) ([@frenck] - [#63508]) ([mhz19 docs]) (breaking-change) +- Deprecate Enviro pHAT (ADR-0019) ([@frenck] - [#63509]) ([envirophat docs]) (breaking-change) +- Deprecate Blinkt! (ADR-0019) ([@frenck] - [#63510]) ([blinkt docs]) (breaking-change) +- Deprecate pigpio Daemon PWM LED (ADR-0019) ([@frenck] - [#63504]) ([rpi_gpio_pwm docs]) (breaking-change) +- Deprecate Raspberry Pi GPIO (ADR-0019) ([@frenck] - [#63503]) ([rpi_gpio docs]) (breaking-change) +- Deprecate Piglow (ADR-0019) ([@frenck] - [#63505]) ([piglow docs]) (breaking-change) +- Add strict typing to `core.py` (3) - Service ([@cdce8p] - [#63241]) +- Consistently type/coerce climate humidity to be an int ([@bdraco] - [#61456]) ([climate docs]) (breaking-change) +- Share common EntityTestHelpers in wemo tests ([@esev] - [#62455]) ([wemo docs]) +- Add tests that exercise nest dhcp discovery behavior ([@allenporter] - [#62526]) ([nest docs]) +- Add UniFi Protect sensor platform ([@AngellusMortis] - [#63524]) ([unifiprotect docs]) (new-platform) +- Add support for Steamist steam showers ([@bdraco] - [#63251]) ([steamist docs]) (new-integration) +- Add strict typing to core.py (1) - EventBus ([@cdce8p] - [#63239]) ([netatmo docs]) ([met docs]) +- Allow registering a webhook as local only ([@balloob] - [#63516]) ([google_assistant docs]) ([webhook docs]) +- Updated the support of Tuya Circuit Breaker 'dlq' ([@slydiman] - [#63519]) ([tuya docs]) +- Add button entities to bmw_connected_drive ([@rikroe] - [#63136]) ([bmw_connected_drive docs]) (breaking-change) +- Deprecate 1-Wire SysBus (ADR-0019) ([@frenck] - [#63513]) ([onewire docs]) (breaking-change) +- Fritz cleanup: part1 (naming) ([@chemelli74] - [#63535]) ([fritz docs]) +- Bump greeneye_monitor to v3.0.1 ([@jkeljo] - [#63531]) ([greeneye_monitor docs]) +- Add link flags for grpc armv7 wheels (attempt #2) ([@allenporter] - [#63521]) +- Bump google-cloud-pubsub to 2.9.0 (attempt #2) ([@allenporter] - [#63522]) ([google_pubsub docs]) +- Move ReCollect Waste "next pickup" info to its own sensor ([@bachya] - [#62558]) ([recollect_waste docs]) (breaking-change) +- Code improvements to trafikverket_weatherstation ([@gjohansson-ST] - [#62854]) ([trafikverket_weatherstation docs]) +- Update PyTurboJPEG to 1.6.4 ([@frenck] - [#63553]) ([camera docs]) ([stream docs]) +- Revert "Bump google-cloud-pubsub to 2.9.0 (attempt #2) (#63522)" ([@allenporter] - [#63561]) ([google_pubsub docs]) +- Update Numpy to 1.22.0 ([@frenck] - [#63559]) ([opencv docs]) ([tensorflow docs]) ([trend docs]) ([iqvia docs]) ([compensation docs]) +- Fix flux_led sync time ([@cdce8p] - [#63554]) ([flux_led docs]) +- Update requests to 2.27.1 ([@frenck] - [#63552]) +- UniFi Protect test sensor followup ([@AngellusMortis] - [#63563]) ([unifiprotect docs]) +- Use attr** in thermoworks-smoke ([@epenet] - [#62436]) ([thermoworks_smoke docs]) +- Rewrite vultr unittest to pytest ([@epenet] - [#63367]) ([vultr docs]) +- Isolate consts better to where they are used ([@AngellusMortis] - [#63569]) ([unifiprotect docs]) +- Fix cleanup service to just run on loaded config entries in Fritz!Tools ([@mib1185] - [#63570]) ([fritz docs]) +- Fix typing `TrackTemplateResultListener` [helpers.event] ([@cdce8p] - [#63541]) ([websocket_api docs]) +- Pickup code owner for flux_led ([@bdraco] - [#63573]) ([flux_led docs]) +- Fix missing device name with legacy flux_led discovery ([@bdraco] - [#62785]) ([flux_led docs]) +- Improve callable typing [helpers.event] ([@cdce8p] - [#63543]) ([netatmo docs]) ([wemo docs]) ([flux_led docs]) +- Add device configuration entities to flux_led ([@bdraco] - [#62786]) ([flux_led docs]) +- Simplify groups ([@emontnemery] - [#63477]) ([group docs]) +- Revert "Use Platform enum [emulated_hue] (#63498)" ([@cdce8p] - [#63576]) ([emulated_hue docs]) +- Add missing TypeVar in vlc_telnet decorator ([@cdce8p] - [#63587]) ([vlc_telnet docs]) +- Add Kraken configuration_url ([@eifinger] - [#63565]) ([kraken docs]) +- Bump pybotvac version for the neato integration ([@simontegelid] - [#63586]) ([neato docs]) +- Add support for Levoit Core 300S air purifier to VeSync integration ([@RefineryX] - [#62488]) ([vesync docs]) +- Add SensorStateClass to Kraken sensors ([@eifinger] - [#63590]) ([kraken docs]) +- Add state translations and icons to ClimaCell sensors ([@raman325] - [#63526]) ([climacell docs]) +- Fix upnp device not being reinitialized after device changes location ([@StevenLooman] - [#63133]) ([upnp docs]) +- Weather units: Buienradar (1.2/4) ([@rianadon] - [#61470]) ([buienradar docs]) +- Make idle chromecasts appear as idle instead of off ([@emontnemery] - [#61786]) ([cast docs]) +- Tuya Alarm Initial commit ([@leeyuentuen] - [#60080]) ([tuya docs]) (new-platform) (new-integration) +- Add long term statistics to buienradar ([@tedvdb] - [#58917]) ([buienradar docs]) +- Move lock and devicelock attributes into sensors for all AVM Fritz!Smarthome entities ([@mib1185] - [#60426]) ([fritzbox docs]) (breaking-change) +- Auto-setup a few more IHC devices ([@tausen] - [#58806]) ([ihc docs]) +- Add daily energy usage sensor to daikin ([@tofuSCHNITZEL] - [#61617]) ([daikin docs]) +- Bump yalesmartalarmclient to v0.3.7 ([@gjohansson-ST] - [#63596]) ([yale_smart_alarm docs]) +- Fail CI when package init file is missing in component tests ([@frenck] - [#63589]) +- Add setup type hints [a-e] ([@epenet] - [#63597]) ([alarmdecoder docs]) ([evohome docs]) ([asuswrt docs]) ([digitalloggers docs]) ([control4 docs]) +- Add setup type hints [h-i] ([@epenet] - [#63603]) ([homematicip_cloud docs]) ([harmony docs]) ([icloud docs]) ([heos docs]) ([izone docs]) ([iaqualink docs]) ([huisbaasje docs]) +- Add setup type hints [k-m] ([@epenet] - [#63605]) ([lyric docs]) ([meteo_france docs]) ([metoffice docs]) ([melcloud docs]) ([keenetic_ndms2 docs]) ([minecraft_server docs]) ([kostal_plenticore docs]) ([meteoclimatic docs]) +- Add setup type hints [n-r] ([@epenet] - [#63607]) ([ping docs]) ([nmap_tracker docs]) ([nws docs]) ([nsw_rural_fire_service_feed docs]) ([ruckus_unleashed docs]) ([picnic docs]) +- Add setup type hints [s-t] ([@epenet] - [#63613]) ([tado docs]) ([toon docs]) ([tuya docs]) ([twinkly docs]) ([traccar docs]) ([songpal docs]) ([system_bridge docs]) +- Add setup type hints [v-y] ([@epenet] - [#63614]) ([vultr docs]) ([yeelight docs]) ([wilight docs]) ([xbox docs]) +- Add yale_smart_alarm config options flow ([@gjohansson-ST] - [#54097]) ([yale_smart_alarm docs]) +- Delete nest event image fetching and use same APIs as media player ([@allenporter] - [#62789]) ([nest docs]) +- Skip empty test directories in gen_requirements_all ([@mdz] - [#62970]) +- Add strict typing to `core.py` (5) - Task ([@cdce8p] - [#63243]) ([arcam_fmj docs]) +- Add setup type hints [f-g] ([@epenet] - [#63599]) ([feedreader docs]) ([freebox docs]) ([gpslogger docs]) ([geniushub docs]) ([firmata docs]) ([fireservicerota docs]) ([flick_electric docs]) +- Add missing `last_rest` in Tibber ([@Danielhiversen] - [#61914]) ([tibber docs]) +- Case sensitive SQL queries checks ([@dgomes] - [#62752]) ([sql docs]) +- Teach call service script action about entity registry ids ([@emontnemery] - [#61172]) +- Use find_coordinates in google_travel_time ([@eifinger] - [#61423]) ([google_travel_time docs]) +- Use entities instead of devices for nissan leaf ([@filcole] - [#63542]) ([nissan_leaf docs]) +- Add SensorEntityClass support for Environment Canada integration ([@gwww] - [#58615]) ([environment_canada docs]) (breaking-change) +- Add new TRV Beca and proper Presets with new one Temporary Manual ([@jacekk015] - [#60337]) ([zha docs]) +- Give scenes last activated state ([@frenck] - [#62673]) ([scene docs]) ([homeassistant docs]) +- Allow sending webhooks via WS connection ([@balloob] - [#62725]) ([cloud docs]) ([webhook docs]) +- Update youtube_dl to 2021.12.17 ([@frenck] - [#63592]) ([media_extractor docs]) +- Bump pylgnetcast to 0.3.7 ([@Drafteed] - [#63645]) ([lg_netcast docs]) +- Revert "Update Numpy to 1.22.0 (#63559)" ([@frenck] - [#63648]) ([opencv docs]) ([tensorflow docs]) ([trend docs]) ([iqvia docs]) ([compensation docs]) +- Add temp and minutes remaining sensors to steamist ([@bdraco] - [#63653]) ([steamist docs]) (new-platform) +- Add support for managing 2.4G remotes in flux_led ([@bdraco] - [#63646]) ([flux_led docs]) (new-platform) +- Add SenseME integration ([@bdraco] - [#62909]) ([senseme docs]) (new-integration) +- Improve typing for Overkiz integration and address late feedback ([@iMicknl] - [#63483]) ([overkiz docs]) +- Refactor Launch Library to use config flow ([@DurgNomis-drol] - [#62416]) ([launch_library docs]) (breaking-change) +- Bump pylaunches to 1.2.1 ([@DurgNomis-drol] - [#63667]) ([launch_library docs]) +- Bump pysml to 0.0.6 ([@mtdcr] - [#63664]) ([edl21 docs]) +- Update pyTibber to 0.21.7 ([@Danielhiversen] - [#63663]) ([tibber docs]) +- Use device registry in aten_pe ([@mtdcr] - [#61906]) ([aten_pe docs]) +- Handle zwave_js metadata/value updates when the unit changes ([@raman325] - [#63579]) ([zwave_js docs]) +- Deprecate Media Player Classic Home Cinema (ADR-0004) ([@frenck] - [#63598]) ([mpchc docs]) (breaking-change) +- Bump mypy to 0.931 ([@cdce8p] - [#63673]) +- Add types for HassJob [helpers.event] ([@cdce8p] - [#63675]) +- Bump awesomeversion to 22.1.0 ([@ludeeus] - [#63676]) +- Improve typing of Steamist sensors ([@frenck] - [#63674]) ([steamist docs]) +- Minor bugfixes for UniFi Protect ([@AngellusMortis] - [#63475]) ([unifiprotect docs]) +- Fritz cleanup: part2 (triggers for button/service) ([@chemelli74] - [#63564]) ([fritz docs]) +- Move greeneye_monitor constants into their own file ([@jkeljo] - [#63659]) ([greeneye_monitor docs]) +- Fix the unregistration of Capability based MusicCast Entities ([@micha91] - [#63665]) ([yamaha_musiccast docs]) +- Use Platform enum [mysensors] ([@cdce8p] - [#63687]) ([mysensors docs]) +- Add button and deprecate service for Fritz cleanup ([@chemelli74] - [#63692]) ([fritz docs]) +- Fritz: small optimization ([@chemelli74] - [#63693]) ([fritz docs]) +- Replace custom Tuya device classes with StrEnum ([@frenck] - [#63681]) ([tuya docs]) +- Add UniFi Protect camera motion sensors and ThumbnailProxyView ([@AngellusMortis] - [#63696]) ([unifiprotect docs]) +- Use MediaPlayerDeviceClass for UniFi Protect media_player ([@AngellusMortis] - [#63708]) ([unifiprotect docs]) +- Remove package constraint to websockets ([@thecode] - [#63703]) +- Fix ParamSpec Callable return types ([@cdce8p] - [#63701]) ([tplink docs]) ([dlna_dmr docs]) ([vlc_telnet docs]) ([zwave_js docs]) ([evil_genius_labs docs]) +- Explicitely allow Platform enum in discovery helper ([@epenet] - [#63571]) ([amcrest docs]) +- Explicitely allow Platform enum in config_entries ([@epenet] - [#63581]) +- Add binary_sensor platform to SenseME ([@bdraco] - [#63660]) ([senseme docs]) (new-platform) +- Use Platform enum ([@cdce8p] - [#63577]) +- Eliminate redundant code in greeneye_monitor ([@jkeljo] - [#63661]) ([greeneye_monitor docs]) +- Improve multi-device test coverage for greeneye_monitor ([@jkeljo] - [#63657]) ([greeneye_monitor docs]) +- Tibber cost statistics ([@Danielhiversen] - [#63626]) ([tibber docs]) +- Use SensorEntityDescription in Mazda integration ([@bdr99] - [#63423]) ([mazda docs]) +- Additional SenseME cleanups ([@bdraco] - [#63748]) ([senseme docs]) +- Add discovery support to steamist ([@bdraco] - [#63707]) ([steamist docs]) +- Bump pyskyqhub to 0.1.4 ([@RogerSelwyn] - [#63734]) +- Fix climate channel for Shelly ([@chemelli74] - [#63756]) ([shelly docs]) +- Enable strict typing in browser ([@epenet] - [#63760]) ([browser docs]) +- Add switch platform to SenseME ([@bdraco] - [#63719]) ([senseme docs]) (new-platform) +- Refactor EntityDescriptions for UniFi Protect ([@AngellusMortis] - [#63716]) ([unifiprotect docs]) +- Raise if trying to store mocks in storage ([@balloob] - [#63622]) +- Add DeviceInfo to steamist ([@bdraco] - [#63773]) ([steamist docs]) +- Add setup type hints to emby ([@epenet] - [#63784]) ([emby docs]) +- Add setup type hints to aws ([@epenet] - [#63781]) ([aws docs]) +- Adjust migrate_entry in axis ([@epenet] - [#63779]) ([axis docs]) +- Add setup type hints to avion ([@epenet] - [#63778]) ([avion docs]) +- Cleanups for SenseME switch platform ([@bdraco] - [#63774]) ([senseme docs]) +- Bump py synologydsm api to 1.0.5 ([@chpego] - [#63786]) ([synology_dsm docs]) +- Add setup type hints to gpmdp ([@epenet] - [#63787]) ([gpmdp docs]) +- Update MQTT light schema template ([@orcema] - [#62759]) ([mqtt docs]) +- Use Platform enum in load_platform [a-l] ([@epenet] - [#63750]) +- Add setup type hints to hdmi_cec ([@epenet] - [#63788]) ([hdmi_cec docs]) +- Use Platform enum in load_platform [m-z] ([@epenet] - [#63751]) +- Adjust custom data location in hdmi_cec ([@epenet] - [#63791]) ([hdmi_cec docs]) +- Fix incorrect type hint in discovery helper ([@epenet] - [#63789]) ([life360 docs]) +- Enable strict typing for `core.py` ([@cdce8p] - [#63244]) +- Add is_number as a test for use in select, selectattr, reject, and re… ([@Petro31] - [#63732]) +- Add DSMR config options for EasyMeter/Q3D ([@Aeroid] - [#63669]) ([dsmr docs]) +- Drop use of discovery_info in aquostv ([@epenet] - [#63777]) ([aquostv docs]) +- Address late Shelly review ([@chemelli74] - [#63754]) ([shelly docs]) +- Allow self signed certs on octoprint server ([@rfleming71] - [#59213]) ([octoprint docs]) +- Enable Google Assistant state reporting by default ([@emontnemery] - [#63801]) ([cloud docs]) +- Support 4 channels switch ([@sagioto] - [#63724]) ([tuya docs]) +- Update PyTurboJPEG to 1.6.5 ([@frenck] - [#63803]) ([camera docs]) ([stream docs]) +- Add setup type hints to mikrotik ([@epenet] - [#63797]) ([mikrotik docs]) +- Use local constant in netgear_lte config schema ([@epenet] - [#63753]) ([netgear_lte docs]) +- Update sentry-sdk to 1.5.2 ([@frenck] - [#63821]) ([sentry docs]) +- Add setup type hints to workday ([@epenet] - [#63810]) ([workday docs]) +- Add setup type hints to nx584 ([@epenet] - [#63796]) ([nx584 docs]) +- Add strict typing to abode ([@tkdrob] - [#57673]) ([abode docs]) +- Fix the translation strings for Tuya Select ([@dougiteixeira] - [#63353]) ([tuya docs]) +- Add `audio_delay` number entity to Sonos ([@jjlawren] - [#63566]) ([sonos docs]) +- Add setup type hints to supervisord ([@epenet] - [#63807]) ([supervisord docs]) +- Add type hints to async_setup_scanner ([@epenet] - [#63826]) ([volvooncall docs]) ([icloud docs]) ([ping docs]) ([traccar docs]) ([meraki docs]) ([mqtt_json docs]) +- Fix implicit reexport [dt_util] ([@cdce8p] - [#63829]) ([device_tracker docs]) +- Add setup type hints to season ([@epenet] - [#63798]) ([season docs]) +- Add setup type hints to yamaha ([@epenet] - [#63811]) ([yamaha docs]) +- Bump devolo-plc-api to 0.7.1 ([@Shutgun] - [#63834]) ([devolo_home_network docs]) +- Allow None agent in conversation ([@epenet] - [#63761]) ([conversation docs]) ([almond docs]) +- Resolve implicit imports ([@cdce8p] - [#63832]) +- Expose power & energy usage of VeSync outlets as separate sensors ([@decompil3d] - [#61837]) ([vesync docs]) (breaking-change) (new-platform) +- Remove unneeded boolean conversion from senseme ([@frenck] - [#63783]) ([senseme docs]) +- Remove ee brightbox integration ([@epenet] - [#63839]) (breaking-change) +- Add UniFi Protect global services ([@AngellusMortis] - [#63768]) ([unifiprotect docs]) +- Fix incorrect type hint in async_setup_scanner ([@epenet] - [#63833]) ([volvooncall docs]) ([icloud docs]) ([ping docs]) ([traccar docs]) ([meraki docs]) ([mqtt_json docs]) +- Add xiaomi_miio vacuum current cleaning cycle statistics sensor ([@OGKevin] - [#61098]) ([xiaomi_miio docs]) +- Remove deprecated async_get_scanner from netgear ([@epenet] - [#63862]) ([netgear docs]) (breaking-change) +- Fix invalid get_scanner return value in unify_direct ([@epenet] - [#63855]) ([unifi_direct docs]) +- Add type hint to get_scanner in ubus ([@epenet] - [#63856]) ([ubus docs]) +- Add type hints to get_scanner/async_get_scanner ([@epenet] - [#63836]) +- Add HomeWizard Energy integration ([@DCSBL] - [#55812]) ([homewizard_energy docs]) (new-integration) +- Add a stream_id parameter to the WebRTC provider ([@allenporter] - [#63625]) ([camera docs]) ([rtsp_to_webrtc docs]) +- Upgrade hangups to 0.4.17 ([@cdce8p] - [#63871]) ([hangouts docs]) +- Cleanup netgear platform schema ([@epenet] - [#63873]) ([netgear docs]) +- Deprecate iCloud YAML configuration ([@epenet] - [#63875]) ([icloud docs]) (breaking-change) +- Remove deprecated async_get_scanner from nmap_tracker ([@epenet] - [#63863]) ([nmap_tracker docs]) (breaking-change) +- Remove deprecated async_get_scanner from keenetic_ndms2 ([@epenet] - [#63860]) ([keenetic_ndms2 docs]) (breaking-change) +- Remove deprecated async_get_scanner from fritz ([@epenet] - [#63857]) ([fritz docs]) (breaking-change) +- Fix MusicCast select current_option ([@micha91] - [#63668]) ([yamaha_musiccast docs]) +- Remove last_reset from vesync sensor ([@emontnemery] - [#63877]) ([vesync docs]) +- Remove last_reset from vicare sensor ([@emontnemery] - [#63879]) ([vicare docs]) +- Generate supported python versions based on current and next required ([@scop] - [#62618]) +- Fix implicit reexport [helpers.condition] ([@cdce8p] - [#63830]) ([binary_sensor docs]) ([sensor docs]) ([device_automation docs]) +- Add myself as codeowner for LaMetric ([@frenck] - [#63887]) ([lametric docs]) +- Drop Python 3.8 support ([@frenck] - [#63883]) (breaking-change) +- Update wheels builder to 2022.01.0 ([@frenck] - [#63882]) +- Update pyupgrade to v2.31.0 ([@frenck] - [#63888]) +- Add setup type hints to envisalink ([@epenet] - [#63785]) ([envisalink docs]) +- Update Python version used for pylint ([@cdce8p] - [#63895]) ([lupusec docs]) ([azure_event_hub docs]) ([homewizard docs]) +- Drop last_reset attribute for non 'total' sensors ([@emontnemery] - [#63880]) ([sensor docs]) (breaking-change) +- Drop legacy support for sensor sum statistics ([@emontnemery] - [#63884]) ([sensor docs]) +- Update Pillow to 9.0.0 ([@frenck] - [#63894]) +- Fix waqi config parsing ([@epenet] - [#63897]) ([waqi docs]) +- Avoid locking the database for non-SQLite backends ([@agners] - [#63847]) ([recorder docs]) +- Update pyhomematic to 0.1.77 ([@danielperna84] - [#63848]) ([homematic docs]) +- Improve code quality alarm_control_panel in yale_smart_alarm ([@gjohansson-ST] - [#63672]) ([yale_smart_alarm docs]) +- Import persistent notification (part 4) ([@emontnemery] - [#63901]) +- Fix MQTT climate optimistic preset modes ([@jbouwh] - [#63463]) ([mqtt docs]) (breaking-change) +- Always send hvac_mode deprecate send_if_off ([@jbouwh] - [#63814]) ([mqtt docs]) (breaking-change) +- Import persistent notification part 1 ([@emontnemery] - [#63898]) ([websocket_api docs]) +- Bump google-cloud-pubsub to 2.9.0 (attempt #3) ([@allenporter] - [#63911]) ([google_pubsub docs]) +- Import websocket_api (part 2) ([@emontnemery] - [#63906]) ([history docs]) ([config docs]) ([conversation docs]) ([frontend docs]) ([lovelace docs]) ([html5 docs]) ([device_automation docs]) +- Import websocket_api (part 3) ([@emontnemery] - [#63907]) +- Fix incorrect type hint in config_per_platform helper ([@epenet] - [#63890]) ([device_tracker docs]) ([notify docs]) ([mailbox docs]) +- Add type hints to setup_scanner ([@epenet] - [#63825]) ([demo docs]) ([google_maps docs]) ([life360 docs]) ([aprs docs]) ([fleetgo docs]) +- Move list to dict in versasense discovery ([@epenet] - [#63809]) ([versasense docs]) +- Replace hass.helpers: async_get_clientsession() ([@frenck] - [#63910]) +- Warn on`time.sleep` in event loop ([@farmio] - [#63766]) (breaking-change) +- Cleanup variable names in versasense ([@epenet] - [#63914]) ([versasense docs]) +- Import websocket_api (part 1) ([@emontnemery] - [#63905]) ([camera docs]) ([config docs]) ([cloud docs]) ([auth docs]) +- Import persistent notification (part 3) ([@emontnemery] - [#63900]) +- Fix missing full test suite in CI some cases ([@frenck] - [#63912]) +- Implement lock to yale_smart_alarm ([@gjohansson-ST] - [#63643]) ([yale_smart_alarm docs]) (new-platform) +- Update typing (2) [a-i] ([@cdce8p] - [#63923]) +- Update typing (1) ([@cdce8p] - [#63922]) +- Update typing (4) [u-z] ([@cdce8p] - [#63925]) +- Update typing (3) [k-t] ([@cdce8p] - [#63924]) +- Update typing (5) [tests] ([@cdce8p] - [#63926]) +- Use --py39-plus setting [pyupgrade] ([@cdce8p] - [#63927]) +- Add already_configured coverage to oncue ([@bdraco] - [#63919]) ([oncue docs]) +- Replace hass.helpers: async_call_later() ([@frenck] - [#63929]) ([konnected docs]) ([evohome docs]) ([squeezebox docs]) ([sentry docs]) +- Move `disallow-any-generics` to mypy.ini ([@cdce8p] - [#63917]) +- Simplify UniFi Protect service setup/cleanup ([@AngellusMortis] - [#63908]) ([unifiprotect docs]) +- Removes ThumbnailProxyView ([@AngellusMortis] - [#63940]) ([unifiprotect docs]) (breaking-change) +- Fritz: introduce wrapper.py - part 1 (sensor) ([@chemelli74] - [#63682]) ([fritz docs]) +- Improve nest media player clip/image and event handling for multiple events in a short time range ([@allenporter] - [#63149]) ([nest docs]) +- Update typing - collections.abc (1) ([@cdce8p] - [#63933]) +- Update typing - collections.abc (3) ([@cdce8p] - [#63947]) +- Reduce roku poll rate by 5s ([@ctalkington] - [#63952]) ([roku docs]) +- Update rokuecp to 0.10.0 ([@ctalkington] - [#63951]) ([roku docs]) +- Add setup type hints (part 1) ([@epenet] - [#63955]) +- Update typing - collections.abc (2) ([@cdce8p] - [#63934]) +- Add setup type hints (part 2) ([@epenet] - [#63960]) ([group docs]) ([demo docs]) +- Add setup type hints in bluetooth_le_tracker ([@epenet] - [#63828]) ([bluetooth_le_tracker docs]) +- Add setup type hints (part 3) ([@epenet] - [#63961]) ([netgear_lte docs]) ([opentherm_gw docs]) ([hyperion docs]) ([vesync docs]) +- Remove dead code in Environment Canada integration ([@gwww] - [#63946]) ([environment_canada docs]) +- Add strict typing to LaMetric ([@frenck] - [#63891]) ([lametric docs]) +- Add setup type hints to mailbox ([@epenet] - [#63792]) ([mailbox docs]) +- CI: Print python version ([@cdce8p] - [#63968]) +- Enable `deprecated-typing-alias` check [pylint] ([@cdce8p] - [#63935]) +- Improve typing [helpers.entity_registry] ([@cdce8p] - [#63767]) +- Bump brunt to 1.1.1 ([@eavanvalkenburg] - [#63973]) ([brunt docs]) +- Add setup type hints to mailboxes ([@epenet] - [#63975]) ([asterisk_mbox docs]) ([asterisk_cdr docs]) +- Fix typo in tuya select strings ([@milanmeu] - [#63974]) +- Fix discord component using userid as target ([@kezziny] - [#63972]) ([discord docs]) +- Use EntityDescription in launch_library ([@DurgNomis-drol] - [#63685]) ([launch_library docs]) +- Use Platform enum in load_platform [tests] ([@epenet] - [#63904]) ([numato docs]) +- Move DPI Group logic to UniFi switch platform ([@Kane610] - [#58761]) ([unifi docs]) +- Expose WLED configuration URL of discovered device ([@frenck] - [#63983]) ([wled docs]) +- Revert "Weather units: climacell (1.3/4) (#61472)" ([@frenck] - [#63842]) ([climacell docs]) +- Revert "Weather units: Buienradar (1.2/4) (#61470)" ([@frenck] - [#63843]) ([buienradar docs]) +- Update shodan to 1.26.0 ([@frenck] - [#63827]) ([shodan docs]) +- Bump pyunifiprotect version to 1.6.1 for UniFi Protect ([@AngellusMortis] - [#63989]) ([unifiprotect docs]) +- Add Chime Type select for UniFi Protect ([@AngellusMortis] - [#63993]) ([unifiprotect docs]) +- Enable package camera by default for UniFi Protect ([@AngellusMortis] - [#63985]) ([unifiprotect docs]) +- Fix HomeKit reporting/setting colors when white values are present ([@bdraco] - [#63948]) ([homekit docs]) +- Add support for changing the white strip type to flux_led ([@bdraco] - [#63943]) ([flux_led docs]) +- Add light platform to SenseME ([@bdraco] - [#63772]) ([senseme docs]) (new-platform) +- Fix reconnect rather than reauth when both HA and UniFi controller restarts at the same time ([@Kane610] - [#63994]) ([unifi docs]) +- Remove unused pillow 8.2.0 constraint ([@cdce8p] - [#64011]) +- Address late review of VeSync ([@decompil3d] - [#63945]) ([vesync docs]) +- Upgrade async_timeout to 4.0.2 ([@cdce8p] - [#64008]) +- Upgrade yarl to 1.7.2 ([@cdce8p] - [#64009]) +- Simplify coordinator and import OverkizStateType ([@iMicknl] - [#63969]) ([overkiz docs]) +- Add setup type hints to proximity ([@epenet] - [#63990]) ([proximity docs]) +- Set event data as dict in foursquare.checkin event ([@epenet] - [#63982]) ([foursquare docs]) (breaking-change) +- Fix invalid type hint in discovery async_listen ([@epenet] - [#63987]) ([sabnzbd docs]) +- Ensure flux_led is reloaded when the ICtype is changed ([@bdraco] - [#64016]) ([flux_led docs]) +- Add content deeplinking support to roku ([@ctalkington] - [#64010]) ([roku docs]) +- Bump flux_led to 0.28.2 to fix older A3 not being able to setup ([@bdraco] - [#64017]) ([flux_led docs]) +- Improve UniFi Protect Smart Sensor support ([@AngellusMortis] - [#64019]) ([unifiprotect docs]) +- Add setup type hints to rfxtrx ([@epenet] - [#63963]) ([rfxtrx docs]) +- Fix UniFi remove client service if time stamps are not integers ([@Kane610] - [#63998]) ([unifi docs]) +- Import persistent notification (part 2) ([@emontnemery] - [#63899]) +- Import persistent notification (part 5) ([@emontnemery] - [#63902]) +- Implement binary_sensor in yale_smart_alarm ([@gjohansson-ST] - [#63937]) ([yale_smart_alarm docs]) (new-platform) +- Add type hints to media_player (part 1) ([@epenet] - [#64005]) ([media_player docs]) +- Add type hints to media_player (part 2) ([@epenet] - [#64006]) ([sonos docs]) ([plex docs]) ([kodi docs]) ([philips_js docs]) ([squeezebox docs]) +- Use Platform enum in load_platform ([@epenet] - [#63903]) +- Remove constant DEFAULT_CONFIG from alexa tests ([@emontnemery] - [#64031]) ([alexa docs]) +- Update elgato to 3.0.0 ([@frenck] - [#64033]) ([elgato docs]) +- Add setup type hints to group ([@epenet] - [#64002]) ([group docs]) +- Elgato refactoring; add base entity ([@frenck] - [#64034]) ([elgato docs]) +- Remove unused serial number config entry data from Elgato ([@frenck] - [#64035]) ([elgato docs]) +- Simplify Overkiz coordinator (step 2) and address feedback ([@iMicknl] - [#64028]) ([overkiz docs]) +- Upgrade oauth2client to 4.1.3 ([@cdce8p] - [#64044]) ([google docs]) +- Add typing to async_get_handler in demo ([@epenet] - [#64029]) ([demo docs]) +- Update wled to 0.11.0 ([@frenck] - [#64048]) ([wled docs]) +- Add setup type hints to script ([@epenet] - [#64030]) ([script docs]) +- Adjust mailbox type hints ([@epenet] - [#64051]) ([asterisk_mbox docs]) ([asterisk_cdr docs]) +- Fix yamaha discovery ([@epenet] - [#64056]) ([yamaha docs]) +- Pin libcst==0.3.23 ([@frenck] - [#64036]) +- Update featured integrations screenshot in README ([@Hedda] - [#64046]) +- Allow name-only location updates for mobile_app device_tracker ([@zacwest] - [#62243]) ([mobile_app docs]) +- Remove warnings from compensation ([@Petro31] - [#63691]) ([compensation docs]) +- Add support for setting RGB and RGBW values for Twinkly lights ([@RobBie1221] - [#62337]) ([twinkly docs]) +- Keep track of Alexa authorization status ([@emontnemery] - [#63979]) ([alexa docs]) ([cloud docs]) +- Remove Windows workarounds ([@emontnemery] - [#64068]) +- Remove Windows workarounds from wake_on_lan ([@emontnemery] - [#64070]) ([wake_on_lan docs]) +- Remove Windows workarounds from ping ([@emontnemery] - [#64069]) ([ping docs]) +- Remove attributes from vizio state when they don't make sense ([@raman325] - [#64025]) ([vizio docs]) (breaking-change) +- Adjust device_tracker type hints ([@epenet] - [#64054]) ([tomato docs]) ([arris_tg2492lg docs]) +- Don't close HA aiohttp session in Overkiz Config Flow ([@iMicknl] - [#64052]) ([overkiz docs]) +- Run pre-commit script on constraint changes ([@cdce8p] - [#64073]) +- Add gjohansson-ST as codeowner to trafikverket_train ([@gjohansson-ST] - [#64081]) ([trafikverket_train docs]) +- Upgrade vallox-websocket-api to 2.9.0 ([@cdce8p] - [#64055]) ([vallox docs]) +- Enable strict typing for trafikverket_weatherstation ([@gjohansson-ST] - [#64080]) +- Upgrade pyserial-asyncio to 0.6 ([@cdce8p] - [#64041]) ([zha docs]) ([serial docs]) +- Update to goodwe library v0.2.15 ([@mletenay] - [#64089]) ([goodwe docs]) +- Add select entity to Overkiz integration ([@iMicknl] - [#62916]) ([overkiz docs]) +- Fix pre-commit gen_requirements_all files regex ([@cdce8p] - [#64095]) +- Use Platform enum in scaffold templates ([@ludeeus] - [#64091]) +- Address late review of Minor AndroidTV config flow ([@ollo69] - [#64088]) ([androidtv docs]) +- Bump pytradfri to 8.0.1 and fix fan preset mode "Auto" bug ([@ggravlingen] - [#63920]) ([tradfri docs]) +- Add select platform to senseme ([@bdraco] - [#64086]) ([senseme docs]) +- Explicitly allow Mapping type hint in config entry async_update_entry ([@epenet] - [#63986]) ([ps4 docs]) +- Add light platform to LOOKin ([@ANMalko] - [#64076]) ([lookin docs]) (new-platform) +- Add thumbnails to nest media player ([@allenporter] - [#62532]) ([nest docs]) +- Pin python-engineio and python-socketio ([@cdce8p] - [#64074]) +- Ezviz dependancy to 0.2.0.6 ([@RenierM26] - [#64100]) ([ezviz docs]) +- Bump google-nest-sdm to 1.4.0 ([@allenporter] - [#64098]) ([nest docs]) +- Import frontend ([@epenet] - [#64104]) +- Move list to dict in repetier discovery ([@epenet] - [#64001]) ([repetier docs]) +- Move list to dict in supla discovery ([@epenet] - [#63805]) ([supla docs]) +- Rename cloud's AlexaConfig to CloudAlexaConfig ([@emontnemery] - [#64065]) ([cloud docs]) +- Bump aiogithubapi to 22.1.0 ([@ludeeus] - [#64109]) ([github docs]) +- Import webhook ([@epenet] - [#64102]) +- Add type hints to tts ([@epenet] - [#64050]) ([tts docs]) +- Add DeviceInfo to trafikverket_weatherstation ([@gjohansson-ST] - [#64083]) ([trafikverket_weatherstation docs]) +- Cleanup ADS constants and add type hints ([@epenet] - [#63390]) ([ads docs]) +- Import webhook in netatmo ([@epenet] - [#64105]) ([netatmo docs]) +- Deprecate Raspihats (ADR-0019) ([@epenet] - [#64113]) ([raspihats docs]) (breaking-change) +- Bump aprslib to 0.7.0 ([@thecode] - [#64093]) ([aprs docs]) +- Import onboarding ([@epenet] - [#64115]) ([frontend docs]) ([auth docs]) ([onboarding docs]) +- Import cloud ([@epenet] - [#64116]) +- Add setup type hints to raspihats ([@epenet] - [#63988]) ([raspihats docs]) +- Upgrade enturclient to 0.2.3 ([@cdce8p] - [#64121]) ([entur_public_transport docs]) +- Upgrade boto3 to 1.20.24 + aiobotocore to 2.1.0 ([@cdce8p] - [#64045]) ([route53 docs]) ([amazon_polly docs]) ([aws docs]) +- Modernize Elgato tests ([@frenck] - [#64060]) ([elgato docs]) +- Allow browsing favorites in Sonos media browser ([@balloob] - [#64082]) ([sonos docs]) +- Fix initial HomeWizard integration issues ([@DCSBL] - [#63921]) ([homewizard docs]) +- Implement DeviceInfo in smhi ([@gjohansson-ST] - [#64126]) ([smhi docs]) +- Add test cases for Tradfri cover platform ([@ggravlingen] - [#64072]) ([tradfri docs]) +- add @mib1185 as codeowner ([@mib1185] - [#64134]) ([fritz docs]) +- Cleanups in Twinkly code ([@RobBie1221] - [#64139]) ([twinkly docs]) (breaking-change) +- Bump greeclimate to 1.0.2 ([@cmroche] - [#64138]) ([gree docs]) +- Add missing type annotation for launch library ([@DurgNomis-drol] - [#64131]) ([launch_library docs]) +- Add LG webOS Smart TV config flow support ([@thecode] - [#64117]) ([webostv docs]) (breaking-change) +- Guard for timeout errors during wled discovery ([@balloob] - [#64130]) ([wled docs]) +- Add energy and additional sensors to oncue ([@bdraco] - [#64097]) ([oncue docs]) +- Fix package camera snapshot ([@AngellusMortis] - [#64145]) ([unifiprotect docs]) +- Fix media_player power state ([@ANMalko] - [#64136]) ([lookin docs]) +- Code cleanups for lookin ([@bdraco] - [#64106]) ([lookin docs]) +- Add play media URL support to roku ([@ctalkington] - [#64021]) ([roku docs]) +- Use dataclass properties in webostv discovery ([@thecode] - [#64159]) ([webostv docs]) +- Use hass.async_create_task rather than hass.loop.create_task in deconz ([@Kane610] - [#64158]) ([unifi docs]) +- Add test cases for Tradfri fan platform ([@ggravlingen] - [#64135]) ([tradfri docs]) +- Add test cases for Tradfri switch platform ([@ggravlingen] - [#64156]) ([tradfri docs]) +- Add test cases for Tradfri sensor platform ([@ggravlingen] - [#64165]) ([tradfri docs]) +- Fix changed port on Netgear R7000 ([@starkillerOG] - [#64012]) ([netgear docs]) +- Add HomeConnect Refrigerator ([@BraveChicken1] - [#63850]) ([home_connect docs]) +- Set unique id for config entry in smhi ([@gjohansson-ST] - [#63547]) ([smhi docs]) +- Change doorbird relay/IR switch to button ([@flacjacket] - [#63995]) ([doorbird docs]) (breaking-change) +- Add electric vehicle sensors to Mazda integration ([@bdr99] - [#64099]) ([mazda docs]) +- Add TimeCold and TimeWarm programs to HomeConnect dryer ([@Sdahl1234] - [#63330]) ([home_connect docs]) +- Bump google-nest-sdm to 1.5.0 and add nest mp4 clip transcoding to animated gif ([@allenporter] - [#64155]) ([nest docs]) +- Change carbon monoxide device class to CO for deCONZ integration ([@Kane610] - [#64185]) ([deconz docs]) +- Drop aemet isoformat() from timestamps ([@Noltari] - [#62793]) ([aemet docs]) +- Remove myself from CODEOWNERS ([@Noltari] - [#64188]) ([tado docs]) ([ubus docs]) ([aemet docs]) +- Remove unneeded update_before_add from nexia ([@bdraco] - [#64187]) ([nexia docs]) +- Upgrade miflora to 0.7.2 ([@cdce8p] - [#64179]) ([miflora docs]) +- Fix misuse of cast for Shelly Valve ([@chemelli74] - [#64181]) ([shelly docs]) +- Run pre-commit `hassfest` on changes to script files ([@cdce8p] - [#64195]) +- Update iot_class ([@gerard33] - [#64202]) ([dsmr_reader docs]) +- Update nexia climate platform to use newer standards ([@bdraco] - [#64186]) ([nexia docs]) +- Refactor homekit_controller tests to reduce duplication. ([@Jc2k] - [#64198]) +- Move list to dict in iperf3 discovery ([@epenet] - [#64204]) +- Add switch platform to nexia ([@bdraco] - [#64205]) ([nexia docs]) +- Enable strict typing in webostv ([@thecode] - [#64193]) +- Register MAC connection for Elgato devices ([@frenck] - [#64201]) ([elgato docs]) +- Check discovery_info is available and add setup type hints ([@epenet] - [#63782]) ([ebusd docs]) +- Fix core restart due to change in relative imports ([@thecode] - [#64209]) +- Fix bug when starting a RainMachine zone via service call ([@bachya] - [#64213]) ([rainmachine docs]) +- Fix duplicate code in nexia climate platform ([@bdraco] - [#64220]) ([nexia docs]) +- Cleanup code config flow smhi ([@gjohansson-ST] - [#64197]) ([smhi docs]) +- Fix bug with too-long pause durations for RainMachine ([@bachya] - [#64218]) ([rainmachine docs]) +- Add sensor platform to roku ([@ctalkington] - [#64214]) ([roku docs]) (new-platform) +- Fix humidifier state error in HomeKit ([@qqaatw] - [#61432]) ([homekit docs]) +- Defer to camera implementation for non-WebRTC cameras ([@allenporter] - [#63182]) ([nest docs]) +- Bump Glances to 0.3.4 to fix async_timeout passing loop ([@GuyKh] - [#62090]) ([glances docs]) +- Fix tests and add setup type in feedreader ([@epenet] - [#64280]) ([feedreader docs]) +- Fix raspihats callbacks ([@epenet] - [#64122]) ([raspihats docs]) +- WeMo state changes are seen by all coordinator entities ([@esev] - [#64228]) ([wemo docs]) +- Implement entity_descriptions in SIA ([@eavanvalkenburg] - [#63130]) ([sia docs]) +- Add Shelly Gen2 polling for sesnors missing push updates ([@thecode] - [#64171]) ([shelly docs]) +- spelling: components/fritz ([@jsoref] - [#64259]) ([fritz docs]) +- spelling: components/denonavr ([@jsoref] - [#64244]) ([denonavr docs]) +- spelling: components/bond ([@jsoref] - [#64272]) +- spelling: components/fronius ([@jsoref] - [#64274]) ([fronius docs]) +- CI: Add job for `pip check` ([@cdce8p] - [#64058]) +- Bump pyaftership to 21.11.0 ([@ludeeus] - [#64294]) ([aftership docs]) +- Fix comments, improve readability in Cloud ([@emontnemery] - [#64291]) ([cloud docs]) ([google_assistant docs]) +- Fix comments in Alexa ([@emontnemery] - [#64289]) ([alexa docs]) ([cloud docs]) +- Move list to dict in utility-meter discovery ([@epenet] - [#63808]) ([utility_meter docs]) +- Use assignment expression for unload_ok in scaffold templates ([@ludeeus] - [#64286]) +- Bump async-upnp-client to 0.23.4 ([@chishm] - [#64287]) ([upnp docs]) ([yeelight docs]) ([dlna_dmr docs]) ([ssdp docs]) +- spelling: components/elkm1 ([@jsoref] - [#64252]) ([elkm1 docs]) +- Bump pyunifiprotect version to 3.1.1 for UniFi Protect ([@AngellusMortis] - [#64297]) ([unifiprotect docs]) +- spelling: components/azure_event_hub ([@jsoref] - [#64229]) ([azure_event_hub docs]) +- spelling: components/blueprint ([@jsoref] - [#64271]) ([blueprint docs]) +- spelling: components/eafm ([@jsoref] - [#64257]) ([eafm docs]) +- spelling: components/gdacs ([@jsoref] - [#64275]) ([gdacs docs]) +- spelling: components/brother ([@jsoref] - [#64273]) ([brother docs]) +- spelling: components/forecast_solar ([@jsoref] - [#64261]) ([forecast_solar docs]) +- spelling: components/flick_electric ([@jsoref] - [#64262]) ([flick_electric docs]) +- spelling: components/geonetnz_quakes ([@jsoref] - [#64276]) +- spelling: components/demo ([@jsoref] - [#64245]) ([demo docs]) +- spelling: components/accuweather ([@jsoref] - [#64264]) ([accuweather docs]) +- spelling: components/ecovacs ([@jsoref] - [#64253]) ([ecovacs docs]) +- spelling: components/freedompro ([@jsoref] - [#64260]) ([freedompro docs]) +- spelling: components/gogogate2 ([@jsoref] - [#64278]) ([gogogate2 docs]) +- spelling: components/devolo_home_network ([@jsoref] - [#64243]) ([devolo_home_network docs]) +- spelling: components/balboa ([@jsoref] - [#64270]) ([balboa docs]) +- spelling: components/apns ([@jsoref] - [#64269]) ([apns docs]) +- spelling: components/airvisual ([@jsoref] - [#64265]) ([airvisual docs]) +- spelling: components/androidtv ([@jsoref] - [#64267]) +- spelling: components/ecobee ([@jsoref] - [#64255]) ([ecobee docs]) +- spelling: components/emonitor ([@jsoref] - [#64251]) ([emonitor docs]) +- spelling: components/eufy ([@jsoref] - [#64248]) ([eufy docs]) +- spelling: components/fritzbox ([@jsoref] - [#64258]) ([fritzbox docs]) +- spelling: components/climacell ([@jsoref] - [#64240]) ([climacell docs]) +- spelling: components/ambiclimate ([@jsoref] - [#64227]) ([ambiclimate docs]) +- spelling: components/asuswrt ([@jsoref] - [#64233]) ([asuswrt docs]) +- spelling: components/buienradar ([@jsoref] - [#64235]) ([buienradar docs]) +- spelling: components/bmw_connected_drive ([@jsoref] - [#64236]) ([bmw_connected_drive docs]) +- spelling: components/coolmaster ([@jsoref] - [#64237]) ([coolmaster docs]) +- spelling: components/apple_tv ([@jsoref] - [#64234]) ([apple_tv docs]) +- spelling: components/awair ([@jsoref] - [#64230]) ([awair docs]) +- spelling: components/aurora_abb_powerone ([@jsoref] - [#64231]) +- spelling: components/august ([@jsoref] - [#64232]) ([august docs]) +- spelling: components/conversation ([@jsoref] - [#64238]) ([conversation docs]) +- spelling: components/camera ([@jsoref] - [#64242]) ([camera docs]) +- Change value of device_automation constant ([@emontnemery] - [#64296]) +- Add changed states device trigger to media_player entity ([@emontnemery] - [#64304]) ([media_player docs]) +- spelling: components/analytics ([@jsoref] - [#64268]) ([analytics docs]) +- Suppress Alexa state reports when not authorized ([@emontnemery] - [#64064]) ([alexa docs]) ([cloud docs]) +- Add webostv 100% tests cover for triggers ([@thecode] - [#64301]) ([webostv docs]) +- Fix webostv YAML migration failure if the entity is removed ([@thecode] - [#64290]) ([webostv docs]) +- Add switch entity to Overkiz integration ([@iMicknl] - [#64000]) +- Remove Windows workarounds from tests/utils/test_json.py ([@emontnemery] - [#64311]) +- Add Air Quality PPB sensor to deCONZ integration ([@Kane610] - [#64164]) ([deconz docs]) +- Code quality improvements smhi ([@gjohansson-ST] - [#64312]) ([smhi docs]) +- Add additional buttons to Overkiz integration ([@iMicknl] - [#64321]) ([overkiz docs]) +- Address late feedback to Overkiz (move to constants) ([@iMicknl] - [#64324]) ([overkiz docs]) +- Finish deduplicating homekit_controller enumeration tests ([@Jc2k] - [#64306]) ([homekit_controller docs]) +- Add new Binary Sensor description to Overkiz integration ([@iMicknl] - [#64322]) ([overkiz docs]) +- Refactor some sensors and add translations to Overkiz ([@iMicknl] - [#64108]) ([overkiz docs]) +- Cleans up various asserts/type ignores for UniFi Protect ([@AngellusMortis] - [#63824]) ([unifiprotect docs]) +- Add low battery binary sensor to deCONZ integration ([@Kane610] - [#64168]) ([deconz docs]) +- Remove tado from mypy ignored modules ([@epenet] - [#64333]) ([tado docs]) +- spelling: components/airly ([@jsoref] - [#64266]) ([airly docs]) +- Exception handling config flow yale_smart_alarm ([@gjohansson-ST] - [#63623]) ([yale_smart_alarm docs]) +- Add diagnostics integration ([@balloob] - [#64330]) ([default_config docs]) ([diagnostics docs]) (new-integration) +- Add zwave_js support for diagnostics ([@raman325] - [#64336]) ([zwave_js docs]) +- Import tts ([@epenet] - [#64212]) ([tts docs]) ([cast docs]) +- Clean last usages of old config flow handlers decorator ([@frenck] - [#64329]) ([homematicip_cloud docs]) ([hangouts docs]) ([almond docs]) +- Bump google-nest-sdm 1.5.1 ([@allenporter] - [#64334]) ([nest docs]) +- Cleanup nest auth registration, moving out of __init__.py ([@allenporter] - [#63350]) ([nest docs]) +- Enable Alexa state reporting by default ([@emontnemery] - [#63802]) ([cloud docs]) +- Fix media player image url password logged ([@MartinHjelmare] - [#64293]) ([media_player docs]) +- Remove Windows workarounds from frontend ([@emontnemery] - [#64343]) ([frontend docs]) +- Fix webostv media next/previous services ([@thecode] - [#64355]) ([webostv docs]) +- Cleanup mypy ignored modules ([@epenet] - [#64341]) +- Remove integrations from mypy ignored modules ([@epenet] - [#64358]) ([doorbird docs]) ([foscam docs]) ([enphase_envoy docs]) ([fortios docs]) ([flo docs]) +- Remove --daemon and --pid-file option from __main__.py ([@emontnemery] - [#64345]) +- Remove --runner option from __main__.py ([@emontnemery] - [#64347]) +- Bump pypck to 0.7.13 ([@alengwenus] - [#64368]) ([lcn docs]) +- Import configurator ([@epenet] - [#64211]) +- Add discovery support to unifiprotect ([@bdraco] - [#64340]) ([unifiprotect docs]) +- Netgear try all ports ([@starkillerOG] - [#64170]) ([netgear docs]) +- Revamp github integration ([@ludeeus] - [#64190]) ([github docs]) (breaking-change) +- Add two new sensors to Launch Library ([@DurgNomis-drol] - [#64203]) ([launch_library docs]) (breaking-change) +- Add evil genius labs diagnostics ([@balloob] - [#64339]) ([evil_genius_labs docs]) +- Update xknx to 0.19.0 ([@farmio] - [#64379]) ([knx docs]) +- Add diagnostics support to Tuya ([@frenck] - [#64374]) ([tuya docs]) +- Fix unifi discovery, add Dream Machine SE ([@bdraco] - [#64377]) ([unifi docs]) +- Update pre-commit to 2.17.0 ([@frenck] - [#64378]) +- Add daily weather forecasts to Open-Meteo integration ([@frenck] - [#63677]) ([open_meteo docs]) +- Validate operating system is supported ([@emontnemery] - [#64352]) +- Add device registry cleanup to github ([@ludeeus] - [#64380]) ([github docs]) +- Add launch status sensor for launch_library ([@DurgNomis-drol] - [#64382]) ([launch_library docs]) +- Add entity options to entity registry ([@emontnemery] - [#64350]) +- Remove http dependency from system log ([@balloob] - [#64386]) ([system_log docs]) +- Automatically add entry title as name placeholder in reauth ([@frenck] - [#64078]) ([pvoutput docs]) +- Cleanup unifiprotect discovery name ([@bdraco] - [#64389]) ([unifiprotect docs]) +- Bump frontend to 20220118.0 ([@balloob] - [#64388]) ([frontend docs]) +- Bump unifi-discovery to 1.1.0 ([@bdraco] - [#64391]) ([unifiprotect docs]) +- Use unifi direct connect w/ssl verify for unifiprotect when possible ([@bdraco] - [#64395]) ([unifiprotect docs]) +- Fix situation where 'model' can be None (string) in Overkiz ([@iMicknl] - [#64320]) ([overkiz docs]) +- Convert some tests to async and drop usage get_test_home_assistant ([@balloob] - [#64394]) ([microsoft_face docs]) ([camera docs]) ([logbook docs]) ([aprs docs]) +- Add camera play stream support to roku ([@ctalkington] - [#64153]) ([roku docs]) +- Add HomeConnect Freezer ([@BraveChicken1] - [#63851]) ([home_connect docs]) +- Use async_create_task for microsoft_face tests ([@balloob] - [#64409]) ([microsoft_face docs]) +- Bump zwave-js-server-python to 0.34.0 ([@raman325] - [#64407]) ([zwave_js docs]) (breaking-change) +- Add setup type hints (platforms) ([@epenet] - [#64354]) ([zha docs]) ([philips_js docs]) ([denonavr docs]) ([arcam_fmj docs]) +- Unifi protect discovery cleanups ([@bdraco] - [#64413]) ([unifiprotect docs]) +- Remove integrations from mypy ignored modules (part 2) ([@epenet] - [#64367]) +- Use wemo enums in fan entity ([@esev] - [#64397]) ([wemo docs]) +- spelling: components/emulated_hue ([@jsoref] - [#64250]) ([emulated_hue docs]) +- Add launch mission sensor for launch_library ([@DurgNomis-drol] - [#64387]) ([launch_library docs]) +- Add diagnostic information for nest ([@allenporter] - [#64405]) ([nest docs]) +- Clean up Launch Library consts ([@ludeeus] - [#64420]) ([launch_library docs]) +- Make launch library lambdas single line ([@ludeeus] - [#64424]) ([launch_library docs]) +- Remove integrations from mypy ignored modules (part 3) ([@epenet] - [#64414]) ([kodi docs]) ([keenetic_ndms2 docs]) ([litejet docs]) ([kaiterra docs]) ([kulersky docs]) ([motion_blinds docs]) +- Add AQHI sensor for Environment Canada ([@gwww] - [#63644]) ([environment_canada docs]) +- Add diagnostics to the core files ([@epenet] - [#64417]) +- Address late Netgear review comments ([@starkillerOG] - [#64428]) ([netgear docs]) +- Add webostv 100% tests coverage for notify ([@thecode] - [#64412]) ([webostv docs]) +- Convert discovery tests to async ([@balloob] - [#64411]) +- Get rid of name collision in iaqualink tests ([@flz] - [#63642]) ([iaqualink docs]) +- Remove integrations from mypy ignored modules (part 4) ([@epenet] - [#64435]) ([onboarding docs]) ([ness_alarm docs]) ([nuki docs]) ([nws docs]) ([ovo_energy docs]) ([nightscout docs]) +- Add diagnostics to GitHub integration ([@ludeeus] - [#64385]) ([github docs]) +- Fix source ip detection in unifi-discovery ([@bdraco] - [#64419]) ([unifiprotect docs]) +- Add HVAC modes of climate entities to Prometheus exporter ([@rnurgaliyev] - [#62144]) ([prometheus docs]) +- Improved stream url and removed dependency on track numbers ([@Djowie] - [#64079]) ([jellyfin docs]) +- Allow to skip artist level in media hierarchy ([@j-stienstra] - [#64160]) ([jellyfin docs]) +- Move logger to constants ([@iMicknl] - [#64431]) ([overkiz docs]) +- fix: 17track package summary status is not updated when there are no more packages in that summary ([@regevbr] - [#64421]) ([seventeentrack docs]) +- Fix the Android TV volume mute service ([@JeffLIrion] - [#64403]) ([androidtv docs]) +- Bump Lightwave Version - Improved Error Handling ([@ColinRobbins] - [#64452]) ([lightwave docs]) +- Add setup type hints (init) ([@epenet] - [#64351]) +- Signal messenger attachments as bytes support ([@burnsie-la] - [#62311]) ([signal_messenger docs]) +- Catch exceptions when trying to enable Alexa ([@emontnemery] - [#64438]) ([cloud docs]) +- Prevent race when loading cloud config ([@emontnemery] - [#64437]) ([cloud docs]) +- Extract fibaro switch energy attributes into sensors ([@rappenze] - [#63697]) ([fibaro docs]) (breaking-change) +- spelling: components/cast ([@jsoref] - [#64241]) ([cast docs]) +- Clean up AirVisual tests ([@bachya] - [#64402]) ([airvisual docs]) +- Add `restrict_watering` and `unrestrict_watering` services to RainMachine ([@bachya] - [#64219]) ([rainmachine docs]) +- Update shodan to 1.26.1 ([@frenck] - [#64457]) ([shodan docs]) +- Adjust tests for removing github devices ([@ludeeus] - [#64448]) ([github docs]) +- Initial Tuya support for FSD based fans ([@candreacchio] - [#64283]) ([tuya docs]) (new-integration) +- Improve code quality trafikverket_train ([@gjohansson-ST] - [#62677]) ([trafikverket_train docs]) +- Remove ping from mypy ignored modules ([@epenet] - [#64439]) ([ping docs]) +- Add webostv YAML to config flow migration warning ([@thecode] - [#64450]) ([webostv docs]) +- spelling: components/abode ([@jsoref] - [#64263]) ([abode docs]) +- Add diagnostics to KNX ([@farmio] - [#64471]) ([knx docs]) +- Remove somfy from mypy ignore list ([@epenet] - [#64462]) ([somfy docs]) +- Make setup tests async ([@balloob] - [#64456]) +- Add libturbojpeg0 to dev-container ([@mib1185] - [#64466]) +- Add Volumio repeat support ([@m4rkireland] - [#64132]) +- Streamline `hass.data` storage for AirVisual ([@bachya] - [#64476]) ([airvisual docs]) +- Perform some more AirVisual test cleanup ([@bachya] - [#64470]) ([airvisual docs]) +- Address stateless switch feedback in Overkiz integration ([@iMicknl] - [#64430]) ([overkiz docs]) +- Add redacted constant in diagnostics ([@frenck] - [#64473]) ([tuya docs]) ([evil_genius_labs docs]) ([diagnostics docs]) +- Remove verisure from mypy ignore list ([@epenet] - [#64475]) ([verisure docs]) +- Add edl21 sensor state class and device class ([@StephanU] - [#56968]) ([edl21 docs]) +- Small cleanup of Shodan ([@frenck] - [#64467]) ([shodan docs]) +- Use callback for async_cleanup_device_registry ([@ludeeus] - [#64481]) ([github docs]) +- Add diagnostics for the AirVisual integration ([@bachya] - [#64479]) ([airvisual docs]) +- Remove unnecessary AirVisual attribute constants ([@bachya] - [#64483]) ([airvisual docs]) +- Add diagnostics to Overkiz integration ([@iMicknl] - [#64427]) ([overkiz docs]) +- Add diagnostics to Netatmo integration ([@cgtobi] - [#64392]) ([netatmo docs]) +- Clean up Ambient PWS tests ([@bachya] - [#64486]) ([ambient_station docs]) +- Fix attr spelling error in Nest SDM SensorBase ([@iMicknl] - [#64490]) ([nest docs]) +- Add diagnostics to Ambient PWS ([@bachya] - [#64489]) ([ambient_station docs]) ([airvisual docs]) +- Fix incorrect docstring in AirVisual test ([@bachya] - [#64496]) +- Add support for device diagnostics ([@raman325] - [#64344]) ([diagnostics docs]) +- Add explicit branching in AirVisual diagnostics ([@bachya] - [#64493]) ([airvisual docs]) +- Pass device entry to async_get_device_diagnostics instead of device_id ([@raman325] - [#64501]) ([diagnostics docs]) +- Drop slash from media source directories ([@balloob] - [#64499]) ([media_source docs]) +- Add support for checking if an entity is explicitly included in an entity filter ([@bdraco] - [#64463]) +- Remove vera from mypy ignore list ([@epenet] - [#64474]) ([vera docs]) +- Remove sma from mypy ignore list ([@epenet] - [#64510]) ([sma docs]) +- Add entity category support to HomeKit ([@bdraco] - [#64492]) ([homekit docs]) (breaking-change) +- Remove rachio from mypy ignore list ([@epenet] - [#64521]) ([rachio docs]) +- Remove screenlogic from mypy ignore list ([@epenet] - [#64512]) ([screenlogic docs]) +- Strip whitespace in nest cloud project id ([@allenporter] - [#64503]) ([nest docs]) +- Remove ruckus unleashed from mypy ignore list ([@epenet] - [#64513]) ([ruckus_unleashed docs]) +- Fix incorrect preset mode in senseme ([@bdraco] - [#64526]) ([senseme docs]) +- Remove search from mypy ignore list ([@epenet] - [#64507]) ([search docs]) +- Bump unifi-discovery to 1.1.2 to fix exception on missing mac ([@bdraco] - [#64527]) ([unifiprotect docs]) +- Bump aiosenseme to 0.6.1 to fix parser ([@bdraco] - [#64520]) ([senseme docs]) +- Expose UniFi controller configuration url from discovered entry ([@Kane610] - [#64514]) ([unifi docs]) +- Remove sense from mypy ignore list ([@epenet] - [#64508]) ([sense docs]) +- Remove point from mypy ignore list ([@epenet] - [#64524]) ([point docs]) +- Bump aioesphomeapi to 10.7.0 ([@jesserockz] - [#64495]) ([esphome docs]) +- Address late review in screenlogic ([@epenet] - [#64529]) ([screenlogic docs]) +- Fix rtsp-to-webrtc bug in calling client library ([@allenporter] - [#64502]) ([rtsp_to_webrtc docs]) +- Remove pioneer from mypy ignore list ([@epenet] - [#64515]) ([pioneer docs]) +- Remove sharkiq from mypy ignore list ([@epenet] - [#64509]) ([sharkiq docs]) +- Expose Axis device configuration url from discovered entry ([@Kane610] - [#64517]) ([axis docs]) +- Remove plum lightpad from mypy ignore list ([@epenet] - [#64523]) ([plum_lightpad docs]) +- Remove stt from mypy ignore list ([@epenet] - [#64468]) ([stt docs]) +- Remove system_log from mypy ignore list ([@epenet] - [#64469]) ([system_log docs]) +- Remove plaato from mypy ignore list ([@epenet] - [#64516]) ([plaato docs]) +- Add Intellifire Gas Fireplace integration ([@jeeftor] - [#63637]) ([intellifire docs]) (new-integration) +- Remove smartthings from mypy ignore list ([@epenet] - [#64511]) ([smartthings docs]) +- Abort rtsp_to_webrtc config flow on error during add-on discovery ([@allenporter] - [#64500]) ([rtsp_to_webrtc docs]) +- Remove plugwise from mypy ignore list ([@epenet] - [#64525]) ([plugwise docs]) +- Replace whois library in Whois integration ([@frenck] - [#63227]) ([whois docs]) +- Add zwave_js device diagnostics ([@raman325] - [#64504]) +- Import mqtt ([@epenet] - [#64543]) ([owntracks docs]) +- Update pytest-timeout to 2.1.0 ([@frenck] - [#64533]) +- Import webhook in toon ([@epenet] - [#64544]) ([toon docs]) +- Fix braviatv tests doing IO ([@thecode] - [#64549]) ([braviatv docs]) +- Add device diagnostics support to Tuya ([@frenck] - [#64537]) ([tuya docs]) +- Let the new wrapper just extend the `FritzBoxTools` class ([@mib1185] - [#64133]) ([fritz docs]) +- Run scheduled workflows only in the home-assistant organization ([@slovdahl] - [#64085]) +- Import panel_custom ([@epenet] - [#64541]) ([hassio docs]) +- Import camera ([@epenet] - [#64540]) ([google_assistant docs]) ([homekit docs]) ([mobile_app docs]) +- Cleanup logger in sharkiq ([@epenet] - [#64552]) ([sharkiq docs]) +- Expose deCONZ configuration url from discovered entry ([@Kane610] - [#64519]) ([deconz docs]) +- Remove the deprecated discovery_info endpoint ([@ludeeus] - [#64534]) ([api docs]) (breaking-change) +- MQTT Remove unused and not tested code ([@jbouwh] - [#64550]) ([mqtt docs]) +- Address after merge review comments on IntelliFire ([@frenck] - [#64553]) ([intellifire docs]) +- Import auth, hassio and person in onboarding ([@epenet] - [#64542]) ([onboarding docs]) +- Improve code coverage MQTT integration ([@jbouwh] - [#64546]) ([mqtt docs]) +- Address late review in sharkiq config flow ([@epenet] - [#64554]) ([sharkiq docs]) +- Add siren platform to devolo Home Control ([@Shutgun] - [#53400]) ([devolo_home_control docs]) +- Add vicare solar collector and pump information ([@bairnhard] - [#64178]) ([vicare docs]) +- Add dishwasher program to Home Connect Integration ([@jan-loeffler] - [#61237]) ([home_connect docs]) +- Handle missing values in alpha_vantage sensor ([@martin3000] - [#63632]) ([alpha_vantage docs]) +- Tibber diagnostics ([@Danielhiversen] - [#64472]) ([tibber docs]) +- Fix onboarding ([@epenet] - [#64557]) ([onboarding docs]) +- Fix errors when trying to enable Alexa ([@emontnemery] - [#64536]) ([cloud docs]) +- Move CONF_COMMAND_TEMPLATE to .const ([@jbouwh] - [#64558]) ([mqtt docs]) +- Use EntityCategory enum in Overkiz ([@iMicknl] - [#64565]) ([overkiz docs]) +- Convert remaining TTS tests to async ([@balloob] - [#64505]) ([voicerss docs]) ([marytts docs]) ([yandextts docs]) +- Convert remaining image processing tests to async ([@balloob] - [#64506]) ([openalpr_cloud docs]) ([openalpr_local docs]) +- Fix bug for zwave_js diagnostics ([@raman325] - [#64568]) +- Import hassio ([@epenet] - [#64561]) ([http docs]) ([updater docs]) ([hassio docs]) ([ozw docs]) +- Remove default value of async_add_entities in devolo Home Control ([@Shutgun] - [#64574]) ([devolo_home_control docs]) +- Add support for Soma Tilt devices ([@sebfortier2288] - [#49734]) ([soma docs]) +- Fix atag slow tests ([@thecode] - [#64567]) ([atag docs]) +- Remove ring from mypy ignore list ([@epenet] - [#64522]) ([ring docs]) +- Add diagnostics to Renault integration ([@epenet] - [#64531]) ([renault docs]) ([diagnostics docs]) +- Add last_reset for Sense trend sensors ([@kbickar] - [#63490]) ([sense docs]) ([emulated_kasa docs]) +- Implement config flow dnsip ([@gjohansson-ST] - [#62843]) ([dnsip docs]) (breaking-change) +- Add version info to zwave js device diagnostics ([@raman325] - [#64573]) ([zwave_js docs]) +- Convert last media player tests to async ([@balloob] - [#64572]) ([universal docs]) ([blackbird docs]) +- Update wled to 0.12.0 ([@frenck] - [#64580]) ([wled docs]) +- Ignore further ssdp:alive message if connection fails in dlna_dmr ([@chishm] - [#59891]) ([dlna_dmr docs]) +- Add diagnostics support to Sonos ([@jjlawren] - [#64576]) ([sonos docs]) +- Introduce new redact helper ([@balloob] - [#64579]) ([netatmo docs]) ([ambient_station docs]) ([airvisual docs]) ([renault docs]) ([evil_genius_labs docs]) ([diagnostics docs]) +- Mark Switcher as a platinum quality integration ([@thecode] - [#64584]) ([switcher_kis docs]) +- Fix switcher_kis test sleep time patching ([@thecode] - [#64582]) ([switcher_kis docs]) +- Add diagnostics to deCONZ integration ([@Kane610] - [#64585]) ([deconz docs]) +- Add version constraint for google-auth ([@cdce8p] - [#64583]) +- Improve Sonos diagnostics ([@jjlawren] - [#64586]) ([sonos docs]) +- Change webostv iot class to local push ([@thecode] - [#64593]) ([webostv docs]) +- Clean up Flu Near You tests ([@bachya] - [#64575]) ([flunearyou docs]) +- Use return_value in Flu Near You config flow tests ([@bachya] - [#64596]) ([flunearyou docs]) +- Clean up Guardian config flow tests ([@bachya] - [#64598]) +- Clean up IQVIA config flow tests ([@bachya] - [#64601]) ([iqvia docs]) +- Add Aussie Broadband integration ([@nickw444] - [#53552]) ([aussie_broadband docs]) (new-integration) +- Add diagnostics to IQVIA ([@bachya] - [#64602]) ([iqvia docs]) +- Revert "Add version constraint for google-auth (#64583)" ([@allenporter] - [#64605]) +- Add diagnostics to Elexa Guardian ([@bachya] - [#64599]) ([guardian docs]) +- Don't import from integration `.const` ([@bachya] - [#64608]) ([ambient_station docs]) ([airvisual docs]) ([flunearyou docs]) +- Handle WLED devices with CCT channels ([@frenck] - [#64581]) ([wled docs]) +- Bump fiblary3 to 0.1.8 ([@rappenze] - [#64577]) ([fibaro docs]) +- Update Netatmo diagnostics ([@cgtobi] - [#64610]) ([netatmo docs]) +- Add switch platform to HomeWizard Energy ([@DCSBL] - [#64084]) ([homewizard docs]) (new-platform) +- Add ToDoist Assignee option for new task service ([@Lyr3x] - [#63918]) ([todoist docs]) +- Scrape HTML attributes that are not key/val pairs ([@MizterB] - [#58247]) ([scrape docs]) +- Fix incorrect usage of ToggleEntity in switch platforms ([@frenck] - [#64620]) +- Add diagnostics support to TwenteMilieu ([@frenck] - [#64627]) ([twentemilieu docs]) +- Update sentry-dsk to 1.5.3 ([@frenck] - [#64630]) ([sentry docs]) +- Deprecate Apple Push Notification Service (APNS) ([@frenck] - [#64629]) ([apns docs]) (breaking-change) +- Add diagnostics to Brother integration ([@bieniu] - [#64478]) ([brother docs]) +- Attempt to fix flaky upnp test ([@emontnemery] - [#64617]) ([upnp docs]) +- Update hassfest dependency check ([@balloob] - [#64638]) +- Store remote domain in Cloud preferences ([@emontnemery] - [#64532]) ([cloud docs]) +- Attempt to fix flaky nam test ([@emontnemery] - [#64613]) ([nam docs]) +- Add Home Assistant Content user ([@balloob] - [#64337]) ([http docs]) ([websocket_api docs]) ([auth docs]) ([cast docs]) ([media_source docs]) (breaking-change) +- Add DataUpdateCoordinator to Elgato ([@frenck] - [#64642]) ([elgato docs]) +- Add rainforest diagnostics ([@balloob] - [#64647]) ([rainforest_eagle docs]) +- Fix UniFi Protect test warning ([@AngellusMortis] - [#64650]) ([unifiprotect docs]) +- Add note to unifiprotect flow that a local user is required ([@bdraco] - [#64651]) ([unifiprotect docs]) +- Update of the ihcsdk to 2.7.5 ([@dingusdk] - [#64631]) ([ihc docs]) +- Fix flaky upnp test ([@balloob] - [#64656]) ([upnp docs]) +- Add CO2signal diagnostics ([@balloob] - [#64646]) ([co2signal docs]) +- Add diagnostics platform to AVM Fritz!Smarthome ([@mib1185] - [#64657]) ([fritzbox docs]) +- Some tweaks for media source ([@balloob] - [#64641]) ([media_player docs]) ([media_source docs]) +- Add diagnostics to Synology DSM integration ([@mib1185] - [#64480]) ([synology_dsm docs]) +- Feature/voc olinc smart adapter vp3 power measurement ([@beele] - [#64571]) ([homekit_controller docs]) +- Fix tilt-position for HmIPW-DRBL4 ([@danielperna84] - [#64208]) ([homematic docs]) +- Update luftdaten to 0.7.2 ([@frenck] - [#64662]) ([luftdaten docs]) +- Update codespell to 2.1.0 ([@frenck] - [#64661]) ([recorder docs]) ([wemo docs]) +- Allow Sonos to browse and play local media via media browser ([@balloob] - [#64603]) +- Add local media browser to VLC ([@balloob] - [#64655]) ([media_source docs]) ([vlc_telnet docs]) +- Update emoji to 1.6.3 ([@frenck] - [#64663]) ([mobile_app docs]) +- Bump up ZHA dependencies ([@Adminiuga] - [#64676]) ([zha docs]) +- Bump flux_led to fix setting strip order on SK6812RGBW ([@bdraco] - [#64671]) ([flux_led docs]) +- Fix music mode and on with older 0x08 flux_led models ([@bdraco] - [#64672]) ([flux_led docs]) +- rfxtrx: bump to 0.27.1 ([@elupus] - [#64666]) ([rfxtrx docs]) +- Update of the ihcsdk to 2.7.6 ([@dingusdk] - [#64664]) ([ihc docs]) +- bump motionblinds to 0.5.10 ([@starkillerOG] - [#64695]) ([motion_blinds docs]) +- Add diagnostics support to PVOutput ([@frenck] - [#64625]) ([pvoutput docs]) +- Add diagnostics support to Open-Meteo ([@frenck] - [#64645]) ([open_meteo docs]) +- Bump bsblan python lib v0.5.0 ([@liudger] - [#64702]) +- Change ssdp scanning interval to 2 minutes ([@bdraco] - [#64688]) ([ssdp docs]) +- Fix webostv media player ([@thecode] - [#64690]) ([webostv docs]) +- Refactor roku tests ([@ctalkington] - [#64498]) ([roku docs]) +- Add tests for LCN switch platform ([@alengwenus] - [#52590]) ([lcn docs]) +- Remove system info from KNX diagnostic ([@marvin-w] - [#64721]) ([knx docs]) +- Fix small inconsistency in OpenUV data storage ([@bachya] - [#64717]) ([openuv docs]) +- Fix webserver responsiveness where there are a lot of discoveries ([@bdraco] - [#64719]) +- Discard duplicate sonos events ([@jjlawren] - [#64722]) ([sonos docs]) +- Clean up OpenUV config flow tests ([@bachya] - [#64715]) +- Update version requirements for httpcore and anyio ([@uvjustin] - [#64711]) +- Add webostv 100% tests coverage for media player ([@thecode] - [#64723]) ([webostv docs]) +- Add diagnostics platform to Shelly ([@mib1185] - [#64660]) ([shelly docs]) +- Add diagnostics to OpenUV ([@bachya] - [#64716]) ([openuv docs]) +- Motionblinds improvements ([@starkillerOG] - [#64698]) ([motion_blinds docs]) +- Migrate amcrest integration to new async API ([@flacjacket] - [#56294]) ([amcrest docs]) +- Add Device Info to Aussie Broadband ([@Bre77] - [#64673]) ([aussie_broadband docs]) +- Use `_attr_*` properties for Doorbird camera ([@flacjacket] - [#64734]) ([doorbird docs]) +- Make service functions async ([@dingusdk] - [#64705]) ([ihc docs]) +- Update the states of the amcrest camera on every update ([@flacjacket] - [#56284]) ([amcrest docs]) +- Fix MultiDict typing with multidict-6.0.0 ([@bdraco] - [#64733]) +- Add button platform to bond to replace custom services ([@bdraco] - [#64725]) ([bond docs]) (breaking-change) +- Refactor nest test_init_sdm tests to use fixtures with varied config types ([@allenporter] - [#64736]) ([nest docs]) +- Fix flux_led reloading too quickly after an operating mode change ([@bdraco] - [#64591]) ([flux_led docs]) +- Remove system info from deCONZ diagnostics ([@Kane610] - [#64704]) ([deconz docs]) +- Prevent lookin polling when push updates are coming in ([@bdraco] - [#64687]) ([lookin docs]) +- Upgrade rokuecp to 0.11.0 ([@ctalkington] - [#64740]) ([roku docs]) +- Update nest media player device thumbnails ([@allenporter] - [#64738]) ([nest docs]) +- Refactor Tuya DPCode and data type handling ([@frenck] - [#64707]) ([tuya docs]) +- Add diagnostics support to Tailscale ([@frenck] - [#64649]) ([tailscale docs]) +- Add diagnostics support to Sensor.Community ([@frenck] - [#64636]) ([luftdaten docs]) +- Add diagnostics support to Elgato ([@frenck] - [#64652]) ([elgato docs]) +- Add diagnostics to NAM ([@bieniu] - [#64743]) ([nam docs]) +- Add warning when calling deprecated bond services ([@bdraco] - [#64744]) ([bond docs]) +- Improve seperation of lookin udp listener and typing ([@bdraco] - [#64742]) +- Enhancements for diagnostics platform ([@mib1185] - [#64670]) ([diagnostics docs]) +- Clean up Notion config tests ([@bachya] - [#64669]) ([notion docs]) +- Clean up AirVisual config flow tests ([@bachya] - [#64714]) ([airvisual docs]) +- Update pipdeptree to 2.2.1 ([@frenck] - [#64746]) +- Bump tensorflow to be compatible with python3.9 ([@dshokouhi] - [#64732]) ([tensorflow docs]) +- Redact possibly sensitive information in deCONZ diagnostics data ([@Kane610] - [#64754]) ([deconz docs]) +- Allow toggles (switches) state to be None ([@frenck] - [#64621]) (breaking-change) +- Diagnostics extended info adjustment ([@frenck] - [#64752]) ([diagnostics docs]) +- Add command template for MQTT button ([@jbouwh] - [#63838]) ([mqtt docs]) +- Move call_action to AvmWrapper for Fritz ([@chemelli74] - [#64667]) ([fritz docs]) +- Add diagnostics support to UniFi Network integration ([@Kane610] - [#64640]) ([unifi docs]) +- Bump dwdwfsapi to 1.0.5 ([@stephan192] - [#64766]) ([dwd_weather_warnings docs]) +- Add service send command in Tuya Vacuum ([@dougiteixeira] - [#63417]) ([tuya docs]) +- Expose entity device temperature from cluster in ZHA ([@rforro] - [#64189]) ([zha docs]) +- Enable Low Latency HLS (LL-HLS) by default to lower stream latency ([@allenporter] - [#64643]) ([stream docs]) +- Simplify hass data in acmeda ([@tkdrob] - [#62479]) ([acmeda docs]) +- Fix webostv sources import from YAML ([@thecode] - [#64768]) ([webostv docs]) +- Add vicare one-time charge ([@oischinger] - [#64376]) ([vicare docs]) +- Add tests for LCN light platform ([@alengwenus] - [#64741]) ([lcn docs]) +- Fix ESPHome ReconnectLogic to make faster connection when device comes online ([@jesserockz] - [#64697]) ([esphome docs]) +- Clean up RainMachine tests ([@bachya] - [#64785]) +- Add option to select quality of camera snapshots taken from Synology DSM connected cameras ([@mib1185] - [#58306]) ([synology_dsm docs]) +- Use friendly name instead of hostname in Tailscale integration ([@bdr99] - [#64682]) ([tailscale docs]) +- Add HUB_TEST_ACCESSORY_ID const for homekit_controller tests ([@Jc2k] - [#64750]) ([homekit_controller docs]) +- Add diagnostics support to Axis integration ([@Kane610] - [#64637]) ([axis docs]) +- Add diagnostics support for homekit_controller ([@Jc2k] - [#64773]) ([homekit_controller docs]) +- De-duplicate generation of DeviceInfo data in homekit_controller ([@Jc2k] - [#64751]) ([homekit_controller docs]) +- Revert "Don't import from integration `.const` (#64608)" ([@bachya] - [#64793]) ([ambient_station docs]) ([airvisual docs]) ([flunearyou docs]) +- Redact usernames in UniFi diagnostics ([@Kane610] - [#64794]) ([unifi docs]) +- Use whole config entry in deCONZ diagnostics ([@Kane610] - [#64795]) ([deconz docs]) +- Revert fix MultiDict typing with multidict-6.0.0 (#64733) ([@mib1185] - [#64792]) +- Use basic entity attributes in fibaro integration ([@rappenze] - [#64784]) ([fibaro docs]) +- Add support for preset modes to bond fans ([@bdraco] - [#64786]) ([bond docs]) +- Add diagnostics support to roku ([@ctalkington] - [#64729]) ([roku docs]) +- Allow homekit_controller to handle device registry entries for devices with poor serial numbers ([@Jc2k] - [#64749]) ([homekit_controller docs]) +- Bump pysml to 0.0.7 ([@mtdcr] - [#64798]) ([edl21 docs]) +- bump total_connect_client to 2022.1 ([@austinmroczek] - [#64797]) ([totalconnect docs]) +- Add diagnostics support to Verisure ([@frenck] - [#64789]) ([verisure docs]) +- Add diagnostics support to RDW ([@frenck] - [#64787]) +- Add diagnostics support to Stookalert ([@frenck] - [#64747]) ([stookalert docs]) +- Add diagnostics support to CPU Speed ([@frenck] - [#64745]) ([cpuspeed docs]) +- spelling: components/coinbase ([@jsoref] - [#64239]) ([coinbase docs]) +- Update denonavr to version 0.10.10 ([@ol-iver] - [#64805]) ([denonavr docs]) +- Update nest climate and sensor test fixtures ([@allenporter] - [#64800]) ([nest docs]) +- Bump pymazda to 0.3.1 ([@bdr99] - [#64807]) ([mazda docs]) +- Easier identification of devices with homekit_controller ([@Jc2k] - [#64804]) ([homekit_controller docs]) +- Revert "Allow setting entity options with config/entity_registry/update" ([@emontnemery] - [#64693]) +- Start depreciation of custom services in Advantage Air ([@Bre77] - [#58777]) ([advantage_air docs]) (breaking-change) +- Fix unexpected color mode switch in flux_led when brightness is near 0 ([@bdraco] - [#64812]) ([flux_led docs]) +- Bump plexapi to 4.9.0 ([@jjlawren] - [#64818]) ([plex docs]) +- Add webostv 100% tests coverage for init ([@thecode] - [#64801]) ([webostv docs]) +- ESPHome prevent connecting to different hosts when IP reassigned ([@OttoWinter] - [#64559]) ([esphome docs]) +- Update method names reflecting changes in UniFi library ([@Kane610] - [#64817]) ([unifi docs]) +- Tuya: Add support for turning smart heater LEDs on and off ([@alexanv1] - [#64739]) ([tuya docs]) +- Make sensor name consistent with other homekit_controller entity names ([@Jc2k] - [#64821]) ([homekit_controller docs]) +- Bump flux_led to 0.28.11 ([@bdraco] - [#64823]) ([flux_led docs]) +- Add coordinator data to Renault diagnostics ([@epenet] - [#64783]) ([renault docs]) +- Mark webOS TV as a platinum quality integration ([@thecode] - [#64587]) ([webostv docs]) +- Fix DPCode in battery support check for vacuum Tuya ([@dougiteixeira] - [#64806]) ([tuya docs]) +- Bump httpx to 0.21.3 and pin requirements for httpcore, anyio, and h11 ([@uvjustin] - [#64822]) +- Remove source and channel attributes from local version ([@ludeeus] - [#64827]) ([version docs]) (breaking-change) +- Add diagnostics to RainMachine ([@bachya] - [#64788]) ([rainmachine docs]) +- vicare: Fix dynamic unit of measurement ([@oischinger] - [#64782]) ([vicare docs]) +- Add more vicare binary sensors and clean up constants ([@oischinger] - [#64780]) ([vicare docs]) +- Support systems w/o circuits ([@oischinger] - [#64779]) ([vicare docs]) +- vicare: Add support for hybrid devices ([@oischinger] - [#64776]) +- Use shorthand attributes in shelly covers ([@epenet] - [#64829]) ([shelly docs]) +- Increase BleBox timeout ([@maxcanna] - [#64760]) ([blebox docs]) +- Add pylint to pre-commit hooks ([@mib1185] - [#64665]) +- Move autosetup out of init.py ([@dingusdk] - [#64761]) ([ihc docs]) +- Use Etag in GitHub coordinator updates ([@ludeeus] - [#64449]) ([github docs]) +- Add missing voices to Amazon Polly ([@aomann] - [#64708]) +- Add diagnostics to Mazda integration ([@bdr99] - [#64606]) ([mazda docs]) +- Add type hint to RegistryEntry.entity_category ([@epenet] - [#64618]) +- Add long-term battery and discharge sensors for energy panel to kostal_plenticore ([@ngdio] - [#62761]) ([kostal_plenticore docs]) +- Fix import for new AWS aiobotocore lib ([@chemelli74] - [#64769]) +- spelling: components/ezviz ([@jsoref] - [#64247]) ([ezviz docs]) +- Use zeroconf for scanning in apple_tv ([@bdraco] - [#64528]) ([apple_tv docs]) +- Clean up webostv tests ([@thecode] - [#64833]) ([webostv docs]) +- Drop use of deprecated ENTITY_CATEGORIES ([@epenet] - [#64607]) ([alexa docs]) ([cloud docs]) ([google_assistant docs]) ([homekit docs]) +- Add pylint plugin to enforce type hints ([@epenet] - [#64313]) +- Make UniFi bandwidth sensors be about current transfer rather than total transfer ([@Kane610] - [#64701]) ([unifi docs]) +- Only show music files for Cast Audio in media browser ([@balloob] - [#64683]) ([cast docs]) +- Point updates ([@fredrike] - [#64748]) +- Add diagnostics to Nanoleaf ([@ludeeus] - [#64835]) ([nanoleaf docs]) +- Fix error in Tuya diagnostics ([@dougiteixeira] - [#64808]) +- Add Home Connect CookProcessor (Bosch Cookit) ([@noxhirsch] - [#62445]) ([home_connect docs]) +- Bump soco to 0.26.0 ([@jjlawren] - [#64819]) ([sonos docs]) +- Add a reboot button for ONVIF devices ([@esev] - [#61522]) ([onvif docs]) +- UniFi events aren't reliable for device tracker usage, use last_seen instead ([@Kane610] - [#64147]) ([unifi docs]) +- Fix units not being pulled from source sensor ([@rsteckler] - [#63639]) ([integration docs]) +- Add entity description support to WHOIS integration ([@frenck] - [#64619]) ([whois docs]) +- Teach TemplateEntity entity name ([@emontnemery] - [#62175]) ([template docs]) +- Clean up ReCollect Waste config flow tests ([@bachya] - [#64813]) ([recollect_waste docs]) +- Add diagnostics to Notion ([@bachya] - [#64713]) ([notion docs]) +- Add diagnostics to Flu Near You ([@bachya] - [#64597]) ([flunearyou docs]) +- Add diagnostics to ReCollect Waste ([@bachya] - [#64814]) ([recollect_waste docs]) +- Add GPS direction to BMW ConnectedDrive device_tracker ([@rikroe] - [#63744]) ([bmw_connected_drive docs]) +- Render icon and picture templates at setup ([@emontnemery] - [#64838]) ([template docs]) +- Clean up post-merge review comments ([@bachya] - [#64842]) ([flunearyou docs]) ([notion docs]) +- Clarify cloud docstring ([@emontnemery] - [#64841]) ([cloud docs]) +- Allow roku to browse and play local media ([@ctalkington] - [#64799]) ([roku docs]) +- Improve tests for Overkiz config flow ([@iMicknl] - [#64624]) +- Fix bond buttons where an argument is required ([@bdraco] - [#64781]) ([bond docs]) +- Use entity_description in shelly rest sensors ([@epenet] - [#64843]) ([shelly docs]) +- Add additional energy sensors to Eve Energy ([@Jc2k] - [#64826]) ([homekit_controller docs]) +- Cleanup GitHub sensor classes and descriptions ([@ludeeus] - [#64853]) ([github docs]) +- Add data update coordinator to Whois ([@frenck] - [#64846]) ([whois docs]) +- Adjust pylint plugin to enforce platform type hints ([@epenet] - [#64836]) +- Add cover platform to Overkiz integration ([@iMicknl] - [#64564]) ([overkiz docs]) (new-platform) +- Add diagnostics support to Whois ([@frenck] - [#64855]) ([whois docs]) +- Add whois diagnostics to coveragerc ([@ludeeus] - [#64857]) +- Add additional sensors to Whois ([@frenck] - [#64854]) ([whois docs]) +- Bump aioshelly to 1.0.8 ([@thecode] - [#64864]) ([shelly docs]) +- Create tasks to load Amcrest platforms ([@flacjacket] - [#64848]) ([amcrest docs]) +- Address late review in entity registry ([@epenet] - [#64851]) +- Add support for converting to and from mmHg ([@emontnemery] - [#64844]) +- Add diagnostics to Launch Library ([@ludeeus] - [#64871]) ([launch_library docs]) +- Avoid creating bond stop action button when there are no other buttons ([@bdraco] - [#64869]) ([bond docs]) +- Clean up Tile config flow tests ([@bachya] - [#64866]) ([tile docs]) +- Clean up Ridwell config flow tests ([@bachya] - [#64858]) ([ridwell docs]) +- Teach TemplateEntity unique_id ([@emontnemery] - [#64837]) ([template docs]) +- Bump plexapi to 4.9.1 ([@jjlawren] - [#64872]) ([plex docs]) +- Bump version pyunifiprotect to 3.2.0 ([@AngellusMortis] - [#64874]) +- Add basic Doorlock support for UniFi protect ([@AngellusMortis] - [#64877]) ([unifiprotect docs]) +- Bump frontend to 20220124.0 ([@balloob] - [#64878]) ([frontend docs]) +- Adds enabled entity_ids associated with each speaker ([@jjlawren] - [#64876]) +- Remove unused fixture in RainMachine config flow test ([@bachya] - [#64881]) ([rainmachine docs]) +- Add outlets to UniFi switch platform ([@Kane610] - [#64859]) ([unifi docs]) +- Fix Shelly climate entity state ([@bieniu] - [#64756]) ([shelly docs]) +- Bump aiodiscover to 1.4.7 to fix finding the gateway on MacOS ([@bdraco] - [#64893]) ([dhcp docs]) +- Changing the Return to home in Tuya vacuum ([@dougiteixeira] - [#64810]) ([tuya docs]) +- Add binary sensor for Vallox post heater ([@viiru-] - [#59762]) ([vallox docs]) (new-platform) +- Bump rtsp-to-webrtc to 0.5.0 (diagnostics support) ([@allenporter] - [#64889]) ([rtsp_to_webrtc docs]) +- Add init tests for Whois ([@frenck] - [#64862]) ([whois docs]) +- Refactor Tuya Fans ([@frenck] - [#64765]) ([tuya docs]) +- Clean up WattTime config flow tests ([@bachya] - [#64885]) ([watttime docs]) +- Replace Synology DSM services with buttons ([@mib1185] - [#57352]) ([synology_dsm docs]) (breaking-change) (new-platform) +- Add event statistics to Sonos diagnostics ([@jjlawren] - [#64845]) ([sonos docs]) +- Update pylint to 2.12.2 ([@frenck] - [#64896]) +- Fix extra data for AWS sns service ([@chemelli74] - [#64771]) ([aws docs]) +- Include entity_id in Alexa state report error log ([@emontnemery] - [#64898]) ([alexa docs]) +- Add support for DS2760 1-Wire TypeK Thermocouple ([@droberg] - [#63222]) ([onewire docs]) +- Ignore draft releases for GitHub sensor ([@ludeeus] - [#64906]) ([github docs]) +- Use Integration properties for custom integration listing in diagnostics ([@ludeeus] - [#64908]) ([diagnostics docs]) +- Use shorthand attributes in shelly light ([@epenet] - [#64831]) ([shelly docs]) +- Use entity_description in shelly rpc sensors ([@epenet] - [#64895]) ([shelly docs]) +- Add diagnostics to UptimeRobot ([@ludeeus] - [#64905]) ([uptimerobot docs]) +- Add diagnostics for Coinbase ([@TomBrien] - [#64900]) +- Fix duplicate metrics in prometheus ([@alim4r] - [#61355]) ([prometheus docs]) +- Add binary sensor for smoke alarm test state ([@Kane610] - [#64873]) ([deconz docs]) +- Update _TrackStateChangeFiltered entity listener with new entities ([@emontnemery] - [#64909]) ([geo_location docs]) +- Adjust pylint plugin to enforce device_tracker type hints ([@epenet] - [#64903]) +- Bump rflink to 0.0.62 ([@thecode] - [#64911]) ([rflink docs]) +- Add lock support for unifiprotect Doorlock ([@AngellusMortis] - [#64882]) ([unifiprotect docs]) (new-platform) +- Add full test coverage to Whois ([@frenck] - [#64899]) ([whois docs]) +- Add zeroconf to overkiz integration ([@egguy] - [#64907]) ([overkiz docs]) +- Add dhcp discovery to senseme ([@bdraco] - [#64894]) ([senseme docs]) +- Bump home-assistant/wheels to 2021.01 to pick up grpc changes ([@allenporter] - [#64917]) +- Bump ZHA quirks to 0.0.66 ([@dmulcahey] - [#64915]) ([zha docs]) +- Add Elgato hw version to device info ([@frenck] - [#64922]) ([elgato docs]) +- Bump pylaunches to 1.3.0 ([@DurgNomis-drol] - [#64923]) ([launch_library docs]) +- Allow browsing the Spotify media player in Sonos ([@balloob] - [#64921]) ([sonos docs]) ([spotify docs]) +- Add "Recommended" and radio station support to Plex media browser ([@jjlawren] - [#64057]) ([plex docs]) +- Bump pyoverkiz to 1.3.0 in Overkiz integration (fixes auth issues) ([@iMicknl] - [#64937]) ([overkiz docs]) +- Add reauth flow to Overkiz integration ([@iMicknl] - [#64622]) ([overkiz docs]) +- Add WLED hw version to device info ([@frenck] - [#64924]) ([wled docs]) +- Create zone bypass switches for DSC panels ([@ufodone] - [#63200]) ([envisalink docs]) (new-platform) +- Add per-device diagnostics to Sonos ([@jjlawren] - [#64912]) ([sonos docs]) +- Add state class to screenlogic sensors ([@bdraco] - [#64941]) ([screenlogic docs]) +- Add state class to powerwall charge sensor ([@bdraco] - [#64939]) ([powerwall docs]) +- Add state class to hunterdouglas_powerview ([@bdraco] - [#64936]) ([hunterdouglas_powerview docs]) +- Small cleanups to gogogate2 ([@bdraco] - [#64935]) ([gogogate2 docs]) +- Add state class to emonitor sensors ([@bdraco] - [#64934]) ([emonitor docs]) +- Add state class to nexia sensors ([@bdraco] - [#64932]) ([nexia docs]) +- Add state classes to august sensors ([@bdraco] - [#64931]) ([august docs]) +- Catch all exceptions on import component/platform ([@balloob] - [#64930]) +- Add 'compile translations' task to VSCode tasks ([@iMicknl] - [#64933]) +- Decouple initial refreshes in setup for Environment Canada ([@gwww] - [#64946]) ([environment_canada docs]) +- Use local Sonos API for Plex music playback ([@jjlawren] - [#63357]) ([sonos docs]) ([cast docs]) ([plex docs]) +- Add support for TCP tunneling connections to KNX ([@marvin-w] - [#64928]) ([knx docs]) +- Add diagnostics to Tile ([@bachya] - [#64875]) ([tile docs]) +- Add diagnostics to Ridwell ([@bachya] - [#64863]) ([ridwell docs]) +- Expose if HTTP is configured for SSL ([@balloob] - [#64940]) ([cloud docs]) +- Change the name of the vacuum switch voice ([@dougiteixeira] - [#64948]) +- Some media source things ([@balloob] - [#64954]) +- Limit GitHub API calls during setup ([@ludeeus] - [#64956]) ([github docs]) +- Update home-assistant/wheels to 2021.01.2 ([@frenck] - [#64958]) +- Cleanup tests for AWS ([@chemelli74] - [#64943]) ([aws docs]) +- Add unique_id to modbus entities ([@Tathar] - [#64634]) ([modbus docs]) +- Enable `no_implicit_reexport` for core files [mypy] ([@cdce8p] - [#63820]) +- Add solax config flow ([@tokenize47] - [#56620]) ([solax docs]) +- Prevent race when loading cloud config ([@emontnemery] - [#64901]) ([cloud docs]) +- Add backlight controls for Tuya curtain switches ([@frenck] - [#64961]) ([tuya docs]) +- Set entity category on Tuya backlights ([@frenck] - [#64962]) ([tuya docs]) +- Fix send command in vacuum Tuya ([@dougiteixeira] - [#64949]) ([tuya docs]) +- Fix use of implicit re-export in env canada ([@frenck] - [#64964]) ([environment_canada docs]) +- Add next starship launch sensor to launch_library ([@DurgNomis-drol] - [#64929]) ([launch_library docs]) +- Complementing the Tuya Fan (fs) category ([@dougiteixeira] - [#64947]) ([tuya docs]) +- Use entity_description in shelly block sensors ([@epenet] - [#64897]) ([shelly docs]) +- Add starship event sensor ([@DurgNomis-drol] - [#64965]) ([launch_library docs]) +- Correct netatmo startup ([@emontnemery] - [#64970]) ([netatmo docs]) +- Drop owntracks import flow ([@emontnemery] - [#64967]) ([owntracks docs]) +- Add diagnostics to WattTime ([@bachya] - [#64887]) ([watttime docs]) +- Fix custom message for UniFi Protect doorbell select ([@AngellusMortis] - [#64971]) ([unifiprotect docs]) +- Add IntelliFire sensors ([@jeeftor] - [#64600]) ([intellifire docs]) (new-platform) +- Check for empty release array ([@ludeeus] - [#64973]) ([github docs]) +- Add detailed status for UptimeRobot ([@chemelli74] - [#64879]) ([uptimerobot docs]) (new-platform) +- Bump pyoverkiz to 1.3.1 (to fix bugs) ([@iMicknl] - [#64979]) ([overkiz docs]) +- Fix battery sensor in Overkiz integration ([@iMicknl] - [#64980]) ([overkiz docs]) +- Change zone's state to be number of person entities in the zone ([@emontnemery] - [#64910]) ([zone docs]) +- Store new spotify client in hass.data ([@balloob] - [#64984]) ([spotify docs]) +- Only log exception in GitHub when something unexpected raised ([@ludeeus] - [#64974]) ([github docs]) +- Fix Shelly HT invalid value on sensor error ([@thecode] - [#64982]) ([shelly docs]) +- Disable google_assistant local SDK if SSL is enabled ([@emontnemery] - [#64983]) ([google_assistant docs]) +- Fix circles in person integration ([@balloob] - [#64991]) ([zone docs]) +- Update frontend to 20220126.0 ([@bramkragten] - [#64990]) ([frontend docs]) +- Support Plex in Sonos media browser ([@jjlawren] - [#64951]) ([sonos docs]) ([plex docs]) +- Support Plex in Cast media browser ([@jjlawren] - [#64994]) ([cast docs]) +- Fix media classes ([@balloob] - [#64993]) ([sonos docs]) +- Abort webhook flow when not connected to home assistant cloud ([@emontnemery] - [#64963]) +- Fix Plex media class in Cast media browser ([@balloob] - [#64995]) ([cast docs]) +- Make toon fall back to webhooks if cloud is not available ([@emontnemery] - [#64981]) ([toon docs]) +- Abort rachio config entry setup when not connected to cloud ([@emontnemery] - [#64975]) ([rachio docs]) +- Abort plaato flows when not connected to home assistant cloud ([@emontnemery] - [#64969]) ([plaato docs]) +- Abort owntracks config flow when not connected to home assistant cloud ([@emontnemery] - [#64968]) ([owntracks docs]) + + +{% enddetails %} + +[#49734]: https://github.com/home-assistant/core/pull/49734 +[#52590]: https://github.com/home-assistant/core/pull/52590 +[#53400]: https://github.com/home-assistant/core/pull/53400 +[#53552]: https://github.com/home-assistant/core/pull/53552 +[#53745]: https://github.com/home-assistant/core/pull/53745 +[#54097]: https://github.com/home-assistant/core/pull/54097 +[#54444]: https://github.com/home-assistant/core/pull/54444 +[#54586]: https://github.com/home-assistant/core/pull/54586 +[#54642]: https://github.com/home-assistant/core/pull/54642 +[#55264]: https://github.com/home-assistant/core/pull/55264 +[#55812]: https://github.com/home-assistant/core/pull/55812 +[#56080]: https://github.com/home-assistant/core/pull/56080 +[#56284]: https://github.com/home-assistant/core/pull/56284 +[#56294]: https://github.com/home-assistant/core/pull/56294 +[#56299]: https://github.com/home-assistant/core/pull/56299 +[#56620]: https://github.com/home-assistant/core/pull/56620 +[#56647]: https://github.com/home-assistant/core/pull/56647 +[#56968]: https://github.com/home-assistant/core/pull/56968 +[#57352]: https://github.com/home-assistant/core/pull/57352 +[#57673]: https://github.com/home-assistant/core/pull/57673 +[#58198]: https://github.com/home-assistant/core/pull/58198 +[#58247]: https://github.com/home-assistant/core/pull/58247 +[#58306]: https://github.com/home-assistant/core/pull/58306 +[#58503]: https://github.com/home-assistant/core/pull/58503 +[#58544]: https://github.com/home-assistant/core/pull/58544 +[#58596]: https://github.com/home-assistant/core/pull/58596 +[#58615]: https://github.com/home-assistant/core/pull/58615 +[#58665]: https://github.com/home-assistant/core/pull/58665 +[#58699]: https://github.com/home-assistant/core/pull/58699 +[#58724]: https://github.com/home-assistant/core/pull/58724 +[#58745]: https://github.com/home-assistant/core/pull/58745 +[#58761]: https://github.com/home-assistant/core/pull/58761 +[#58777]: https://github.com/home-assistant/core/pull/58777 +[#58806]: https://github.com/home-assistant/core/pull/58806 +[#58837]: https://github.com/home-assistant/core/pull/58837 +[#58844]: https://github.com/home-assistant/core/pull/58844 +[#58917]: https://github.com/home-assistant/core/pull/58917 +[#58964]: https://github.com/home-assistant/core/pull/58964 +[#59205]: https://github.com/home-assistant/core/pull/59205 +[#59213]: https://github.com/home-assistant/core/pull/59213 +[#59309]: https://github.com/home-assistant/core/pull/59309 +[#59321]: https://github.com/home-assistant/core/pull/59321 +[#59341]: https://github.com/home-assistant/core/pull/59341 +[#59660]: https://github.com/home-assistant/core/pull/59660 +[#59762]: https://github.com/home-assistant/core/pull/59762 +[#59781]: https://github.com/home-assistant/core/pull/59781 +[#59869]: https://github.com/home-assistant/core/pull/59869 +[#59891]: https://github.com/home-assistant/core/pull/59891 +[#60019]: https://github.com/home-assistant/core/pull/60019 +[#60063]: https://github.com/home-assistant/core/pull/60063 +[#60080]: https://github.com/home-assistant/core/pull/60080 +[#60156]: https://github.com/home-assistant/core/pull/60156 +[#60193]: https://github.com/home-assistant/core/pull/60193 +[#60327]: https://github.com/home-assistant/core/pull/60327 +[#60337]: https://github.com/home-assistant/core/pull/60337 +[#60379]: https://github.com/home-assistant/core/pull/60379 +[#60388]: https://github.com/home-assistant/core/pull/60388 +[#60414]: https://github.com/home-assistant/core/pull/60414 +[#60426]: https://github.com/home-assistant/core/pull/60426 +[#60436]: https://github.com/home-assistant/core/pull/60436 +[#60437]: https://github.com/home-assistant/core/pull/60437 +[#60445]: https://github.com/home-assistant/core/pull/60445 +[#60451]: https://github.com/home-assistant/core/pull/60451 +[#60645]: https://github.com/home-assistant/core/pull/60645 +[#60682]: https://github.com/home-assistant/core/pull/60682 +[#60900]: https://github.com/home-assistant/core/pull/60900 +[#60909]: https://github.com/home-assistant/core/pull/60909 +[#60933]: https://github.com/home-assistant/core/pull/60933 +[#60935]: https://github.com/home-assistant/core/pull/60935 +[#60936]: https://github.com/home-assistant/core/pull/60936 +[#60937]: https://github.com/home-assistant/core/pull/60937 +[#60940]: https://github.com/home-assistant/core/pull/60940 +[#60942]: https://github.com/home-assistant/core/pull/60942 +[#60943]: https://github.com/home-assistant/core/pull/60943 +[#60944]: https://github.com/home-assistant/core/pull/60944 +[#60948]: https://github.com/home-assistant/core/pull/60948 +[#60951]: https://github.com/home-assistant/core/pull/60951 +[#60956]: https://github.com/home-assistant/core/pull/60956 +[#60975]: https://github.com/home-assistant/core/pull/60975 +[#60993]: https://github.com/home-assistant/core/pull/60993 +[#60997]: https://github.com/home-assistant/core/pull/60997 +[#60999]: https://github.com/home-assistant/core/pull/60999 +[#61004]: https://github.com/home-assistant/core/pull/61004 +[#61006]: https://github.com/home-assistant/core/pull/61006 +[#61007]: https://github.com/home-assistant/core/pull/61007 +[#61008]: https://github.com/home-assistant/core/pull/61008 +[#61009]: https://github.com/home-assistant/core/pull/61009 +[#61012]: https://github.com/home-assistant/core/pull/61012 +[#61013]: https://github.com/home-assistant/core/pull/61013 +[#61014]: https://github.com/home-assistant/core/pull/61014 +[#61015]: https://github.com/home-assistant/core/pull/61015 +[#61016]: https://github.com/home-assistant/core/pull/61016 +[#61017]: https://github.com/home-assistant/core/pull/61017 +[#61021]: https://github.com/home-assistant/core/pull/61021 +[#61032]: https://github.com/home-assistant/core/pull/61032 +[#61049]: https://github.com/home-assistant/core/pull/61049 +[#61065]: https://github.com/home-assistant/core/pull/61065 +[#61068]: https://github.com/home-assistant/core/pull/61068 +[#61072]: https://github.com/home-assistant/core/pull/61072 +[#61078]: https://github.com/home-assistant/core/pull/61078 +[#61089]: https://github.com/home-assistant/core/pull/61089 +[#61090]: https://github.com/home-assistant/core/pull/61090 +[#61094]: https://github.com/home-assistant/core/pull/61094 +[#61098]: https://github.com/home-assistant/core/pull/61098 +[#61100]: https://github.com/home-assistant/core/pull/61100 +[#61104]: https://github.com/home-assistant/core/pull/61104 +[#61107]: https://github.com/home-assistant/core/pull/61107 +[#61109]: https://github.com/home-assistant/core/pull/61109 +[#61130]: https://github.com/home-assistant/core/pull/61130 +[#61132]: https://github.com/home-assistant/core/pull/61132 +[#61137]: https://github.com/home-assistant/core/pull/61137 +[#61138]: https://github.com/home-assistant/core/pull/61138 +[#61141]: https://github.com/home-assistant/core/pull/61141 +[#61146]: https://github.com/home-assistant/core/pull/61146 +[#61149]: https://github.com/home-assistant/core/pull/61149 +[#61153]: https://github.com/home-assistant/core/pull/61153 +[#61155]: https://github.com/home-assistant/core/pull/61155 +[#61157]: https://github.com/home-assistant/core/pull/61157 +[#61161]: https://github.com/home-assistant/core/pull/61161 +[#61167]: https://github.com/home-assistant/core/pull/61167 +[#61168]: https://github.com/home-assistant/core/pull/61168 +[#61170]: https://github.com/home-assistant/core/pull/61170 +[#61172]: https://github.com/home-assistant/core/pull/61172 +[#61177]: https://github.com/home-assistant/core/pull/61177 +[#61179]: https://github.com/home-assistant/core/pull/61179 +[#61187]: https://github.com/home-assistant/core/pull/61187 +[#61192]: https://github.com/home-assistant/core/pull/61192 +[#61198]: https://github.com/home-assistant/core/pull/61198 +[#61200]: https://github.com/home-assistant/core/pull/61200 +[#61215]: https://github.com/home-assistant/core/pull/61215 +[#61218]: https://github.com/home-assistant/core/pull/61218 +[#61222]: https://github.com/home-assistant/core/pull/61222 +[#61231]: https://github.com/home-assistant/core/pull/61231 +[#61237]: https://github.com/home-assistant/core/pull/61237 +[#61242]: https://github.com/home-assistant/core/pull/61242 +[#61243]: https://github.com/home-assistant/core/pull/61243 +[#61244]: https://github.com/home-assistant/core/pull/61244 +[#61245]: https://github.com/home-assistant/core/pull/61245 +[#61246]: https://github.com/home-assistant/core/pull/61246 +[#61247]: https://github.com/home-assistant/core/pull/61247 +[#61248]: https://github.com/home-assistant/core/pull/61248 +[#61249]: https://github.com/home-assistant/core/pull/61249 +[#61250]: https://github.com/home-assistant/core/pull/61250 +[#61255]: https://github.com/home-assistant/core/pull/61255 +[#61256]: https://github.com/home-assistant/core/pull/61256 +[#61258]: https://github.com/home-assistant/core/pull/61258 +[#61259]: https://github.com/home-assistant/core/pull/61259 +[#61260]: https://github.com/home-assistant/core/pull/61260 +[#61261]: https://github.com/home-assistant/core/pull/61261 +[#61262]: https://github.com/home-assistant/core/pull/61262 +[#61263]: https://github.com/home-assistant/core/pull/61263 +[#61264]: https://github.com/home-assistant/core/pull/61264 +[#61265]: https://github.com/home-assistant/core/pull/61265 +[#61266]: https://github.com/home-assistant/core/pull/61266 +[#61268]: https://github.com/home-assistant/core/pull/61268 +[#61270]: https://github.com/home-assistant/core/pull/61270 +[#61271]: https://github.com/home-assistant/core/pull/61271 +[#61272]: https://github.com/home-assistant/core/pull/61272 +[#61273]: https://github.com/home-assistant/core/pull/61273 +[#61274]: https://github.com/home-assistant/core/pull/61274 +[#61275]: https://github.com/home-assistant/core/pull/61275 +[#61276]: https://github.com/home-assistant/core/pull/61276 +[#61278]: https://github.com/home-assistant/core/pull/61278 +[#61279]: https://github.com/home-assistant/core/pull/61279 +[#61280]: https://github.com/home-assistant/core/pull/61280 +[#61281]: https://github.com/home-assistant/core/pull/61281 +[#61282]: https://github.com/home-assistant/core/pull/61282 +[#61284]: https://github.com/home-assistant/core/pull/61284 +[#61285]: https://github.com/home-assistant/core/pull/61285 +[#61288]: https://github.com/home-assistant/core/pull/61288 +[#61289]: https://github.com/home-assistant/core/pull/61289 +[#61290]: https://github.com/home-assistant/core/pull/61290 +[#61291]: https://github.com/home-assistant/core/pull/61291 +[#61292]: https://github.com/home-assistant/core/pull/61292 +[#61294]: https://github.com/home-assistant/core/pull/61294 +[#61295]: https://github.com/home-assistant/core/pull/61295 +[#61309]: https://github.com/home-assistant/core/pull/61309 +[#61313]: https://github.com/home-assistant/core/pull/61313 +[#61314]: https://github.com/home-assistant/core/pull/61314 +[#61315]: https://github.com/home-assistant/core/pull/61315 +[#61316]: https://github.com/home-assistant/core/pull/61316 +[#61318]: https://github.com/home-assistant/core/pull/61318 +[#61319]: https://github.com/home-assistant/core/pull/61319 +[#61320]: https://github.com/home-assistant/core/pull/61320 +[#61321]: https://github.com/home-assistant/core/pull/61321 +[#61322]: https://github.com/home-assistant/core/pull/61322 +[#61323]: https://github.com/home-assistant/core/pull/61323 +[#61324]: https://github.com/home-assistant/core/pull/61324 +[#61325]: https://github.com/home-assistant/core/pull/61325 +[#61326]: https://github.com/home-assistant/core/pull/61326 +[#61327]: https://github.com/home-assistant/core/pull/61327 +[#61328]: https://github.com/home-assistant/core/pull/61328 +[#61329]: https://github.com/home-assistant/core/pull/61329 +[#61330]: https://github.com/home-assistant/core/pull/61330 +[#61331]: https://github.com/home-assistant/core/pull/61331 +[#61332]: https://github.com/home-assistant/core/pull/61332 +[#61333]: https://github.com/home-assistant/core/pull/61333 +[#61334]: https://github.com/home-assistant/core/pull/61334 +[#61335]: https://github.com/home-assistant/core/pull/61335 +[#61337]: https://github.com/home-assistant/core/pull/61337 +[#61339]: https://github.com/home-assistant/core/pull/61339 +[#61340]: https://github.com/home-assistant/core/pull/61340 +[#61341]: https://github.com/home-assistant/core/pull/61341 +[#61342]: https://github.com/home-assistant/core/pull/61342 +[#61343]: https://github.com/home-assistant/core/pull/61343 +[#61344]: https://github.com/home-assistant/core/pull/61344 +[#61345]: https://github.com/home-assistant/core/pull/61345 +[#61346]: https://github.com/home-assistant/core/pull/61346 +[#61348]: https://github.com/home-assistant/core/pull/61348 +[#61349]: https://github.com/home-assistant/core/pull/61349 +[#61350]: https://github.com/home-assistant/core/pull/61350 +[#61351]: https://github.com/home-assistant/core/pull/61351 +[#61352]: https://github.com/home-assistant/core/pull/61352 +[#61353]: https://github.com/home-assistant/core/pull/61353 +[#61354]: https://github.com/home-assistant/core/pull/61354 +[#61355]: https://github.com/home-assistant/core/pull/61355 +[#61357]: https://github.com/home-assistant/core/pull/61357 +[#61359]: https://github.com/home-assistant/core/pull/61359 +[#61361]: https://github.com/home-assistant/core/pull/61361 +[#61362]: https://github.com/home-assistant/core/pull/61362 +[#61363]: https://github.com/home-assistant/core/pull/61363 +[#61371]: https://github.com/home-assistant/core/pull/61371 +[#61372]: https://github.com/home-assistant/core/pull/61372 +[#61374]: https://github.com/home-assistant/core/pull/61374 +[#61375]: https://github.com/home-assistant/core/pull/61375 +[#61376]: https://github.com/home-assistant/core/pull/61376 +[#61377]: https://github.com/home-assistant/core/pull/61377 +[#61378]: https://github.com/home-assistant/core/pull/61378 +[#61379]: https://github.com/home-assistant/core/pull/61379 +[#61380]: https://github.com/home-assistant/core/pull/61380 +[#61381]: https://github.com/home-assistant/core/pull/61381 +[#61382]: https://github.com/home-assistant/core/pull/61382 +[#61383]: https://github.com/home-assistant/core/pull/61383 +[#61385]: https://github.com/home-assistant/core/pull/61385 +[#61386]: https://github.com/home-assistant/core/pull/61386 +[#61387]: https://github.com/home-assistant/core/pull/61387 +[#61388]: https://github.com/home-assistant/core/pull/61388 +[#61389]: https://github.com/home-assistant/core/pull/61389 +[#61390]: https://github.com/home-assistant/core/pull/61390 +[#61391]: https://github.com/home-assistant/core/pull/61391 +[#61400]: https://github.com/home-assistant/core/pull/61400 +[#61423]: https://github.com/home-assistant/core/pull/61423 +[#61424]: https://github.com/home-assistant/core/pull/61424 +[#61425]: https://github.com/home-assistant/core/pull/61425 +[#61428]: https://github.com/home-assistant/core/pull/61428 +[#61431]: https://github.com/home-assistant/core/pull/61431 +[#61432]: https://github.com/home-assistant/core/pull/61432 +[#61434]: https://github.com/home-assistant/core/pull/61434 +[#61436]: https://github.com/home-assistant/core/pull/61436 +[#61437]: https://github.com/home-assistant/core/pull/61437 +[#61438]: https://github.com/home-assistant/core/pull/61438 +[#61439]: https://github.com/home-assistant/core/pull/61439 +[#61440]: https://github.com/home-assistant/core/pull/61440 +[#61441]: https://github.com/home-assistant/core/pull/61441 +[#61442]: https://github.com/home-assistant/core/pull/61442 +[#61443]: https://github.com/home-assistant/core/pull/61443 +[#61444]: https://github.com/home-assistant/core/pull/61444 +[#61445]: https://github.com/home-assistant/core/pull/61445 +[#61446]: https://github.com/home-assistant/core/pull/61446 +[#61447]: https://github.com/home-assistant/core/pull/61447 +[#61449]: https://github.com/home-assistant/core/pull/61449 +[#61456]: https://github.com/home-assistant/core/pull/61456 +[#61460]: https://github.com/home-assistant/core/pull/61460 +[#61461]: https://github.com/home-assistant/core/pull/61461 +[#61467]: https://github.com/home-assistant/core/pull/61467 +[#61468]: https://github.com/home-assistant/core/pull/61468 +[#61470]: https://github.com/home-assistant/core/pull/61470 +[#61472]: https://github.com/home-assistant/core/pull/61472 +[#61473]: https://github.com/home-assistant/core/pull/61473 +[#61474]: https://github.com/home-assistant/core/pull/61474 +[#61476]: https://github.com/home-assistant/core/pull/61476 +[#61483]: https://github.com/home-assistant/core/pull/61483 +[#61484]: https://github.com/home-assistant/core/pull/61484 +[#61492]: https://github.com/home-assistant/core/pull/61492 +[#61495]: https://github.com/home-assistant/core/pull/61495 +[#61496]: https://github.com/home-assistant/core/pull/61496 +[#61508]: https://github.com/home-assistant/core/pull/61508 +[#61515]: https://github.com/home-assistant/core/pull/61515 +[#61517]: https://github.com/home-assistant/core/pull/61517 +[#61518]: https://github.com/home-assistant/core/pull/61518 +[#61520]: https://github.com/home-assistant/core/pull/61520 +[#61522]: https://github.com/home-assistant/core/pull/61522 +[#61526]: https://github.com/home-assistant/core/pull/61526 +[#61536]: https://github.com/home-assistant/core/pull/61536 +[#61538]: https://github.com/home-assistant/core/pull/61538 +[#61571]: https://github.com/home-assistant/core/pull/61571 +[#61574]: https://github.com/home-assistant/core/pull/61574 +[#61575]: https://github.com/home-assistant/core/pull/61575 +[#61576]: https://github.com/home-assistant/core/pull/61576 +[#61589]: https://github.com/home-assistant/core/pull/61589 +[#61595]: https://github.com/home-assistant/core/pull/61595 +[#61605]: https://github.com/home-assistant/core/pull/61605 +[#61607]: https://github.com/home-assistant/core/pull/61607 +[#61608]: https://github.com/home-assistant/core/pull/61608 +[#61609]: https://github.com/home-assistant/core/pull/61609 +[#61610]: https://github.com/home-assistant/core/pull/61610 +[#61611]: https://github.com/home-assistant/core/pull/61611 +[#61613]: https://github.com/home-assistant/core/pull/61613 +[#61617]: https://github.com/home-assistant/core/pull/61617 +[#61641]: https://github.com/home-assistant/core/pull/61641 +[#61646]: https://github.com/home-assistant/core/pull/61646 +[#61647]: https://github.com/home-assistant/core/pull/61647 +[#61650]: https://github.com/home-assistant/core/pull/61650 +[#61653]: https://github.com/home-assistant/core/pull/61653 +[#61655]: https://github.com/home-assistant/core/pull/61655 +[#61656]: https://github.com/home-assistant/core/pull/61656 +[#61657]: https://github.com/home-assistant/core/pull/61657 +[#61658]: https://github.com/home-assistant/core/pull/61658 +[#61660]: https://github.com/home-assistant/core/pull/61660 +[#61661]: https://github.com/home-assistant/core/pull/61661 +[#61665]: https://github.com/home-assistant/core/pull/61665 +[#61678]: https://github.com/home-assistant/core/pull/61678 +[#61689]: https://github.com/home-assistant/core/pull/61689 +[#61691]: https://github.com/home-assistant/core/pull/61691 +[#61716]: https://github.com/home-assistant/core/pull/61716 +[#61719]: https://github.com/home-assistant/core/pull/61719 +[#61720]: https://github.com/home-assistant/core/pull/61720 +[#61721]: https://github.com/home-assistant/core/pull/61721 +[#61722]: https://github.com/home-assistant/core/pull/61722 +[#61724]: https://github.com/home-assistant/core/pull/61724 +[#61732]: https://github.com/home-assistant/core/pull/61732 +[#61734]: https://github.com/home-assistant/core/pull/61734 +[#61735]: https://github.com/home-assistant/core/pull/61735 +[#61738]: https://github.com/home-assistant/core/pull/61738 +[#61741]: https://github.com/home-assistant/core/pull/61741 +[#61742]: https://github.com/home-assistant/core/pull/61742 +[#61743]: https://github.com/home-assistant/core/pull/61743 +[#61746]: https://github.com/home-assistant/core/pull/61746 +[#61748]: https://github.com/home-assistant/core/pull/61748 +[#61757]: https://github.com/home-assistant/core/pull/61757 +[#61758]: https://github.com/home-assistant/core/pull/61758 +[#61759]: https://github.com/home-assistant/core/pull/61759 +[#61760]: https://github.com/home-assistant/core/pull/61760 +[#61761]: https://github.com/home-assistant/core/pull/61761 +[#61763]: https://github.com/home-assistant/core/pull/61763 +[#61764]: https://github.com/home-assistant/core/pull/61764 +[#61765]: https://github.com/home-assistant/core/pull/61765 +[#61768]: https://github.com/home-assistant/core/pull/61768 +[#61770]: https://github.com/home-assistant/core/pull/61770 +[#61771]: https://github.com/home-assistant/core/pull/61771 +[#61772]: https://github.com/home-assistant/core/pull/61772 +[#61776]: https://github.com/home-assistant/core/pull/61776 +[#61777]: https://github.com/home-assistant/core/pull/61777 +[#61780]: https://github.com/home-assistant/core/pull/61780 +[#61781]: https://github.com/home-assistant/core/pull/61781 +[#61786]: https://github.com/home-assistant/core/pull/61786 +[#61793]: https://github.com/home-assistant/core/pull/61793 +[#61799]: https://github.com/home-assistant/core/pull/61799 +[#61800]: https://github.com/home-assistant/core/pull/61800 +[#61801]: https://github.com/home-assistant/core/pull/61801 +[#61802]: https://github.com/home-assistant/core/pull/61802 +[#61803]: https://github.com/home-assistant/core/pull/61803 +[#61804]: https://github.com/home-assistant/core/pull/61804 +[#61805]: https://github.com/home-assistant/core/pull/61805 +[#61816]: https://github.com/home-assistant/core/pull/61816 +[#61822]: https://github.com/home-assistant/core/pull/61822 +[#61823]: https://github.com/home-assistant/core/pull/61823 +[#61824]: https://github.com/home-assistant/core/pull/61824 +[#61825]: https://github.com/home-assistant/core/pull/61825 +[#61827]: https://github.com/home-assistant/core/pull/61827 +[#61828]: https://github.com/home-assistant/core/pull/61828 +[#61837]: https://github.com/home-assistant/core/pull/61837 +[#61839]: https://github.com/home-assistant/core/pull/61839 +[#61840]: https://github.com/home-assistant/core/pull/61840 +[#61844]: https://github.com/home-assistant/core/pull/61844 +[#61853]: https://github.com/home-assistant/core/pull/61853 +[#61856]: https://github.com/home-assistant/core/pull/61856 +[#61857]: https://github.com/home-assistant/core/pull/61857 +[#61858]: https://github.com/home-assistant/core/pull/61858 +[#61859]: https://github.com/home-assistant/core/pull/61859 +[#61860]: https://github.com/home-assistant/core/pull/61860 +[#61861]: https://github.com/home-assistant/core/pull/61861 +[#61862]: https://github.com/home-assistant/core/pull/61862 +[#61863]: https://github.com/home-assistant/core/pull/61863 +[#61865]: https://github.com/home-assistant/core/pull/61865 +[#61866]: https://github.com/home-assistant/core/pull/61866 +[#61867]: https://github.com/home-assistant/core/pull/61867 +[#61868]: https://github.com/home-assistant/core/pull/61868 +[#61869]: https://github.com/home-assistant/core/pull/61869 +[#61870]: https://github.com/home-assistant/core/pull/61870 +[#61871]: https://github.com/home-assistant/core/pull/61871 +[#61879]: https://github.com/home-assistant/core/pull/61879 +[#61881]: https://github.com/home-assistant/core/pull/61881 +[#61882]: https://github.com/home-assistant/core/pull/61882 +[#61883]: https://github.com/home-assistant/core/pull/61883 +[#61884]: https://github.com/home-assistant/core/pull/61884 +[#61885]: https://github.com/home-assistant/core/pull/61885 +[#61886]: https://github.com/home-assistant/core/pull/61886 +[#61887]: https://github.com/home-assistant/core/pull/61887 +[#61888]: https://github.com/home-assistant/core/pull/61888 +[#61889]: https://github.com/home-assistant/core/pull/61889 +[#61890]: https://github.com/home-assistant/core/pull/61890 +[#61894]: https://github.com/home-assistant/core/pull/61894 +[#61895]: https://github.com/home-assistant/core/pull/61895 +[#61896]: https://github.com/home-assistant/core/pull/61896 +[#61897]: https://github.com/home-assistant/core/pull/61897 +[#61898]: https://github.com/home-assistant/core/pull/61898 +[#61899]: https://github.com/home-assistant/core/pull/61899 +[#61900]: https://github.com/home-assistant/core/pull/61900 +[#61904]: https://github.com/home-assistant/core/pull/61904 +[#61906]: https://github.com/home-assistant/core/pull/61906 +[#61908]: https://github.com/home-assistant/core/pull/61908 +[#61914]: https://github.com/home-assistant/core/pull/61914 +[#61915]: https://github.com/home-assistant/core/pull/61915 +[#61918]: https://github.com/home-assistant/core/pull/61918 +[#61919]: https://github.com/home-assistant/core/pull/61919 +[#61922]: https://github.com/home-assistant/core/pull/61922 +[#61923]: https://github.com/home-assistant/core/pull/61923 +[#61924]: https://github.com/home-assistant/core/pull/61924 +[#61925]: https://github.com/home-assistant/core/pull/61925 +[#61927]: https://github.com/home-assistant/core/pull/61927 +[#61929]: https://github.com/home-assistant/core/pull/61929 +[#61930]: https://github.com/home-assistant/core/pull/61930 +[#61931]: https://github.com/home-assistant/core/pull/61931 +[#61932]: https://github.com/home-assistant/core/pull/61932 +[#61933]: https://github.com/home-assistant/core/pull/61933 +[#61934]: https://github.com/home-assistant/core/pull/61934 +[#61935]: https://github.com/home-assistant/core/pull/61935 +[#61936]: https://github.com/home-assistant/core/pull/61936 +[#61937]: https://github.com/home-assistant/core/pull/61937 +[#61938]: https://github.com/home-assistant/core/pull/61938 +[#61939]: https://github.com/home-assistant/core/pull/61939 +[#61940]: https://github.com/home-assistant/core/pull/61940 +[#61941]: https://github.com/home-assistant/core/pull/61941 +[#61942]: https://github.com/home-assistant/core/pull/61942 +[#61943]: https://github.com/home-assistant/core/pull/61943 +[#61946]: https://github.com/home-assistant/core/pull/61946 +[#61947]: https://github.com/home-assistant/core/pull/61947 +[#61948]: https://github.com/home-assistant/core/pull/61948 +[#61949]: https://github.com/home-assistant/core/pull/61949 +[#61950]: https://github.com/home-assistant/core/pull/61950 +[#61951]: https://github.com/home-assistant/core/pull/61951 +[#61952]: https://github.com/home-assistant/core/pull/61952 +[#61953]: https://github.com/home-assistant/core/pull/61953 +[#61954]: https://github.com/home-assistant/core/pull/61954 +[#61955]: https://github.com/home-assistant/core/pull/61955 +[#61959]: https://github.com/home-assistant/core/pull/61959 +[#61960]: https://github.com/home-assistant/core/pull/61960 +[#61961]: https://github.com/home-assistant/core/pull/61961 +[#61962]: https://github.com/home-assistant/core/pull/61962 +[#61964]: https://github.com/home-assistant/core/pull/61964 +[#61966]: https://github.com/home-assistant/core/pull/61966 +[#61967]: https://github.com/home-assistant/core/pull/61967 +[#61968]: https://github.com/home-assistant/core/pull/61968 +[#61969]: https://github.com/home-assistant/core/pull/61969 +[#61970]: https://github.com/home-assistant/core/pull/61970 +[#61971]: https://github.com/home-assistant/core/pull/61971 +[#61973]: https://github.com/home-assistant/core/pull/61973 +[#61975]: https://github.com/home-assistant/core/pull/61975 +[#61976]: https://github.com/home-assistant/core/pull/61976 +[#61977]: https://github.com/home-assistant/core/pull/61977 +[#61978]: https://github.com/home-assistant/core/pull/61978 +[#61979]: https://github.com/home-assistant/core/pull/61979 +[#61980]: https://github.com/home-assistant/core/pull/61980 +[#61981]: https://github.com/home-assistant/core/pull/61981 +[#61982]: https://github.com/home-assistant/core/pull/61982 +[#61983]: https://github.com/home-assistant/core/pull/61983 +[#61984]: https://github.com/home-assistant/core/pull/61984 +[#61985]: https://github.com/home-assistant/core/pull/61985 +[#61986]: https://github.com/home-assistant/core/pull/61986 +[#61987]: https://github.com/home-assistant/core/pull/61987 +[#61988]: https://github.com/home-assistant/core/pull/61988 +[#61989]: https://github.com/home-assistant/core/pull/61989 +[#61990]: https://github.com/home-assistant/core/pull/61990 +[#61991]: https://github.com/home-assistant/core/pull/61991 +[#61992]: https://github.com/home-assistant/core/pull/61992 +[#61993]: https://github.com/home-assistant/core/pull/61993 +[#61994]: https://github.com/home-assistant/core/pull/61994 +[#61995]: https://github.com/home-assistant/core/pull/61995 +[#61997]: https://github.com/home-assistant/core/pull/61997 +[#61998]: https://github.com/home-assistant/core/pull/61998 +[#61999]: https://github.com/home-assistant/core/pull/61999 +[#62000]: https://github.com/home-assistant/core/pull/62000 +[#62003]: https://github.com/home-assistant/core/pull/62003 +[#62004]: https://github.com/home-assistant/core/pull/62004 +[#62006]: https://github.com/home-assistant/core/pull/62006 +[#62008]: https://github.com/home-assistant/core/pull/62008 +[#62010]: https://github.com/home-assistant/core/pull/62010 +[#62011]: https://github.com/home-assistant/core/pull/62011 +[#62020]: https://github.com/home-assistant/core/pull/62020 +[#62021]: https://github.com/home-assistant/core/pull/62021 +[#62022]: https://github.com/home-assistant/core/pull/62022 +[#62023]: https://github.com/home-assistant/core/pull/62023 +[#62024]: https://github.com/home-assistant/core/pull/62024 +[#62025]: https://github.com/home-assistant/core/pull/62025 +[#62026]: https://github.com/home-assistant/core/pull/62026 +[#62027]: https://github.com/home-assistant/core/pull/62027 +[#62028]: https://github.com/home-assistant/core/pull/62028 +[#62029]: https://github.com/home-assistant/core/pull/62029 +[#62030]: https://github.com/home-assistant/core/pull/62030 +[#62031]: https://github.com/home-assistant/core/pull/62031 +[#62032]: https://github.com/home-assistant/core/pull/62032 +[#62033]: https://github.com/home-assistant/core/pull/62033 +[#62035]: https://github.com/home-assistant/core/pull/62035 +[#62036]: https://github.com/home-assistant/core/pull/62036 +[#62037]: https://github.com/home-assistant/core/pull/62037 +[#62038]: https://github.com/home-assistant/core/pull/62038 +[#62039]: https://github.com/home-assistant/core/pull/62039 +[#62040]: https://github.com/home-assistant/core/pull/62040 +[#62041]: https://github.com/home-assistant/core/pull/62041 +[#62042]: https://github.com/home-assistant/core/pull/62042 +[#62043]: https://github.com/home-assistant/core/pull/62043 +[#62044]: https://github.com/home-assistant/core/pull/62044 +[#62045]: https://github.com/home-assistant/core/pull/62045 +[#62046]: https://github.com/home-assistant/core/pull/62046 +[#62047]: https://github.com/home-assistant/core/pull/62047 +[#62048]: https://github.com/home-assistant/core/pull/62048 +[#62049]: https://github.com/home-assistant/core/pull/62049 +[#62050]: https://github.com/home-assistant/core/pull/62050 +[#62051]: https://github.com/home-assistant/core/pull/62051 +[#62052]: https://github.com/home-assistant/core/pull/62052 +[#62053]: https://github.com/home-assistant/core/pull/62053 +[#62055]: https://github.com/home-assistant/core/pull/62055 +[#62056]: https://github.com/home-assistant/core/pull/62056 +[#62057]: https://github.com/home-assistant/core/pull/62057 +[#62058]: https://github.com/home-assistant/core/pull/62058 +[#62059]: https://github.com/home-assistant/core/pull/62059 +[#62060]: https://github.com/home-assistant/core/pull/62060 +[#62061]: https://github.com/home-assistant/core/pull/62061 +[#62062]: https://github.com/home-assistant/core/pull/62062 +[#62063]: https://github.com/home-assistant/core/pull/62063 +[#62064]: https://github.com/home-assistant/core/pull/62064 +[#62065]: https://github.com/home-assistant/core/pull/62065 +[#62066]: https://github.com/home-assistant/core/pull/62066 +[#62067]: https://github.com/home-assistant/core/pull/62067 +[#62069]: https://github.com/home-assistant/core/pull/62069 +[#62070]: https://github.com/home-assistant/core/pull/62070 +[#62071]: https://github.com/home-assistant/core/pull/62071 +[#62072]: https://github.com/home-assistant/core/pull/62072 +[#62073]: https://github.com/home-assistant/core/pull/62073 +[#62076]: https://github.com/home-assistant/core/pull/62076 +[#62077]: https://github.com/home-assistant/core/pull/62077 +[#62078]: https://github.com/home-assistant/core/pull/62078 +[#62079]: https://github.com/home-assistant/core/pull/62079 +[#62080]: https://github.com/home-assistant/core/pull/62080 +[#62081]: https://github.com/home-assistant/core/pull/62081 +[#62082]: https://github.com/home-assistant/core/pull/62082 +[#62083]: https://github.com/home-assistant/core/pull/62083 +[#62084]: https://github.com/home-assistant/core/pull/62084 +[#62085]: https://github.com/home-assistant/core/pull/62085 +[#62086]: https://github.com/home-assistant/core/pull/62086 +[#62087]: https://github.com/home-assistant/core/pull/62087 +[#62088]: https://github.com/home-assistant/core/pull/62088 +[#62090]: https://github.com/home-assistant/core/pull/62090 +[#62091]: https://github.com/home-assistant/core/pull/62091 +[#62093]: https://github.com/home-assistant/core/pull/62093 +[#62095]: https://github.com/home-assistant/core/pull/62095 +[#62096]: https://github.com/home-assistant/core/pull/62096 +[#62103]: https://github.com/home-assistant/core/pull/62103 +[#62104]: https://github.com/home-assistant/core/pull/62104 +[#62105]: https://github.com/home-assistant/core/pull/62105 +[#62108]: https://github.com/home-assistant/core/pull/62108 +[#62109]: https://github.com/home-assistant/core/pull/62109 +[#62110]: https://github.com/home-assistant/core/pull/62110 +[#62112]: https://github.com/home-assistant/core/pull/62112 +[#62113]: https://github.com/home-assistant/core/pull/62113 +[#62114]: https://github.com/home-assistant/core/pull/62114 +[#62116]: https://github.com/home-assistant/core/pull/62116 +[#62117]: https://github.com/home-assistant/core/pull/62117 +[#62118]: https://github.com/home-assistant/core/pull/62118 +[#62119]: https://github.com/home-assistant/core/pull/62119 +[#62121]: https://github.com/home-assistant/core/pull/62121 +[#62122]: https://github.com/home-assistant/core/pull/62122 +[#62123]: https://github.com/home-assistant/core/pull/62123 +[#62130]: https://github.com/home-assistant/core/pull/62130 +[#62131]: https://github.com/home-assistant/core/pull/62131 +[#62132]: https://github.com/home-assistant/core/pull/62132 +[#62133]: https://github.com/home-assistant/core/pull/62133 +[#62134]: https://github.com/home-assistant/core/pull/62134 +[#62135]: https://github.com/home-assistant/core/pull/62135 +[#62136]: https://github.com/home-assistant/core/pull/62136 +[#62137]: https://github.com/home-assistant/core/pull/62137 +[#62138]: https://github.com/home-assistant/core/pull/62138 +[#62140]: https://github.com/home-assistant/core/pull/62140 +[#62141]: https://github.com/home-assistant/core/pull/62141 +[#62142]: https://github.com/home-assistant/core/pull/62142 +[#62143]: https://github.com/home-assistant/core/pull/62143 +[#62144]: https://github.com/home-assistant/core/pull/62144 +[#62150]: https://github.com/home-assistant/core/pull/62150 +[#62151]: https://github.com/home-assistant/core/pull/62151 +[#62152]: https://github.com/home-assistant/core/pull/62152 +[#62153]: https://github.com/home-assistant/core/pull/62153 +[#62157]: https://github.com/home-assistant/core/pull/62157 +[#62158]: https://github.com/home-assistant/core/pull/62158 +[#62159]: https://github.com/home-assistant/core/pull/62159 +[#62165]: https://github.com/home-assistant/core/pull/62165 +[#62171]: https://github.com/home-assistant/core/pull/62171 +[#62173]: https://github.com/home-assistant/core/pull/62173 +[#62175]: https://github.com/home-assistant/core/pull/62175 +[#62176]: https://github.com/home-assistant/core/pull/62176 +[#62179]: https://github.com/home-assistant/core/pull/62179 +[#62180]: https://github.com/home-assistant/core/pull/62180 +[#62181]: https://github.com/home-assistant/core/pull/62181 +[#62185]: https://github.com/home-assistant/core/pull/62185 +[#62187]: https://github.com/home-assistant/core/pull/62187 +[#62189]: https://github.com/home-assistant/core/pull/62189 +[#62190]: https://github.com/home-assistant/core/pull/62190 +[#62191]: https://github.com/home-assistant/core/pull/62191 +[#62192]: https://github.com/home-assistant/core/pull/62192 +[#62194]: https://github.com/home-assistant/core/pull/62194 +[#62195]: https://github.com/home-assistant/core/pull/62195 +[#62196]: https://github.com/home-assistant/core/pull/62196 +[#62197]: https://github.com/home-assistant/core/pull/62197 +[#62198]: https://github.com/home-assistant/core/pull/62198 +[#62201]: https://github.com/home-assistant/core/pull/62201 +[#62202]: https://github.com/home-assistant/core/pull/62202 +[#62203]: https://github.com/home-assistant/core/pull/62203 +[#62204]: https://github.com/home-assistant/core/pull/62204 +[#62205]: https://github.com/home-assistant/core/pull/62205 +[#62206]: https://github.com/home-assistant/core/pull/62206 +[#62208]: https://github.com/home-assistant/core/pull/62208 +[#62209]: https://github.com/home-assistant/core/pull/62209 +[#62210]: https://github.com/home-assistant/core/pull/62210 +[#62212]: https://github.com/home-assistant/core/pull/62212 +[#62213]: https://github.com/home-assistant/core/pull/62213 +[#62216]: https://github.com/home-assistant/core/pull/62216 +[#62217]: https://github.com/home-assistant/core/pull/62217 +[#62218]: https://github.com/home-assistant/core/pull/62218 +[#62219]: https://github.com/home-assistant/core/pull/62219 +[#62220]: https://github.com/home-assistant/core/pull/62220 +[#62221]: https://github.com/home-assistant/core/pull/62221 +[#62228]: https://github.com/home-assistant/core/pull/62228 +[#62239]: https://github.com/home-assistant/core/pull/62239 +[#62243]: https://github.com/home-assistant/core/pull/62243 +[#62249]: https://github.com/home-assistant/core/pull/62249 +[#62254]: https://github.com/home-assistant/core/pull/62254 +[#62255]: https://github.com/home-assistant/core/pull/62255 +[#62256]: https://github.com/home-assistant/core/pull/62256 +[#62258]: https://github.com/home-assistant/core/pull/62258 +[#62260]: https://github.com/home-assistant/core/pull/62260 +[#62262]: https://github.com/home-assistant/core/pull/62262 +[#62263]: https://github.com/home-assistant/core/pull/62263 +[#62266]: https://github.com/home-assistant/core/pull/62266 +[#62268]: https://github.com/home-assistant/core/pull/62268 +[#62274]: https://github.com/home-assistant/core/pull/62274 +[#62282]: https://github.com/home-assistant/core/pull/62282 +[#62284]: https://github.com/home-assistant/core/pull/62284 +[#62285]: https://github.com/home-assistant/core/pull/62285 +[#62293]: https://github.com/home-assistant/core/pull/62293 +[#62294]: https://github.com/home-assistant/core/pull/62294 +[#62300]: https://github.com/home-assistant/core/pull/62300 +[#62301]: https://github.com/home-assistant/core/pull/62301 +[#62303]: https://github.com/home-assistant/core/pull/62303 +[#62311]: https://github.com/home-assistant/core/pull/62311 +[#62313]: https://github.com/home-assistant/core/pull/62313 +[#62317]: https://github.com/home-assistant/core/pull/62317 +[#62320]: https://github.com/home-assistant/core/pull/62320 +[#62321]: https://github.com/home-assistant/core/pull/62321 +[#62323]: https://github.com/home-assistant/core/pull/62323 +[#62324]: https://github.com/home-assistant/core/pull/62324 +[#62326]: https://github.com/home-assistant/core/pull/62326 +[#62327]: https://github.com/home-assistant/core/pull/62327 +[#62328]: https://github.com/home-assistant/core/pull/62328 +[#62334]: https://github.com/home-assistant/core/pull/62334 +[#62335]: https://github.com/home-assistant/core/pull/62335 +[#62336]: https://github.com/home-assistant/core/pull/62336 +[#62337]: https://github.com/home-assistant/core/pull/62337 +[#62341]: https://github.com/home-assistant/core/pull/62341 +[#62342]: https://github.com/home-assistant/core/pull/62342 +[#62343]: https://github.com/home-assistant/core/pull/62343 +[#62344]: https://github.com/home-assistant/core/pull/62344 +[#62348]: https://github.com/home-assistant/core/pull/62348 +[#62349]: https://github.com/home-assistant/core/pull/62349 +[#62350]: https://github.com/home-assistant/core/pull/62350 +[#62351]: https://github.com/home-assistant/core/pull/62351 +[#62352]: https://github.com/home-assistant/core/pull/62352 +[#62354]: https://github.com/home-assistant/core/pull/62354 +[#62359]: https://github.com/home-assistant/core/pull/62359 +[#62365]: https://github.com/home-assistant/core/pull/62365 +[#62371]: https://github.com/home-assistant/core/pull/62371 +[#62372]: https://github.com/home-assistant/core/pull/62372 +[#62373]: https://github.com/home-assistant/core/pull/62373 +[#62374]: https://github.com/home-assistant/core/pull/62374 +[#62376]: https://github.com/home-assistant/core/pull/62376 +[#62377]: https://github.com/home-assistant/core/pull/62377 +[#62378]: https://github.com/home-assistant/core/pull/62378 +[#62380]: https://github.com/home-assistant/core/pull/62380 +[#62381]: https://github.com/home-assistant/core/pull/62381 +[#62382]: https://github.com/home-assistant/core/pull/62382 +[#62383]: https://github.com/home-assistant/core/pull/62383 +[#62384]: https://github.com/home-assistant/core/pull/62384 +[#62391]: https://github.com/home-assistant/core/pull/62391 +[#62395]: https://github.com/home-assistant/core/pull/62395 +[#62396]: https://github.com/home-assistant/core/pull/62396 +[#62397]: https://github.com/home-assistant/core/pull/62397 +[#62398]: https://github.com/home-assistant/core/pull/62398 +[#62399]: https://github.com/home-assistant/core/pull/62399 +[#62400]: https://github.com/home-assistant/core/pull/62400 +[#62401]: https://github.com/home-assistant/core/pull/62401 +[#62402]: https://github.com/home-assistant/core/pull/62402 +[#62403]: https://github.com/home-assistant/core/pull/62403 +[#62404]: https://github.com/home-assistant/core/pull/62404 +[#62405]: https://github.com/home-assistant/core/pull/62405 +[#62406]: https://github.com/home-assistant/core/pull/62406 +[#62407]: https://github.com/home-assistant/core/pull/62407 +[#62410]: https://github.com/home-assistant/core/pull/62410 +[#62415]: https://github.com/home-assistant/core/pull/62415 +[#62416]: https://github.com/home-assistant/core/pull/62416 +[#62417]: https://github.com/home-assistant/core/pull/62417 +[#62418]: https://github.com/home-assistant/core/pull/62418 +[#62422]: https://github.com/home-assistant/core/pull/62422 +[#62423]: https://github.com/home-assistant/core/pull/62423 +[#62424]: https://github.com/home-assistant/core/pull/62424 +[#62425]: https://github.com/home-assistant/core/pull/62425 +[#62426]: https://github.com/home-assistant/core/pull/62426 +[#62427]: https://github.com/home-assistant/core/pull/62427 +[#62428]: https://github.com/home-assistant/core/pull/62428 +[#62429]: https://github.com/home-assistant/core/pull/62429 +[#62430]: https://github.com/home-assistant/core/pull/62430 +[#62431]: https://github.com/home-assistant/core/pull/62431 +[#62432]: https://github.com/home-assistant/core/pull/62432 +[#62433]: https://github.com/home-assistant/core/pull/62433 +[#62434]: https://github.com/home-assistant/core/pull/62434 +[#62436]: https://github.com/home-assistant/core/pull/62436 +[#62438]: https://github.com/home-assistant/core/pull/62438 +[#62439]: https://github.com/home-assistant/core/pull/62439 +[#62440]: https://github.com/home-assistant/core/pull/62440 +[#62441]: https://github.com/home-assistant/core/pull/62441 +[#62443]: https://github.com/home-assistant/core/pull/62443 +[#62445]: https://github.com/home-assistant/core/pull/62445 +[#62449]: https://github.com/home-assistant/core/pull/62449 +[#62450]: https://github.com/home-assistant/core/pull/62450 +[#62454]: https://github.com/home-assistant/core/pull/62454 +[#62455]: https://github.com/home-assistant/core/pull/62455 +[#62457]: https://github.com/home-assistant/core/pull/62457 +[#62462]: https://github.com/home-assistant/core/pull/62462 +[#62464]: https://github.com/home-assistant/core/pull/62464 +[#62466]: https://github.com/home-assistant/core/pull/62466 +[#62468]: https://github.com/home-assistant/core/pull/62468 +[#62469]: https://github.com/home-assistant/core/pull/62469 +[#62470]: https://github.com/home-assistant/core/pull/62470 +[#62471]: https://github.com/home-assistant/core/pull/62471 +[#62472]: https://github.com/home-assistant/core/pull/62472 +[#62476]: https://github.com/home-assistant/core/pull/62476 +[#62479]: https://github.com/home-assistant/core/pull/62479 +[#62480]: https://github.com/home-assistant/core/pull/62480 +[#62484]: https://github.com/home-assistant/core/pull/62484 +[#62485]: https://github.com/home-assistant/core/pull/62485 +[#62486]: https://github.com/home-assistant/core/pull/62486 +[#62487]: https://github.com/home-assistant/core/pull/62487 +[#62488]: https://github.com/home-assistant/core/pull/62488 +[#62489]: https://github.com/home-assistant/core/pull/62489 +[#62491]: https://github.com/home-assistant/core/pull/62491 +[#62492]: https://github.com/home-assistant/core/pull/62492 +[#62493]: https://github.com/home-assistant/core/pull/62493 +[#62495]: https://github.com/home-assistant/core/pull/62495 +[#62496]: https://github.com/home-assistant/core/pull/62496 +[#62498]: https://github.com/home-assistant/core/pull/62498 +[#62501]: https://github.com/home-assistant/core/pull/62501 +[#62508]: https://github.com/home-assistant/core/pull/62508 +[#62509]: https://github.com/home-assistant/core/pull/62509 +[#62511]: https://github.com/home-assistant/core/pull/62511 +[#62512]: https://github.com/home-assistant/core/pull/62512 +[#62513]: https://github.com/home-assistant/core/pull/62513 +[#62515]: https://github.com/home-assistant/core/pull/62515 +[#62516]: https://github.com/home-assistant/core/pull/62516 +[#62517]: https://github.com/home-assistant/core/pull/62517 +[#62518]: https://github.com/home-assistant/core/pull/62518 +[#62519]: https://github.com/home-assistant/core/pull/62519 +[#62520]: https://github.com/home-assistant/core/pull/62520 +[#62521]: https://github.com/home-assistant/core/pull/62521 +[#62522]: https://github.com/home-assistant/core/pull/62522 +[#62524]: https://github.com/home-assistant/core/pull/62524 +[#62525]: https://github.com/home-assistant/core/pull/62525 +[#62526]: https://github.com/home-assistant/core/pull/62526 +[#62531]: https://github.com/home-assistant/core/pull/62531 +[#62532]: https://github.com/home-assistant/core/pull/62532 +[#62537]: https://github.com/home-assistant/core/pull/62537 +[#62538]: https://github.com/home-assistant/core/pull/62538 +[#62541]: https://github.com/home-assistant/core/pull/62541 +[#62542]: https://github.com/home-assistant/core/pull/62542 +[#62543]: https://github.com/home-assistant/core/pull/62543 +[#62547]: https://github.com/home-assistant/core/pull/62547 +[#62548]: https://github.com/home-assistant/core/pull/62548 +[#62549]: https://github.com/home-assistant/core/pull/62549 +[#62550]: https://github.com/home-assistant/core/pull/62550 +[#62551]: https://github.com/home-assistant/core/pull/62551 +[#62553]: https://github.com/home-assistant/core/pull/62553 +[#62555]: https://github.com/home-assistant/core/pull/62555 +[#62558]: https://github.com/home-assistant/core/pull/62558 +[#62561]: https://github.com/home-assistant/core/pull/62561 +[#62564]: https://github.com/home-assistant/core/pull/62564 +[#62565]: https://github.com/home-assistant/core/pull/62565 +[#62569]: https://github.com/home-assistant/core/pull/62569 +[#62570]: https://github.com/home-assistant/core/pull/62570 +[#62574]: https://github.com/home-assistant/core/pull/62574 +[#62576]: https://github.com/home-assistant/core/pull/62576 +[#62577]: https://github.com/home-assistant/core/pull/62577 +[#62578]: https://github.com/home-assistant/core/pull/62578 +[#62580]: https://github.com/home-assistant/core/pull/62580 +[#62583]: https://github.com/home-assistant/core/pull/62583 +[#62584]: https://github.com/home-assistant/core/pull/62584 +[#62585]: https://github.com/home-assistant/core/pull/62585 +[#62588]: https://github.com/home-assistant/core/pull/62588 +[#62589]: https://github.com/home-assistant/core/pull/62589 +[#62590]: https://github.com/home-assistant/core/pull/62590 +[#62592]: https://github.com/home-assistant/core/pull/62592 +[#62593]: https://github.com/home-assistant/core/pull/62593 +[#62594]: https://github.com/home-assistant/core/pull/62594 +[#62596]: https://github.com/home-assistant/core/pull/62596 +[#62597]: https://github.com/home-assistant/core/pull/62597 +[#62599]: https://github.com/home-assistant/core/pull/62599 +[#62600]: https://github.com/home-assistant/core/pull/62600 +[#62601]: https://github.com/home-assistant/core/pull/62601 +[#62607]: https://github.com/home-assistant/core/pull/62607 +[#62611]: https://github.com/home-assistant/core/pull/62611 +[#62612]: https://github.com/home-assistant/core/pull/62612 +[#62614]: https://github.com/home-assistant/core/pull/62614 +[#62616]: https://github.com/home-assistant/core/pull/62616 +[#62618]: https://github.com/home-assistant/core/pull/62618 +[#62622]: https://github.com/home-assistant/core/pull/62622 +[#62625]: https://github.com/home-assistant/core/pull/62625 +[#62627]: https://github.com/home-assistant/core/pull/62627 +[#62628]: https://github.com/home-assistant/core/pull/62628 +[#62629]: https://github.com/home-assistant/core/pull/62629 +[#62632]: https://github.com/home-assistant/core/pull/62632 +[#62634]: https://github.com/home-assistant/core/pull/62634 +[#62635]: https://github.com/home-assistant/core/pull/62635 +[#62636]: https://github.com/home-assistant/core/pull/62636 +[#62637]: https://github.com/home-assistant/core/pull/62637 +[#62638]: https://github.com/home-assistant/core/pull/62638 +[#62639]: https://github.com/home-assistant/core/pull/62639 +[#62640]: https://github.com/home-assistant/core/pull/62640 +[#62642]: https://github.com/home-assistant/core/pull/62642 +[#62643]: https://github.com/home-assistant/core/pull/62643 +[#62645]: https://github.com/home-assistant/core/pull/62645 +[#62646]: https://github.com/home-assistant/core/pull/62646 +[#62648]: https://github.com/home-assistant/core/pull/62648 +[#62649]: https://github.com/home-assistant/core/pull/62649 +[#62650]: https://github.com/home-assistant/core/pull/62650 +[#62663]: https://github.com/home-assistant/core/pull/62663 +[#62667]: https://github.com/home-assistant/core/pull/62667 +[#62668]: https://github.com/home-assistant/core/pull/62668 +[#62673]: https://github.com/home-assistant/core/pull/62673 +[#62675]: https://github.com/home-assistant/core/pull/62675 +[#62677]: https://github.com/home-assistant/core/pull/62677 +[#62680]: https://github.com/home-assistant/core/pull/62680 +[#62681]: https://github.com/home-assistant/core/pull/62681 +[#62682]: https://github.com/home-assistant/core/pull/62682 +[#62683]: https://github.com/home-assistant/core/pull/62683 +[#62692]: https://github.com/home-assistant/core/pull/62692 +[#62693]: https://github.com/home-assistant/core/pull/62693 +[#62697]: https://github.com/home-assistant/core/pull/62697 +[#62705]: https://github.com/home-assistant/core/pull/62705 +[#62707]: https://github.com/home-assistant/core/pull/62707 +[#62708]: https://github.com/home-assistant/core/pull/62708 +[#62711]: https://github.com/home-assistant/core/pull/62711 +[#62712]: https://github.com/home-assistant/core/pull/62712 +[#62713]: https://github.com/home-assistant/core/pull/62713 +[#62714]: https://github.com/home-assistant/core/pull/62714 +[#62716]: https://github.com/home-assistant/core/pull/62716 +[#62718]: https://github.com/home-assistant/core/pull/62718 +[#62719]: https://github.com/home-assistant/core/pull/62719 +[#62725]: https://github.com/home-assistant/core/pull/62725 +[#62727]: https://github.com/home-assistant/core/pull/62727 +[#62730]: https://github.com/home-assistant/core/pull/62730 +[#62732]: https://github.com/home-assistant/core/pull/62732 +[#62736]: https://github.com/home-assistant/core/pull/62736 +[#62737]: https://github.com/home-assistant/core/pull/62737 +[#62738]: https://github.com/home-assistant/core/pull/62738 +[#62739]: https://github.com/home-assistant/core/pull/62739 +[#62743]: https://github.com/home-assistant/core/pull/62743 +[#62744]: https://github.com/home-assistant/core/pull/62744 +[#62746]: https://github.com/home-assistant/core/pull/62746 +[#62747]: https://github.com/home-assistant/core/pull/62747 +[#62748]: https://github.com/home-assistant/core/pull/62748 +[#62752]: https://github.com/home-assistant/core/pull/62752 +[#62755]: https://github.com/home-assistant/core/pull/62755 +[#62757]: https://github.com/home-assistant/core/pull/62757 +[#62758]: https://github.com/home-assistant/core/pull/62758 +[#62759]: https://github.com/home-assistant/core/pull/62759 +[#62761]: https://github.com/home-assistant/core/pull/62761 +[#62765]: https://github.com/home-assistant/core/pull/62765 +[#62769]: https://github.com/home-assistant/core/pull/62769 +[#62770]: https://github.com/home-assistant/core/pull/62770 +[#62773]: https://github.com/home-assistant/core/pull/62773 +[#62775]: https://github.com/home-assistant/core/pull/62775 +[#62778]: https://github.com/home-assistant/core/pull/62778 +[#62779]: https://github.com/home-assistant/core/pull/62779 +[#62780]: https://github.com/home-assistant/core/pull/62780 +[#62783]: https://github.com/home-assistant/core/pull/62783 +[#62785]: https://github.com/home-assistant/core/pull/62785 +[#62786]: https://github.com/home-assistant/core/pull/62786 +[#62789]: https://github.com/home-assistant/core/pull/62789 +[#62790]: https://github.com/home-assistant/core/pull/62790 +[#62793]: https://github.com/home-assistant/core/pull/62793 +[#62802]: https://github.com/home-assistant/core/pull/62802 +[#62806]: https://github.com/home-assistant/core/pull/62806 +[#62810]: https://github.com/home-assistant/core/pull/62810 +[#62811]: https://github.com/home-assistant/core/pull/62811 +[#62816]: https://github.com/home-assistant/core/pull/62816 +[#62821]: https://github.com/home-assistant/core/pull/62821 +[#62822]: https://github.com/home-assistant/core/pull/62822 +[#62824]: https://github.com/home-assistant/core/pull/62824 +[#62827]: https://github.com/home-assistant/core/pull/62827 +[#62831]: https://github.com/home-assistant/core/pull/62831 +[#62835]: https://github.com/home-assistant/core/pull/62835 +[#62841]: https://github.com/home-assistant/core/pull/62841 +[#62843]: https://github.com/home-assistant/core/pull/62843 +[#62847]: https://github.com/home-assistant/core/pull/62847 +[#62854]: https://github.com/home-assistant/core/pull/62854 +[#62857]: https://github.com/home-assistant/core/pull/62857 +[#62865]: https://github.com/home-assistant/core/pull/62865 +[#62866]: https://github.com/home-assistant/core/pull/62866 +[#62868]: https://github.com/home-assistant/core/pull/62868 +[#62869]: https://github.com/home-assistant/core/pull/62869 +[#62871]: https://github.com/home-assistant/core/pull/62871 +[#62875]: https://github.com/home-assistant/core/pull/62875 +[#62876]: https://github.com/home-assistant/core/pull/62876 +[#62877]: https://github.com/home-assistant/core/pull/62877 +[#62878]: https://github.com/home-assistant/core/pull/62878 +[#62879]: https://github.com/home-assistant/core/pull/62879 +[#62880]: https://github.com/home-assistant/core/pull/62880 +[#62883]: https://github.com/home-assistant/core/pull/62883 +[#62884]: https://github.com/home-assistant/core/pull/62884 +[#62886]: https://github.com/home-assistant/core/pull/62886 +[#62887]: https://github.com/home-assistant/core/pull/62887 +[#62888]: https://github.com/home-assistant/core/pull/62888 +[#62889]: https://github.com/home-assistant/core/pull/62889 +[#62890]: https://github.com/home-assistant/core/pull/62890 +[#62891]: https://github.com/home-assistant/core/pull/62891 +[#62893]: https://github.com/home-assistant/core/pull/62893 +[#62894]: https://github.com/home-assistant/core/pull/62894 +[#62895]: https://github.com/home-assistant/core/pull/62895 +[#62896]: https://github.com/home-assistant/core/pull/62896 +[#62899]: https://github.com/home-assistant/core/pull/62899 +[#62900]: https://github.com/home-assistant/core/pull/62900 +[#62904]: https://github.com/home-assistant/core/pull/62904 +[#62909]: https://github.com/home-assistant/core/pull/62909 +[#62912]: https://github.com/home-assistant/core/pull/62912 +[#62913]: https://github.com/home-assistant/core/pull/62913 +[#62914]: https://github.com/home-assistant/core/pull/62914 +[#62915]: https://github.com/home-assistant/core/pull/62915 +[#62916]: https://github.com/home-assistant/core/pull/62916 +[#62917]: https://github.com/home-assistant/core/pull/62917 +[#62920]: https://github.com/home-assistant/core/pull/62920 +[#62922]: https://github.com/home-assistant/core/pull/62922 +[#62923]: https://github.com/home-assistant/core/pull/62923 +[#62924]: https://github.com/home-assistant/core/pull/62924 +[#62926]: https://github.com/home-assistant/core/pull/62926 +[#62929]: https://github.com/home-assistant/core/pull/62929 +[#62932]: https://github.com/home-assistant/core/pull/62932 +[#62934]: https://github.com/home-assistant/core/pull/62934 +[#62936]: https://github.com/home-assistant/core/pull/62936 +[#62937]: https://github.com/home-assistant/core/pull/62937 +[#62946]: https://github.com/home-assistant/core/pull/62946 +[#62948]: https://github.com/home-assistant/core/pull/62948 +[#62950]: https://github.com/home-assistant/core/pull/62950 +[#62951]: https://github.com/home-assistant/core/pull/62951 +[#62952]: https://github.com/home-assistant/core/pull/62952 +[#62953]: https://github.com/home-assistant/core/pull/62953 +[#62954]: https://github.com/home-assistant/core/pull/62954 +[#62955]: https://github.com/home-assistant/core/pull/62955 +[#62956]: https://github.com/home-assistant/core/pull/62956 +[#62958]: https://github.com/home-assistant/core/pull/62958 +[#62959]: https://github.com/home-assistant/core/pull/62959 +[#62961]: https://github.com/home-assistant/core/pull/62961 +[#62962]: https://github.com/home-assistant/core/pull/62962 +[#62963]: https://github.com/home-assistant/core/pull/62963 +[#62964]: https://github.com/home-assistant/core/pull/62964 +[#62967]: https://github.com/home-assistant/core/pull/62967 +[#62970]: https://github.com/home-assistant/core/pull/62970 +[#62972]: https://github.com/home-assistant/core/pull/62972 +[#62976]: https://github.com/home-assistant/core/pull/62976 +[#62977]: https://github.com/home-assistant/core/pull/62977 +[#62990]: https://github.com/home-assistant/core/pull/62990 +[#62999]: https://github.com/home-assistant/core/pull/62999 +[#63000]: https://github.com/home-assistant/core/pull/63000 +[#63001]: https://github.com/home-assistant/core/pull/63001 +[#63005]: https://github.com/home-assistant/core/pull/63005 +[#63011]: https://github.com/home-assistant/core/pull/63011 +[#63012]: https://github.com/home-assistant/core/pull/63012 +[#63013]: https://github.com/home-assistant/core/pull/63013 +[#63014]: https://github.com/home-assistant/core/pull/63014 +[#63016]: https://github.com/home-assistant/core/pull/63016 +[#63017]: https://github.com/home-assistant/core/pull/63017 +[#63018]: https://github.com/home-assistant/core/pull/63018 +[#63019]: https://github.com/home-assistant/core/pull/63019 +[#63020]: https://github.com/home-assistant/core/pull/63020 +[#63022]: https://github.com/home-assistant/core/pull/63022 +[#63023]: https://github.com/home-assistant/core/pull/63023 +[#63027]: https://github.com/home-assistant/core/pull/63027 +[#63032]: https://github.com/home-assistant/core/pull/63032 +[#63034]: https://github.com/home-assistant/core/pull/63034 +[#63035]: https://github.com/home-assistant/core/pull/63035 +[#63036]: https://github.com/home-assistant/core/pull/63036 +[#63042]: https://github.com/home-assistant/core/pull/63042 +[#63046]: https://github.com/home-assistant/core/pull/63046 +[#63047]: https://github.com/home-assistant/core/pull/63047 +[#63048]: https://github.com/home-assistant/core/pull/63048 +[#63049]: https://github.com/home-assistant/core/pull/63049 +[#63050]: https://github.com/home-assistant/core/pull/63050 +[#63051]: https://github.com/home-assistant/core/pull/63051 +[#63058]: https://github.com/home-assistant/core/pull/63058 +[#63069]: https://github.com/home-assistant/core/pull/63069 +[#63072]: https://github.com/home-assistant/core/pull/63072 +[#63073]: https://github.com/home-assistant/core/pull/63073 +[#63074]: https://github.com/home-assistant/core/pull/63074 +[#63075]: https://github.com/home-assistant/core/pull/63075 +[#63076]: https://github.com/home-assistant/core/pull/63076 +[#63078]: https://github.com/home-assistant/core/pull/63078 +[#63079]: https://github.com/home-assistant/core/pull/63079 +[#63080]: https://github.com/home-assistant/core/pull/63080 +[#63082]: https://github.com/home-assistant/core/pull/63082 +[#63093]: https://github.com/home-assistant/core/pull/63093 +[#63094]: https://github.com/home-assistant/core/pull/63094 +[#63097]: https://github.com/home-assistant/core/pull/63097 +[#63098]: https://github.com/home-assistant/core/pull/63098 +[#63099]: https://github.com/home-assistant/core/pull/63099 +[#63100]: https://github.com/home-assistant/core/pull/63100 +[#63101]: https://github.com/home-assistant/core/pull/63101 +[#63102]: https://github.com/home-assistant/core/pull/63102 +[#63105]: https://github.com/home-assistant/core/pull/63105 +[#63106]: https://github.com/home-assistant/core/pull/63106 +[#63108]: https://github.com/home-assistant/core/pull/63108 +[#63110]: https://github.com/home-assistant/core/pull/63110 +[#63113]: https://github.com/home-assistant/core/pull/63113 +[#63117]: https://github.com/home-assistant/core/pull/63117 +[#63119]: https://github.com/home-assistant/core/pull/63119 +[#63121]: https://github.com/home-assistant/core/pull/63121 +[#63123]: https://github.com/home-assistant/core/pull/63123 +[#63124]: https://github.com/home-assistant/core/pull/63124 +[#63127]: https://github.com/home-assistant/core/pull/63127 +[#63129]: https://github.com/home-assistant/core/pull/63129 +[#63130]: https://github.com/home-assistant/core/pull/63130 +[#63132]: https://github.com/home-assistant/core/pull/63132 +[#63133]: https://github.com/home-assistant/core/pull/63133 +[#63134]: https://github.com/home-assistant/core/pull/63134 +[#63136]: https://github.com/home-assistant/core/pull/63136 +[#63137]: https://github.com/home-assistant/core/pull/63137 +[#63139]: https://github.com/home-assistant/core/pull/63139 +[#63141]: https://github.com/home-assistant/core/pull/63141 +[#63148]: https://github.com/home-assistant/core/pull/63148 +[#63149]: https://github.com/home-assistant/core/pull/63149 +[#63151]: https://github.com/home-assistant/core/pull/63151 +[#63156]: https://github.com/home-assistant/core/pull/63156 +[#63165]: https://github.com/home-assistant/core/pull/63165 +[#63166]: https://github.com/home-assistant/core/pull/63166 +[#63167]: https://github.com/home-assistant/core/pull/63167 +[#63169]: https://github.com/home-assistant/core/pull/63169 +[#63170]: https://github.com/home-assistant/core/pull/63170 +[#63171]: https://github.com/home-assistant/core/pull/63171 +[#63177]: https://github.com/home-assistant/core/pull/63177 +[#63179]: https://github.com/home-assistant/core/pull/63179 +[#63182]: https://github.com/home-assistant/core/pull/63182 +[#63183]: https://github.com/home-assistant/core/pull/63183 +[#63186]: https://github.com/home-assistant/core/pull/63186 +[#63187]: https://github.com/home-assistant/core/pull/63187 +[#63188]: https://github.com/home-assistant/core/pull/63188 +[#63189]: https://github.com/home-assistant/core/pull/63189 +[#63190]: https://github.com/home-assistant/core/pull/63190 +[#63191]: https://github.com/home-assistant/core/pull/63191 +[#63192]: https://github.com/home-assistant/core/pull/63192 +[#63193]: https://github.com/home-assistant/core/pull/63193 +[#63194]: https://github.com/home-assistant/core/pull/63194 +[#63195]: https://github.com/home-assistant/core/pull/63195 +[#63197]: https://github.com/home-assistant/core/pull/63197 +[#63200]: https://github.com/home-assistant/core/pull/63200 +[#63203]: https://github.com/home-assistant/core/pull/63203 +[#63206]: https://github.com/home-assistant/core/pull/63206 +[#63207]: https://github.com/home-assistant/core/pull/63207 +[#63208]: https://github.com/home-assistant/core/pull/63208 +[#63211]: https://github.com/home-assistant/core/pull/63211 +[#63212]: https://github.com/home-assistant/core/pull/63212 +[#63218]: https://github.com/home-assistant/core/pull/63218 +[#63220]: https://github.com/home-assistant/core/pull/63220 +[#63222]: https://github.com/home-assistant/core/pull/63222 +[#63224]: https://github.com/home-assistant/core/pull/63224 +[#63225]: https://github.com/home-assistant/core/pull/63225 +[#63227]: https://github.com/home-assistant/core/pull/63227 +[#63228]: https://github.com/home-assistant/core/pull/63228 +[#63231]: https://github.com/home-assistant/core/pull/63231 +[#63232]: https://github.com/home-assistant/core/pull/63232 +[#63234]: https://github.com/home-assistant/core/pull/63234 +[#63236]: https://github.com/home-assistant/core/pull/63236 +[#63237]: https://github.com/home-assistant/core/pull/63237 +[#63238]: https://github.com/home-assistant/core/pull/63238 +[#63239]: https://github.com/home-assistant/core/pull/63239 +[#63240]: https://github.com/home-assistant/core/pull/63240 +[#63241]: https://github.com/home-assistant/core/pull/63241 +[#63242]: https://github.com/home-assistant/core/pull/63242 +[#63243]: https://github.com/home-assistant/core/pull/63243 +[#63244]: https://github.com/home-assistant/core/pull/63244 +[#63248]: https://github.com/home-assistant/core/pull/63248 +[#63249]: https://github.com/home-assistant/core/pull/63249 +[#63251]: https://github.com/home-assistant/core/pull/63251 +[#63254]: https://github.com/home-assistant/core/pull/63254 +[#63256]: https://github.com/home-assistant/core/pull/63256 +[#63259]: https://github.com/home-assistant/core/pull/63259 +[#63261]: https://github.com/home-assistant/core/pull/63261 +[#63263]: https://github.com/home-assistant/core/pull/63263 +[#63264]: https://github.com/home-assistant/core/pull/63264 +[#63265]: https://github.com/home-assistant/core/pull/63265 +[#63268]: https://github.com/home-assistant/core/pull/63268 +[#63269]: https://github.com/home-assistant/core/pull/63269 +[#63270]: https://github.com/home-assistant/core/pull/63270 +[#63271]: https://github.com/home-assistant/core/pull/63271 +[#63272]: https://github.com/home-assistant/core/pull/63272 +[#63274]: https://github.com/home-assistant/core/pull/63274 +[#63277]: https://github.com/home-assistant/core/pull/63277 +[#63278]: https://github.com/home-assistant/core/pull/63278 +[#63279]: https://github.com/home-assistant/core/pull/63279 +[#63280]: https://github.com/home-assistant/core/pull/63280 +[#63282]: https://github.com/home-assistant/core/pull/63282 +[#63283]: https://github.com/home-assistant/core/pull/63283 +[#63284]: https://github.com/home-assistant/core/pull/63284 +[#63285]: https://github.com/home-assistant/core/pull/63285 +[#63286]: https://github.com/home-assistant/core/pull/63286 +[#63287]: https://github.com/home-assistant/core/pull/63287 +[#63288]: https://github.com/home-assistant/core/pull/63288 +[#63289]: https://github.com/home-assistant/core/pull/63289 +[#63290]: https://github.com/home-assistant/core/pull/63290 +[#63291]: https://github.com/home-assistant/core/pull/63291 +[#63292]: https://github.com/home-assistant/core/pull/63292 +[#63293]: https://github.com/home-assistant/core/pull/63293 +[#63294]: https://github.com/home-assistant/core/pull/63294 +[#63295]: https://github.com/home-assistant/core/pull/63295 +[#63296]: https://github.com/home-assistant/core/pull/63296 +[#63297]: https://github.com/home-assistant/core/pull/63297 +[#63298]: https://github.com/home-assistant/core/pull/63298 +[#63299]: https://github.com/home-assistant/core/pull/63299 +[#63300]: https://github.com/home-assistant/core/pull/63300 +[#63301]: https://github.com/home-assistant/core/pull/63301 +[#63302]: https://github.com/home-assistant/core/pull/63302 +[#63303]: https://github.com/home-assistant/core/pull/63303 +[#63304]: https://github.com/home-assistant/core/pull/63304 +[#63305]: https://github.com/home-assistant/core/pull/63305 +[#63308]: https://github.com/home-assistant/core/pull/63308 +[#63309]: https://github.com/home-assistant/core/pull/63309 +[#63310]: https://github.com/home-assistant/core/pull/63310 +[#63311]: https://github.com/home-assistant/core/pull/63311 +[#63312]: https://github.com/home-assistant/core/pull/63312 +[#63313]: https://github.com/home-assistant/core/pull/63313 +[#63314]: https://github.com/home-assistant/core/pull/63314 +[#63315]: https://github.com/home-assistant/core/pull/63315 +[#63316]: https://github.com/home-assistant/core/pull/63316 +[#63317]: https://github.com/home-assistant/core/pull/63317 +[#63318]: https://github.com/home-assistant/core/pull/63318 +[#63319]: https://github.com/home-assistant/core/pull/63319 +[#63322]: https://github.com/home-assistant/core/pull/63322 +[#63328]: https://github.com/home-assistant/core/pull/63328 +[#63330]: https://github.com/home-assistant/core/pull/63330 +[#63336]: https://github.com/home-assistant/core/pull/63336 +[#63337]: https://github.com/home-assistant/core/pull/63337 +[#63342]: https://github.com/home-assistant/core/pull/63342 +[#63343]: https://github.com/home-assistant/core/pull/63343 +[#63345]: https://github.com/home-assistant/core/pull/63345 +[#63346]: https://github.com/home-assistant/core/pull/63346 +[#63349]: https://github.com/home-assistant/core/pull/63349 +[#63350]: https://github.com/home-assistant/core/pull/63350 +[#63351]: https://github.com/home-assistant/core/pull/63351 +[#63353]: https://github.com/home-assistant/core/pull/63353 +[#63357]: https://github.com/home-assistant/core/pull/63357 +[#63358]: https://github.com/home-assistant/core/pull/63358 +[#63359]: https://github.com/home-assistant/core/pull/63359 +[#63362]: https://github.com/home-assistant/core/pull/63362 +[#63363]: https://github.com/home-assistant/core/pull/63363 +[#63365]: https://github.com/home-assistant/core/pull/63365 +[#63366]: https://github.com/home-assistant/core/pull/63366 +[#63367]: https://github.com/home-assistant/core/pull/63367 +[#63373]: https://github.com/home-assistant/core/pull/63373 +[#63377]: https://github.com/home-assistant/core/pull/63377 +[#63378]: https://github.com/home-assistant/core/pull/63378 +[#63379]: https://github.com/home-assistant/core/pull/63379 +[#63380]: https://github.com/home-assistant/core/pull/63380 +[#63385]: https://github.com/home-assistant/core/pull/63385 +[#63388]: https://github.com/home-assistant/core/pull/63388 +[#63389]: https://github.com/home-assistant/core/pull/63389 +[#63390]: https://github.com/home-assistant/core/pull/63390 +[#63391]: https://github.com/home-assistant/core/pull/63391 +[#63395]: https://github.com/home-assistant/core/pull/63395 +[#63397]: https://github.com/home-assistant/core/pull/63397 +[#63400]: https://github.com/home-assistant/core/pull/63400 +[#63404]: https://github.com/home-assistant/core/pull/63404 +[#63405]: https://github.com/home-assistant/core/pull/63405 +[#63406]: https://github.com/home-assistant/core/pull/63406 +[#63407]: https://github.com/home-assistant/core/pull/63407 +[#63408]: https://github.com/home-assistant/core/pull/63408 +[#63409]: https://github.com/home-assistant/core/pull/63409 +[#63417]: https://github.com/home-assistant/core/pull/63417 +[#63422]: https://github.com/home-assistant/core/pull/63422 +[#63423]: https://github.com/home-assistant/core/pull/63423 +[#63424]: https://github.com/home-assistant/core/pull/63424 +[#63427]: https://github.com/home-assistant/core/pull/63427 +[#63428]: https://github.com/home-assistant/core/pull/63428 +[#63430]: https://github.com/home-assistant/core/pull/63430 +[#63431]: https://github.com/home-assistant/core/pull/63431 +[#63432]: https://github.com/home-assistant/core/pull/63432 +[#63434]: https://github.com/home-assistant/core/pull/63434 +[#63436]: https://github.com/home-assistant/core/pull/63436 +[#63438]: https://github.com/home-assistant/core/pull/63438 +[#63439]: https://github.com/home-assistant/core/pull/63439 +[#63441]: https://github.com/home-assistant/core/pull/63441 +[#63444]: https://github.com/home-assistant/core/pull/63444 +[#63450]: https://github.com/home-assistant/core/pull/63450 +[#63451]: https://github.com/home-assistant/core/pull/63451 +[#63452]: https://github.com/home-assistant/core/pull/63452 +[#63453]: https://github.com/home-assistant/core/pull/63453 +[#63454]: https://github.com/home-assistant/core/pull/63454 +[#63455]: https://github.com/home-assistant/core/pull/63455 +[#63456]: https://github.com/home-assistant/core/pull/63456 +[#63458]: https://github.com/home-assistant/core/pull/63458 +[#63459]: https://github.com/home-assistant/core/pull/63459 +[#63460]: https://github.com/home-assistant/core/pull/63460 +[#63461]: https://github.com/home-assistant/core/pull/63461 +[#63462]: https://github.com/home-assistant/core/pull/63462 +[#63463]: https://github.com/home-assistant/core/pull/63463 +[#63465]: https://github.com/home-assistant/core/pull/63465 +[#63467]: https://github.com/home-assistant/core/pull/63467 +[#63468]: https://github.com/home-assistant/core/pull/63468 +[#63469]: https://github.com/home-assistant/core/pull/63469 +[#63470]: https://github.com/home-assistant/core/pull/63470 +[#63471]: https://github.com/home-assistant/core/pull/63471 +[#63472]: https://github.com/home-assistant/core/pull/63472 +[#63473]: https://github.com/home-assistant/core/pull/63473 +[#63474]: https://github.com/home-assistant/core/pull/63474 +[#63475]: https://github.com/home-assistant/core/pull/63475 +[#63476]: https://github.com/home-assistant/core/pull/63476 +[#63477]: https://github.com/home-assistant/core/pull/63477 +[#63479]: https://github.com/home-assistant/core/pull/63479 +[#63480]: https://github.com/home-assistant/core/pull/63480 +[#63483]: https://github.com/home-assistant/core/pull/63483 +[#63484]: https://github.com/home-assistant/core/pull/63484 +[#63485]: https://github.com/home-assistant/core/pull/63485 +[#63486]: https://github.com/home-assistant/core/pull/63486 +[#63487]: https://github.com/home-assistant/core/pull/63487 +[#63489]: https://github.com/home-assistant/core/pull/63489 +[#63490]: https://github.com/home-assistant/core/pull/63490 +[#63491]: https://github.com/home-assistant/core/pull/63491 +[#63493]: https://github.com/home-assistant/core/pull/63493 +[#63498]: https://github.com/home-assistant/core/pull/63498 +[#63500]: https://github.com/home-assistant/core/pull/63500 +[#63501]: https://github.com/home-assistant/core/pull/63501 +[#63502]: https://github.com/home-assistant/core/pull/63502 +[#63503]: https://github.com/home-assistant/core/pull/63503 +[#63504]: https://github.com/home-assistant/core/pull/63504 +[#63505]: https://github.com/home-assistant/core/pull/63505 +[#63506]: https://github.com/home-assistant/core/pull/63506 +[#63507]: https://github.com/home-assistant/core/pull/63507 +[#63508]: https://github.com/home-assistant/core/pull/63508 +[#63509]: https://github.com/home-assistant/core/pull/63509 +[#63510]: https://github.com/home-assistant/core/pull/63510 +[#63513]: https://github.com/home-assistant/core/pull/63513 +[#63516]: https://github.com/home-assistant/core/pull/63516 +[#63517]: https://github.com/home-assistant/core/pull/63517 +[#63518]: https://github.com/home-assistant/core/pull/63518 +[#63519]: https://github.com/home-assistant/core/pull/63519 +[#63521]: https://github.com/home-assistant/core/pull/63521 +[#63522]: https://github.com/home-assistant/core/pull/63522 +[#63524]: https://github.com/home-assistant/core/pull/63524 +[#63526]: https://github.com/home-assistant/core/pull/63526 +[#63531]: https://github.com/home-assistant/core/pull/63531 +[#63535]: https://github.com/home-assistant/core/pull/63535 +[#63541]: https://github.com/home-assistant/core/pull/63541 +[#63542]: https://github.com/home-assistant/core/pull/63542 +[#63543]: https://github.com/home-assistant/core/pull/63543 +[#63547]: https://github.com/home-assistant/core/pull/63547 +[#63552]: https://github.com/home-assistant/core/pull/63552 +[#63553]: https://github.com/home-assistant/core/pull/63553 +[#63554]: https://github.com/home-assistant/core/pull/63554 +[#63559]: https://github.com/home-assistant/core/pull/63559 +[#63561]: https://github.com/home-assistant/core/pull/63561 +[#63563]: https://github.com/home-assistant/core/pull/63563 +[#63564]: https://github.com/home-assistant/core/pull/63564 +[#63565]: https://github.com/home-assistant/core/pull/63565 +[#63566]: https://github.com/home-assistant/core/pull/63566 +[#63569]: https://github.com/home-assistant/core/pull/63569 +[#63570]: https://github.com/home-assistant/core/pull/63570 +[#63571]: https://github.com/home-assistant/core/pull/63571 +[#63573]: https://github.com/home-assistant/core/pull/63573 +[#63576]: https://github.com/home-assistant/core/pull/63576 +[#63577]: https://github.com/home-assistant/core/pull/63577 +[#63579]: https://github.com/home-assistant/core/pull/63579 +[#63581]: https://github.com/home-assistant/core/pull/63581 +[#63586]: https://github.com/home-assistant/core/pull/63586 +[#63587]: https://github.com/home-assistant/core/pull/63587 +[#63589]: https://github.com/home-assistant/core/pull/63589 +[#63590]: https://github.com/home-assistant/core/pull/63590 +[#63592]: https://github.com/home-assistant/core/pull/63592 +[#63596]: https://github.com/home-assistant/core/pull/63596 +[#63597]: https://github.com/home-assistant/core/pull/63597 +[#63598]: https://github.com/home-assistant/core/pull/63598 +[#63599]: https://github.com/home-assistant/core/pull/63599 +[#63603]: https://github.com/home-assistant/core/pull/63603 +[#63605]: https://github.com/home-assistant/core/pull/63605 +[#63607]: https://github.com/home-assistant/core/pull/63607 +[#63613]: https://github.com/home-assistant/core/pull/63613 +[#63614]: https://github.com/home-assistant/core/pull/63614 +[#63622]: https://github.com/home-assistant/core/pull/63622 +[#63623]: https://github.com/home-assistant/core/pull/63623 +[#63625]: https://github.com/home-assistant/core/pull/63625 +[#63626]: https://github.com/home-assistant/core/pull/63626 +[#63632]: https://github.com/home-assistant/core/pull/63632 +[#63637]: https://github.com/home-assistant/core/pull/63637 +[#63639]: https://github.com/home-assistant/core/pull/63639 +[#63642]: https://github.com/home-assistant/core/pull/63642 +[#63643]: https://github.com/home-assistant/core/pull/63643 +[#63644]: https://github.com/home-assistant/core/pull/63644 +[#63645]: https://github.com/home-assistant/core/pull/63645 +[#63646]: https://github.com/home-assistant/core/pull/63646 +[#63648]: https://github.com/home-assistant/core/pull/63648 +[#63653]: https://github.com/home-assistant/core/pull/63653 +[#63657]: https://github.com/home-assistant/core/pull/63657 +[#63659]: https://github.com/home-assistant/core/pull/63659 +[#63660]: https://github.com/home-assistant/core/pull/63660 +[#63661]: https://github.com/home-assistant/core/pull/63661 +[#63663]: https://github.com/home-assistant/core/pull/63663 +[#63664]: https://github.com/home-assistant/core/pull/63664 +[#63665]: https://github.com/home-assistant/core/pull/63665 +[#63667]: https://github.com/home-assistant/core/pull/63667 +[#63668]: https://github.com/home-assistant/core/pull/63668 +[#63669]: https://github.com/home-assistant/core/pull/63669 +[#63672]: https://github.com/home-assistant/core/pull/63672 +[#63673]: https://github.com/home-assistant/core/pull/63673 +[#63674]: https://github.com/home-assistant/core/pull/63674 +[#63675]: https://github.com/home-assistant/core/pull/63675 +[#63676]: https://github.com/home-assistant/core/pull/63676 +[#63677]: https://github.com/home-assistant/core/pull/63677 +[#63681]: https://github.com/home-assistant/core/pull/63681 +[#63682]: https://github.com/home-assistant/core/pull/63682 +[#63685]: https://github.com/home-assistant/core/pull/63685 +[#63687]: https://github.com/home-assistant/core/pull/63687 +[#63691]: https://github.com/home-assistant/core/pull/63691 +[#63692]: https://github.com/home-assistant/core/pull/63692 +[#63693]: https://github.com/home-assistant/core/pull/63693 +[#63696]: https://github.com/home-assistant/core/pull/63696 +[#63697]: https://github.com/home-assistant/core/pull/63697 +[#63701]: https://github.com/home-assistant/core/pull/63701 +[#63703]: https://github.com/home-assistant/core/pull/63703 +[#63707]: https://github.com/home-assistant/core/pull/63707 +[#63708]: https://github.com/home-assistant/core/pull/63708 +[#63716]: https://github.com/home-assistant/core/pull/63716 +[#63719]: https://github.com/home-assistant/core/pull/63719 +[#63724]: https://github.com/home-assistant/core/pull/63724 +[#63732]: https://github.com/home-assistant/core/pull/63732 +[#63734]: https://github.com/home-assistant/core/pull/63734 +[#63744]: https://github.com/home-assistant/core/pull/63744 +[#63748]: https://github.com/home-assistant/core/pull/63748 +[#63750]: https://github.com/home-assistant/core/pull/63750 +[#63751]: https://github.com/home-assistant/core/pull/63751 +[#63753]: https://github.com/home-assistant/core/pull/63753 +[#63754]: https://github.com/home-assistant/core/pull/63754 +[#63756]: https://github.com/home-assistant/core/pull/63756 +[#63760]: https://github.com/home-assistant/core/pull/63760 +[#63761]: https://github.com/home-assistant/core/pull/63761 +[#63766]: https://github.com/home-assistant/core/pull/63766 +[#63767]: https://github.com/home-assistant/core/pull/63767 +[#63768]: https://github.com/home-assistant/core/pull/63768 +[#63772]: https://github.com/home-assistant/core/pull/63772 +[#63773]: https://github.com/home-assistant/core/pull/63773 +[#63774]: https://github.com/home-assistant/core/pull/63774 +[#63777]: https://github.com/home-assistant/core/pull/63777 +[#63778]: https://github.com/home-assistant/core/pull/63778 +[#63779]: https://github.com/home-assistant/core/pull/63779 +[#63781]: https://github.com/home-assistant/core/pull/63781 +[#63782]: https://github.com/home-assistant/core/pull/63782 +[#63783]: https://github.com/home-assistant/core/pull/63783 +[#63784]: https://github.com/home-assistant/core/pull/63784 +[#63785]: https://github.com/home-assistant/core/pull/63785 +[#63786]: https://github.com/home-assistant/core/pull/63786 +[#63787]: https://github.com/home-assistant/core/pull/63787 +[#63788]: https://github.com/home-assistant/core/pull/63788 +[#63789]: https://github.com/home-assistant/core/pull/63789 +[#63791]: https://github.com/home-assistant/core/pull/63791 +[#63792]: https://github.com/home-assistant/core/pull/63792 +[#63796]: https://github.com/home-assistant/core/pull/63796 +[#63797]: https://github.com/home-assistant/core/pull/63797 +[#63798]: https://github.com/home-assistant/core/pull/63798 +[#63801]: https://github.com/home-assistant/core/pull/63801 +[#63802]: https://github.com/home-assistant/core/pull/63802 +[#63803]: https://github.com/home-assistant/core/pull/63803 +[#63805]: https://github.com/home-assistant/core/pull/63805 +[#63807]: https://github.com/home-assistant/core/pull/63807 +[#63808]: https://github.com/home-assistant/core/pull/63808 +[#63809]: https://github.com/home-assistant/core/pull/63809 +[#63810]: https://github.com/home-assistant/core/pull/63810 +[#63811]: https://github.com/home-assistant/core/pull/63811 +[#63814]: https://github.com/home-assistant/core/pull/63814 +[#63820]: https://github.com/home-assistant/core/pull/63820 +[#63821]: https://github.com/home-assistant/core/pull/63821 +[#63824]: https://github.com/home-assistant/core/pull/63824 +[#63825]: https://github.com/home-assistant/core/pull/63825 +[#63826]: https://github.com/home-assistant/core/pull/63826 +[#63827]: https://github.com/home-assistant/core/pull/63827 +[#63828]: https://github.com/home-assistant/core/pull/63828 +[#63829]: https://github.com/home-assistant/core/pull/63829 +[#63830]: https://github.com/home-assistant/core/pull/63830 +[#63832]: https://github.com/home-assistant/core/pull/63832 +[#63833]: https://github.com/home-assistant/core/pull/63833 +[#63834]: https://github.com/home-assistant/core/pull/63834 +[#63836]: https://github.com/home-assistant/core/pull/63836 +[#63838]: https://github.com/home-assistant/core/pull/63838 +[#63839]: https://github.com/home-assistant/core/pull/63839 +[#63842]: https://github.com/home-assistant/core/pull/63842 +[#63843]: https://github.com/home-assistant/core/pull/63843 +[#63847]: https://github.com/home-assistant/core/pull/63847 +[#63848]: https://github.com/home-assistant/core/pull/63848 +[#63850]: https://github.com/home-assistant/core/pull/63850 +[#63851]: https://github.com/home-assistant/core/pull/63851 +[#63855]: https://github.com/home-assistant/core/pull/63855 +[#63856]: https://github.com/home-assistant/core/pull/63856 +[#63857]: https://github.com/home-assistant/core/pull/63857 +[#63860]: https://github.com/home-assistant/core/pull/63860 +[#63862]: https://github.com/home-assistant/core/pull/63862 +[#63863]: https://github.com/home-assistant/core/pull/63863 +[#63871]: https://github.com/home-assistant/core/pull/63871 +[#63873]: https://github.com/home-assistant/core/pull/63873 +[#63875]: https://github.com/home-assistant/core/pull/63875 +[#63877]: https://github.com/home-assistant/core/pull/63877 +[#63879]: https://github.com/home-assistant/core/pull/63879 +[#63880]: https://github.com/home-assistant/core/pull/63880 +[#63882]: https://github.com/home-assistant/core/pull/63882 +[#63883]: https://github.com/home-assistant/core/pull/63883 +[#63884]: https://github.com/home-assistant/core/pull/63884 +[#63887]: https://github.com/home-assistant/core/pull/63887 +[#63888]: https://github.com/home-assistant/core/pull/63888 +[#63890]: https://github.com/home-assistant/core/pull/63890 +[#63891]: https://github.com/home-assistant/core/pull/63891 +[#63894]: https://github.com/home-assistant/core/pull/63894 +[#63895]: https://github.com/home-assistant/core/pull/63895 +[#63897]: https://github.com/home-assistant/core/pull/63897 +[#63898]: https://github.com/home-assistant/core/pull/63898 +[#63899]: https://github.com/home-assistant/core/pull/63899 +[#63900]: https://github.com/home-assistant/core/pull/63900 +[#63901]: https://github.com/home-assistant/core/pull/63901 +[#63902]: https://github.com/home-assistant/core/pull/63902 +[#63903]: https://github.com/home-assistant/core/pull/63903 +[#63904]: https://github.com/home-assistant/core/pull/63904 +[#63905]: https://github.com/home-assistant/core/pull/63905 +[#63906]: https://github.com/home-assistant/core/pull/63906 +[#63907]: https://github.com/home-assistant/core/pull/63907 +[#63908]: https://github.com/home-assistant/core/pull/63908 +[#63910]: https://github.com/home-assistant/core/pull/63910 +[#63911]: https://github.com/home-assistant/core/pull/63911 +[#63912]: https://github.com/home-assistant/core/pull/63912 +[#63914]: https://github.com/home-assistant/core/pull/63914 +[#63917]: https://github.com/home-assistant/core/pull/63917 +[#63918]: https://github.com/home-assistant/core/pull/63918 +[#63919]: https://github.com/home-assistant/core/pull/63919 +[#63920]: https://github.com/home-assistant/core/pull/63920 +[#63921]: https://github.com/home-assistant/core/pull/63921 +[#63922]: https://github.com/home-assistant/core/pull/63922 +[#63923]: https://github.com/home-assistant/core/pull/63923 +[#63924]: https://github.com/home-assistant/core/pull/63924 +[#63925]: https://github.com/home-assistant/core/pull/63925 +[#63926]: https://github.com/home-assistant/core/pull/63926 +[#63927]: https://github.com/home-assistant/core/pull/63927 +[#63929]: https://github.com/home-assistant/core/pull/63929 +[#63933]: https://github.com/home-assistant/core/pull/63933 +[#63934]: https://github.com/home-assistant/core/pull/63934 +[#63935]: https://github.com/home-assistant/core/pull/63935 +[#63937]: https://github.com/home-assistant/core/pull/63937 +[#63940]: https://github.com/home-assistant/core/pull/63940 +[#63943]: https://github.com/home-assistant/core/pull/63943 +[#63945]: https://github.com/home-assistant/core/pull/63945 +[#63946]: https://github.com/home-assistant/core/pull/63946 +[#63947]: https://github.com/home-assistant/core/pull/63947 +[#63948]: https://github.com/home-assistant/core/pull/63948 +[#63951]: https://github.com/home-assistant/core/pull/63951 +[#63952]: https://github.com/home-assistant/core/pull/63952 +[#63955]: https://github.com/home-assistant/core/pull/63955 +[#63960]: https://github.com/home-assistant/core/pull/63960 +[#63961]: https://github.com/home-assistant/core/pull/63961 +[#63963]: https://github.com/home-assistant/core/pull/63963 +[#63968]: https://github.com/home-assistant/core/pull/63968 +[#63969]: https://github.com/home-assistant/core/pull/63969 +[#63972]: https://github.com/home-assistant/core/pull/63972 +[#63973]: https://github.com/home-assistant/core/pull/63973 +[#63974]: https://github.com/home-assistant/core/pull/63974 +[#63975]: https://github.com/home-assistant/core/pull/63975 +[#63979]: https://github.com/home-assistant/core/pull/63979 +[#63982]: https://github.com/home-assistant/core/pull/63982 +[#63983]: https://github.com/home-assistant/core/pull/63983 +[#63985]: https://github.com/home-assistant/core/pull/63985 +[#63986]: https://github.com/home-assistant/core/pull/63986 +[#63987]: https://github.com/home-assistant/core/pull/63987 +[#63988]: https://github.com/home-assistant/core/pull/63988 +[#63989]: https://github.com/home-assistant/core/pull/63989 +[#63990]: https://github.com/home-assistant/core/pull/63990 +[#63993]: https://github.com/home-assistant/core/pull/63993 +[#63994]: https://github.com/home-assistant/core/pull/63994 +[#63995]: https://github.com/home-assistant/core/pull/63995 +[#63998]: https://github.com/home-assistant/core/pull/63998 +[#64000]: https://github.com/home-assistant/core/pull/64000 +[#64001]: https://github.com/home-assistant/core/pull/64001 +[#64002]: https://github.com/home-assistant/core/pull/64002 +[#64005]: https://github.com/home-assistant/core/pull/64005 +[#64006]: https://github.com/home-assistant/core/pull/64006 +[#64008]: https://github.com/home-assistant/core/pull/64008 +[#64009]: https://github.com/home-assistant/core/pull/64009 +[#64010]: https://github.com/home-assistant/core/pull/64010 +[#64011]: https://github.com/home-assistant/core/pull/64011 +[#64012]: https://github.com/home-assistant/core/pull/64012 +[#64016]: https://github.com/home-assistant/core/pull/64016 +[#64017]: https://github.com/home-assistant/core/pull/64017 +[#64019]: https://github.com/home-assistant/core/pull/64019 +[#64021]: https://github.com/home-assistant/core/pull/64021 +[#64025]: https://github.com/home-assistant/core/pull/64025 +[#64028]: https://github.com/home-assistant/core/pull/64028 +[#64029]: https://github.com/home-assistant/core/pull/64029 +[#64030]: https://github.com/home-assistant/core/pull/64030 +[#64031]: https://github.com/home-assistant/core/pull/64031 +[#64033]: https://github.com/home-assistant/core/pull/64033 +[#64034]: https://github.com/home-assistant/core/pull/64034 +[#64035]: https://github.com/home-assistant/core/pull/64035 +[#64036]: https://github.com/home-assistant/core/pull/64036 +[#64041]: https://github.com/home-assistant/core/pull/64041 +[#64044]: https://github.com/home-assistant/core/pull/64044 +[#64045]: https://github.com/home-assistant/core/pull/64045 +[#64046]: https://github.com/home-assistant/core/pull/64046 +[#64048]: https://github.com/home-assistant/core/pull/64048 +[#64050]: https://github.com/home-assistant/core/pull/64050 +[#64051]: https://github.com/home-assistant/core/pull/64051 +[#64052]: https://github.com/home-assistant/core/pull/64052 +[#64054]: https://github.com/home-assistant/core/pull/64054 +[#64055]: https://github.com/home-assistant/core/pull/64055 +[#64056]: https://github.com/home-assistant/core/pull/64056 +[#64057]: https://github.com/home-assistant/core/pull/64057 +[#64058]: https://github.com/home-assistant/core/pull/64058 +[#64060]: https://github.com/home-assistant/core/pull/64060 +[#64064]: https://github.com/home-assistant/core/pull/64064 +[#64065]: https://github.com/home-assistant/core/pull/64065 +[#64068]: https://github.com/home-assistant/core/pull/64068 +[#64069]: https://github.com/home-assistant/core/pull/64069 +[#64070]: https://github.com/home-assistant/core/pull/64070 +[#64072]: https://github.com/home-assistant/core/pull/64072 +[#64073]: https://github.com/home-assistant/core/pull/64073 +[#64074]: https://github.com/home-assistant/core/pull/64074 +[#64076]: https://github.com/home-assistant/core/pull/64076 +[#64078]: https://github.com/home-assistant/core/pull/64078 +[#64079]: https://github.com/home-assistant/core/pull/64079 +[#64080]: https://github.com/home-assistant/core/pull/64080 +[#64081]: https://github.com/home-assistant/core/pull/64081 +[#64082]: https://github.com/home-assistant/core/pull/64082 +[#64083]: https://github.com/home-assistant/core/pull/64083 +[#64084]: https://github.com/home-assistant/core/pull/64084 +[#64085]: https://github.com/home-assistant/core/pull/64085 +[#64086]: https://github.com/home-assistant/core/pull/64086 +[#64088]: https://github.com/home-assistant/core/pull/64088 +[#64089]: https://github.com/home-assistant/core/pull/64089 +[#64091]: https://github.com/home-assistant/core/pull/64091 +[#64093]: https://github.com/home-assistant/core/pull/64093 +[#64095]: https://github.com/home-assistant/core/pull/64095 +[#64097]: https://github.com/home-assistant/core/pull/64097 +[#64098]: https://github.com/home-assistant/core/pull/64098 +[#64099]: https://github.com/home-assistant/core/pull/64099 +[#64100]: https://github.com/home-assistant/core/pull/64100 +[#64102]: https://github.com/home-assistant/core/pull/64102 +[#64104]: https://github.com/home-assistant/core/pull/64104 +[#64105]: https://github.com/home-assistant/core/pull/64105 +[#64106]: https://github.com/home-assistant/core/pull/64106 +[#64108]: https://github.com/home-assistant/core/pull/64108 +[#64109]: https://github.com/home-assistant/core/pull/64109 +[#64113]: https://github.com/home-assistant/core/pull/64113 +[#64115]: https://github.com/home-assistant/core/pull/64115 +[#64116]: https://github.com/home-assistant/core/pull/64116 +[#64117]: https://github.com/home-assistant/core/pull/64117 +[#64121]: https://github.com/home-assistant/core/pull/64121 +[#64122]: https://github.com/home-assistant/core/pull/64122 +[#64126]: https://github.com/home-assistant/core/pull/64126 +[#64130]: https://github.com/home-assistant/core/pull/64130 +[#64131]: https://github.com/home-assistant/core/pull/64131 +[#64132]: https://github.com/home-assistant/core/pull/64132 +[#64133]: https://github.com/home-assistant/core/pull/64133 +[#64134]: https://github.com/home-assistant/core/pull/64134 +[#64135]: https://github.com/home-assistant/core/pull/64135 +[#64136]: https://github.com/home-assistant/core/pull/64136 +[#64138]: https://github.com/home-assistant/core/pull/64138 +[#64139]: https://github.com/home-assistant/core/pull/64139 +[#64145]: https://github.com/home-assistant/core/pull/64145 +[#64147]: https://github.com/home-assistant/core/pull/64147 +[#64153]: https://github.com/home-assistant/core/pull/64153 +[#64155]: https://github.com/home-assistant/core/pull/64155 +[#64156]: https://github.com/home-assistant/core/pull/64156 +[#64158]: https://github.com/home-assistant/core/pull/64158 +[#64159]: https://github.com/home-assistant/core/pull/64159 +[#64160]: https://github.com/home-assistant/core/pull/64160 +[#64164]: https://github.com/home-assistant/core/pull/64164 +[#64165]: https://github.com/home-assistant/core/pull/64165 +[#64168]: https://github.com/home-assistant/core/pull/64168 +[#64170]: https://github.com/home-assistant/core/pull/64170 +[#64171]: https://github.com/home-assistant/core/pull/64171 +[#64178]: https://github.com/home-assistant/core/pull/64178 +[#64179]: https://github.com/home-assistant/core/pull/64179 +[#64181]: https://github.com/home-assistant/core/pull/64181 +[#64185]: https://github.com/home-assistant/core/pull/64185 +[#64186]: https://github.com/home-assistant/core/pull/64186 +[#64187]: https://github.com/home-assistant/core/pull/64187 +[#64188]: https://github.com/home-assistant/core/pull/64188 +[#64189]: https://github.com/home-assistant/core/pull/64189 +[#64190]: https://github.com/home-assistant/core/pull/64190 +[#64193]: https://github.com/home-assistant/core/pull/64193 +[#64195]: https://github.com/home-assistant/core/pull/64195 +[#64197]: https://github.com/home-assistant/core/pull/64197 +[#64198]: https://github.com/home-assistant/core/pull/64198 +[#64201]: https://github.com/home-assistant/core/pull/64201 +[#64202]: https://github.com/home-assistant/core/pull/64202 +[#64203]: https://github.com/home-assistant/core/pull/64203 +[#64204]: https://github.com/home-assistant/core/pull/64204 +[#64205]: https://github.com/home-assistant/core/pull/64205 +[#64208]: https://github.com/home-assistant/core/pull/64208 +[#64209]: https://github.com/home-assistant/core/pull/64209 +[#64211]: https://github.com/home-assistant/core/pull/64211 +[#64212]: https://github.com/home-assistant/core/pull/64212 +[#64213]: https://github.com/home-assistant/core/pull/64213 +[#64214]: https://github.com/home-assistant/core/pull/64214 +[#64218]: https://github.com/home-assistant/core/pull/64218 +[#64219]: https://github.com/home-assistant/core/pull/64219 +[#64220]: https://github.com/home-assistant/core/pull/64220 +[#64227]: https://github.com/home-assistant/core/pull/64227 +[#64228]: https://github.com/home-assistant/core/pull/64228 +[#64229]: https://github.com/home-assistant/core/pull/64229 +[#64230]: https://github.com/home-assistant/core/pull/64230 +[#64231]: https://github.com/home-assistant/core/pull/64231 +[#64232]: https://github.com/home-assistant/core/pull/64232 +[#64233]: https://github.com/home-assistant/core/pull/64233 +[#64234]: https://github.com/home-assistant/core/pull/64234 +[#64235]: https://github.com/home-assistant/core/pull/64235 +[#64236]: https://github.com/home-assistant/core/pull/64236 +[#64237]: https://github.com/home-assistant/core/pull/64237 +[#64238]: https://github.com/home-assistant/core/pull/64238 +[#64239]: https://github.com/home-assistant/core/pull/64239 +[#64240]: https://github.com/home-assistant/core/pull/64240 +[#64241]: https://github.com/home-assistant/core/pull/64241 +[#64242]: https://github.com/home-assistant/core/pull/64242 +[#64243]: https://github.com/home-assistant/core/pull/64243 +[#64244]: https://github.com/home-assistant/core/pull/64244 +[#64245]: https://github.com/home-assistant/core/pull/64245 +[#64247]: https://github.com/home-assistant/core/pull/64247 +[#64248]: https://github.com/home-assistant/core/pull/64248 +[#64250]: https://github.com/home-assistant/core/pull/64250 +[#64251]: https://github.com/home-assistant/core/pull/64251 +[#64252]: https://github.com/home-assistant/core/pull/64252 +[#64253]: https://github.com/home-assistant/core/pull/64253 +[#64255]: https://github.com/home-assistant/core/pull/64255 +[#64257]: https://github.com/home-assistant/core/pull/64257 +[#64258]: https://github.com/home-assistant/core/pull/64258 +[#64259]: https://github.com/home-assistant/core/pull/64259 +[#64260]: https://github.com/home-assistant/core/pull/64260 +[#64261]: https://github.com/home-assistant/core/pull/64261 +[#64262]: https://github.com/home-assistant/core/pull/64262 +[#64263]: https://github.com/home-assistant/core/pull/64263 +[#64264]: https://github.com/home-assistant/core/pull/64264 +[#64265]: https://github.com/home-assistant/core/pull/64265 +[#64266]: https://github.com/home-assistant/core/pull/64266 +[#64267]: https://github.com/home-assistant/core/pull/64267 +[#64268]: https://github.com/home-assistant/core/pull/64268 +[#64269]: https://github.com/home-assistant/core/pull/64269 +[#64270]: https://github.com/home-assistant/core/pull/64270 +[#64271]: https://github.com/home-assistant/core/pull/64271 +[#64272]: https://github.com/home-assistant/core/pull/64272 +[#64273]: https://github.com/home-assistant/core/pull/64273 +[#64274]: https://github.com/home-assistant/core/pull/64274 +[#64275]: https://github.com/home-assistant/core/pull/64275 +[#64276]: https://github.com/home-assistant/core/pull/64276 +[#64278]: https://github.com/home-assistant/core/pull/64278 +[#64280]: https://github.com/home-assistant/core/pull/64280 +[#64283]: https://github.com/home-assistant/core/pull/64283 +[#64286]: https://github.com/home-assistant/core/pull/64286 +[#64287]: https://github.com/home-assistant/core/pull/64287 +[#64289]: https://github.com/home-assistant/core/pull/64289 +[#64290]: https://github.com/home-assistant/core/pull/64290 +[#64291]: https://github.com/home-assistant/core/pull/64291 +[#64293]: https://github.com/home-assistant/core/pull/64293 +[#64294]: https://github.com/home-assistant/core/pull/64294 +[#64296]: https://github.com/home-assistant/core/pull/64296 +[#64297]: https://github.com/home-assistant/core/pull/64297 +[#64301]: https://github.com/home-assistant/core/pull/64301 +[#64304]: https://github.com/home-assistant/core/pull/64304 +[#64306]: https://github.com/home-assistant/core/pull/64306 +[#64311]: https://github.com/home-assistant/core/pull/64311 +[#64312]: https://github.com/home-assistant/core/pull/64312 +[#64313]: https://github.com/home-assistant/core/pull/64313 +[#64320]: https://github.com/home-assistant/core/pull/64320 +[#64321]: https://github.com/home-assistant/core/pull/64321 +[#64322]: https://github.com/home-assistant/core/pull/64322 +[#64324]: https://github.com/home-assistant/core/pull/64324 +[#64329]: https://github.com/home-assistant/core/pull/64329 +[#64330]: https://github.com/home-assistant/core/pull/64330 +[#64333]: https://github.com/home-assistant/core/pull/64333 +[#64334]: https://github.com/home-assistant/core/pull/64334 +[#64336]: https://github.com/home-assistant/core/pull/64336 +[#64337]: https://github.com/home-assistant/core/pull/64337 +[#64339]: https://github.com/home-assistant/core/pull/64339 +[#64340]: https://github.com/home-assistant/core/pull/64340 +[#64341]: https://github.com/home-assistant/core/pull/64341 +[#64343]: https://github.com/home-assistant/core/pull/64343 +[#64344]: https://github.com/home-assistant/core/pull/64344 +[#64345]: https://github.com/home-assistant/core/pull/64345 +[#64347]: https://github.com/home-assistant/core/pull/64347 +[#64350]: https://github.com/home-assistant/core/pull/64350 +[#64351]: https://github.com/home-assistant/core/pull/64351 +[#64352]: https://github.com/home-assistant/core/pull/64352 +[#64354]: https://github.com/home-assistant/core/pull/64354 +[#64355]: https://github.com/home-assistant/core/pull/64355 +[#64358]: https://github.com/home-assistant/core/pull/64358 +[#64367]: https://github.com/home-assistant/core/pull/64367 +[#64368]: https://github.com/home-assistant/core/pull/64368 +[#64374]: https://github.com/home-assistant/core/pull/64374 +[#64376]: https://github.com/home-assistant/core/pull/64376 +[#64377]: https://github.com/home-assistant/core/pull/64377 +[#64378]: https://github.com/home-assistant/core/pull/64378 +[#64379]: https://github.com/home-assistant/core/pull/64379 +[#64380]: https://github.com/home-assistant/core/pull/64380 +[#64382]: https://github.com/home-assistant/core/pull/64382 +[#64385]: https://github.com/home-assistant/core/pull/64385 +[#64386]: https://github.com/home-assistant/core/pull/64386 +[#64387]: https://github.com/home-assistant/core/pull/64387 +[#64388]: https://github.com/home-assistant/core/pull/64388 +[#64389]: https://github.com/home-assistant/core/pull/64389 +[#64391]: https://github.com/home-assistant/core/pull/64391 +[#64392]: https://github.com/home-assistant/core/pull/64392 +[#64394]: https://github.com/home-assistant/core/pull/64394 +[#64395]: https://github.com/home-assistant/core/pull/64395 +[#64397]: https://github.com/home-assistant/core/pull/64397 +[#64402]: https://github.com/home-assistant/core/pull/64402 +[#64403]: https://github.com/home-assistant/core/pull/64403 +[#64405]: https://github.com/home-assistant/core/pull/64405 +[#64407]: https://github.com/home-assistant/core/pull/64407 +[#64409]: https://github.com/home-assistant/core/pull/64409 +[#64411]: https://github.com/home-assistant/core/pull/64411 +[#64412]: https://github.com/home-assistant/core/pull/64412 +[#64413]: https://github.com/home-assistant/core/pull/64413 +[#64414]: https://github.com/home-assistant/core/pull/64414 +[#64417]: https://github.com/home-assistant/core/pull/64417 +[#64419]: https://github.com/home-assistant/core/pull/64419 +[#64420]: https://github.com/home-assistant/core/pull/64420 +[#64421]: https://github.com/home-assistant/core/pull/64421 +[#64424]: https://github.com/home-assistant/core/pull/64424 +[#64427]: https://github.com/home-assistant/core/pull/64427 +[#64428]: https://github.com/home-assistant/core/pull/64428 +[#64430]: https://github.com/home-assistant/core/pull/64430 +[#64431]: https://github.com/home-assistant/core/pull/64431 +[#64435]: https://github.com/home-assistant/core/pull/64435 +[#64437]: https://github.com/home-assistant/core/pull/64437 +[#64438]: https://github.com/home-assistant/core/pull/64438 +[#64439]: https://github.com/home-assistant/core/pull/64439 +[#64448]: https://github.com/home-assistant/core/pull/64448 +[#64449]: https://github.com/home-assistant/core/pull/64449 +[#64450]: https://github.com/home-assistant/core/pull/64450 +[#64452]: https://github.com/home-assistant/core/pull/64452 +[#64456]: https://github.com/home-assistant/core/pull/64456 +[#64457]: https://github.com/home-assistant/core/pull/64457 +[#64462]: https://github.com/home-assistant/core/pull/64462 +[#64463]: https://github.com/home-assistant/core/pull/64463 +[#64466]: https://github.com/home-assistant/core/pull/64466 +[#64467]: https://github.com/home-assistant/core/pull/64467 +[#64468]: https://github.com/home-assistant/core/pull/64468 +[#64469]: https://github.com/home-assistant/core/pull/64469 +[#64470]: https://github.com/home-assistant/core/pull/64470 +[#64471]: https://github.com/home-assistant/core/pull/64471 +[#64472]: https://github.com/home-assistant/core/pull/64472 +[#64473]: https://github.com/home-assistant/core/pull/64473 +[#64474]: https://github.com/home-assistant/core/pull/64474 +[#64475]: https://github.com/home-assistant/core/pull/64475 +[#64476]: https://github.com/home-assistant/core/pull/64476 +[#64478]: https://github.com/home-assistant/core/pull/64478 +[#64479]: https://github.com/home-assistant/core/pull/64479 +[#64480]: https://github.com/home-assistant/core/pull/64480 +[#64481]: https://github.com/home-assistant/core/pull/64481 +[#64483]: https://github.com/home-assistant/core/pull/64483 +[#64486]: https://github.com/home-assistant/core/pull/64486 +[#64489]: https://github.com/home-assistant/core/pull/64489 +[#64490]: https://github.com/home-assistant/core/pull/64490 +[#64492]: https://github.com/home-assistant/core/pull/64492 +[#64493]: https://github.com/home-assistant/core/pull/64493 +[#64495]: https://github.com/home-assistant/core/pull/64495 +[#64496]: https://github.com/home-assistant/core/pull/64496 +[#64498]: https://github.com/home-assistant/core/pull/64498 +[#64499]: https://github.com/home-assistant/core/pull/64499 +[#64500]: https://github.com/home-assistant/core/pull/64500 +[#64501]: https://github.com/home-assistant/core/pull/64501 +[#64502]: https://github.com/home-assistant/core/pull/64502 +[#64503]: https://github.com/home-assistant/core/pull/64503 +[#64504]: https://github.com/home-assistant/core/pull/64504 +[#64505]: https://github.com/home-assistant/core/pull/64505 +[#64506]: https://github.com/home-assistant/core/pull/64506 +[#64507]: https://github.com/home-assistant/core/pull/64507 +[#64508]: https://github.com/home-assistant/core/pull/64508 +[#64509]: https://github.com/home-assistant/core/pull/64509 +[#64510]: https://github.com/home-assistant/core/pull/64510 +[#64511]: https://github.com/home-assistant/core/pull/64511 +[#64512]: https://github.com/home-assistant/core/pull/64512 +[#64513]: https://github.com/home-assistant/core/pull/64513 +[#64514]: https://github.com/home-assistant/core/pull/64514 +[#64515]: https://github.com/home-assistant/core/pull/64515 +[#64516]: https://github.com/home-assistant/core/pull/64516 +[#64517]: https://github.com/home-assistant/core/pull/64517 +[#64519]: https://github.com/home-assistant/core/pull/64519 +[#64520]: https://github.com/home-assistant/core/pull/64520 +[#64521]: https://github.com/home-assistant/core/pull/64521 +[#64522]: https://github.com/home-assistant/core/pull/64522 +[#64523]: https://github.com/home-assistant/core/pull/64523 +[#64524]: https://github.com/home-assistant/core/pull/64524 +[#64525]: https://github.com/home-assistant/core/pull/64525 +[#64526]: https://github.com/home-assistant/core/pull/64526 +[#64527]: https://github.com/home-assistant/core/pull/64527 +[#64528]: https://github.com/home-assistant/core/pull/64528 +[#64529]: https://github.com/home-assistant/core/pull/64529 +[#64531]: https://github.com/home-assistant/core/pull/64531 +[#64532]: https://github.com/home-assistant/core/pull/64532 +[#64533]: https://github.com/home-assistant/core/pull/64533 +[#64534]: https://github.com/home-assistant/core/pull/64534 +[#64536]: https://github.com/home-assistant/core/pull/64536 +[#64537]: https://github.com/home-assistant/core/pull/64537 +[#64540]: https://github.com/home-assistant/core/pull/64540 +[#64541]: https://github.com/home-assistant/core/pull/64541 +[#64542]: https://github.com/home-assistant/core/pull/64542 +[#64543]: https://github.com/home-assistant/core/pull/64543 +[#64544]: https://github.com/home-assistant/core/pull/64544 +[#64546]: https://github.com/home-assistant/core/pull/64546 +[#64549]: https://github.com/home-assistant/core/pull/64549 +[#64550]: https://github.com/home-assistant/core/pull/64550 +[#64552]: https://github.com/home-assistant/core/pull/64552 +[#64553]: https://github.com/home-assistant/core/pull/64553 +[#64554]: https://github.com/home-assistant/core/pull/64554 +[#64557]: https://github.com/home-assistant/core/pull/64557 +[#64558]: https://github.com/home-assistant/core/pull/64558 +[#64559]: https://github.com/home-assistant/core/pull/64559 +[#64561]: https://github.com/home-assistant/core/pull/64561 +[#64564]: https://github.com/home-assistant/core/pull/64564 +[#64565]: https://github.com/home-assistant/core/pull/64565 +[#64567]: https://github.com/home-assistant/core/pull/64567 +[#64568]: https://github.com/home-assistant/core/pull/64568 +[#64571]: https://github.com/home-assistant/core/pull/64571 +[#64572]: https://github.com/home-assistant/core/pull/64572 +[#64573]: https://github.com/home-assistant/core/pull/64573 +[#64574]: https://github.com/home-assistant/core/pull/64574 +[#64575]: https://github.com/home-assistant/core/pull/64575 +[#64576]: https://github.com/home-assistant/core/pull/64576 +[#64577]: https://github.com/home-assistant/core/pull/64577 +[#64579]: https://github.com/home-assistant/core/pull/64579 +[#64580]: https://github.com/home-assistant/core/pull/64580 +[#64581]: https://github.com/home-assistant/core/pull/64581 +[#64582]: https://github.com/home-assistant/core/pull/64582 +[#64583]: https://github.com/home-assistant/core/pull/64583 +[#64584]: https://github.com/home-assistant/core/pull/64584 +[#64585]: https://github.com/home-assistant/core/pull/64585 +[#64586]: https://github.com/home-assistant/core/pull/64586 +[#64587]: https://github.com/home-assistant/core/pull/64587 +[#64591]: https://github.com/home-assistant/core/pull/64591 +[#64593]: https://github.com/home-assistant/core/pull/64593 +[#64596]: https://github.com/home-assistant/core/pull/64596 +[#64597]: https://github.com/home-assistant/core/pull/64597 +[#64598]: https://github.com/home-assistant/core/pull/64598 +[#64599]: https://github.com/home-assistant/core/pull/64599 +[#64600]: https://github.com/home-assistant/core/pull/64600 +[#64601]: https://github.com/home-assistant/core/pull/64601 +[#64602]: https://github.com/home-assistant/core/pull/64602 +[#64603]: https://github.com/home-assistant/core/pull/64603 +[#64605]: https://github.com/home-assistant/core/pull/64605 +[#64606]: https://github.com/home-assistant/core/pull/64606 +[#64607]: https://github.com/home-assistant/core/pull/64607 +[#64608]: https://github.com/home-assistant/core/pull/64608 +[#64610]: https://github.com/home-assistant/core/pull/64610 +[#64613]: https://github.com/home-assistant/core/pull/64613 +[#64617]: https://github.com/home-assistant/core/pull/64617 +[#64618]: https://github.com/home-assistant/core/pull/64618 +[#64619]: https://github.com/home-assistant/core/pull/64619 +[#64620]: https://github.com/home-assistant/core/pull/64620 +[#64621]: https://github.com/home-assistant/core/pull/64621 +[#64622]: https://github.com/home-assistant/core/pull/64622 +[#64624]: https://github.com/home-assistant/core/pull/64624 +[#64625]: https://github.com/home-assistant/core/pull/64625 +[#64627]: https://github.com/home-assistant/core/pull/64627 +[#64629]: https://github.com/home-assistant/core/pull/64629 +[#64630]: https://github.com/home-assistant/core/pull/64630 +[#64631]: https://github.com/home-assistant/core/pull/64631 +[#64634]: https://github.com/home-assistant/core/pull/64634 +[#64636]: https://github.com/home-assistant/core/pull/64636 +[#64637]: https://github.com/home-assistant/core/pull/64637 +[#64638]: https://github.com/home-assistant/core/pull/64638 +[#64640]: https://github.com/home-assistant/core/pull/64640 +[#64641]: https://github.com/home-assistant/core/pull/64641 +[#64642]: https://github.com/home-assistant/core/pull/64642 +[#64643]: https://github.com/home-assistant/core/pull/64643 +[#64645]: https://github.com/home-assistant/core/pull/64645 +[#64646]: https://github.com/home-assistant/core/pull/64646 +[#64647]: https://github.com/home-assistant/core/pull/64647 +[#64649]: https://github.com/home-assistant/core/pull/64649 +[#64650]: https://github.com/home-assistant/core/pull/64650 +[#64651]: https://github.com/home-assistant/core/pull/64651 +[#64652]: https://github.com/home-assistant/core/pull/64652 +[#64655]: https://github.com/home-assistant/core/pull/64655 +[#64656]: https://github.com/home-assistant/core/pull/64656 +[#64657]: https://github.com/home-assistant/core/pull/64657 +[#64660]: https://github.com/home-assistant/core/pull/64660 +[#64661]: https://github.com/home-assistant/core/pull/64661 +[#64662]: https://github.com/home-assistant/core/pull/64662 +[#64663]: https://github.com/home-assistant/core/pull/64663 +[#64664]: https://github.com/home-assistant/core/pull/64664 +[#64665]: https://github.com/home-assistant/core/pull/64665 +[#64666]: https://github.com/home-assistant/core/pull/64666 +[#64667]: https://github.com/home-assistant/core/pull/64667 +[#64669]: https://github.com/home-assistant/core/pull/64669 +[#64670]: https://github.com/home-assistant/core/pull/64670 +[#64671]: https://github.com/home-assistant/core/pull/64671 +[#64672]: https://github.com/home-assistant/core/pull/64672 +[#64673]: https://github.com/home-assistant/core/pull/64673 +[#64676]: https://github.com/home-assistant/core/pull/64676 +[#64682]: https://github.com/home-assistant/core/pull/64682 +[#64683]: https://github.com/home-assistant/core/pull/64683 +[#64687]: https://github.com/home-assistant/core/pull/64687 +[#64688]: https://github.com/home-assistant/core/pull/64688 +[#64690]: https://github.com/home-assistant/core/pull/64690 +[#64693]: https://github.com/home-assistant/core/pull/64693 +[#64695]: https://github.com/home-assistant/core/pull/64695 +[#64697]: https://github.com/home-assistant/core/pull/64697 +[#64698]: https://github.com/home-assistant/core/pull/64698 +[#64701]: https://github.com/home-assistant/core/pull/64701 +[#64702]: https://github.com/home-assistant/core/pull/64702 +[#64704]: https://github.com/home-assistant/core/pull/64704 +[#64705]: https://github.com/home-assistant/core/pull/64705 +[#64707]: https://github.com/home-assistant/core/pull/64707 +[#64708]: https://github.com/home-assistant/core/pull/64708 +[#64711]: https://github.com/home-assistant/core/pull/64711 +[#64713]: https://github.com/home-assistant/core/pull/64713 +[#64714]: https://github.com/home-assistant/core/pull/64714 +[#64715]: https://github.com/home-assistant/core/pull/64715 +[#64716]: https://github.com/home-assistant/core/pull/64716 +[#64717]: https://github.com/home-assistant/core/pull/64717 +[#64719]: https://github.com/home-assistant/core/pull/64719 +[#64721]: https://github.com/home-assistant/core/pull/64721 +[#64722]: https://github.com/home-assistant/core/pull/64722 +[#64723]: https://github.com/home-assistant/core/pull/64723 +[#64725]: https://github.com/home-assistant/core/pull/64725 +[#64729]: https://github.com/home-assistant/core/pull/64729 +[#64732]: https://github.com/home-assistant/core/pull/64732 +[#64733]: https://github.com/home-assistant/core/pull/64733 +[#64734]: https://github.com/home-assistant/core/pull/64734 +[#64736]: https://github.com/home-assistant/core/pull/64736 +[#64738]: https://github.com/home-assistant/core/pull/64738 +[#64739]: https://github.com/home-assistant/core/pull/64739 +[#64740]: https://github.com/home-assistant/core/pull/64740 +[#64741]: https://github.com/home-assistant/core/pull/64741 +[#64742]: https://github.com/home-assistant/core/pull/64742 +[#64743]: https://github.com/home-assistant/core/pull/64743 +[#64744]: https://github.com/home-assistant/core/pull/64744 +[#64745]: https://github.com/home-assistant/core/pull/64745 +[#64746]: https://github.com/home-assistant/core/pull/64746 +[#64747]: https://github.com/home-assistant/core/pull/64747 +[#64748]: https://github.com/home-assistant/core/pull/64748 +[#64749]: https://github.com/home-assistant/core/pull/64749 +[#64750]: https://github.com/home-assistant/core/pull/64750 +[#64751]: https://github.com/home-assistant/core/pull/64751 +[#64752]: https://github.com/home-assistant/core/pull/64752 +[#64754]: https://github.com/home-assistant/core/pull/64754 +[#64756]: https://github.com/home-assistant/core/pull/64756 +[#64760]: https://github.com/home-assistant/core/pull/64760 +[#64761]: https://github.com/home-assistant/core/pull/64761 +[#64765]: https://github.com/home-assistant/core/pull/64765 +[#64766]: https://github.com/home-assistant/core/pull/64766 +[#64768]: https://github.com/home-assistant/core/pull/64768 +[#64769]: https://github.com/home-assistant/core/pull/64769 +[#64771]: https://github.com/home-assistant/core/pull/64771 +[#64773]: https://github.com/home-assistant/core/pull/64773 +[#64776]: https://github.com/home-assistant/core/pull/64776 +[#64779]: https://github.com/home-assistant/core/pull/64779 +[#64780]: https://github.com/home-assistant/core/pull/64780 +[#64781]: https://github.com/home-assistant/core/pull/64781 +[#64782]: https://github.com/home-assistant/core/pull/64782 +[#64783]: https://github.com/home-assistant/core/pull/64783 +[#64784]: https://github.com/home-assistant/core/pull/64784 +[#64785]: https://github.com/home-assistant/core/pull/64785 +[#64786]: https://github.com/home-assistant/core/pull/64786 +[#64787]: https://github.com/home-assistant/core/pull/64787 +[#64788]: https://github.com/home-assistant/core/pull/64788 +[#64789]: https://github.com/home-assistant/core/pull/64789 +[#64792]: https://github.com/home-assistant/core/pull/64792 +[#64793]: https://github.com/home-assistant/core/pull/64793 +[#64794]: https://github.com/home-assistant/core/pull/64794 +[#64795]: https://github.com/home-assistant/core/pull/64795 +[#64797]: https://github.com/home-assistant/core/pull/64797 +[#64798]: https://github.com/home-assistant/core/pull/64798 +[#64799]: https://github.com/home-assistant/core/pull/64799 +[#64800]: https://github.com/home-assistant/core/pull/64800 +[#64801]: https://github.com/home-assistant/core/pull/64801 +[#64804]: https://github.com/home-assistant/core/pull/64804 +[#64805]: https://github.com/home-assistant/core/pull/64805 +[#64806]: https://github.com/home-assistant/core/pull/64806 +[#64807]: https://github.com/home-assistant/core/pull/64807 +[#64808]: https://github.com/home-assistant/core/pull/64808 +[#64810]: https://github.com/home-assistant/core/pull/64810 +[#64812]: https://github.com/home-assistant/core/pull/64812 +[#64813]: https://github.com/home-assistant/core/pull/64813 +[#64814]: https://github.com/home-assistant/core/pull/64814 +[#64817]: https://github.com/home-assistant/core/pull/64817 +[#64818]: https://github.com/home-assistant/core/pull/64818 +[#64819]: https://github.com/home-assistant/core/pull/64819 +[#64821]: https://github.com/home-assistant/core/pull/64821 +[#64822]: https://github.com/home-assistant/core/pull/64822 +[#64823]: https://github.com/home-assistant/core/pull/64823 +[#64826]: https://github.com/home-assistant/core/pull/64826 +[#64827]: https://github.com/home-assistant/core/pull/64827 +[#64829]: https://github.com/home-assistant/core/pull/64829 +[#64831]: https://github.com/home-assistant/core/pull/64831 +[#64833]: https://github.com/home-assistant/core/pull/64833 +[#64835]: https://github.com/home-assistant/core/pull/64835 +[#64836]: https://github.com/home-assistant/core/pull/64836 +[#64837]: https://github.com/home-assistant/core/pull/64837 +[#64838]: https://github.com/home-assistant/core/pull/64838 +[#64841]: https://github.com/home-assistant/core/pull/64841 +[#64842]: https://github.com/home-assistant/core/pull/64842 +[#64843]: https://github.com/home-assistant/core/pull/64843 +[#64844]: https://github.com/home-assistant/core/pull/64844 +[#64845]: https://github.com/home-assistant/core/pull/64845 +[#64846]: https://github.com/home-assistant/core/pull/64846 +[#64848]: https://github.com/home-assistant/core/pull/64848 +[#64851]: https://github.com/home-assistant/core/pull/64851 +[#64853]: https://github.com/home-assistant/core/pull/64853 +[#64854]: https://github.com/home-assistant/core/pull/64854 +[#64855]: https://github.com/home-assistant/core/pull/64855 +[#64857]: https://github.com/home-assistant/core/pull/64857 +[#64858]: https://github.com/home-assistant/core/pull/64858 +[#64859]: https://github.com/home-assistant/core/pull/64859 +[#64862]: https://github.com/home-assistant/core/pull/64862 +[#64863]: https://github.com/home-assistant/core/pull/64863 +[#64864]: https://github.com/home-assistant/core/pull/64864 +[#64866]: https://github.com/home-assistant/core/pull/64866 +[#64869]: https://github.com/home-assistant/core/pull/64869 +[#64871]: https://github.com/home-assistant/core/pull/64871 +[#64872]: https://github.com/home-assistant/core/pull/64872 +[#64873]: https://github.com/home-assistant/core/pull/64873 +[#64874]: https://github.com/home-assistant/core/pull/64874 +[#64875]: https://github.com/home-assistant/core/pull/64875 +[#64876]: https://github.com/home-assistant/core/pull/64876 +[#64877]: https://github.com/home-assistant/core/pull/64877 +[#64878]: https://github.com/home-assistant/core/pull/64878 +[#64879]: https://github.com/home-assistant/core/pull/64879 +[#64881]: https://github.com/home-assistant/core/pull/64881 +[#64882]: https://github.com/home-assistant/core/pull/64882 +[#64885]: https://github.com/home-assistant/core/pull/64885 +[#64887]: https://github.com/home-assistant/core/pull/64887 +[#64889]: https://github.com/home-assistant/core/pull/64889 +[#64893]: https://github.com/home-assistant/core/pull/64893 +[#64894]: https://github.com/home-assistant/core/pull/64894 +[#64895]: https://github.com/home-assistant/core/pull/64895 +[#64896]: https://github.com/home-assistant/core/pull/64896 +[#64897]: https://github.com/home-assistant/core/pull/64897 +[#64898]: https://github.com/home-assistant/core/pull/64898 +[#64899]: https://github.com/home-assistant/core/pull/64899 +[#64900]: https://github.com/home-assistant/core/pull/64900 +[#64901]: https://github.com/home-assistant/core/pull/64901 +[#64903]: https://github.com/home-assistant/core/pull/64903 +[#64905]: https://github.com/home-assistant/core/pull/64905 +[#64906]: https://github.com/home-assistant/core/pull/64906 +[#64907]: https://github.com/home-assistant/core/pull/64907 +[#64908]: https://github.com/home-assistant/core/pull/64908 +[#64909]: https://github.com/home-assistant/core/pull/64909 +[#64910]: https://github.com/home-assistant/core/pull/64910 +[#64911]: https://github.com/home-assistant/core/pull/64911 +[#64912]: https://github.com/home-assistant/core/pull/64912 +[#64915]: https://github.com/home-assistant/core/pull/64915 +[#64917]: https://github.com/home-assistant/core/pull/64917 +[#64921]: https://github.com/home-assistant/core/pull/64921 +[#64922]: https://github.com/home-assistant/core/pull/64922 +[#64923]: https://github.com/home-assistant/core/pull/64923 +[#64924]: https://github.com/home-assistant/core/pull/64924 +[#64928]: https://github.com/home-assistant/core/pull/64928 +[#64929]: https://github.com/home-assistant/core/pull/64929 +[#64930]: https://github.com/home-assistant/core/pull/64930 +[#64931]: https://github.com/home-assistant/core/pull/64931 +[#64932]: https://github.com/home-assistant/core/pull/64932 +[#64933]: https://github.com/home-assistant/core/pull/64933 +[#64934]: https://github.com/home-assistant/core/pull/64934 +[#64935]: https://github.com/home-assistant/core/pull/64935 +[#64936]: https://github.com/home-assistant/core/pull/64936 +[#64937]: https://github.com/home-assistant/core/pull/64937 +[#64939]: https://github.com/home-assistant/core/pull/64939 +[#64940]: https://github.com/home-assistant/core/pull/64940 +[#64941]: https://github.com/home-assistant/core/pull/64941 +[#64943]: https://github.com/home-assistant/core/pull/64943 +[#64946]: https://github.com/home-assistant/core/pull/64946 +[#64947]: https://github.com/home-assistant/core/pull/64947 +[#64948]: https://github.com/home-assistant/core/pull/64948 +[#64949]: https://github.com/home-assistant/core/pull/64949 +[#64951]: https://github.com/home-assistant/core/pull/64951 +[#64954]: https://github.com/home-assistant/core/pull/64954 +[#64956]: https://github.com/home-assistant/core/pull/64956 +[#64958]: https://github.com/home-assistant/core/pull/64958 +[#64961]: https://github.com/home-assistant/core/pull/64961 +[#64962]: https://github.com/home-assistant/core/pull/64962 +[#64963]: https://github.com/home-assistant/core/pull/64963 +[#64964]: https://github.com/home-assistant/core/pull/64964 +[#64965]: https://github.com/home-assistant/core/pull/64965 +[#64967]: https://github.com/home-assistant/core/pull/64967 +[#64968]: https://github.com/home-assistant/core/pull/64968 +[#64969]: https://github.com/home-assistant/core/pull/64969 +[#64970]: https://github.com/home-assistant/core/pull/64970 +[#64971]: https://github.com/home-assistant/core/pull/64971 +[#64973]: https://github.com/home-assistant/core/pull/64973 +[#64974]: https://github.com/home-assistant/core/pull/64974 +[#64975]: https://github.com/home-assistant/core/pull/64975 +[#64979]: https://github.com/home-assistant/core/pull/64979 +[#64980]: https://github.com/home-assistant/core/pull/64980 +[#64981]: https://github.com/home-assistant/core/pull/64981 +[#64982]: https://github.com/home-assistant/core/pull/64982 +[#64983]: https://github.com/home-assistant/core/pull/64983 +[#64984]: https://github.com/home-assistant/core/pull/64984 +[#64990]: https://github.com/home-assistant/core/pull/64990 +[#64991]: https://github.com/home-assistant/core/pull/64991 +[#64993]: https://github.com/home-assistant/core/pull/64993 +[#64994]: https://github.com/home-assistant/core/pull/64994 +[#64995]: https://github.com/home-assistant/core/pull/64995 +[@ANMalko]: https://github.com/ANMalko +[@Adminiuga]: https://github.com/Adminiuga +[@Aeroid]: https://github.com/Aeroid +[@Alex9779]: https://github.com/Alex9779 +[@AngellusMortis]: https://github.com/AngellusMortis +[@BraveChicken1]: https://github.com/BraveChicken1 +[@Bre77]: https://github.com/Bre77 +[@Cereal2nd]: https://github.com/Cereal2nd +[@Chen-IL]: https://github.com/Chen-IL +[@ColinRobbins]: https://github.com/ColinRobbins +[@DCSBL]: https://github.com/DCSBL +[@Danielhiversen]: https://github.com/Danielhiversen +[@DeerMaximum]: https://github.com/DeerMaximum +[@Djowie]: https://github.com/Djowie +[@Drafteed]: https://github.com/Drafteed +[@DurgNomis-drol]: https://github.com/DurgNomis-drol +[@Eernie]: https://github.com/Eernie +[@Ernst79]: https://github.com/Ernst79 +[@GuyKh]: https://github.com/GuyKh +[@Hedda]: https://github.com/Hedda +[@Jc2k]: https://github.com/Jc2k +[@JeffLIrion]: https://github.com/JeffLIrion +[@Kane610]: https://github.com/Kane610 +[@KapJI]: https://github.com/KapJI +[@LEJOUI]: https://github.com/LEJOUI +[@LoekSangers]: https://github.com/LoekSangers +[@Lyr3x]: https://github.com/Lyr3x +[@MZachmann]: https://github.com/MZachmann +[@MartinHjelmare]: https://github.com/MartinHjelmare +[@MirkoLenz]: https://github.com/MirkoLenz +[@MizterB]: https://github.com/MizterB +[@Noltari]: https://github.com/Noltari +[@OGKevin]: https://github.com/OGKevin +[@OnFreund]: https://github.com/OnFreund +[@OpenMyDog]: https://github.com/OpenMyDog +[@OttoWinter]: https://github.com/OttoWinter +[@Petro31]: https://github.com/Petro31 +[@RefineryX]: https://github.com/RefineryX +[@RenierM26]: https://github.com/RenierM26 +[@RobBie1221]: https://github.com/RobBie1221 +[@RogerSelwyn]: https://github.com/RogerSelwyn +[@Sdahl1234]: https://github.com/Sdahl1234 +[@Shutgun]: https://github.com/Shutgun +[@StephanU]: https://github.com/StephanU +[@StevenLooman]: https://github.com/StevenLooman +[@Swamp-Ig]: https://github.com/Swamp-Ig +[@Tathar]: https://github.com/Tathar +[@ThomDietrich]: https://github.com/ThomDietrich +[@TomBrien]: https://github.com/TomBrien +[@ZephireNZ]: https://github.com/ZephireNZ +[@agners]: https://github.com/agners +[@ajschmidt8]: https://github.com/ajschmidt8 +[@albertogeniola]: https://github.com/albertogeniola +[@alengwenus]: https://github.com/alengwenus +[@alexanv1]: https://github.com/alexanv1 +[@alim4r]: https://github.com/alim4r +[@allenporter]: https://github.com/allenporter +[@amosyuen]: https://github.com/amosyuen +[@andre-richter]: https://github.com/andre-richter +[@aomann]: https://github.com/aomann +[@atmurray]: https://github.com/atmurray +[@austinmroczek]: https://github.com/austinmroczek +[@avee87]: https://github.com/avee87 +[@bachya]: https://github.com/bachya +[@bairnhard]: https://github.com/bairnhard +[@balloob]: https://github.com/balloob +[@bdr99]: https://github.com/bdr99 +[@bdraco]: https://github.com/bdraco +[@beele]: https://github.com/beele +[@bieniu]: https://github.com/bieniu +[@br3sc4]: https://github.com/br3sc4 +[@bramkragten]: https://github.com/bramkragten +[@brianegge]: https://github.com/brianegge +[@burnsie-la]: https://github.com/burnsie-la +[@bvweerd]: https://github.com/bvweerd +[@candreacchio]: https://github.com/candreacchio +[@cdce8p]: https://github.com/cdce8p +[@cgarwood]: https://github.com/cgarwood +[@cgtobi]: https://github.com/cgtobi +[@chemelli74]: https://github.com/chemelli74 +[@chishm]: https://github.com/chishm +[@chpego]: https://github.com/chpego +[@cmroche]: https://github.com/cmroche +[@colinodell]: https://github.com/colinodell +[@ctalkington]: https://github.com/ctalkington +[@danielperna84]: https://github.com/danielperna84 +[@davet2001]: https://github.com/davet2001 +[@decompil3d]: https://github.com/decompil3d +[@dgomes]: https://github.com/dgomes +[@dingusdk]: https://github.com/dingusdk +[@dmulcahey]: https://github.com/dmulcahey +[@dougiteixeira]: https://github.com/dougiteixeira +[@droberg]: https://github.com/droberg +[@dshokouhi]: https://github.com/dshokouhi +[@eavanvalkenburg]: https://github.com/eavanvalkenburg +[@ecoen66]: https://github.com/ecoen66 +[@egguy]: https://github.com/egguy +[@eifinger]: https://github.com/eifinger +[@elupus]: https://github.com/elupus +[@emontnemery]: https://github.com/emontnemery +[@epenet]: https://github.com/epenet +[@esev]: https://github.com/esev +[@farmio]: https://github.com/farmio +[@filcole]: https://github.com/filcole +[@flacjacket]: https://github.com/flacjacket +[@flz]: https://github.com/flz +[@fredrike]: https://github.com/fredrike +[@frenck]: https://github.com/frenck +[@funkybunch]: https://github.com/funkybunch +[@garbled1]: https://github.com/garbled1 +[@gerard33]: https://github.com/gerard33 +[@ggravlingen]: https://github.com/ggravlingen +[@gjohansson-ST]: https://github.com/gjohansson-ST +[@gwww]: https://github.com/gwww +[@heythisisnate]: https://github.com/heythisisnate +[@hmmbob]: https://github.com/hmmbob +[@iMicknl]: https://github.com/iMicknl +[@infeeeee]: https://github.com/infeeeee +[@j-stienstra]: https://github.com/j-stienstra +[@jacekk015]: https://github.com/jacekk015 +[@jan-loeffler]: https://github.com/jan-loeffler +[@javicalle]: https://github.com/javicalle +[@jbouwh]: https://github.com/jbouwh +[@jeeftor]: https://github.com/jeeftor +[@jesserockz]: https://github.com/jesserockz +[@jjlawren]: https://github.com/jjlawren +[@jkeljo]: https://github.com/jkeljo +[@jsoref]: https://github.com/jsoref +[@k4ds3]: https://github.com/k4ds3 +[@kbickar]: https://github.com/kbickar +[@kezziny]: https://github.com/kezziny +[@kimfrellsen]: https://github.com/kimfrellsen +[@klaasnicolaas]: https://github.com/klaasnicolaas +[@kristjanbjarni]: https://github.com/kristjanbjarni +[@leeyuentuen]: https://github.com/leeyuentuen +[@liudger]: https://github.com/liudger +[@ludeeus]: https://github.com/ludeeus +[@lunmay]: https://github.com/lunmay +[@m4rkireland]: https://github.com/m4rkireland +[@mampfes]: https://github.com/mampfes +[@marcelveldt]: https://github.com/marcelveldt +[@marcuslonnberg]: https://github.com/marcuslonnberg +[@martin3000]: https://github.com/martin3000 +[@marvin-w]: https://github.com/marvin-w +[@maxcanna]: https://github.com/maxcanna +[@mdegat01]: https://github.com/mdegat01 +[@mdz]: https://github.com/mdz +[@mezz64]: https://github.com/mezz64 +[@mib1185]: https://github.com/mib1185 +[@micha91]: https://github.com/micha91 +[@michaelarnauts]: https://github.com/michaelarnauts +[@milanmeu]: https://github.com/milanmeu +[@mletenay]: https://github.com/mletenay +[@mtdcr]: https://github.com/mtdcr +[@natekspencer]: https://github.com/natekspencer +[@ngdio]: https://github.com/ngdio +[@nickw444]: https://github.com/nickw444 +[@niecore]: https://github.com/niecore +[@nohn]: https://github.com/nohn +[@noxhirsch]: https://github.com/noxhirsch +[@oischinger]: https://github.com/oischinger +[@ol-iver]: https://github.com/ol-iver +[@ollo69]: https://github.com/ollo69 +[@orcema]: https://github.com/orcema +[@petslane]: https://github.com/petslane +[@postlund]: https://github.com/postlund +[@ppetru]: https://github.com/ppetru +[@pree]: https://github.com/pree +[@pvizeli]: https://github.com/pvizeli +[@qqaatw]: https://github.com/qqaatw +[@raman325]: https://github.com/raman325 +[@rappenze]: https://github.com/rappenze +[@rautesamtr]: https://github.com/rautesamtr +[@regevbr]: https://github.com/regevbr +[@rfleming71]: https://github.com/rfleming71 +[@rforro]: https://github.com/rforro +[@rhpijnacker]: https://github.com/rhpijnacker +[@rianadon]: https://github.com/rianadon +[@rikroe]: https://github.com/rikroe +[@rklomp]: https://github.com/rklomp +[@rnurgaliyev]: https://github.com/rnurgaliyev +[@rsteckler]: https://github.com/rsteckler +[@rytilahti]: https://github.com/rytilahti +[@sagioto]: https://github.com/sagioto +[@scop]: https://github.com/scop +[@sebfortier2288]: https://github.com/sebfortier2288 +[@shbatm]: https://github.com/shbatm +[@simontegelid]: https://github.com/simontegelid +[@slovdahl]: https://github.com/slovdahl +[@slydiman]: https://github.com/slydiman +[@starkillerOG]: https://github.com/starkillerOG +[@stegm]: https://github.com/stegm +[@stephan192]: https://github.com/stephan192 +[@syssi]: https://github.com/syssi +[@tausen]: https://github.com/tausen +[@tedvdb]: https://github.com/tedvdb +[@teharris1]: https://github.com/teharris1 +[@thecode]: https://github.com/thecode +[@timmo001]: https://github.com/timmo001 +[@tkdrob]: https://github.com/tkdrob +[@tofuSCHNITZEL]: https://github.com/tofuSCHNITZEL +[@tokenize47]: https://github.com/tokenize47 +[@tomhennigan]: https://github.com/tomhennigan +[@tschamm]: https://github.com/tschamm +[@tschnilo]: https://github.com/tschnilo +[@ufodone]: https://github.com/ufodone +[@uvjustin]: https://github.com/uvjustin +[@vauriga]: https://github.com/vauriga +[@viiru-]: https://github.com/viiru- +[@yozik04]: https://github.com/yozik04 +[@zacwest]: https://github.com/zacwest +[abode docs]: /integrations/abode/ +[accuweather docs]: /integrations/accuweather/ +[acmeda docs]: /integrations/acmeda/ +[adax docs]: /integrations/adax/ +[adguard docs]: /integrations/adguard/ +[ads docs]: /integrations/ads/ +[advantage_air docs]: /integrations/advantage_air/ +[aemet docs]: /integrations/aemet/ +[aftership docs]: /integrations/aftership/ +[airly docs]: /integrations/airly/ +[airnow docs]: /integrations/airnow/ +[airthings docs]: /integrations/airthings/ +[airtouch4 docs]: /integrations/airtouch4/ +[airvisual docs]: /integrations/airvisual/ +[aladdin_connect docs]: /integrations/aladdin_connect/ +[alarmdecoder docs]: /integrations/alarmdecoder/ +[alexa docs]: /integrations/alexa/ +[almond docs]: /integrations/almond/ +[alpha_vantage docs]: /integrations/alpha_vantage/ +[amazon_polly docs]: /integrations/amazon_polly/ +[ambee docs]: /integrations/ambee/ +[amberelectric docs]: /integrations/amberelectric/ +[ambiclimate docs]: /integrations/ambiclimate/ +[ambient_station docs]: /integrations/ambient_station/ +[amcrest docs]: /integrations/amcrest/ +[analytics docs]: /integrations/analytics/ +[android_ip_webcam docs]: /integrations/android_ip_webcam/ +[androidtv docs]: /integrations/androidtv/ +[anel_pwrctrl docs]: /integrations/anel_pwrctrl/ +[apcupsd docs]: /integrations/apcupsd/ +[api docs]: /integrations/api/ +[apns docs]: /integrations/apns/ +[apple_tv docs]: /integrations/apple_tv/ +[aprs docs]: /integrations/aprs/ +[aqualogic docs]: /integrations/aqualogic/ +[aquostv docs]: /integrations/aquostv/ +[arcam_fmj docs]: /integrations/arcam_fmj/ +[arduino docs]: /integrations/arduino/ +[arest docs]: /integrations/arest/ +[arlo docs]: /integrations/arlo/ +[arris_tg2492lg docs]: /integrations/arris_tg2492lg/ +[arwn docs]: /integrations/arwn/ +[aseko_pool_live docs]: /integrations/aseko_pool_live/ +[asterisk_cdr docs]: /integrations/asterisk_cdr/ +[asterisk_mbox docs]: /integrations/asterisk_mbox/ +[asuswrt docs]: /integrations/asuswrt/ +[atag docs]: /integrations/atag/ +[aten_pe docs]: /integrations/aten_pe/ +[atome docs]: /integrations/atome/ +[august docs]: /integrations/august/ +[aurora_abb_powerone docs]: /integrations/aurora_abb_powerone/ +[aussie_broadband docs]: /integrations/aussie_broadband/ +[auth docs]: /integrations/auth/ +[automation docs]: /integrations/automation/ +[avion docs]: /integrations/avion/ +[awair docs]: /integrations/awair/ +[aws docs]: /integrations/aws/ +[axis docs]: /integrations/axis/ +[azure_event_hub docs]: /integrations/azure_event_hub/ +[balboa docs]: /integrations/balboa/ +[bbb_gpio docs]: /integrations/bbb_gpio/ +[bbox docs]: /integrations/bbox/ +[beewi_smartclim docs]: /integrations/beewi_smartclim/ +[bh1750 docs]: /integrations/bh1750/ +[binary_sensor docs]: /integrations/binary_sensor/ +[blackbird docs]: /integrations/blackbird/ +[blebox docs]: /integrations/blebox/ +[blink docs]: /integrations/blink/ +[blinkt docs]: /integrations/blinkt/ +[bloomsky docs]: /integrations/bloomsky/ +[blueprint docs]: /integrations/blueprint/ +[bluetooth_le_tracker docs]: /integrations/bluetooth_le_tracker/ +[bluetooth_tracker docs]: /integrations/bluetooth_tracker/ +[bme280 docs]: /integrations/bme280/ +[bme680 docs]: /integrations/bme680/ +[bmp280 docs]: /integrations/bmp280/ +[bmw_connected_drive docs]: /integrations/bmw_connected_drive/ +[bond docs]: /integrations/bond/ +[bosch_shc docs]: /integrations/bosch_shc/ +[braviatv docs]: /integrations/braviatv/ +[broadlink docs]: /integrations/broadlink/ +[brother docs]: /integrations/brother/ +[browser docs]: /integrations/browser/ +[brunt docs]: /integrations/brunt/ +[buienradar docs]: /integrations/buienradar/ +[caldav docs]: /integrations/caldav/ +[camera docs]: /integrations/camera/ +[canary docs]: /integrations/canary/ +[cast docs]: /integrations/cast/ +[cert_expiry docs]: /integrations/cert_expiry/ +[climacell docs]: /integrations/climacell/ +[climate docs]: /integrations/climate/ +[cloud docs]: /integrations/cloud/ +[co2signal docs]: /integrations/co2signal/ +[coinbase docs]: /integrations/coinbase/ +[comfoconnect docs]: /integrations/comfoconnect/ +[command_line docs]: /integrations/command_line/ +[compensation docs]: /integrations/compensation/ +[concord232 docs]: /integrations/concord232/ +[config docs]: /integrations/config/ +[configurator docs]: /integrations/configurator/ +[control4 docs]: /integrations/control4/ +[conversation docs]: /integrations/conversation/ +[coolmaster docs]: /integrations/coolmaster/ +[cpuspeed docs]: /integrations/cpuspeed/ +[cups docs]: /integrations/cups/ +[daikin docs]: /integrations/daikin/ +[danfoss_air docs]: /integrations/danfoss_air/ +[darksky docs]: /integrations/darksky/ +[deconz docs]: /integrations/deconz/ +[default_config docs]: /integrations/default_config/ +[delijn docs]: /integrations/delijn/ +[demo docs]: /integrations/demo/ +[denonavr docs]: /integrations/denonavr/ +[device_automation docs]: /integrations/device_automation/ +[device_tracker docs]: /integrations/device_tracker/ +[devolo_home_control docs]: /integrations/devolo_home_control/ +[devolo_home_network docs]: /integrations/devolo_home_network/ +[dexcom docs]: /integrations/dexcom/ +[dhcp docs]: /integrations/dhcp/ +[dht docs]: /integrations/dht/ +[diagnostics docs]: /integrations/diagnostics/ +[digital_ocean docs]: /integrations/digital_ocean/ +[digitalloggers docs]: /integrations/digitalloggers/ +[directv docs]: /integrations/directv/ +[discord docs]: /integrations/discord/ +[dlna_dmr docs]: /integrations/dlna_dmr/ +[dnsip docs]: /integrations/dnsip/ +[dominos docs]: /integrations/dominos/ +[doods docs]: /integrations/doods/ +[doorbird docs]: /integrations/doorbird/ +[dsmr docs]: /integrations/dsmr/ +[dsmr_reader docs]: /integrations/dsmr_reader/ +[dte_energy_bridge docs]: /integrations/dte_energy_bridge/ +[dwd_weather_warnings docs]: /integrations/dwd_weather_warnings/ +[dynalite docs]: /integrations/dynalite/ +[eafm docs]: /integrations/eafm/ +[ebusd docs]: /integrations/ebusd/ +[ecoal_boiler docs]: /integrations/ecoal_boiler/ +[ecobee docs]: /integrations/ecobee/ +[econet docs]: /integrations/econet/ +[ecovacs docs]: /integrations/ecovacs/ +[eddystone_temperature docs]: /integrations/eddystone_temperature/ +[edl21 docs]: /integrations/edl21/ +[efergy docs]: /integrations/efergy/ +[egardia docs]: /integrations/egardia/ +[eight_sleep docs]: /integrations/eight_sleep/ +[elgato docs]: /integrations/elgato/ +[eliqonline docs]: /integrations/eliqonline/ +[elkm1 docs]: /integrations/elkm1/ +[elmax docs]: /integrations/elmax/ +[emby docs]: /integrations/emby/ +[emoncms docs]: /integrations/emoncms/ +[emonitor docs]: /integrations/emonitor/ +[emulated_hue docs]: /integrations/emulated_hue/ +[emulated_kasa docs]: /integrations/emulated_kasa/ +[energy docs]: /integrations/energy/ +[enocean docs]: /integrations/enocean/ +[enphase_envoy docs]: /integrations/enphase_envoy/ +[entur_public_transport docs]: /integrations/entur_public_transport/ +[environment_canada docs]: /integrations/environment_canada/ +[envirophat docs]: /integrations/envirophat/ +[envisalink docs]: /integrations/envisalink/ +[eq3btsmart docs]: /integrations/eq3btsmart/ +[esphome docs]: /integrations/esphome/ +[eufy docs]: /integrations/eufy/ +[evil_genius_labs docs]: /integrations/evil_genius_labs/ +[evohome docs]: /integrations/evohome/ +[ezviz docs]: /integrations/ezviz/ +[fail2ban docs]: /integrations/fail2ban/ +[fan docs]: /integrations/fan/ +[feedreader docs]: /integrations/feedreader/ +[ffmpeg docs]: /integrations/ffmpeg/ +[ffmpeg_motion docs]: /integrations/ffmpeg_motion/ +[ffmpeg_noise docs]: /integrations/ffmpeg_noise/ +[fibaro docs]: /integrations/fibaro/ +[file docs]: /integrations/file/ +[filesize docs]: /integrations/filesize/ +[filter docs]: /integrations/filter/ +[fints docs]: /integrations/fints/ +[fireservicerota docs]: /integrations/fireservicerota/ +[firmata docs]: /integrations/firmata/ +[fjaraskupan docs]: /integrations/fjaraskupan/ +[fleetgo docs]: /integrations/fleetgo/ +[flic docs]: /integrations/flic/ +[flick_electric docs]: /integrations/flick_electric/ +[flipr docs]: /integrations/flipr/ +[flo docs]: /integrations/flo/ +[flume docs]: /integrations/flume/ +[flunearyou docs]: /integrations/flunearyou/ +[flux_led docs]: /integrations/flux_led/ +[folder docs]: /integrations/folder/ +[foobot docs]: /integrations/foobot/ +[forecast_solar docs]: /integrations/forecast_solar/ +[fortios docs]: /integrations/fortios/ +[foscam docs]: /integrations/foscam/ +[foursquare docs]: /integrations/foursquare/ +[freebox docs]: /integrations/freebox/ +[freedompro docs]: /integrations/freedompro/ +[fritz docs]: /integrations/fritz/ +[fritzbox docs]: /integrations/fritzbox/ +[fritzbox_callmonitor docs]: /integrations/fritzbox_callmonitor/ +[fronius docs]: /integrations/fronius/ +[frontend docs]: /integrations/frontend/ +[garadget docs]: /integrations/garadget/ +[garages_amsterdam docs]: /integrations/garages_amsterdam/ +[gc100 docs]: /integrations/gc100/ +[gdacs docs]: /integrations/gdacs/ +[generic docs]: /integrations/generic/ +[generic_hygrostat docs]: /integrations/generic_hygrostat/ +[generic_thermostat docs]: /integrations/generic_thermostat/ +[geniushub docs]: /integrations/geniushub/ +[geo_json_events docs]: /integrations/geo_json_events/ +[geo_location docs]: /integrations/geo_location/ +[geonetnz_quakes docs]: /integrations/geonetnz_quakes/ +[gios docs]: /integrations/gios/ +[github docs]: /integrations/github/ +[glances docs]: /integrations/glances/ +[goalzero docs]: /integrations/goalzero/ +[gogogate2 docs]: /integrations/gogogate2/ +[goodwe docs]: /integrations/goodwe/ +[google docs]: /integrations/google/ +[google_assistant docs]: /integrations/google_assistant/ +[google_maps docs]: /integrations/google_maps/ +[google_pubsub docs]: /integrations/google_pubsub/ +[google_travel_time docs]: /integrations/google_travel_time/ +[gpmdp docs]: /integrations/gpmdp/ +[gpslogger docs]: /integrations/gpslogger/ +[gree docs]: /integrations/gree/ +[greeneye_monitor docs]: /integrations/greeneye_monitor/ +[greenwave docs]: /integrations/greenwave/ +[group docs]: /integrations/group/ +[growatt_server docs]: /integrations/growatt_server/ +[gtfs docs]: /integrations/gtfs/ +[guardian docs]: /integrations/guardian/ +[hangouts docs]: /integrations/hangouts/ +[harmony docs]: /integrations/harmony/ +[hassio docs]: /integrations/hassio/ +[haveibeenpwned docs]: /integrations/haveibeenpwned/ +[hddtemp docs]: /integrations/hddtemp/ +[hdmi_cec docs]: /integrations/hdmi_cec/ +[heos docs]: /integrations/heos/ +[hikvision docs]: /integrations/hikvision/ +[history docs]: /integrations/history/ +[hive docs]: /integrations/hive/ +[home_connect docs]: /integrations/home_connect/ +[home_plus_control docs]: /integrations/home_plus_control/ +[homeassistant docs]: /integrations/homeassistant/ +[homekit docs]: /integrations/homekit/ +[homekit_controller docs]: /integrations/homekit_controller/ +[homematic docs]: /integrations/homematic/ +[homematicip_cloud docs]: /integrations/homematicip_cloud/ +[homewizard docs]: /integrations/homewizard/ +[homewizard_energy docs]: /integrations/homewizard_energy/ +[homeworks docs]: /integrations/homeworks/ +[honeywell docs]: /integrations/honeywell/ +[hp_ilo docs]: /integrations/hp_ilo/ +[html5 docs]: /integrations/html5/ +[http docs]: /integrations/http/ +[htu21d docs]: /integrations/htu21d/ +[huawei_lte docs]: /integrations/huawei_lte/ +[hue docs]: /integrations/hue/ +[huisbaasje docs]: /integrations/huisbaasje/ +[humidifier docs]: /integrations/humidifier/ +[hunterdouglas_powerview docs]: /integrations/hunterdouglas_powerview/ +[hvv_departures docs]: /integrations/hvv_departures/ +[hydrawise docs]: /integrations/hydrawise/ +[hyperion docs]: /integrations/hyperion/ +[iaqualink docs]: /integrations/iaqualink/ +[icloud docs]: /integrations/icloud/ +[idteck_prox docs]: /integrations/idteck_prox/ +[ign_sismologia docs]: /integrations/ign_sismologia/ +[ihc docs]: /integrations/ihc/ +[image docs]: /integrations/image/ +[incomfort docs]: /integrations/incomfort/ +[influxdb docs]: /integrations/influxdb/ +[input_button docs]: /integrations/input_button/ +[input_select docs]: /integrations/input_select/ +[insteon docs]: /integrations/insteon/ +[integration docs]: /integrations/integration/ +[intellifire docs]: /integrations/intellifire/ +[ios docs]: /integrations/ios/ +[iotawatt docs]: /integrations/iotawatt/ +[ipma docs]: /integrations/ipma/ +[ipp docs]: /integrations/ipp/ +[iqvia docs]: /integrations/iqvia/ +[islamic_prayer_times docs]: /integrations/islamic_prayer_times/ +[isy994 docs]: /integrations/isy994/ +[itach docs]: /integrations/itach/ +[izone docs]: /integrations/izone/ +[jellyfin docs]: /integrations/jellyfin/ +[jewish_calendar docs]: /integrations/jewish_calendar/ +[juicenet docs]: /integrations/juicenet/ +[kaiterra docs]: /integrations/kaiterra/ +[keba docs]: /integrations/keba/ +[keenetic_ndms2 docs]: /integrations/keenetic_ndms2/ +[keyboard_remote docs]: /integrations/keyboard_remote/ +[knx docs]: /integrations/knx/ +[kodi docs]: /integrations/kodi/ +[konnected docs]: /integrations/konnected/ +[kostal_plenticore docs]: /integrations/kostal_plenticore/ +[kraken docs]: /integrations/kraken/ +[kulersky docs]: /integrations/kulersky/ +[lacrosse docs]: /integrations/lacrosse/ +[lametric docs]: /integrations/lametric/ +[launch_library docs]: /integrations/launch_library/ +[lcn docs]: /integrations/lcn/ +[lg_netcast docs]: /integrations/lg_netcast/ +[life360 docs]: /integrations/life360/ +[light docs]: /integrations/light/ +[lightwave docs]: /integrations/lightwave/ +[linode docs]: /integrations/linode/ +[linux_battery docs]: /integrations/linux_battery/ +[litejet docs]: /integrations/litejet/ +[litterrobot docs]: /integrations/litterrobot/ +[local_file docs]: /integrations/local_file/ +[lock docs]: /integrations/lock/ +[logbook docs]: /integrations/logbook/ +[lookin docs]: /integrations/lookin/ +[lovelace docs]: /integrations/lovelace/ +[luftdaten docs]: /integrations/luftdaten/ +[lupusec docs]: /integrations/lupusec/ +[lutron docs]: /integrations/lutron/ +[lutron_caseta docs]: /integrations/lutron_caseta/ +[lyric docs]: /integrations/lyric/ +[magicseaweed docs]: /integrations/magicseaweed/ +[mailbox docs]: /integrations/mailbox/ +[marytts docs]: /integrations/marytts/ +[maxcube docs]: /integrations/maxcube/ +[mazda docs]: /integrations/mazda/ +[mcp23017 docs]: /integrations/mcp23017/ +[media_extractor docs]: /integrations/media_extractor/ +[media_player docs]: /integrations/media_player/ +[media_source docs]: /integrations/media_source/ +[melcloud docs]: /integrations/melcloud/ +[meraki docs]: /integrations/meraki/ +[met docs]: /integrations/met/ +[met_eireann docs]: /integrations/met_eireann/ +[meteo_france docs]: /integrations/meteo_france/ +[meteoalarm docs]: /integrations/meteoalarm/ +[meteoclimatic docs]: /integrations/meteoclimatic/ +[metoffice docs]: /integrations/metoffice/ +[mfi docs]: /integrations/mfi/ +[mhz19 docs]: /integrations/mhz19/ +[microsoft_face docs]: /integrations/microsoft_face/ +[miflora docs]: /integrations/miflora/ +[mikrotik docs]: /integrations/mikrotik/ +[mill docs]: /integrations/mill/ +[minecraft_server docs]: /integrations/minecraft_server/ +[mitemp_bt docs]: /integrations/mitemp_bt/ +[mobile_app docs]: /integrations/mobile_app/ +[mochad docs]: /integrations/mochad/ +[modbus docs]: /integrations/modbus/ +[modern_forms docs]: /integrations/modern_forms/ +[motion_blinds docs]: /integrations/motion_blinds/ +[motioneye docs]: /integrations/motioneye/ +[mpchc docs]: /integrations/mpchc/ +[mqtt docs]: /integrations/mqtt/ +[mqtt_json docs]: /integrations/mqtt_json/ +[mqtt_statestream docs]: /integrations/mqtt_statestream/ +[mullvad docs]: /integrations/mullvad/ +[mvglive docs]: /integrations/mvglive/ +[myq docs]: /integrations/myq/ +[mysensors docs]: /integrations/mysensors/ +[nam docs]: /integrations/nam/ +[nanoleaf docs]: /integrations/nanoleaf/ +[neato docs]: /integrations/neato/ +[nederlandse_spoorwegen docs]: /integrations/nederlandse_spoorwegen/ +[ness_alarm docs]: /integrations/ness_alarm/ +[nest docs]: /integrations/nest/ +[netatmo docs]: /integrations/netatmo/ +[netdata docs]: /integrations/netdata/ +[netgear docs]: /integrations/netgear/ +[netgear_lte docs]: /integrations/netgear_lte/ +[netio docs]: /integrations/netio/ +[neurio_energy docs]: /integrations/neurio_energy/ +[nexia docs]: /integrations/nexia/ +[nextbus docs]: /integrations/nextbus/ +[nightscout docs]: /integrations/nightscout/ +[nilu docs]: /integrations/nilu/ +[nina docs]: /integrations/nina/ +[nissan_leaf docs]: /integrations/nissan_leaf/ +[nmap_tracker docs]: /integrations/nmap_tracker/ +[nmbs docs]: /integrations/nmbs/ +[norway_air docs]: /integrations/norway_air/ +[notify docs]: /integrations/notify/ +[notion docs]: /integrations/notion/ +[nsw_rural_fire_service_feed docs]: /integrations/nsw_rural_fire_service_feed/ +[nuki docs]: /integrations/nuki/ +[numato docs]: /integrations/numato/ +[number docs]: /integrations/number/ +[nut docs]: /integrations/nut/ +[nws docs]: /integrations/nws/ +[nx584 docs]: /integrations/nx584/ +[nzbget docs]: /integrations/nzbget/ +[oasa_telematics docs]: /integrations/oasa_telematics/ +[obihai docs]: /integrations/obihai/ +[octoprint docs]: /integrations/octoprint/ +[omnilogic docs]: /integrations/omnilogic/ +[onboarding docs]: /integrations/onboarding/ +[oncue docs]: /integrations/oncue/ +[ondilo_ico docs]: /integrations/ondilo_ico/ +[onewire docs]: /integrations/onewire/ +[onkyo docs]: /integrations/onkyo/ +[onvif docs]: /integrations/onvif/ +[open_meteo docs]: /integrations/open_meteo/ +[openalpr_cloud docs]: /integrations/openalpr_cloud/ +[openalpr_local docs]: /integrations/openalpr_local/ +[opencv docs]: /integrations/opencv/ +[openevse docs]: /integrations/openevse/ +[opengarage docs]: /integrations/opengarage/ +[opensensemap docs]: /integrations/opensensemap/ +[opentherm_gw docs]: /integrations/opentherm_gw/ +[openuv docs]: /integrations/openuv/ +[openweathermap docs]: /integrations/openweathermap/ +[orangepi_gpio docs]: /integrations/orangepi_gpio/ +[overkiz docs]: /integrations/overkiz/ +[ovo_energy docs]: /integrations/ovo_energy/ +[owntracks docs]: /integrations/owntracks/ +[ozw docs]: /integrations/ozw/ +[p1_monitor docs]: /integrations/p1_monitor/ +[panasonic_viera docs]: /integrations/panasonic_viera/ +[pcal9535a docs]: /integrations/pcal9535a/ +[philips_js docs]: /integrations/philips_js/ +[pi4ioe5v9xxxx docs]: /integrations/pi4ioe5v9xxxx/ +[pi_hole docs]: /integrations/pi_hole/ +[picnic docs]: /integrations/picnic/ +[piglow docs]: /integrations/piglow/ +[pilight docs]: /integrations/pilight/ +[ping docs]: /integrations/ping/ +[pioneer docs]: /integrations/pioneer/ +[plaato docs]: /integrations/plaato/ +[plex docs]: /integrations/plex/ +[plugwise docs]: /integrations/plugwise/ +[plum_lightpad docs]: /integrations/plum_lightpad/ +[point docs]: /integrations/point/ +[poolsense docs]: /integrations/poolsense/ +[powerwall docs]: /integrations/powerwall/ +[prometheus docs]: /integrations/prometheus/ +[proximity docs]: /integrations/proximity/ +[proxmoxve docs]: /integrations/proxmoxve/ +[proxy docs]: /integrations/proxy/ +[ps4 docs]: /integrations/ps4/ +[pulseaudio_loopback docs]: /integrations/pulseaudio_loopback/ +[pvoutput docs]: /integrations/pvoutput/ +[pvpc_hourly_pricing docs]: /integrations/pvpc_hourly_pricing/ +[pyload docs]: /integrations/pyload/ +[qld_bushfire docs]: /integrations/qld_bushfire/ +[qnap docs]: /integrations/qnap/ +[qrcode docs]: /integrations/qrcode/ +[qwikswitch docs]: /integrations/qwikswitch/ +[rachio docs]: /integrations/rachio/ +[raincloud docs]: /integrations/raincloud/ +[rainforest_eagle docs]: /integrations/rainforest_eagle/ +[rainmachine docs]: /integrations/rainmachine/ +[raspihats docs]: /integrations/raspihats/ +[rdw docs]: /integrations/rdw/ +[recollect_waste docs]: /integrations/recollect_waste/ +[recorder docs]: /integrations/recorder/ +[remember_the_milk docs]: /integrations/remember_the_milk/ +[renault docs]: /integrations/renault/ +[repetier docs]: /integrations/repetier/ +[rest docs]: /integrations/rest/ +[rflink docs]: /integrations/rflink/ +[rfxtrx docs]: /integrations/rfxtrx/ +[ridwell docs]: /integrations/ridwell/ +[ring docs]: /integrations/ring/ +[risco docs]: /integrations/risco/ +[rmvtransport docs]: /integrations/rmvtransport/ +[roku docs]: /integrations/roku/ +[roomba docs]: /integrations/roomba/ +[route53 docs]: /integrations/route53/ +[rova docs]: /integrations/rova/ +[rpi_gpio docs]: /integrations/rpi_gpio/ +[rpi_gpio_pwm docs]: /integrations/rpi_gpio_pwm/ +[rpi_pfio docs]: /integrations/rpi_pfio/ +[rpi_power docs]: /integrations/rpi_power/ +[rpi_rf docs]: /integrations/rpi_rf/ +[rtsp_to_webrtc docs]: /integrations/rtsp_to_webrtc/ +[ruckus_unleashed docs]: /integrations/ruckus_unleashed/ +[sabnzbd docs]: /integrations/sabnzbd/ +[saj docs]: /integrations/saj/ +[samsungtv docs]: /integrations/samsungtv/ +[satel_integra docs]: /integrations/satel_integra/ +[scene docs]: /integrations/scene/ +[scrape docs]: /integrations/scrape/ +[screenlogic docs]: /integrations/screenlogic/ +[script docs]: /integrations/script/ +[search docs]: /integrations/search/ +[season docs]: /integrations/season/ +[sense docs]: /integrations/sense/ +[sensehat docs]: /integrations/sensehat/ +[senseme docs]: /integrations/senseme/ +[sensibo docs]: /integrations/sensibo/ +[sensor docs]: /integrations/sensor/ +[sentry docs]: /integrations/sentry/ +[serial docs]: /integrations/serial/ +[seven_segments docs]: /integrations/seven_segments/ +[seventeentrack docs]: /integrations/seventeentrack/ +[sharkiq docs]: /integrations/sharkiq/ +[shelly docs]: /integrations/shelly/ +[shodan docs]: /integrations/shodan/ +[shopping_list docs]: /integrations/shopping_list/ +[sht31 docs]: /integrations/sht31/ +[sia docs]: /integrations/sia/ +[sighthound docs]: /integrations/sighthound/ +[signal_messenger docs]: /integrations/signal_messenger/ +[simplisafe docs]: /integrations/simplisafe/ +[sisyphus docs]: /integrations/sisyphus/ +[skybeacon docs]: /integrations/skybeacon/ +[skybell docs]: /integrations/skybell/ +[sleepiq docs]: /integrations/sleepiq/ +[slide docs]: /integrations/slide/ +[sma docs]: /integrations/sma/ +[smappee docs]: /integrations/smappee/ +[smart_meter_texas docs]: /integrations/smart_meter_texas/ +[smarthab docs]: /integrations/smarthab/ +[smartthings docs]: /integrations/smartthings/ +[smarttub docs]: /integrations/smarttub/ +[smarty docs]: /integrations/smarty/ +[smhi docs]: /integrations/smhi/ +[sms docs]: /integrations/sms/ +[solaredge docs]: /integrations/solaredge/ +[solaredge_local docs]: /integrations/solaredge_local/ +[solarlog docs]: /integrations/solarlog/ +[solax docs]: /integrations/solax/ +[soma docs]: /integrations/soma/ +[somfy docs]: /integrations/somfy/ +[somfy_mylink docs]: /integrations/somfy_mylink/ +[songpal docs]: /integrations/songpal/ +[sonos docs]: /integrations/sonos/ +[spc docs]: /integrations/spc/ +[speedtestdotnet docs]: /integrations/speedtestdotnet/ +[spider docs]: /integrations/spider/ +[spotify docs]: /integrations/spotify/ +[sql docs]: /integrations/sql/ +[squeezebox docs]: /integrations/squeezebox/ +[srp_energy docs]: /integrations/srp_energy/ +[ssdp docs]: /integrations/ssdp/ +[starline docs]: /integrations/starline/ +[statistics docs]: /integrations/statistics/ +[steamist docs]: /integrations/steamist/ +[stookalert docs]: /integrations/stookalert/ +[stream docs]: /integrations/stream/ +[stt docs]: /integrations/stt/ +[subaru docs]: /integrations/subaru/ +[supervisord docs]: /integrations/supervisord/ +[supla docs]: /integrations/supla/ +[surepetcare docs]: /integrations/surepetcare/ +[swiss_public_transport docs]: /integrations/swiss_public_transport/ +[switch docs]: /integrations/switch/ +[switchbot docs]: /integrations/switchbot/ +[switcher_kis docs]: /integrations/switcher_kis/ +[syncthru docs]: /integrations/syncthru/ +[synology_dsm docs]: /integrations/synology_dsm/ +[system_bridge docs]: /integrations/system_bridge/ +[system_log docs]: /integrations/system_log/ +[systemmonitor docs]: /integrations/systemmonitor/ +[tado docs]: /integrations/tado/ +[tahoma docs]: /integrations/tahoma/ +[tailscale docs]: /integrations/tailscale/ +[tank_utility docs]: /integrations/tank_utility/ +[tasmota docs]: /integrations/tasmota/ +[ted5000 docs]: /integrations/ted5000/ +[tellduslive docs]: /integrations/tellduslive/ +[tellstick docs]: /integrations/tellstick/ +[temper docs]: /integrations/temper/ +[template docs]: /integrations/template/ +[tensorflow docs]: /integrations/tensorflow/ +[tesla_wall_connector docs]: /integrations/tesla_wall_connector/ +[thermoworks_smoke docs]: /integrations/thermoworks_smoke/ +[thethingsnetwork docs]: /integrations/thethingsnetwork/ +[tibber docs]: /integrations/tibber/ +[tile docs]: /integrations/tile/ +[tmb docs]: /integrations/tmb/ +[todoist docs]: /integrations/todoist/ +[tof docs]: /integrations/tof/ +[tolo docs]: /integrations/tolo/ +[tomato docs]: /integrations/tomato/ +[toon docs]: /integrations/toon/ +[torque docs]: /integrations/torque/ +[totalconnect docs]: /integrations/totalconnect/ +[tplink docs]: /integrations/tplink/ +[traccar docs]: /integrations/traccar/ +[tractive docs]: /integrations/tractive/ +[tradfri docs]: /integrations/tradfri/ +[trafikverket_train docs]: /integrations/trafikverket_train/ +[trafikverket_weatherstation docs]: /integrations/trafikverket_weatherstation/ +[trend docs]: /integrations/trend/ +[tts docs]: /integrations/tts/ +[tuya docs]: /integrations/tuya/ +[twentemilieu docs]: /integrations/twentemilieu/ +[twinkly docs]: /integrations/twinkly/ +[ubus docs]: /integrations/ubus/ +[uk_transport docs]: /integrations/uk_transport/ +[unifi docs]: /integrations/unifi/ +[unifi_direct docs]: /integrations/unifi_direct/ +[unifiprotect docs]: /integrations/unifiprotect/ +[universal docs]: /integrations/universal/ +[upcloud docs]: /integrations/upcloud/ +[updater docs]: /integrations/updater/ +[upnp docs]: /integrations/upnp/ +[uptime docs]: /integrations/uptime/ +[uptimerobot docs]: /integrations/uptimerobot/ +[usb docs]: /integrations/usb/ +[usgs_earthquakes_feed docs]: /integrations/usgs_earthquakes_feed/ +[utility_meter docs]: /integrations/utility_meter/ +[vallox docs]: /integrations/vallox/ +[velbus docs]: /integrations/velbus/ +[velux docs]: /integrations/velux/ +[venstar docs]: /integrations/venstar/ +[vera docs]: /integrations/vera/ +[verisure docs]: /integrations/verisure/ +[versasense docs]: /integrations/versasense/ +[version docs]: /integrations/version/ +[vesync docs]: /integrations/vesync/ +[vicare docs]: /integrations/vicare/ +[vilfo docs]: /integrations/vilfo/ +[vizio docs]: /integrations/vizio/ +[vlc_telnet docs]: /integrations/vlc_telnet/ +[voicerss docs]: /integrations/voicerss/ +[volvooncall docs]: /integrations/volvooncall/ +[vultr docs]: /integrations/vultr/ +[wake_on_lan docs]: /integrations/wake_on_lan/ +[wallbox docs]: /integrations/wallbox/ +[waqi docs]: /integrations/waqi/ +[waterfurnace docs]: /integrations/waterfurnace/ +[watttime docs]: /integrations/watttime/ +[waze_travel_time docs]: /integrations/waze_travel_time/ +[weather docs]: /integrations/weather/ +[webhook docs]: /integrations/webhook/ +[webostv docs]: /integrations/webostv/ +[webrtc docs]: /integrations/webrtc/ +[websocket_api docs]: /integrations/websocket_api/ +[wemo docs]: /integrations/wemo/ +[whois docs]: /integrations/whois/ +[wiffi docs]: /integrations/wiffi/ +[wilight docs]: /integrations/wilight/ +[wirelesstag docs]: /integrations/wirelesstag/ +[withings docs]: /integrations/withings/ +[wled docs]: /integrations/wled/ +[wolflink docs]: /integrations/wolflink/ +[workday docs]: /integrations/workday/ +[xbee docs]: /integrations/xbee/ +[xbox docs]: /integrations/xbox/ +[xiaomi_aqara docs]: /integrations/xiaomi_aqara/ +[xiaomi_miio docs]: /integrations/xiaomi_miio/ +[yale_smart_alarm docs]: /integrations/yale_smart_alarm/ +[yamaha docs]: /integrations/yamaha/ +[yamaha_musiccast docs]: /integrations/yamaha_musiccast/ +[yandex_transport docs]: /integrations/yandex_transport/ +[yandextts docs]: /integrations/yandextts/ +[yeelight docs]: /integrations/yeelight/ +[youless docs]: /integrations/youless/ +[zabbix docs]: /integrations/zabbix/ +[zamg docs]: /integrations/zamg/ +[zeroconf docs]: /integrations/zeroconf/ +[zha docs]: /integrations/zha/ +[ziggo_mediabox_xl docs]: /integrations/ziggo_mediabox_xl/ +[zone docs]: /integrations/zone/ +[zoneminder docs]: /integrations/zoneminder/ +[zwave docs]: /integrations/zwave/ +[zwave_js docs]: /integrations/zwave_js/ From 3791277d90d0944e61b2c8581a8956e76cb18a2f Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Wed, 26 Jan 2022 20:47:41 +0100 Subject: [PATCH 003/148] 2022.2.0: Add missing language flag to codefenced block --- source/_posts/2022-02-02-release-20222.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_posts/2022-02-02-release-20222.markdown b/source/_posts/2022-02-02-release-20222.markdown index f76d34f20ac..a966970f5c6 100644 --- a/source/_posts/2022-02-02-release-20222.markdown +++ b/source/_posts/2022-02-02-release-20222.markdown @@ -636,7 +636,7 @@ are now deprecated from the `manifest.json` file and should be moved into a `properties` dict. For example: -``` +```diff - {"type":"_airplay._tcp.local.","model":"appletv*"} + {"type":"_airplay._tcp.local.","properties":{"model":"appletv*"}} ``` From 8e20ee64b0a347b3217c5171a21d8dd49ddba0a1 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Wed, 26 Jan 2022 12:39:17 -0800 Subject: [PATCH 004/148] Update 2022-02-02-release-20222.markdown --- source/_posts/2022-02-02-release-20222.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/_posts/2022-02-02-release-20222.markdown b/source/_posts/2022-02-02-release-20222.markdown index a966970f5c6..f2994d55b62 100644 --- a/source/_posts/2022-02-02-release-20222.markdown +++ b/source/_posts/2022-02-02-release-20222.markdown @@ -87,12 +87,12 @@ Screenshot from GitHub PR, needs to be replaced Sonos, VLC (via Telnet) and Roku now support playing local media. And Sonos can now even browse other supported media. For example, if you have set up the Spotify and Sonos integration, you can now browse your Spotify to -play it on your Sonos devices. +play it on your Sonos devices. Cast also has support for Plex in the media browser. ## Diagnostics for Integration & Device To make debugging and reporting issues easier, both in terms of reporting it, -but also for developers to fix them, we have introduce an new integration: +but also for developers to fix them, we have introduce an new feature: Diagnostics. Diagnostics can be provided by integrations, to allow you to download From 8289fcf38435ad4c3c03b33161da561559716c7b Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Wed, 26 Jan 2022 12:40:46 -0800 Subject: [PATCH 005/148] typo --- source/_posts/2022-02-02-release-20222.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_posts/2022-02-02-release-20222.markdown b/source/_posts/2022-02-02-release-20222.markdown index f2994d55b62..51084eb80dd 100644 --- a/source/_posts/2022-02-02-release-20222.markdown +++ b/source/_posts/2022-02-02-release-20222.markdown @@ -484,7 +484,7 @@ the MQTT IO project, and many more. We do not forbid the use of GPIO, but we are merely deprecating and removing built-in integrations, providing GPIO functionality from Core. We welcome custom integrations (existing or new ones) to provide alternatives. However, -for most cases we recommend on using dedicated hardware, like a ESP device, +for most cases we recommend on using dedicated hardware, like an ESP device, instead. The following integrations have been deprecated and will be removed in From 34e5e791d8a0509ba9335168ad5edc45cd9cae5b Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Wed, 26 Jan 2022 13:55:32 -0800 Subject: [PATCH 006/148] left -> right --- source/_posts/2022-02-02-release-20222.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_posts/2022-02-02-release-20222.markdown b/source/_posts/2022-02-02-release-20222.markdown index 51084eb80dd..26b70c8c7b1 100644 --- a/source/_posts/2022-02-02-release-20222.markdown +++ b/source/_posts/2022-02-02-release-20222.markdown @@ -214,7 +214,7 @@ Screenshot from Discord, needs to be replaced Screenshot from GitHub PR, needs to be replaced

-- Search in top left of configuration dashboard (needs screenshot) +- Search in top right of configuration dashboard (needs screenshot) - Scenes now have a state, last activated timestamp (like a button entity, last pressed) From 94fb87f56da99a1f0914b8bab36e3d62a3937783 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joakim=20S=C3=B8rensen?= Date: Thu, 27 Jan 2022 11:49:44 +0100 Subject: [PATCH 007/148] Add missing refreces to github additions (#21349) --- source/_posts/2022-02-02-release-20222.markdown | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/source/_posts/2022-02-02-release-20222.markdown b/source/_posts/2022-02-02-release-20222.markdown index 26b70c8c7b1..ab65893995f 100644 --- a/source/_posts/2022-02-02-release-20222.markdown +++ b/source/_posts/2022-02-02-release-20222.markdown @@ -398,9 +398,10 @@ This release adds support for long-term statistics to the following integrations - Add state class to nexia sensors ([@bdraco] - [#64932]) ([nexia docs]) - Add state classes to august sensors ([@bdraco] - [#64931]) ([august docs]) - Add edl21 sensor state class and device class ([@StephanU] - [#56968]) ([edl21 docs]) -- - Add state class support to Luftdaten ([@frenck] - [#62585]) ([luftdaten docs]) +- Add state class support to Luftdaten ([@frenck] - [#62585]) ([luftdaten docs]) - Add SensorStateClass to Kraken sensors ([@eifinger] - [#63590]) ([kraken docs]) - Add long term statistics to buienradar ([@tedvdb] - [#58917]) ([buienradar docs]) +- Revamp github integration ([@ludeeus] - [#64190]) ([github docs]) And the following integrations now have entity categories: @@ -412,6 +413,7 @@ And the following integrations now have entity categories: - Motion blinds add entity category ([@starkillerOG] - [#62266]) ([motion_blinds docs]) - Hyperion add entity category ([@starkillerOG] - [#62268]) ([hyperion docs]) - Use entity class attributes for Mazda integration ([@bdr99] - [#59869]) ([mazda docs]) +- Revamp github integration ([@ludeeus] - [#64190]) ([github docs]) ## New Integrations @@ -443,6 +445,7 @@ The following integrations are now available via the Home Assistant UI: - [Android TV][androidtv docs], done by [@ollo69] - [CPU Speed][cpuspeed docs], done by [@frenck] - [DNS IP][dnsip docs], done by [@gjohansson-ST] +- [GitHub][github docs], done by [@ludeeus] - [Launch Library][launch_library docs], done by [@DurgNomis-drol] - [LG webOS Smart TV][webostv docs], done by [@thecode] - [PVOutput][pvoutput docs], done by [@frenck] From d98c2caf9f0352f9009acb7783d6a288a12989b1 Mon Sep 17 00:00:00 2001 From: Allen Porter Date: Fri, 28 Jan 2022 13:26:16 -0800 Subject: [PATCH 008/148] Update link to rtsp_to_webrtc integration in release notes (#21375) --- source/_posts/2022-02-02-release-20222.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_posts/2022-02-02-release-20222.markdown b/source/_posts/2022-02-02-release-20222.markdown index ab65893995f..10cdab553fb 100644 --- a/source/_posts/2022-02-02-release-20222.markdown +++ b/source/_posts/2022-02-02-release-20222.markdown @@ -432,7 +432,7 @@ We welcome the following new integration this release: - [Oncue by Kohler][oncue docs], added by [@bdraco] - [Open-Meteo][open_meteo docs], added by [@frenck] - [Overkiz][overkiz docs], added by [@iMicknl] -- [RTSPtoWebRTC][webrtc docs], added by [@allenporter] +- [RTSPtoWebRTC][rtsp_to_webrtc docs], added by [@allenporter] - [SenseME][senseme docs], added by [@bdraco] - [Steamist][steamist docs], added by [@bdraco] - [UniFi Protect][unifiprotect docs], added by [@AngellusMortis] From 76947e7f7afd55a8bfe5e30479c6c10eee6ba896 Mon Sep 17 00:00:00 2001 From: Marcel van der Veldt Date: Tue, 1 Feb 2022 16:13:08 +0100 Subject: [PATCH 009/148] Update Hue docs (#21339) Co-authored-by: Franck Nijhof --- source/_integrations/hue.markdown | 31 ++++++++++++++++++++++++++----- 1 file changed, 26 insertions(+), 5 deletions(-) diff --git a/source/_integrations/hue.markdown b/source/_integrations/hue.markdown index 95c56b490d5..6c7ea5eedb1 100644 --- a/source/_integrations/hue.markdown +++ b/source/_integrations/hue.markdown @@ -6,12 +6,12 @@ ha_category: - Light ha_iot_class: Local Push featured: true -ha_release: '0.60' +ha_release: "0.60" ha_config_flow: true ha_quality_scale: platinum ha_codeowners: - - '@balloob' - - '@marcelveldt' + - "@balloob" + - "@marcelveldt" ha_domain: hue ha_ssdp: true ha_homekit: true @@ -36,20 +36,41 @@ There is currently support for the following device types within Home Assistant: ## Lights for Hue zones and rooms -The Hue concept is based on Rooms and zones. Although the underlying Hue lights are exposed directly to Home Assistant it might also be useful to interact with the `grouped lights` of the Hue ecosystem, for example to turn all lights in a Hue group on/off at the same time. +The Hue concept is based on Rooms and Zones. Although the underlying Hue lights are exposed directly to Home Assistant it might also be useful to interact with the `grouped lights` of the Hue ecosystem, for example to turn all lights in a Hue group on/off at the same time. Home Assistant creates lights for each Hue zone/room automatically but disables them by default. If you'd like to use those `grouped lights`, you can enable them from Configuration --> Integrations --> Hue --> entities. ## Scenes -In the Hue concept you can create (dynamic) scenes for the lights within rooms and zones. These Hue scenes are automatically imported in Home Assistant and available as scene entities. Creating or editing Hue scenes in Home Assistant is not supported. +In the Hue concept you can create (dynamic) scenes for the lights within rooms and zones. You can create, edit and delete Hue scenes from the (official) Hue app on iOS and Android. Each Zone/Room can have it's own scenes assigned and there is a large library of precreated scenes for specific moods. These Hue scenes are automatically imported in Home Assistant and they're available as `scene entities`. Creating or editing Hue scenes in Home Assistant is not supported. +It is advised to use Hue scenes for controlling multiple lights at once for a smooth experience. If you individually control multiple lights and/or use Home Assistant scenes, each light command will be sent to each light one by one which doesn't give a very good user experience, while using a Hue scene sends commands to all lights at once in an optimized way, resulting in a smooth experience. + +### Service `hue.activate_scene` + +To have more control over Hue scenes we've implemented a secondary, more advanced service to activate a Hue scene and set some properties at the same time, such as the Dynamic mode and/or brightness. + +| Service Data Attribute | Required | Description | +| ---------------------- | -------- | --------------------------------------------------------------------------------------------- | +| `entity_id` | yes | Entity ID of the Hue Scene entity you want to activate. | +| `transition` | no | Transition duration (in seconds) it takes to bring devices to the state defined in the scene. | +| `dynamic` | no | Enable (true) or Disable (false) dynamic mode for the scene. | +| `speed` | no | Set the speed (of the dynamic palette) for this scene. | +| `brightness` | no | Set the brightnes for this scene. | + +You can use this service for example if you'd like to start/stop Dynamic Mode. ## Hue remotes and switches Hue remotes such as the Dimmer Switch are stateless devices, meaning that they do not have a on/off state like regular entities in Home Assistant. Instead, such devices emit the event `hue_event` when a button is pressed. You can test what events come in using the event {% my developer_events title="developer tools in Home Assistant" %} and subscribe to the `hue_event`. Once you know what the event data looks like, you can use this to create automations. +
+ +At the time of writing, there's a limitation on the Hue API that each device can only send one event per second. This means that button events are rate-limited to 1 per second. This is brought to the attention of Signify and it will hopefully be fixed soon. + +
+ ## Support for legacy (V1) Hue bridges Philips/Signify released a new version of their Hue bridge (square shape) and their legacy/V1 bridge (round shape) is now end of life and no longer supported by them. Home Assistant will continue to support the V1 Hue bridge as long as it is technically possible, although with a few limitations: From 7624154b88de5cad5e222e3e0ee4d18c45a24a73 Mon Sep 17 00:00:00 2001 From: Tathar Date: Thu, 27 Jan 2022 11:03:21 +0100 Subject: [PATCH 010/148] three litle bug in modbus doc (#21356) --- source/_integrations/modbus.markdown | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/source/_integrations/modbus.markdown b/source/_integrations/modbus.markdown index f259ac0eb38..64369d6e597 100644 --- a/source/_integrations/modbus.markdown +++ b/source/_integrations/modbus.markdown @@ -483,7 +483,6 @@ modbus: device_class: door input_type: coil address: 117 - device_class: door state_open: 1 state_opening: 2 state_closed: 0 @@ -491,7 +490,7 @@ modbus: status_register: 119 status_register_type: holding - name: "Door2" - address: 117 + address: 118 ``` {% configuration %} @@ -1033,10 +1032,10 @@ switches: required: false default: same as command_off type: integer - unique_id: - description: An ID that uniquely identifies this sensor. If two sensors have the same unique ID, Home Assistant will raise an exception. - required: false - type: string + unique_id: + description: An ID that uniquely identifies this sensor. If two sensors have the same unique ID, Home Assistant will raise an exception. + required: false + type: string {% endconfiguration %} ## Opening an issue From d7db0947de8a7916720dda35c7d89bd244e3b193 Mon Sep 17 00:00:00 2001 From: Simon Hansen <67142049+DurgNomis-drol@users.noreply.github.com> Date: Fri, 28 Jan 2022 10:52:11 +0100 Subject: [PATCH 011/148] Add a note about starship sensors to launchlibrary (#21358) --- source/_integrations/launch_library.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_integrations/launch_library.markdown b/source/_integrations/launch_library.markdown index 97494a0b0c7..c1324e9bc5c 100644 --- a/source/_integrations/launch_library.markdown +++ b/source/_integrations/launch_library.markdown @@ -15,7 +15,7 @@ ha_platforms: ha_config_flow: true --- -The `launch_library` sensor will provide you with information about the next planned space launch. +The `launch_library` sensor will provide you with information about the next planned space launch and SpaceX Starship event. {% include integrations/config_flow.md %} From 42f8d7ee600f8a14e269ccb6d580f19cdf155d04 Mon Sep 17 00:00:00 2001 From: Christopher Masto Date: Fri, 28 Jan 2022 14:31:12 -0500 Subject: [PATCH 012/148] Update list of tested devices (#21368) --- source/_integrations/oncue.markdown | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/source/_integrations/oncue.markdown b/source/_integrations/oncue.markdown index 79d1feab126..c141cd59653 100644 --- a/source/_integrations/oncue.markdown +++ b/source/_integrations/oncue.markdown @@ -17,8 +17,9 @@ ha_platforms: The Oncue by Kohler integration will allow you to monitor the state of your [Oncue enabled Kohler generator](https://api.kohler.com/oncueplus/#/auth). -## Supported Devices +## Tested Devices +- [24RCL](https://kohlerpower.com/en/residential/generators/product/24rcl) - [38RCLB](https://kohlerpower.com/en/residential/generators/product/38rclb) - [48RCLB](https://kohlerpower.com/en/residential/generators/product/48rclb) - [60RCLA](https://kohlerpower.com/en/residential/generators/product/60rcla) From 286bec8ae6509710270d6fe871e813c4b92bfc24 Mon Sep 17 00:00:00 2001 From: Dave T <17680170+davet2001@users.noreply.github.com> Date: Mon, 31 Jan 2022 10:36:35 +0000 Subject: [PATCH 013/148] Add instructions for SALUS device OTA upgrade (#21384) --- source/_integrations/zha.markdown | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/source/_integrations/zha.markdown b/source/_integrations/zha.markdown index 2ee338b03b2..24e43b93b27 100644 --- a/source/_integrations/zha.markdown +++ b/source/_integrations/zha.markdown @@ -206,7 +206,7 @@ custom_quirks_path: ZHA component has the ability to automatically download and perform OTA (Over-The-Air) firmware updates of Zigbee devices if the OTA firmware provider source URL for updates is available. OTA firmware updating is set to disabled (`false`) in the configuration by default. -Currently, OTA providers for firmware updates are only available for IKEA and LEDVANCE devices. OTA updates for device of other manufactures could also be supported by ZHA dependencies in the future, if these manufacturers publish their firmware publicly. +Online OTA providers for firmware updates are currently only available for IKEA, LEDVANCE and SALUS devices. Support for OTA updates from other manufacturers could be supported in the future, if they publish their firmware images publicly. To enable OTA firmware updates for the ZHA integration you need to add the following configuration to your `configuration.yaml` and restart Home Assistant: @@ -216,10 +216,11 @@ zha: ota: ikea_provider: true # Auto update Trådfri devices ledvance_provider: true # Auto update LEDVANCE devices + salus_provider: true # Auto update SALUS devices #otau_directory: /path/to/your/ota/folder # Utilize .ota files to update everything else ``` -You can choose if the IKEA or LEDVANCE provider should be set to enabled (`true`) or disabled (`false`) individually. After the OTA firmware upgrades are finished, you can set these to `false` again if you do not want ZHA to automatically download and perform OTA firmware upgrades in the future. +You can choose if the IKEA, LEDVANCE or SALUS provider should be set to enabled (`true`) or disabled (`false`) individually. After the OTA firmware upgrades are finished, you can set these to `false` again if you do not want ZHA to automatically download and perform OTA firmware upgrades in the future. Note that the `otau_directory` setting is optional and can be used for any firmware files you have downloaded yourself, for any device type and manufacturer. For example, Philips Hue firmwares manually downloaded from [here](https://github.com/dresden-elektronik/deconz-rest-plugin/wiki/OTA-Image-Types---Firmware-versions) and/or [here](https://github.com/Koenkk/zigbee-OTA/blob/a02a4cb33f7c46b4d2916805bfcad582124ec975/index.json) added to the `otau_directory` can be flashed, although a manual `zha.issue_zigbee_cluster_command` command currently (as of 2021.3.3) must be issued against the IEEE of the Philips Hue device under Developer Tools->Services, e.g.: From b8c19779bc6bd974cd8c984fdfb43cd609704e57 Mon Sep 17 00:00:00 2001 From: "J. Nick Koston" Date: Mon, 31 Jan 2022 04:43:29 -0600 Subject: [PATCH 014/148] Add dhcp discovery to oncue (#21386) --- source/_integrations/oncue.markdown | 1 + 1 file changed, 1 insertion(+) diff --git a/source/_integrations/oncue.markdown b/source/_integrations/oncue.markdown index c141cd59653..cebe209b133 100644 --- a/source/_integrations/oncue.markdown +++ b/source/_integrations/oncue.markdown @@ -9,6 +9,7 @@ ha_release: 2022.2 ha_config_flow: true ha_codeowners: - '@bdraco' +ha_dhcp: true ha_domain: oncue ha_platforms: - binary_sensor From 22f8521879c090348f0507fce0b12b67bf841a04 Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Tue, 1 Feb 2022 18:53:28 +0100 Subject: [PATCH 015/148] 2022.2.0: Update property sync with codebase --- CODEOWNERS | 2 +- source/_integrations/advantage_air.markdown | 1 + source/_integrations/esphome.markdown | 1 + source/_integrations/fritz.markdown | 1 + source/_integrations/homewizard.markdown | 1 + source/_integrations/hue.markdown | 6 +++--- source/_integrations/intellifire.markdown | 1 + source/_integrations/onewire.markdown | 1 + source/_integrations/p1_monitor.markdown | 1 + source/_integrations/rtsp_to_webrtc.markdown | 2 ++ source/_integrations/samsungtv.markdown | 1 + source/_integrations/simplisafe.markdown | 1 + source/_integrations/uptimerobot.markdown | 2 ++ source/_integrations/wled.markdown | 1 + 14 files changed, 18 insertions(+), 4 deletions(-) diff --git a/CODEOWNERS b/CODEOWNERS index 3e9b003903c..2608aa2e5f9 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -560,7 +560,7 @@ source/_integrations/upc_connect.markdown @pvizeli @fabaff source/_integrations/upcloud.markdown @scop source/_integrations/updater.markdown @home-assistant/core source/_integrations/upnp.markdown @StevenLooman @ehendrix23 -source/_integrations/uptimerobot.markdown @ludeeus +source/_integrations/uptimerobot.markdown @ludeeus @chemelli74 source/_integrations/usb.markdown @bdraco source/_integrations/usgs_earthquakes_feed.markdown @exxamalte source/_integrations/utility_meter.markdown @dgomes diff --git a/source/_integrations/advantage_air.markdown b/source/_integrations/advantage_air.markdown index 10965c54883..32e7072a557 100644 --- a/source/_integrations/advantage_air.markdown +++ b/source/_integrations/advantage_air.markdown @@ -11,6 +11,7 @@ ha_domain: advantage_air ha_quality_scale: platinum ha_platforms: - binary_sensor + - diagnostics - climate - cover - sensor diff --git a/source/_integrations/esphome.markdown b/source/_integrations/esphome.markdown index ac7ac0b9b26..c223d58cd8c 100644 --- a/source/_integrations/esphome.markdown +++ b/source/_integrations/esphome.markdown @@ -16,6 +16,7 @@ ha_platforms: - binary_sensor - camera - button + - diagnostics - climate - cover - fan diff --git a/source/_integrations/fritz.markdown b/source/_integrations/fritz.markdown index 6716a316355..19817a9a5ec 100644 --- a/source/_integrations/fritz.markdown +++ b/source/_integrations/fritz.markdown @@ -17,6 +17,7 @@ ha_iot_class: Local Polling ha_platforms: - binary_sensor - button + - diagnostics - device_tracker - sensor - switch diff --git a/source/_integrations/homewizard.markdown b/source/_integrations/homewizard.markdown index bc333b6a0f2..59606e93107 100644 --- a/source/_integrations/homewizard.markdown +++ b/source/_integrations/homewizard.markdown @@ -10,6 +10,7 @@ ha_domain: homewizard ha_codeowners: - '@DCSBL' ha_platforms: + - diagnostics - sensor - switch ha_zeroconf: true diff --git a/source/_integrations/hue.markdown b/source/_integrations/hue.markdown index 6c7ea5eedb1..bc62d95aac9 100644 --- a/source/_integrations/hue.markdown +++ b/source/_integrations/hue.markdown @@ -6,12 +6,12 @@ ha_category: - Light ha_iot_class: Local Push featured: true -ha_release: "0.60" +ha_release: '0.60' ha_config_flow: true ha_quality_scale: platinum ha_codeowners: - - "@balloob" - - "@marcelveldt" + - '@balloob' + - '@marcelveldt' ha_domain: hue ha_ssdp: true ha_homekit: true diff --git a/source/_integrations/intellifire.markdown b/source/_integrations/intellifire.markdown index 7c622c5c514..e47afd2f78a 100644 --- a/source/_integrations/intellifire.markdown +++ b/source/_integrations/intellifire.markdown @@ -11,6 +11,7 @@ ha_domain: intellifire ha_config_flow: true ha_platforms: - binary_sensor + - sensor --- IntelliFire Wi-Fi fireplace modules provide app-based and Alexa control to various fireplaces. The modules do expose an unencrypted HTTP endpoint on the network that provides status information. This integration will read that URL and create a set of sensors displaying the current fireplace state. diff --git a/source/_integrations/onewire.markdown b/source/_integrations/onewire.markdown index 1310ffcc528..4bb949e95e1 100644 --- a/source/_integrations/onewire.markdown +++ b/source/_integrations/onewire.markdown @@ -12,6 +12,7 @@ ha_codeowners: ha_domain: onewire ha_platforms: - binary_sensor + - diagnostics - sensor - switch --- diff --git a/source/_integrations/p1_monitor.markdown b/source/_integrations/p1_monitor.markdown index 33c94593b0b..4a7dde24c09 100644 --- a/source/_integrations/p1_monitor.markdown +++ b/source/_integrations/p1_monitor.markdown @@ -10,6 +10,7 @@ ha_codeowners: - '@klaasnicolaas' ha_domain: p1_monitor ha_platforms: + - diagnostics - sensor ha_quality_scale: platinum --- diff --git a/source/_integrations/rtsp_to_webrtc.markdown b/source/_integrations/rtsp_to_webrtc.markdown index f150bc94967..fd0411f6c60 100644 --- a/source/_integrations/rtsp_to_webrtc.markdown +++ b/source/_integrations/rtsp_to_webrtc.markdown @@ -9,6 +9,8 @@ ha_iot_class: Local Push ha_codeowners: - '@allenporter' ha_domain: rtsp_to_webrtc +ha_platforms: + - diagnostics --- The RTSPtoWebRTC integration registers with [camera integration](/integration/camera) to provide WebRTC live streams for any RTSP camera. The integration initiates a connection to a [RTSPtoWeb](https://github.com/deepch/RTSPtoWeb) or [RTSPtoWebRTC](https://github.com/deepch/RTSPtoWebRTC) proxy server that converts an RTSP stream to a WebRTC stream. diff --git a/source/_integrations/samsungtv.markdown b/source/_integrations/samsungtv.markdown index 26a36ca4fbd..e9b911bc06b 100644 --- a/source/_integrations/samsungtv.markdown +++ b/source/_integrations/samsungtv.markdown @@ -12,6 +12,7 @@ ha_codeowners: ha_domain: samsungtv ha_ssdp: true ha_platforms: + - diagnostics - media_player ha_zeroconf: true ha_dhcp: true diff --git a/source/_integrations/simplisafe.markdown b/source/_integrations/simplisafe.markdown index 234388d2b4b..436ae0e9032 100644 --- a/source/_integrations/simplisafe.markdown +++ b/source/_integrations/simplisafe.markdown @@ -13,6 +13,7 @@ ha_domain: simplisafe ha_platforms: - alarm_control_panel - binary_sensor + - diagnostics - lock - sensor ha_dhcp: true diff --git a/source/_integrations/uptimerobot.markdown b/source/_integrations/uptimerobot.markdown index 27e22fb54c1..04e2499c6c2 100644 --- a/source/_integrations/uptimerobot.markdown +++ b/source/_integrations/uptimerobot.markdown @@ -7,10 +7,12 @@ ha_release: 0.72 ha_iot_class: Cloud Polling ha_codeowners: - '@ludeeus' + - '@chemelli74' ha_domain: uptimerobot ha_platforms: - binary_sensor - diagnostics + - sensor ha_quality_scale: platinum ha_config_flow: true --- diff --git a/source/_integrations/wled.markdown b/source/_integrations/wled.markdown index f087720bd26..61539811e3c 100644 --- a/source/_integrations/wled.markdown +++ b/source/_integrations/wled.markdown @@ -16,6 +16,7 @@ ha_zeroconf: true ha_platforms: - binary_sensor - button + - diagnostics - light - number - sensor From b398debbbec56c52619484546e242125a3d5cb7d Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Tue, 1 Feb 2022 18:56:09 +0100 Subject: [PATCH 016/148] 2022.2.0: Update changelog as of b5 --- .../_posts/2022-02-02-release-20222.markdown | 233 +++++++++++++++++- 1 file changed, 232 insertions(+), 1 deletion(-) diff --git a/source/_posts/2022-02-02-release-20222.markdown b/source/_posts/2022-02-02-release-20222.markdown index 10cdab553fb..38e2bc8c883 100644 --- a/source/_posts/2022-02-02-release-20222.markdown +++ b/source/_posts/2022-02-02-release-20222.markdown @@ -166,6 +166,16 @@ Integrations that have adopted it this release (needs to be writte out nicely) - Add diagnostics to Tile ([@bachya] - [#64875]) ([tile docs]) - Add diagnostics to Ridwell ([@bachya] - [#64863]) ([ridwell docs]) - Add diagnostics to WattTime ([@bachya] - [#64887]) ([watttime docs]) +- Add diagnostics download to ESPHome ([@jesserockz] - [#65008]) ([esphome docs]) (beta fix) +- Add diagnostics support to P1 Monitor ([@klaasnicolaas] - [#65060]) ([p1_monitor docs]) (beta fix) +- Add diagnostics support to onewire ([@epenet] - [#65131]) ([onewire docs]) (beta fix) +- Add diagnostics for rtsp_to_webrtc ([@allenporter] - [#65138]) ([rtsp_to_webrtc docs]) (beta fix) +- Update nest diagnostics ([@allenporter] - [#65141]) ([nest docs]) (beta fix) +- Add diagnostics to Advantage Air ([@Bre77] - [#65006]) ([advantage_air docs]) (beta fix) +- Add HomeWizard diagnostics ([@DCSBL] - [#65297]) ([homewizard docs]) (beta fix) (new-integration) +- Add diagnostics support to WLED ([@frenck] - [#65317]) ([wled docs]) (beta fix) +- Add diagnostics for SamsungTV ([@chemelli74] - [#65342]) ([samsungtv docs]) (beta fix + ## Improved handling of device tracker entities @@ -3694,7 +3704,114 @@ The following integrations are no longer available as of this release: - Abort rachio config entry setup when not connected to cloud ([@emontnemery] - [#64975]) ([rachio docs]) - Abort plaato flows when not connected to home assistant cloud ([@emontnemery] - [#64969]) ([plaato docs]) - Abort owntracks config flow when not connected to home assistant cloud ([@emontnemery] - [#64968]) ([owntracks docs]) - +- Fix MQTT climate action null warnings ([@jbouwh] - [#64658]) (beta fix) +- Update Arris TG2492LG dependency to 1.2.1 ([@vanbalken] - [#64999]) ([arris_tg2492lg docs]) (beta fix) +- Add diagnostics download to ESPHome ([@jesserockz] - [#65008]) ([esphome docs]) (beta fix) +- Handle Tuya sendings strings instead of numeric values ([@frenck] - [#65009]) ([tuya docs]) (beta fix) +- Bump flux_led to fix push updates on newer devices ([@bdraco] - [#65011]) ([flux_led docs]) (beta fix) +- Set ping data to None instead of False ([@ludeeus] - [#65013]) ([ping docs]) (beta fix) +- Bump pymazda to 0.3.2 ([@bdr99] - [#65025]) ([mazda docs]) (beta fix) +- Catch connection reset error ([@balloob] - [#65027]) ([hassio docs]) (beta fix) +- Update rokuecp to 0.12.0 ([@ctalkington] - [#65030]) ([roku docs]) (beta fix) +- Fix Shelly battery powered devices unavailable ([@thecode] - [#65031]) ([shelly docs]) (beta fix) +- Correct zone state ([@emontnemery] - [#65040]) ([device_tracker docs]) ([zone docs]) (beta fix) +- Unset Alexa authorized flag in additional case ([@emontnemery] - [#65044]) ([cloud docs]) (beta fix) +- Add `flow_title` for HomeWizard Energy ([@DCSBL] - [#65047]) ([homewizard docs]) (beta fix) +- Fix typo in entity name for launchlibrary ([@DurgNomis-drol] - [#65048]) ([launch_library docs]) (beta fix) +- Fix notify leaving zone blueprint ([@MartinHjelmare] - [#65056]) ([automation docs]) (beta fix) +- Remove `backports.zoneinfo` dependency ([@cdce8p] - [#65069]) (beta fix) +- Update PyVicare to 2.16.1 ([@oischinger] - [#65073]) ([vicare docs]) (beta fix) +- Guard browsing Spotify if setup failed ([@jjlawren] - [#65074]) ([spotify docs]) (beta fix) +- Bump frontend to 20220127.0 ([@balloob] - [#65075]) ([frontend docs]) (beta fix) +- Update Renault to 0.1.7 ([@epenet] - [#65076]) ([renault docs]) (beta fix) +- Check explicitly for None value in Overkiz integration ([@tetienne] - [#65045]) ([overkiz docs]) (beta fix) +- Better names for energy related homekit_controller sensors ([@Jc2k] - [#65055]) ([homekit_controller docs]) (beta fix) +- Fix Shelly detached switches automation triggers ([@thecode] - [#65059]) ([shelly docs]) (beta fix) +- Add diagnostics support to P1 Monitor ([@klaasnicolaas] - [#65060]) ([p1_monitor docs]) (beta fix) +- Support unpairing homekit accessories from homekit_controller ([@Jc2k] - [#65065]) ([homekit_controller docs]) (beta fix) +- Fix Yale optionsflow ([@gjohansson-ST] - [#65072]) ([yale_smart_alarm docs]) (beta fix) +- Reconnect client service tried to connect even if device didn't exist ([@Kane610] - [#65082]) ([unifi docs]) (beta fix) +- Add support for proxy-selected intent ([@balloob] - [#65094]) ([google_assistant docs]) (beta fix) +- Fix Shelly 1/1PM external temperature sensor unavailable ([@thecode] - [#65096]) ([shelly docs]) (beta fix) +- Downgrade homekit linked humidity sensor error to debug ([@bdraco] - [#65098]) ([homekit docs]) (beta fix) +- Handle vicare I/O in executor ([@oischinger] - [#65105]) ([vicare docs]) (beta fix) +- Fix cast support for browsing local media source ([@emontnemery] - [#65115]) ([cast docs]) (beta fix) +- Goodwe - fix value errors ([@starkillerOG] - [#65121]) ([goodwe docs]) (beta fix) +- Handle FritzInternalError exception for Fritz ([@chemelli74] - [#65124]) ([fritz docs]) (beta fix) +- Add diagnostics support to onewire ([@epenet] - [#65131]) ([onewire docs]) (beta fix) +- Use new withings oauth2 refresh token endpoint ([@nbogojevic] - [#65134]) ([withings docs]) (beta fix) +- Bump google-nest-sdm to 1.6.0 (diagnostics) ([@allenporter] - [#65135]) ([nest docs]) (beta fix) +- Add diagnostics for rtsp_to_webrtc ([@allenporter] - [#65138]) ([rtsp_to_webrtc docs]) (beta fix) +- Move `install_requires` to `setup.cfg` ([@cdce8p] - [#65095]) (beta fix) +- Move version metadata key to setup.cfg ([@cdce8p] - [#65091]) (beta fix) +- Move `project_urls` to `setup.cfg` ([@cdce8p] - [#65129]) (beta fix) +- Update nest diagnostics ([@allenporter] - [#65141]) ([nest docs]) (beta fix) +- Use isolated build environments ([@cdce8p] - [#65145]) (beta fix) +- Fix excepton for SamsungTV getting device info ([@chemelli74] - [#65151]) ([samsungtv docs]) (beta fix) +- Fix status for Fritz device tracker ([@chemelli74] - [#65152]) ([fritz docs]) (beta fix) +- Move remaining keys to `setup.cfg` ([@cdce8p] - [#65154]) (beta fix) +- Fix setting speed of Tuya fan ([@frenck] - [#65155]) ([tuya docs]) (beta fix) +- Add OUI for KL430 tplink light strip to discovery ([@bdraco] - [#65159]) ([tplink docs]) (beta fix) +- Add dhcp discovery to oncue ([@bdraco] - [#65160]) ([oncue docs]) (beta fix) +- Add additional roomba OUIs to DHCP discovery ([@bdraco] - [#65161]) ([roomba docs]) (beta fix) +- Add additional blink OUIs to DHCP discovery ([@bdraco] - [#65162]) ([blink docs]) (beta fix) +- Fix uncaught exception during isy994 dhcp discovery with ignored entry ([@bdraco] - [#65165]) ([isy994 docs]) (beta fix) +- Add tests for KNX diagnostic and expose ([@marvin-w] - [#64938]) ([knx docs]) (beta fix) +- Fix KNX Expose for strings longer than 14 bytes ([@marvin-w] - [#63026]) ([knx docs]) (beta fix) +- Minor refactoring of cast media_player ([@emontnemery] - [#65125]) ([cast docs]) (beta fix) +- Aqara restore door sensor state on start ([@starkillerOG] - [#65128]) ([xiaomi_aqara docs]) (beta fix) +- Clean up SimpliSafe config flow tests ([@bachya] - [#65167]) (beta fix) +- Ensure diagnostics redaction can handle lists of lists ([@bachya] - [#65170]) ([diagnostics docs]) (beta fix) +- Add diagnostics to SimpliSafe ([@bachya] - [#65171]) ([simplisafe docs]) (beta fix) +- Better manage of nested lists ([@Kane610] - [#65176]) ([unifi docs]) (beta fix) +- Fix "internet access" switch for Fritz connected device without known IP address ([@mib1185] - [#65190]) ([fritz docs]) (beta fix) +- Fix webostv configure sources when selected source is missing ([@thecode] - [#65195]) ([webostv docs]) (beta fix) +- Add logic to avoid creating the same scene multiple times ([@Kane610] - [#65207]) ([deconz docs]) (beta fix) +- Add activity statistics to Sonos diagnostics ([@jjlawren] - [#65214]) ([sonos docs]) (beta fix) +- Fix senseme fan lights ([@bdraco] - [#65217]) ([senseme docs]) (beta fix) +- Increase the timeout for flux_led directed discovery ([@bdraco] - [#65222]) ([flux_led docs]) (beta fix) +- Use .json.txt for diagnostics download filetype ([@ludeeus] - [#65236]) (beta fix) +- Fix webostv live TV source missing when configuring sources ([@thecode] - [#65243]) ([webostv docs]) (beta fix) +- Fix powerwall login retry when hitting rate limit ([@bdraco] - [#65245]) ([powerwall docs]) (beta fix) +- Fix flux_led not generating unique ids when discovery fails ([@bdraco] - [#65250]) ([flux_led docs]) (beta fix) +- Fix debugpy blocking the event loop at startup ([@bdraco] - [#65252]) ([debugpy docs]) (beta fix) +- Handle missing attrs in whois results ([@bdraco] - [#65254]) ([whois docs]) (beta fix) +- Simplify whois value_fn ([@bdraco] - [#65265]) ([whois docs]) (beta fix) +- Bump aiowebostv to 0.1.2 ([@thecode] - [#65267]) ([webostv docs]) (beta fix) +- Fix flick_electric auth failures ([@ZephireNZ] - [#65274]) ([flick_electric docs]) (beta fix) +- Update xknx to 0.19.1 ([@farmio] - [#65275]) ([knx docs]) (beta fix) +- Bump python-kasa to 0.4.1 for tplink integration ([@rytilahti] - [#64123]) ([tplink docs]) (beta fix) +- Add diagnostics to Advantage Air ([@Bre77] - [#65006]) ([advantage_air docs]) (beta fix) +- Send notification to alert of Sonos networking issues ([@jjlawren] - [#65084]) ([sonos docs]) (beta fix) +- Add cast platform for extending Google Cast media_player ([@emontnemery] - [#65149]) ([cast docs]) ([plex docs]) (beta fix) +- Tuya fan percentage fix ([@fOmey] - [#65225]) ([tuya docs]) (beta fix) +- Increase august timeout and make failure to sync at startup non-fatal ([@bdraco] - [#65281]) ([august docs]) (beta fix) +- Bump pyatmo to v.6.2.4 ([@cgtobi] - [#65285]) ([netatmo docs]) (beta fix) +- Correct cast media browse filter for audio groups ([@emontnemery] - [#65288]) ([cast docs]) (beta fix) +- Bump pynetgear to 0.9.1 ([@starkillerOG] - [#65290]) ([netgear docs]) (beta fix) +- Bump pyoverkiz to 1.3.2 ([@iMicknl] - [#65293]) ([overkiz docs]) (beta fix) +- Fix HomeWizard unclosed clientsession error when closing Home Assistant ([@DCSBL] - [#65296]) ([homewizard docs]) (beta fix) +- Add HomeWizard diagnostics ([@DCSBL] - [#65297]) ([homewizard docs]) (beta fix) (new-integration) +- Update adguard to 0.5.1 ([@frenck] - [#65305]) ([adguard docs]) (beta fix) +- Update wled to 0.13.0 ([@frenck] - [#65312]) ([wled docs]) (beta fix) +- Fix missing expiration data in Whois information ([@frenck] - [#65313]) ([whois docs]) (beta fix) +- Improve reliability of august setup with recent api changes ([@bdraco] - [#65314]) ([august docs]) (beta fix) +- Bump androidtv to 0.0.61 ([@JeffLIrion] - [#65315]) (beta fix) +- Add diagnostics support to WLED ([@frenck] - [#65317]) ([wled docs]) (beta fix) +- Update tailscale to 0.2.0 ([@frenck] - [#65318]) ([tailscale docs]) (beta fix) +- Ensure PVOutput connection error is logged ([@frenck] - [#65319]) ([pvoutput docs]) (beta fix) +- Bump pyps4-2ndscreen to 1.3.1 ([@pascalwinters] - [#65320]) ([ps4 docs]) (beta fix) +- Alexa to handle brightness and catch exceptions ([@balloob] - [#65322]) ([alexa docs]) (beta fix) +- Fritz tests cleanup ([@chemelli74] - [#65054]) ([fritz docs]) (beta fix) +- Improve debugging and error handling in Fritz!Tools ([@mib1185] - [#65324]) ([fritz docs]) (beta fix) +- Fix guardian being rediscovered via dhcp ([@bdraco] - [#65332]) ([guardian docs]) (beta fix) +- Add diagnostics support to Fritz ([@chemelli74] - [#65334]) ([fritz docs]) (beta fix) +- Prevent unifiprotect from being rediscovered on UDM-PROs ([@bdraco] - [#65335]) ([unifiprotect docs]) (beta fix) +- Bump version tag on async_timeout warning ([@balloob] - [#65339]) (beta fix) +- Bump aiohue to 4.0.1 ([@balloob] - [#65340]) ([hue docs]) (beta fix) +- Bump zeroconf to 0.38.3 ([@bdraco] - [#65341]) ([zeroconf docs]) (beta fix) +- Add diagnostics for SamsungTV ([@chemelli74] - [#65342]) ([samsungtv docs]) (beta fix) +- I zone, you zone, we zoning ([@balloob] - [#65344]) ([zone docs]) (beta fix) {% enddetails %} @@ -4679,6 +4796,7 @@ The following integrations are no longer available as of this release: [#63020]: https://github.com/home-assistant/core/pull/63020 [#63022]: https://github.com/home-assistant/core/pull/63022 [#63023]: https://github.com/home-assistant/core/pull/63023 +[#63026]: https://github.com/home-assistant/core/pull/63026 [#63027]: https://github.com/home-assistant/core/pull/63027 [#63032]: https://github.com/home-assistant/core/pull/63032 [#63034]: https://github.com/home-assistant/core/pull/63034 @@ -5257,6 +5375,7 @@ The following integrations are no longer available as of this release: [#64117]: https://github.com/home-assistant/core/pull/64117 [#64121]: https://github.com/home-assistant/core/pull/64121 [#64122]: https://github.com/home-assistant/core/pull/64122 +[#64123]: https://github.com/home-assistant/core/pull/64123 [#64126]: https://github.com/home-assistant/core/pull/64126 [#64130]: https://github.com/home-assistant/core/pull/64130 [#64131]: https://github.com/home-assistant/core/pull/64131 @@ -5584,6 +5703,7 @@ The following integrations are no longer available as of this release: [#64655]: https://github.com/home-assistant/core/pull/64655 [#64656]: https://github.com/home-assistant/core/pull/64656 [#64657]: https://github.com/home-assistant/core/pull/64657 +[#64658]: https://github.com/home-assistant/core/pull/64658 [#64660]: https://github.com/home-assistant/core/pull/64660 [#64661]: https://github.com/home-assistant/core/pull/64661 [#64662]: https://github.com/home-assistant/core/pull/64662 @@ -5766,6 +5886,7 @@ The following integrations are no longer available as of this release: [#64935]: https://github.com/home-assistant/core/pull/64935 [#64936]: https://github.com/home-assistant/core/pull/64936 [#64937]: https://github.com/home-assistant/core/pull/64937 +[#64938]: https://github.com/home-assistant/core/pull/64938 [#64939]: https://github.com/home-assistant/core/pull/64939 [#64940]: https://github.com/home-assistant/core/pull/64940 [#64941]: https://github.com/home-assistant/core/pull/64941 @@ -5802,6 +5923,110 @@ The following integrations are no longer available as of this release: [#64993]: https://github.com/home-assistant/core/pull/64993 [#64994]: https://github.com/home-assistant/core/pull/64994 [#64995]: https://github.com/home-assistant/core/pull/64995 +[#64999]: https://github.com/home-assistant/core/pull/64999 +[#65006]: https://github.com/home-assistant/core/pull/65006 +[#65008]: https://github.com/home-assistant/core/pull/65008 +[#65009]: https://github.com/home-assistant/core/pull/65009 +[#65011]: https://github.com/home-assistant/core/pull/65011 +[#65013]: https://github.com/home-assistant/core/pull/65013 +[#65025]: https://github.com/home-assistant/core/pull/65025 +[#65027]: https://github.com/home-assistant/core/pull/65027 +[#65030]: https://github.com/home-assistant/core/pull/65030 +[#65031]: https://github.com/home-assistant/core/pull/65031 +[#65040]: https://github.com/home-assistant/core/pull/65040 +[#65044]: https://github.com/home-assistant/core/pull/65044 +[#65045]: https://github.com/home-assistant/core/pull/65045 +[#65047]: https://github.com/home-assistant/core/pull/65047 +[#65048]: https://github.com/home-assistant/core/pull/65048 +[#65054]: https://github.com/home-assistant/core/pull/65054 +[#65055]: https://github.com/home-assistant/core/pull/65055 +[#65056]: https://github.com/home-assistant/core/pull/65056 +[#65059]: https://github.com/home-assistant/core/pull/65059 +[#65060]: https://github.com/home-assistant/core/pull/65060 +[#65065]: https://github.com/home-assistant/core/pull/65065 +[#65069]: https://github.com/home-assistant/core/pull/65069 +[#65072]: https://github.com/home-assistant/core/pull/65072 +[#65073]: https://github.com/home-assistant/core/pull/65073 +[#65074]: https://github.com/home-assistant/core/pull/65074 +[#65075]: https://github.com/home-assistant/core/pull/65075 +[#65076]: https://github.com/home-assistant/core/pull/65076 +[#65082]: https://github.com/home-assistant/core/pull/65082 +[#65084]: https://github.com/home-assistant/core/pull/65084 +[#65091]: https://github.com/home-assistant/core/pull/65091 +[#65094]: https://github.com/home-assistant/core/pull/65094 +[#65095]: https://github.com/home-assistant/core/pull/65095 +[#65096]: https://github.com/home-assistant/core/pull/65096 +[#65098]: https://github.com/home-assistant/core/pull/65098 +[#65105]: https://github.com/home-assistant/core/pull/65105 +[#65115]: https://github.com/home-assistant/core/pull/65115 +[#65121]: https://github.com/home-assistant/core/pull/65121 +[#65124]: https://github.com/home-assistant/core/pull/65124 +[#65125]: https://github.com/home-assistant/core/pull/65125 +[#65128]: https://github.com/home-assistant/core/pull/65128 +[#65129]: https://github.com/home-assistant/core/pull/65129 +[#65131]: https://github.com/home-assistant/core/pull/65131 +[#65134]: https://github.com/home-assistant/core/pull/65134 +[#65135]: https://github.com/home-assistant/core/pull/65135 +[#65138]: https://github.com/home-assistant/core/pull/65138 +[#65141]: https://github.com/home-assistant/core/pull/65141 +[#65145]: https://github.com/home-assistant/core/pull/65145 +[#65149]: https://github.com/home-assistant/core/pull/65149 +[#65151]: https://github.com/home-assistant/core/pull/65151 +[#65152]: https://github.com/home-assistant/core/pull/65152 +[#65154]: https://github.com/home-assistant/core/pull/65154 +[#65155]: https://github.com/home-assistant/core/pull/65155 +[#65159]: https://github.com/home-assistant/core/pull/65159 +[#65160]: https://github.com/home-assistant/core/pull/65160 +[#65161]: https://github.com/home-assistant/core/pull/65161 +[#65162]: https://github.com/home-assistant/core/pull/65162 +[#65165]: https://github.com/home-assistant/core/pull/65165 +[#65167]: https://github.com/home-assistant/core/pull/65167 +[#65170]: https://github.com/home-assistant/core/pull/65170 +[#65171]: https://github.com/home-assistant/core/pull/65171 +[#65176]: https://github.com/home-assistant/core/pull/65176 +[#65190]: https://github.com/home-assistant/core/pull/65190 +[#65195]: https://github.com/home-assistant/core/pull/65195 +[#65207]: https://github.com/home-assistant/core/pull/65207 +[#65214]: https://github.com/home-assistant/core/pull/65214 +[#65217]: https://github.com/home-assistant/core/pull/65217 +[#65222]: https://github.com/home-assistant/core/pull/65222 +[#65225]: https://github.com/home-assistant/core/pull/65225 +[#65236]: https://github.com/home-assistant/core/pull/65236 +[#65243]: https://github.com/home-assistant/core/pull/65243 +[#65245]: https://github.com/home-assistant/core/pull/65245 +[#65250]: https://github.com/home-assistant/core/pull/65250 +[#65252]: https://github.com/home-assistant/core/pull/65252 +[#65254]: https://github.com/home-assistant/core/pull/65254 +[#65265]: https://github.com/home-assistant/core/pull/65265 +[#65267]: https://github.com/home-assistant/core/pull/65267 +[#65274]: https://github.com/home-assistant/core/pull/65274 +[#65275]: https://github.com/home-assistant/core/pull/65275 +[#65281]: https://github.com/home-assistant/core/pull/65281 +[#65285]: https://github.com/home-assistant/core/pull/65285 +[#65288]: https://github.com/home-assistant/core/pull/65288 +[#65290]: https://github.com/home-assistant/core/pull/65290 +[#65293]: https://github.com/home-assistant/core/pull/65293 +[#65296]: https://github.com/home-assistant/core/pull/65296 +[#65297]: https://github.com/home-assistant/core/pull/65297 +[#65305]: https://github.com/home-assistant/core/pull/65305 +[#65312]: https://github.com/home-assistant/core/pull/65312 +[#65313]: https://github.com/home-assistant/core/pull/65313 +[#65314]: https://github.com/home-assistant/core/pull/65314 +[#65315]: https://github.com/home-assistant/core/pull/65315 +[#65317]: https://github.com/home-assistant/core/pull/65317 +[#65318]: https://github.com/home-assistant/core/pull/65318 +[#65319]: https://github.com/home-assistant/core/pull/65319 +[#65320]: https://github.com/home-assistant/core/pull/65320 +[#65322]: https://github.com/home-assistant/core/pull/65322 +[#65324]: https://github.com/home-assistant/core/pull/65324 +[#65332]: https://github.com/home-assistant/core/pull/65332 +[#65334]: https://github.com/home-assistant/core/pull/65334 +[#65335]: https://github.com/home-assistant/core/pull/65335 +[#65339]: https://github.com/home-assistant/core/pull/65339 +[#65340]: https://github.com/home-assistant/core/pull/65340 +[#65341]: https://github.com/home-assistant/core/pull/65341 +[#65342]: https://github.com/home-assistant/core/pull/65342 +[#65344]: https://github.com/home-assistant/core/pull/65344 [@ANMalko]: https://github.com/ANMalko [@Adminiuga]: https://github.com/Adminiuga [@Aeroid]: https://github.com/Aeroid @@ -5904,6 +6129,7 @@ The following integrations are no longer available as of this release: [@emontnemery]: https://github.com/emontnemery [@epenet]: https://github.com/epenet [@esev]: https://github.com/esev +[@fOmey]: https://github.com/fOmey [@farmio]: https://github.com/farmio [@filcole]: https://github.com/filcole [@flacjacket]: https://github.com/flacjacket @@ -5957,6 +6183,7 @@ The following integrations are no longer available as of this release: [@mletenay]: https://github.com/mletenay [@mtdcr]: https://github.com/mtdcr [@natekspencer]: https://github.com/natekspencer +[@nbogojevic]: https://github.com/nbogojevic [@ngdio]: https://github.com/ngdio [@nickw444]: https://github.com/nickw444 [@niecore]: https://github.com/niecore @@ -5966,6 +6193,7 @@ The following integrations are no longer available as of this release: [@ol-iver]: https://github.com/ol-iver [@ollo69]: https://github.com/ollo69 [@orcema]: https://github.com/orcema +[@pascalwinters]: https://github.com/pascalwinters [@petslane]: https://github.com/petslane [@postlund]: https://github.com/postlund [@ppetru]: https://github.com/ppetru @@ -5999,6 +6227,7 @@ The following integrations are no longer available as of this release: [@tausen]: https://github.com/tausen [@tedvdb]: https://github.com/tedvdb [@teharris1]: https://github.com/teharris1 +[@tetienne]: https://github.com/tetienne [@thecode]: https://github.com/thecode [@timmo001]: https://github.com/timmo001 [@tkdrob]: https://github.com/tkdrob @@ -6009,6 +6238,7 @@ The following integrations are no longer available as of this release: [@tschnilo]: https://github.com/tschnilo [@ufodone]: https://github.com/ufodone [@uvjustin]: https://github.com/uvjustin +[@vanbalken]: https://github.com/vanbalken [@vauriga]: https://github.com/vauriga [@viiru-]: https://github.com/viiru- [@yozik04]: https://github.com/yozik04 @@ -6122,6 +6352,7 @@ The following integrations are no longer available as of this release: [daikin docs]: /integrations/daikin/ [danfoss_air docs]: /integrations/danfoss_air/ [darksky docs]: /integrations/darksky/ +[debugpy docs]: /integrations/debugpy/ [deconz docs]: /integrations/deconz/ [default_config docs]: /integrations/default_config/ [delijn docs]: /integrations/delijn/ From a3ce1b479af957ba93f78815fe5c1248600300eb Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Tue, 1 Feb 2022 19:07:50 +0100 Subject: [PATCH 017/148] 2022.2.0: Sorted breaking changes --- .../_posts/2022-02-02-release-20222.markdown | 1482 ++++++++--------- 1 file changed, 741 insertions(+), 741 deletions(-) diff --git a/source/_posts/2022-02-02-release-20222.markdown b/source/_posts/2022-02-02-release-20222.markdown index 38e2bc8c883..52bb6c335c8 100644 --- a/source/_posts/2022-02-02-release-20222.markdown +++ b/source/_posts/2022-02-02-release-20222.markdown @@ -453,6 +453,7 @@ We welcome the following new integration this release: The following integrations are now available via the Home Assistant UI: - [Android TV][androidtv docs], done by [@ollo69] +- [Azure Event Hub][azure_event_hub docs], done by[@eavanvalkenburg] - [CPU Speed][cpuspeed docs], done by [@frenck] - [DNS IP][dnsip docs], done by [@gjohansson-ST] - [GitHub][github docs], done by [@ludeeus] @@ -460,6 +461,7 @@ The following integrations are now available via the Home Assistant UI: - [LG webOS Smart TV][webostv docs], done by [@thecode] - [PVOutput][pvoutput docs], done by [@frenck] - [Sensibo][sensibo docs], done by [@gjohansson-ST] +- [SolaX Power][solax docs], done by [@tokenize47] - [Vallox][vallox docs], done by [@slovdahl] - [Version][version docs], done by [@ludeeus] - [Whois][whois docs], done by [@frenck] @@ -478,6 +480,17 @@ Below is a listing of the breaking change for this release, per subject or integration. Click on one of those to read more about the breaking change for that specific item. +{% details "Python 3.8 support dropped" %} + +Python 3.8 support has previously been deprecated and now has been removed. +Home Assistant now requires Python 3.9 to run. + +If you are using Home Assistant OS, Home Assistant Container, or Home Assistant Supervised installation method, you don't have to do anything. In those cases, we all handle this for you. Your system has been using Python 3.9 for quite some time already. + +([@frenck] - [#63883]) + +{% enddetails %} + {% details "GPIO Integrations" %} As of this release, all integration intefacing with GPIO directly, have been @@ -538,7 +551,40 @@ connecting to a remote owfs server is not. {% enddetails %} -{% details "Fan/Humidifer/Light/Remote/Siren/Switch/Vaccuum" %} +{% details "Binary Sensors" %} + +Previously, `binary_sensor` entities could have the state `on`, `off`, and +in case the device was unreachable: `unavailable`. + +However, compared to other entities, it wasn't able to have the `unknown` state, +which has been added this release. + +So, a `binary_sensor` entity can now have the `on`, `off`, `unavailable`, or `unknown` state. + +You might need to adapt your automations or scripts to take this new +`unknown` state into account. + +([@frenck] - [#60193]) ([binary_sensor docs]) + +{% enddetails %} + +{% details "Groups: Locks" %} + +The behavior of grouped locks has been reversed such that "unlocked" is +mapped to `on` and "locked" to off. + +This means that: + +- A group with mixed domains will be considered `on` if any lock included in + the group is unlocked. +- A group of locks will be considered "unlocked" if any lock included in the +- group is unlocked. + +([@emontnemery] - [#62580]) ([lock docs]) ([group docs]) + +{% enddetails %} + +{% details "Fan/Humidifer/Light/Remote/Siren/Switch/Vacuum" %} Previously, toggle-based entities (like `fan`, `light`, `switch`, `remote`, `siren`, `vacuum`, `humidifier`) could have the state `on` or `off`, and in case the device was unreachable: `unavailable`. However, compared to other entities, toggle entities aren't able to have an `unknown` state, this now has changed. @@ -550,149 +596,61 @@ You might need to adapt your automations or scripts to take this new `unknown` s {% enddetails %} -{% details "iOS" %} +{% details "Advantage Air" %} -The Home Assistant iOS/macOS app supports notification actions defined [in the notification itself](https://companion.home-assistant.io/docs/notifications/actionable-notifications/); the old method of defining push categories in the iOS integration is now deprecated and will be removed in the future. +The `advantage_air.set_myzone` service has been depreciated and will be removed +in a future version of Home Assistant. -([@zacwest] - [#61078]) ([ios docs]) +Please use the `select.select_option` service on the MyZone select entity to change this value on supported systems instead. + +([@Bre77] - [#58777]) ([advantage_air docs]) {% enddetails %} -{% details "Flume" %} +{% details "Android TV" %} -The previously deprecated YAML configuration of the Flume integration has been removed. - -Flume is now configured via the UI, any existing YAML configuration has been imported -in previous releases and can now be safely removed from your YAML configuration files. - -([@tkdrob] - [#61517]) ([flume docs]) - -{% enddetails %} - -{% details "Sensor.Community (previously: Luftdaten)" %} - -The Luftdaten integration has been renamed to Sensor.Community; which is -the new name of the Luftdaten project. - -The previously deprecated YAML configuration of this integration -has been removed. - -Sensor.Community is now configured via the UI, any existing YAML configuration -has been imported in previous releases and can now be safely removed from your -YAML configuration files. - -([@frenck] - [#61748] [#62865]) ([luftdaten docs]) - -{% enddetails %} - -{% details "Foscam" %} - -The previously deprecated YAML configuration of the Foscam integration -has been removed. - -Foscam is now configured via the UI, any existing YAML configuration -has been imported in previous releases and can now be safely removed from your -YAML configuration files. - -([@tkdrob] - [#61761]) ([foscam docs]) - -{% enddetails %} - -{% details "Enphase Envoy" %} - -The previously deprecated YAML configuration of the Enphase Envoy integration -has been removed. - -Enphase Envoy is now configured via the UI, any existing YAML configuration -has been imported in previous releases and can now be safely removed from your -YAML configuration files. - -([@tkdrob] - [#61840]) ([enphase_envoy docs]) - -{% enddetails %} - -{% details "Azure Event Hub" %} - -The Azure Event Hub integration migrated to configuration via the -UI. Configuring Azure Event Hub via YAML configuration has been +The Android TV integration migrated to configuration via the +UI. Configuring Android TV via YAML configuration has been deprecated and will be removed in a future Home Assistant release. Your existing YAML configuration is automatically imported on upgrade to this release; and thus can be safely removed from your YAML configuration after upgrading. -([@eavanvalkenburg] - [#61155]) ([azure_event_hub docs]) +- Add config_flow to AndroidTV integration ([@ollo69] - [#54444]) ([androidtv docs]) (breaking-change) {% enddetails %} -{% details "FortiOS" %} +{% details "API" %} -The integration now requires FortiOS 6.4.3 and newer. +The `/api/discovery_info` endpoint was deprecated in 2021.10, and has since only +returned blank values. From this version, the `/api/discovery_info` endpoint has +been removed completly. -([@kimfrellsen] - [#61970]) ([fortios docs]) +([@ludeeus] - [#64534]) ([api docs]) {% enddetails %} -{% details "Zero-configuration networking (zeroconf)" %} +{% details "Apple iCloud" %} -This change is only a concern for custom integration developers. +The Apple iCloud integration migrated to configuration via the +UI in a previous release already. Configuring Apple iCloud via YAML configuration +has now been deprecated and will be removed in a future Home Assistant release. -Currently zeroconf matching only allows matching the `macaddress`, `model`, and `manufacturer` properties along with the `name` from the ZeroconfServiceInfo. +Your existing YAML configuration is already automatically imported; and thus +can be safely removed from your YAML configuration. -Since properties are arbitrarily defined by the zeroconf service, -the list of named properties has grown over time. - -Matching now allows for any arbitrarily defined property. -All property matches must be lowercase, wildcards are supported - -The top level keys `model`, `manufacturer`, and `macaddress` -are now deprecated from the `manifest.json` file and should -be moved into a `properties` dict. - -For example: -```diff -- {"type":"_airplay._tcp.local.","model":"appletv*"} -+ {"type":"_airplay._tcp.local.","properties":{"model":"appletv*"}} -``` - -([@bdraco] - [#62133]) ([zeroconf docs]) +([@epenet] - [#63875]) ([icloud docs]) {% enddetails %} -{% details "Environment Canada" %} +{% details "Apple Push Notification Service (APNS)" %} -The previously deprecated YAML configuration of the Environment Canada -integration has been removed. +The Apple Push Notification Service (APNS) integration has been deprecated and +will be removed in Home Assistant 2022.4. Please note, this does not affect +our mobile companion apps; as they do not use this integration for their +notifications. -Environment Canada is now configured via the UI, any existing YAML configuration -has been imported in previous releases and can now be safely removed from your -YAML configuration files. - -([@tkdrob] - [#61839]) ([environment_canada docs]) - ---- - -The sensors no longer have `Timestamp` as an extra state attribute, instead, -use the new `timestamp` sensor that can be used in automations that track state changes. - -The sensors alert sensors (`advisories`, `endings`, `statements`, `warnings`, and `watches`) state is now a count of the number of active alerts for the sensor type -and the extra state attributes contain the alert text and alert timestamp. - -The attributes are named `alert_` and `alert_time_` where is 1 for alert 1, 2 for alert 2, etc. - -([@gwww] - [#58615]) ([environment_canada docs]) - -{% enddetails %} - -{% details "OpenGarage" %} - -The previously deprecated YAML configuration of the OpenGarage -integration has been removed. - -OpenGarage is now configured via the UI, any existing YAML configuration -has been imported in previous releases and can now be safely removed from your -YAML configuration files. - -- Remove deprecated yaml config from opengarage ([@tkdrob] - [#61961]) ([opengarage docs]) (breaking-change) +([@frenck] - [#64629]) ([apns docs]) {% enddetails %} @@ -709,29 +667,71 @@ removed from your YAML configuration files. {% enddetails %} -{% details "Efergy" %} +{% details "AVM FRITZ!Box Tools" %} -The previously deprecated YAML configuration of the Efergy +The previously deprecated YAML configuration of the AVM FRITZ!Box Tools integration has been removed. -Efergy is now configured via the UI, any existing YAML configuration -has been imported in previous releases and can now be safely removed from your -YAML configuration files. +AVM FRITZ!Box Tools is now configured via the UI, any existing YAML +configurationhas been imported in previous releases and can now be safely +removed from your YAML configuration files. -([@tkdrob] - [#61520]) ([efergy docs]) +[@epenet] - [#63857]) ([fritz docs]) + +---- + +The `reboot` and `reconnect` services are deprecated and will be removed in future release. Please use the newly provided button entities instead. + +([@chemelli74] - [#61483]) ([fritz docs]) {% enddetails %} -{% details "Magic Home" %} +{% details "AVM FRITZ!SmartHome" %} -The previously deprecated YAML configuration of the Magic Home -integration has been removed. +The `lock` and `devicelock` attributes are removed from all entities and now exposed as own sensors. -Magic Home is now configured via the UI, any existing YAML configuration -has been imported in previous releases and can now be safely removed from your -YAML configuration files. +([@mib1185] - [#60426]) ([fritzbox docs]) -([@tkdrob] - [#61844]) ([flux_led docs]) +{% enddetails %} + +{% details "Azure Event Hub" %} + +The Azure Event Hub integration migrated to configuration via the +UI. Configuring Azure Event Hub via YAML configuration has been +deprecated and will be removed in a future Home Assistant release. + +Your existing YAML configuration is automatically imported on upgrade to this +release; and thus can be safely removed from your YAML configuration after upgrading. + +([@eavanvalkenburg] - [#61155]) ([azure_event_hub docs]) + +{% enddetails %} + +{% details "BMW Connected Drive" %} + +The `charging_time_remaining` (in hours) has been replaced with +`charging_end_time` (timestamp) to not clutter the Home Assistant state machine. + +You might need to adapt your automations or scripts for this change. + +([@rikroe] - [#60942]) ([bmw_connected_drive docs]) + +--- + +All ``bmw_connected_drive.*` services are deprecated. +Please use the new button entities with the `button.press` service instead. + +([@rikroe] - [#63136]) ([bmw_connected_drive docs]) + +{% enddetails %} + +{% details "Bond" %} + +The custom `start_increasing_brightness`, `start_decreasing_brightness` and `stop` services are now deprecated and will be removed in a future release. + +Please use the new button entities, that replace those, instead. + +([@bdraco] - [#64725]) ([bond docs]) {% enddetails %} @@ -761,6 +761,19 @@ YAML configuration files. {% enddetails %} +{% details "CPU Speed" %} + +The CPU Speed integration migrated to configuration via the +UI. Configuring CPU Speed via YAML configuration has been +deprecated and will be removed in a future Home Assistant release. + +Your existing YAML configuration is automatically imported on upgrade to this +release; and thus can be safely removed from your YAML configuration after upgrading. + +([@frenck] - [#62929]) ([cpuspeed docs]) + +{% enddetails %} + {% details "DLNA Digital Media Renderer" %} The previously deprecated YAML configuration of the DLNA Digital Media Renderer @@ -774,29 +787,206 @@ removed from your YAML configuration files. {% enddetails %} -{% details "Android TV" %} +{% details "DNS IP" %} -The Android TV integration migrated to configuration via the -UI. Configuring Android TV via YAML configuration has been +The DNS IP integration migrated to configuration via the +UI. Configuring DNS IP via YAML configuration has been deprecated and will be removed in a future Home Assistant release. Your existing YAML configuration is automatically imported on upgrade to this release; and thus can be safely removed from your YAML configuration after upgrading. -- Add config_flow to AndroidTV integration ([@ollo69] - [#54444]) ([androidtv docs]) (breaking-change) +([@gjohansson-ST] - [#62843]) ([dnsip docs]) {% enddetails %} -{% details "Nuki" %} +{% details "DoorBird" %} -The previously deprecated YAML configuration of the Nuki +The relays and IR light switches are removed and replaced with corresponding +buttons entities. Any scripts or automations which reference these switches to +turn them on should change to instead press the button instead. + +([@flacjacket] - [#63995]) ([doorbird docs]) + +{% enddetails %} + +{% details "DSMR" %} + +The `sensor.energy_consumption_total` sensor for DSMR versions 2.2 and 4 has +been removed. Meters with these versions do not provide this data, +so this sensor can be safely removed. You might need to clean up +the orphaned entity in your setup. + +([@rhpijnacker] - [#63436]) ([dsmr docs]) + +{% enddetails %} + +{% details "Efergy" %} + +The previously deprecated YAML configuration of the Efergy integration has been removed. -Nuki is now configured via the UI, any existing YAML +Efergy is now configured via the UI, any existing YAML configuration +has been imported in previous releases and can now be safely removed from your +YAML configuration files. + +([@tkdrob] - [#61520]) ([efergy docs]) + +{% enddetails %} + +{% details "Enphase Envoy" %} + +The previously deprecated YAML configuration of the Enphase Envoy integration +has been removed. + +Enphase Envoy is now configured via the UI, any existing YAML configuration +has been imported in previous releases and can now be safely removed from your +YAML configuration files. + +([@tkdrob] - [#61840]) ([enphase_envoy docs]) + +{% enddetails %} + +{% details "Environment Canada" %} + +The previously deprecated YAML configuration of the Environment Canada +integration has been removed. + +Environment Canada is now configured via the UI, any existing YAML configuration +has been imported in previous releases and can now be safely removed from your +YAML configuration files. + +([@tkdrob] - [#61839]) ([environment_canada docs]) + +--- + +The sensors no longer have `Timestamp` as an extra state attribute, instead, +use the new `timestamp` sensor that can be used in automations that track state changes. + +The sensors alert sensors (`advisories`, `endings`, `statements`, `warnings`, and `watches`) state is now a count of the number of active alerts for the sensor type +and the extra state attributes contain the alert text and alert timestamp. + +The attributes are named `alert_` and `alert_time_` where is 1 for alert 1, 2 for alert 2, etc. + +([@gwww] - [#58615]) ([environment_canada docs]) + +{% enddetails %} + +{% details "Fan" %} + +This is more a breaking change for custom integration developers. + +Now that all core fans are using the new fan entity model, the compatibility shim +has been removed. Custom integrations that have not yet switched to the new +fan model. For more information see: + + + +Preset modes and percentages will continue to be translated back to legacy speeds +until 2022.3 in order to give users a bit more time to update automations. + +([@bdraco] - [#59781]) ([fan docs]) + +{% enddetails %} + +{% details "Fibaro" %} + +The energy values are exposed now as separate sensor entities and therefore the +state attribute `current_energy_kwh` was removed from all other entities. + +If you use the state attribute `current_energy_kwh` you need to change +that to use the new energy sensors instead. + +([@rappenze] - [#63697]) ([fibaro docs]) + +{% enddetails %} + +{% details "Flume" %} + +The previously deprecated YAML configuration of the Flume integration has been removed. + +Flume is now configured via the UI, any existing YAML configuration has been imported +in previous releases and can now be safely removed from your YAML configuration files. + +([@tkdrob] - [#61517]) ([flume docs]) + +{% enddetails %} + +{% details "FortiOS" %} + +The integration now requires FortiOS 6.4.3 and newer. + +([@kimfrellsen] - [#61970]) ([fortios docs]) + +{% enddetails %} + +{% details "Foscam" %} + +The previously deprecated YAML configuration of the Foscam integration +has been removed. + +Foscam is now configured via the UI, any existing YAML configuration +has been imported in previous releases and can now be safely removed from your +YAML configuration files. + +([@tkdrob] - [#61761]) ([foscam docs]) + +{% enddetails %} + +{% details "Foursquare" %} + +The data associated with `foursquare.checkin` event is now available as a +dictionary item with key "text". + +If you use this event in your automation or scripts, you'd need to adjust to +to match this change. + +([@epenet] - [#63982]) ([foursquare docs]) + +{% enddetails %} + +{% details "GitHub" %} + +The YAML configuration for the `github` sensor platform has been removed. + +There was no viable automatic migration of the configuration, so you need to +manually remove the configuration from your configuration file and set it up +again in the integration panel. + +Previously this integration created 1 sensor for each repository, now this +is split out to multiple entities which are mostly disabled by default +(you can enable the entities you want this integration to provide). + +Support for GitHub enterprise has been removed. + +([@ludeeus] - [#64190]) ([github docs]) + +{% enddetails %} + +{% details "Google Maps Travel Time" %} + +The previously deprecated YAML configuration of the Google Maps Travel Time +integration has been removed. + +Google Maps Travel Time is now configured via the UI, any existing YAML configurationhas been imported in previous releases and can now be safely removed from your YAML configuration files. -([@tkdrob] - [#62470]) ([nuki docs]) +([@tkdrob] - [#62468]) ([google_travel_time docs]) + +{% enddetails %} + +{% details "HomeKit" %} + +HomeKit will now automatically exclude entities with an entity category such as +a configuration or diagnostic entity unless they have been explicitly included. + +To explicitly include an entity: + +- YAML: Add the entity to the filter in either the `include_entities` or `include_entity_globs` fields. +- UI: Select the entity in the UI in include mode. If you are using exclude mode, a second bridge can be created in include mode. + +([@bdraco] - [#64492]) ([homekit docs]) {% enddetails %} @@ -814,395 +1004,24 @@ removed from your YAML configuration files. {% enddetails %} -{% details "Google Maps Travel Time" %} +{% details "iOS" %} -The previously deprecated YAML configuration of the Google Maps Travel Time +The Home Assistant iOS/macOS app supports notification actions defined [in the notification itself](https://companion.home-assistant.io/docs/notifications/actionable-notifications/); the old method of defining push categories in the iOS integration is now deprecated and will be removed in the future. + +([@zacwest] - [#61078]) ([ios docs]) + +{% enddetails %} + +{% details "Keenetic NDMS2 Router" %} + +The previously deprecated YAML configuration of the Keenetic NDMS2 Router integration has been removed. -Google Maps Travel Time is now configured via the UI, any existing YAML +Keenetic NDMS2 Router is now configured via the UI, any existing YAML configurationhas been imported in previous releases and can now be safely removed from your YAML configuration files. -([@tkdrob] - [#62468]) ([google_travel_time docs]) - -{% enddetails %} - -{% details "Philips TV" %} - -The previously deprecated YAML configuration of the Philips TV -integration has been removed. - -Philips TV is now configured via the UI, any existing YAML -configurationhas been imported in previous releases and can now be safely -removed from your YAML configuration files. - -([@tkdrob] - [#62471]) ([philips_js docs]) - -{% enddetails %} - -{% details "TP-Link Kasa Smart" %} - -The previously deprecated YAML configuration of the TP-Link Kasa Smart -integration has been removed. - -TP-Link Kasa Smart is now configured via the UI, any existing YAML -configurationhas been imported in previous releases and can now be safely -removed from your YAML configuration files. - -([@bdraco] - [#62457]) ([tplink docs]) - -{% enddetails %} - -{% details "RIVM Stookalert" %} - -The previously deprecated YAML configuration of the Stookalert -integration has been removed. - -Stookalert is now configured via the UI, any existing YAML -configurationhas been imported in previous releases and can now be safely -removed from your YAML configuration files. - -([@frenck] - [#61007]) ([stookalert docs]) - -{% enddetails %} - -{% details "VLC media player Telnet" %} - -The previously deprecated YAML configuration of the VLC media player Telnet -integration has been removed. - -VLC media player Telnet is now configured via the UI, any existing YAML -configurationhas been imported in previous releases and can now be safely -removed from your YAML configuration files. - -([@tkdrob] - [#62542]) ([vlc_telnet docs]) - -{% enddetails %} - -{% details "Logitech Squeezebox" %} - -The previously deprecated YAML configuration of the Logitech Squeezebox -integration has been removed. - -Logitech Squeezebox is now configured via the UI, any existing YAML -configurationhas been imported in previous releases and can now be safely -removed from your YAML configuration files. - -([@tkdrob] - [#62537]) ([squeezebox docs]) - -{% enddetails %} - -{% details "Groups: Locks" %} - -The behavior of grouped locks has been reversed such that "unlocked" is -mapped to `on` and "locked" to off. - -This means that: - -- A group with mixed domains will be considered `on` if any lock included in - the group is unlocked. -- A group of locks will be considered "unlocked" if any lock included in the -- group is unlocked. - -([@emontnemery] - [#62580]) ([lock docs]) ([group docs]) - -{% enddetails %} - -{% details "Binary Sensors" %} - -Previously, `binary_sensor` entities could have the state `on`, `off`, and -in case the device was unreachable: `unavailable`. - -However, compared to other entities, it wasn't able to have the `unknown` state, -which has been added this release. - -So, a `binary_sensor` entity can now have the `on`, `off`, `unavailable`, or `unknown` state. - -You might need to adapt your automations or scripts to take this new -`unknown` state into account. - -([@frenck] - [#60193]) ([binary_sensor docs]) - -{% enddetails %} - -{% details "BMW Connected Drive" %} - -The `charging_time_remaining` (in hours) has been replaced with -`charging_end_time` (timestamp) to not clutter the Home Assistant state machine. - -You might need to adapt your automations or scripts for this change. - -([@rikroe] - [#60942]) ([bmw_connected_drive docs]) - ---- - -All ``bmw_connected_drive.*` services are deprecated. -Please use the new button entities with the `button.press` service instead. - -([@rikroe] - [#63136]) ([bmw_connected_drive docs]) - -{% enddetails %} - -{% details "Sensibo" %} - -The Sensibo integration migrated to configuration via the -UI. Configuring Sensibo via YAML configuration has been -deprecated and will be removed in a future Home Assistant release. - -Your existing YAML configuration is automatically imported on upgrade to this -release; and thus can be safely removed from your YAML configuration after upgrading. - -([@gjohansson-ST] - [#60900]) ([sensibo docs]) - -{% enddetails %} - -{% details "SwitchBot" %} - -The SwitchBot integration migrated to configuration via the -UI in a previous release already. Configuring SwitchBot via YAML configuration -has now been deprecated and will be removed in a future Home Assistant release. - -Your existing YAML configuration is already automatically imported; and thus -can be safely removed from your YAML configuration. - -([@tkdrob] - [#62583]) ([switchbot docs]) - -{% enddetails %} - -{% details "Trafikverket Train" %} - -The planned time, estimated time and and actual time sensor attributes have -been correct to be UTC isoformatted string which is standard in Home Assistant. - -Previously displayed as `2021-12-23T09:07:00` and now correctly set as `2021-12-23T09:07:00+00:00`. - -This may affect templates or automations based on these attributes. - -([@gjohansson-ST] - [#62636]) ([trafikverket_train docs]) - -{% enddetails %} - -{% details "Samsung SyncThru Printer" %} - -The previously deprecated YAML configuration of the Samsung SyncThru Printer -integration has been removed. - -Samsung SyncThru Printer is now configured via the UI, any existing YAML -configurationhas been imported in previous releases and can now be safely -removed from your YAML configuration files. - -([@tkdrob] - [#62541]) ([syncthru docs]) - -{% enddetails %} - -{% details "Version" %} - -The Version integration migrated to configuration via the -UI. Configuring Version via YAML configuration has been -deprecated and will be removed in a future Home Assistant release. - -Your existing YAML configuration is automatically imported on upgrade to this -release; and thus can be safely removed from your YAML configuration after upgrading. - -Additionally, the `source` and `channel` attributes have been removed from -the Version sensor for the local source. - -([@ludeeus] - [#54642] [#64827]) ([version docs]) - -{% enddetails %} - -{% details "Templates: Binary Sensors" %} - -Template trigger binary sensor should start with `unknown` value rather than always starting with `false`/`off`. This matches the template binary sensor behavior -with other sensors. - -([@amosyuen] - [#62769]) ([template docs]) - -{% enddetails %} - -{% details "PVOutput" %} - -The PVOutput integration migrated to configuration via the -UI. Configuring PVOutput via YAML configuration has been -deprecated and will be removed in a future Home Assistant release. - -Your existing YAML configuration is automatically imported on upgrade to this -release; and thus can be safely removed from your YAML configuration after upgrading. - -Additionally, all sensor attributes of the PVOutput sensor, -have been extracted in their own dedicated sensors. - -This applies to the following PVOutput attributes: - -- `energy_generation` -- `power_generation` -- `energy_consumption` -- `power_consumption` -- `efficiency` -- `temperature` -- `voltage` - -If you relied on these in your automation or scripts, you need to adopt those to use the new separate sensors instead. The attributes are currently available, however, deprecated and will be removed in Home Assistant Core 2022.4. - -([@frenck] - [#62667] [#62894]) ([pvoutput docs]) - -{% enddetails %} - -{% details "Vallox" %} - -The Vallox integration migrated to configuration via the -UI. Configuring Vallox via YAML configuration has been -deprecated and will be removed in a future Home Assistant release. - -Your existing YAML configuration is automatically imported on upgrade to this -release; and thus can be safely removed from your YAML configuration after upgrading. - -([@slovdahl] - [#62780]) ([vallox docs]) - -{% enddetails %} - -{% details "CPU Speed" %} - -The CPU Speed integration migrated to configuration via the -UI. Configuring CPU Speed via YAML configuration has been -deprecated and will be removed in a future Home Assistant release. - -Your existing YAML configuration is automatically imported on upgrade to this -release; and thus can be safely removed from your YAML configuration after upgrading. - -([@frenck] - [#62929]) ([cpuspeed docs]) - -{% enddetails %} - -{% details "Nest" %} - -The Legacy "Works With Nest API" is deprecated and support will be removed -in Home Assistant Core 2022.5; See our [documentation for using the Smart Device -Management API](/integrations/nest/) instead. - -([@allenporter] - [#63027]) ([nest docs]) - -{% enddetails %} - -{% details "MQTT" %} - -The MQTT lights no longer support, the previously deprecated, `value_template`;`state_value_template` should be used instead. - -([@emontnemery] - [#62682]) ([mqtt docs]) - ----- - -Previouysly MQTT climate would only publish to `hold_command_topic` or ` away_mode_command_topic` if the new mode is not the same as the current state. - -As of this release MQTT always publishes on both command topics (`hold_command_topic` and ` away_mode_command_topic`) (if defined) which makes it more predictable -what update the MQTT device will receive. - -([@jbouwh] - [#63463]) ([mqtt docs]) - ----- - -The `send_if_off` config parameter of the climate platform, which limits -publishing if the current operation mode is `HVAC_MODE_OFF`, is now -deprecated. - -This will break applications that depend on this feature. - -([@jbouwh] - [#63814]) ([mqtt docs]) - -{% enddetails %} - -{% details "Waze Travel Time" %} - -The previously deprecated YAML configuration of the Waze Travel Time -integration has been removed. - -Waze Travel Time is now configured via the UI, any existing YAML -configurationhas been imported in previous releases and can now be safely -removed from your YAML configuration files. - -([@tkdrob] - [#62543]) ([waze_travel_time docs]) - -{% enddetails %} - -{% details "SMA Solar" %} - -The previously deprecated YAML configuration of the SMA Solar -integration has been removed. - -SMA Solar is now configured via the UI, any existing YAML -configurationhas been imported in previous releases and can now be safely -removed from your YAML configuration files. - -([@tkdrob] - [#62472]) ([sma docs]) - -{% enddetails %} - -{% details "Nanoleaf" %} - -The Nanoleaf integration migrated to configuration via the -UI in a previous release already. Configuring Nanoleaf via YAML configuration -has now been deprecated and will be removed in a future Home Assistant release. - -Your existing YAML configuration is already automatically imported; and thus -can be safely removed from your YAML configuration. - -([@milanmeu] - [#63404]) ([nanoleaf docs]) - -{% enddetails %} - - -{% details "Viessmann ViCare" %} - -The scan interval option has been removed, since the default should be fine -in almost all cases. - -If you really need more fine-grained control you can disable automatic updates -in the system settings for the Viessmann ViCare integration and automate the -polling of the entities with the -[`homeassistant.update_entity`](/docs/scripts/service-calls#homeassistant-services) -service. - -([@oischinger] - [#63343]) ([vicare docs]) - -{% enddetails %} - -{% details "DSMR" %} - -The `sensor.energy_consumption_total` sensor for DSMR versions 2.2 and 4 has -been removed. Meters with these versions do not provide this data, -so this sensor can be safely removed. You might need to clean up -the orphaned entity in your setup. - -([@rhpijnacker] - [#63436]) ([dsmr docs]) - -{% enddetails %} - -{% details "Nissan Leaf" %} - -The service to start a charge has been deprecated; it is replaced with a button. - -Replace the `nissan_leaf.start_charge` service in any existing automations with `button.press` for the new `button.start_NICKNAME_charging` entity. - -The `nissan_leaf.start_charge` service is now deprecated and will be removed -in a future release. - -([@filcole] - [#62948]) ([nissan_leaf docs]) - -{% enddetails %} - -{% details "ReCollect Waste" %} - -ReCollect Waste no longer stories "next pickup" information as attributes of the "current pickup" sensor; instead, both pickups are now their own sensors. - -([@bachya] - [#62558]) ([recollect_waste docs]) - -{% enddetails %} - -{% details "AVM FRITZ!SmartHome" %} - -The `lock` and `devicelock` attributes are removed from all entities and now exposed as own sensors. - -([@mib1185] - [#60426]) ([fritzbox docs]) +([@epenet] - [#63860]) ([keenetic_ndms2 docs]) {% enddetails %} @@ -1234,146 +1053,6 @@ it possible to add some information about the launch window start and end as att {% enddetails %} -{% details "Media Player Classic Home Cinema (MPC-HC)" %} - -The Media Player Classic Home Cinema (MPC-HC) integration has been deprecated -and will be removed in Home Assistant Core 2022.4. - -This integration is removed under [Architectural Decision Record 0004](https://github.com/home-assistant/architecture/blob/master/adr/0004-webscraping.md). - -([@frenck] - [#63598]) ([mpchc docs]) - -{% enddetails %} - -{% details "VeSync" %} - -Previous versions of this integration exposed power and energy usage from -VeSync outlets as state attributes on the `switch` entity itself. This used the deprecated properties: `current_power_w` and `today_energy_kwh`. - -In this version, these two attributes have been removed from the `switch` -entity and split into two new diagnostic sensor entities that are attached to -the same Device. - -Automations and template entities based on the state attribute mechanism should -be updated accordingly. - -([@decompil3d] - [#61837]) ([vesync docs]) - -{% enddetails %} - -{% details "NETGEAR" %} - -The previously deprecated YAML configuration of the NETGEAR -integration has been removed. - -NETGEAR is now configured via the UI, any existing YAML -configurationhas been imported in previous releases and can now be safely -removed from your YAML configuration files. - -([@epenet] - [#63862]) ([netgear docs]) - -{% enddetails %} - -{% details "Apple iCloud" %} - -The Apple iCloud integration migrated to configuration via the -UI in a previous release already. Configuring Apple iCloud via YAML configuration -has now been deprecated and will be removed in a future Home Assistant release. - -Your existing YAML configuration is already automatically imported; and thus -can be safely removed from your YAML configuration. - -([@epenet] - [#63875]) ([icloud docs]) - -{% enddetails %} - -{% details "Nmap Tracker" %} - -The previously deprecated YAML configuration of the Nmap Tracker -integration has been removed. - -Nmap Tracker is now configured via the UI, any existing YAML -configurationhas been imported in previous releases and can now be safely -removed from your YAML configuration files. - -([@epenet] - [#63863]) ([nmap_tracker docs]) - -{% enddetails %} - -{% details "Keenetic NDMS2 Router" %} - -The previously deprecated YAML configuration of the Keenetic NDMS2 Router -integration has been removed. - -Keenetic NDMS2 Router is now configured via the UI, any existing YAML -configurationhas been imported in previous releases and can now be safely -removed from your YAML configuration files. - -([@epenet] - [#63860]) ([keenetic_ndms2 docs]) - -{% enddetails %} - -{% details "AVM FRITZ!Box Tools" %} - -The previously deprecated YAML configuration of the AVM FRITZ!Box Tools -integration has been removed. - -AVM FRITZ!Box Tools is now configured via the UI, any existing YAML -configurationhas been imported in previous releases and can now be safely -removed from your YAML configuration files. - -[@epenet] - [#63857]) ([fritz docs]) - ----- - -The `reboot` and `reconnect` services are deprecated and will be removed in future release. Please use the newly provided button entities instead. - -([@chemelli74] - [#61483]) ([fritz docs]) - -{% enddetails %} - -{% details "Python 3.8 support dropped" %} - -Python 3.8 support has previously been deprecated and now has been removed. -Home Assistant now requires Python 3.9 to run. - -If you are using Home Assistant OS, Home Assistant Container, or Home Assistant Supervised installation method, you don't have to do anything. In those cases, we all handle this for you. Your system has been using Python 3.9 for quite some time already. - -([@frenck] - [#63883]) - -{% enddetails %} - -{% details "Foursquare" %} - -The data associated with `foursquare.checkin` event is now available as a -dictionary item with key "text". - -If you use this event in your automation or scripts, you'd need to adjust to -to match this change. - -([@epenet] - [#63982]) ([foursquare docs]) - -{% enddetails %} - -{% details "VIZIO SmartCast" %} - -If an integrated `vizio` TV supports apps and the source is currently a non-app -input (e.g. HDMI-1), the `app_id` and `app_name` attributes will no longer be in the media player entity's state. - -When the TV is using an app, the `app_name` will still always be visible and the `app_id` will continue to only be shown if the app is not recognized. - -([@raman325] - [#64025]) ([vizio docs]) - -{% enddetails %} - -{% details "Twinkly" %} - -Key `host` is removed from the (extra) state attribute of the light entity. - -([@RobBie1221] - [#64139]) ([twinkly docs]) - -{% enddetails %} - {% details "LG webOS Smart TV" %} The LG webOS Smart TV integration migrated to configuration via the @@ -1403,132 +1082,298 @@ automation: {% enddetails %} -{% details "DoorBird" %} +{% details "Logitech Squeezebox" %} -The relays and IR light switches are removed and replaced with corresponding -buttons entities. Any scripts or automations which reference these switches to -turn them on should change to instead press the button instead. +The previously deprecated YAML configuration of the Logitech Squeezebox +integration has been removed. -([@flacjacket] - [#63995]) ([doorbird docs]) +Logitech Squeezebox is now configured via the UI, any existing YAML +configurationhas been imported in previous releases and can now be safely +removed from your YAML configuration files. + +([@tkdrob] - [#62537]) ([squeezebox docs]) {% enddetails %} -{% details "GitHub" %} +{% details "Magic Home" %} -The YAML configuration for the `github` sensor platform has been removed. +The previously deprecated YAML configuration of the Magic Home +integration has been removed. -There was no viable automatic migration of the configuration, so you need to -manually remove the configuration from your configuration file and set it up -again in the integration panel. +Magic Home is now configured via the UI, any existing YAML configuration +has been imported in previous releases and can now be safely removed from your +YAML configuration files. -Previously this integration created 1 sensor for each repository, now this -is split out to multiple entities which are mostly disabled by default -(you can enable the entities you want this integration to provide). - -Support for GitHub enterprise has been removed. - -([@ludeeus] - [#64190]) ([github docs]) +([@tkdrob] - [#61844]) ([flux_led docs]) {% enddetails %} -{% details "Z-Wave JS" %} +{% details "Media Player Classic Home Cinema (MPC-HC)" %} -Due to a schema change, `zwave-js-server` version 1.14.0 or greater is required. -Ensure you are using the latest version of `zwave-js-server` (or the add-ons -that provides those). +The Media Player Classic Home Cinema (MPC-HC) integration has been deprecated +and will be removed in Home Assistant Core 2022.4. -([@raman325] - [#64407]) ([zwave_js docs]) +This integration is removed under [Architectural Decision Record 0004](https://github.com/home-assistant/architecture/blob/master/adr/0004-webscraping.md). + +([@frenck] - [#63598]) ([mpchc docs]) {% enddetails %} -{% details "Fibaro" %} +{% details "MQTT" %} -The energy values are exposed now as separate sensor entities and therefore the -state attribute `current_energy_kwh` was removed from all other entities. +The MQTT lights no longer support, the previously deprecated, `value_template`;`state_value_template` should be used instead. -If you use the state attribute `current_energy_kwh` you need to change -that to use the new energy sensors instead. +([@emontnemery] - [#62682]) ([mqtt docs]) -([@rappenze] - [#63697]) ([fibaro docs]) +---- + +Previouysly MQTT climate would only publish to `hold_command_topic` or ` away_mode_command_topic` if the new mode is not the same as the current state. + +As of this release MQTT always publishes on both command topics (`hold_command_topic` and ` away_mode_command_topic`) (if defined) which makes it more predictable +what update the MQTT device will receive. + +([@jbouwh] - [#63463]) ([mqtt docs]) + +---- + +The `send_if_off` config parameter of the climate platform, which limits +publishing if the current operation mode is `HVAC_MODE_OFF`, is now +deprecated. + +This will break applications that depend on this feature. + +([@jbouwh] - [#63814]) ([mqtt docs]) {% enddetails %} -{% details "HomeKit" %} +{% details "Nanoleaf" %} -HomeKit will now automatically exclude entities with an entity category such as -a configuration or diagnostic entity unless they have been explicitly included. +The Nanoleaf integration migrated to configuration via the +UI in a previous release already. Configuring Nanoleaf via YAML configuration +has now been deprecated and will be removed in a future Home Assistant release. -To explicitly include an entity: +Your existing YAML configuration is already automatically imported; and thus +can be safely removed from your YAML configuration. -- YAML: Add the entity to the filter in either the `include_entities` or `include_entity_globs` fields. -- UI: Select the entity in the UI in include mode. If you are using exclude mode, a second bridge can be created in include mode. - -([@bdraco] - [#64492]) ([homekit docs]) +([@milanmeu] - [#63404]) ([nanoleaf docs]) {% enddetails %} -{% details "API" %} +{% details "Nest" %} -The `/api/discovery_info` endpoint was deprecated in 2021.10, and has since only -returned blank values. From this version, the `/api/discovery_info` endpoint has -been removed completly. +The Legacy "Works With Nest API" is deprecated and support will be removed +in Home Assistant Core 2022.5; See our [documentation for using the Smart Device +Management API](/integrations/nest/) instead. -([@ludeeus] - [#64534]) ([api docs]) +([@allenporter] - [#63027]) ([nest docs]) {% enddetails %} -{% details "DNS IP" %} +{% details "NETGEAR" %} -The DNS IP integration migrated to configuration via the -UI. Configuring DNS IP via YAML configuration has been +The previously deprecated YAML configuration of the NETGEAR +integration has been removed. + +NETGEAR is now configured via the UI, any existing YAML +configurationhas been imported in previous releases and can now be safely +removed from your YAML configuration files. + +([@epenet] - [#63862]) ([netgear docs]) + +{% enddetails %} + +{% details "Nissan Leaf" %} + +The service to start a charge has been deprecated; it is replaced with a button. + +Replace the `nissan_leaf.start_charge` service in any existing automations with `button.press` for the new `button.start_NICKNAME_charging` entity. + +The `nissan_leaf.start_charge` service is now deprecated and will be removed +in a future release. + +([@filcole] - [#62948]) ([nissan_leaf docs]) + +{% enddetails %} + +{% details "Nmap Tracker" %} + +The previously deprecated YAML configuration of the Nmap Tracker +integration has been removed. + +Nmap Tracker is now configured via the UI, any existing YAML +configurationhas been imported in previous releases and can now be safely +removed from your YAML configuration files. + +([@epenet] - [#63863]) ([nmap_tracker docs]) + +{% enddetails %} + +{% details "Nuki" %} + +The previously deprecated YAML configuration of the Nuki +integration has been removed. + +Nuki is now configured via the UI, any existing YAML +configurationhas been imported in previous releases and can now be safely +removed from your YAML configuration files. + +([@tkdrob] - [#62470]) ([nuki docs]) + +{% enddetails %} + +{% details "OpenGarage" %} + +The previously deprecated YAML configuration of the OpenGarage +integration has been removed. + +OpenGarage is now configured via the UI, any existing YAML configuration +has been imported in previous releases and can now be safely removed from your +YAML configuration files. + +- Remove deprecated yaml config from opengarage ([@tkdrob] - [#61961]) ([opengarage docs]) (breaking-change) + +{% enddetails %} + +{% details "Philips TV" %} + +The previously deprecated YAML configuration of the Philips TV +integration has been removed. + +Philips TV is now configured via the UI, any existing YAML +configurationhas been imported in previous releases and can now be safely +removed from your YAML configuration files. + +([@tkdrob] - [#62471]) ([philips_js docs]) + +{% enddetails %} + +{% details "PVOutput" %} + +The PVOutput integration migrated to configuration via the +UI. Configuring PVOutput via YAML configuration has been deprecated and will be removed in a future Home Assistant release. Your existing YAML configuration is automatically imported on upgrade to this release; and thus can be safely removed from your YAML configuration after upgrading. -([@gjohansson-ST] - [#62843]) ([dnsip docs]) +Additionally, all sensor attributes of the PVOutput sensor, +have been extracted in their own dedicated sensors. + +This applies to the following PVOutput attributes: + +- `energy_generation` +- `power_generation` +- `energy_consumption` +- `power_consumption` +- `efficiency` +- `temperature` +- `voltage` + +If you relied on these in your automation or scripts, you need to adopt those to use the new separate sensors instead. The attributes are currently available, however, deprecated and will be removed in Home Assistant Core 2022.4. + +([@frenck] - [#62667] [#62894]) ([pvoutput docs]) {% enddetails %} -{% details "Apple Push Notification Service (APNS)" %} +{% details "ReCollect Waste" %} -The Apple Push Notification Service (APNS) integration has been deprecated and -will be removed in Home Assistant 2022.4. Please note, this does not affect -our mobile companion apps; as they do not use this integration for their -notifications. +ReCollect Waste no longer stories "next pickup" information as attributes of the "current pickup" sensor; instead, both pickups are now their own sensors. -([@frenck] - [#64629]) ([apns docs]) +([@bachya] - [#62558]) ([recollect_waste docs]) {% enddetails %} -{% details "WebSocket API / Media Source" %} +{% details "RIVM Stookalert" %} -This concerns custom integration developers only. +The previously deprecated YAML configuration of the Stookalert +integration has been removed. -The parameters for `async_sign_path` have changed. Refresh token is now a keyword parameter. If called as part of a HTTP or WebSocket request, the users refresh token will automatically be used. +Stookalert is now configured via the UI, any existing YAML +configurationhas been imported in previous releases and can now be safely +removed from your YAML configuration files. -([@balloob] - [#64337]) +([@frenck] - [#61007]) ([stookalert docs]) {% enddetails %} -{% details "Bond" %} +{% details "Samsung SyncThru Printer" %} -The custom `start_increasing_brightness`, `start_decreasing_brightness` and `stop` services are now deprecated and will be removed in a future release. +The previously deprecated YAML configuration of the Samsung SyncThru Printer +integration has been removed. -Please use the new button entities, that replace those, instead. +Samsung SyncThru Printer is now configured via the UI, any existing YAML +configurationhas been imported in previous releases and can now be safely +removed from your YAML configuration files. -([@bdraco] - [#64725]) ([bond docs]) +([@tkdrob] - [#62541]) ([syncthru docs]) {% enddetails %} -{% details "Advantage Air" %} +{% details "Sensibo" %} -The `advantage_air.set_myzone` service has been depreciated and will be removed -in a future version of Home Assistant. +The Sensibo integration migrated to configuration via the +UI. Configuring Sensibo via YAML configuration has been +deprecated and will be removed in a future Home Assistant release. -Please use the `select.select_option` service on the MyZone select entity to change this value on supported systems instead. +Your existing YAML configuration is automatically imported on upgrade to this +release; and thus can be safely removed from your YAML configuration after upgrading. -([@Bre77] - [#58777]) ([advantage_air docs]) +([@gjohansson-ST] - [#60900]) ([sensibo docs]) + +{% enddetails %} + +{% details "Sensor.Community (previously: Luftdaten)" %} + +The Luftdaten integration has been renamed to Sensor.Community; which is +the new name of the Luftdaten project. + +The previously deprecated YAML configuration of this integration +has been removed. + +Sensor.Community is now configured via the UI, any existing YAML configuration +has been imported in previous releases and can now be safely removed from your +YAML configuration files. + +([@frenck] - [#61748] [#62865]) ([luftdaten docs]) + +{% enddetails %} + +{% details "SMA Solar" %} + +The previously deprecated YAML configuration of the SMA Solar +integration has been removed. + +SMA Solar is now configured via the UI, any existing YAML +configurationhas been imported in previous releases and can now be safely +removed from your YAML configuration files. + +([@tkdrob] - [#62472]) ([sma docs]) + +{% enddetails %} + +{% details "SolaX Power" %} + +The SolaX Power integration migrated to configuration via the +UI. Configuring SolaX Power via YAML configuration has been +deprecated and will be removed in a future Home Assistant release. + +Your existing YAML configuration is automatically imported on upgrade to this +release; and thus can be safely removed from your YAML configuration after upgrading. + +([@tokenize47] - [#56620]) ([solax docs]) + +{% enddetails %} + +{% details "SwitchBot" %} + +The SwitchBot integration migrated to configuration via the +UI in a previous release already. Configuring SwitchBot via YAML configuration +has now been deprecated and will be removed in a future Home Assistant release. + +Your existing YAML configuration is already automatically imported; and thus +can be safely removed from your YAML configuration. + +([@tkdrob] - [#62583]) ([switchbot docs]) {% enddetails %} @@ -1540,20 +1385,153 @@ The `reboot` and `shutdown` services are deprecated and will be removed in futur {% enddetails %} -{% details "Fan" %} +{% details "Templates: Binary Sensors" %} -This is more a breaking change for custom integration developers. +Template trigger binary sensor should start with `unknown` value rather than always starting with `false`/`off`. This matches the template binary sensor behavior +with other sensors. -Now that all core fans are using the new fan entity model, the compatibility shim -has been removed. Custom integrations that have not yet switched to the new -fan model. For more information see: +([@amosyuen] - [#62769]) ([template docs]) - +{% enddetails %} -Preset modes and percentages will continue to be translated back to legacy speeds -until 2022.3 in order to give users a bit more time to update automations. +{% details "TP-Link Kasa Smart" %} -([@bdraco] - [#59781]) ([fan docs]) +The previously deprecated YAML configuration of the TP-Link Kasa Smart +integration has been removed. + +TP-Link Kasa Smart is now configured via the UI, any existing YAML +configurationhas been imported in previous releases and can now be safely +removed from your YAML configuration files. + +([@bdraco] - [#62457]) ([tplink docs]) + +{% enddetails %} + +{% details "Trafikverket Train" %} + +The planned time, estimated time and and actual time sensor attributes have +been correct to be UTC isoformatted string which is standard in Home Assistant. + +Previously displayed as `2021-12-23T09:07:00` and now correctly set as `2021-12-23T09:07:00+00:00`. + +This may affect templates or automations based on these attributes. + +([@gjohansson-ST] - [#62636]) ([trafikverket_train docs]) + +{% enddetails %} + +{% details "Twinkly" %} + +Key `host` is removed from the (extra) state attribute of the light entity. + +([@RobBie1221] - [#64139]) ([twinkly docs]) + +{% enddetails %} + +{% details "Vallox" %} + +The Vallox integration migrated to configuration via the +UI. Configuring Vallox via YAML configuration has been +deprecated and will be removed in a future Home Assistant release. + +Your existing YAML configuration is automatically imported on upgrade to this +release; and thus can be safely removed from your YAML configuration after upgrading. + +([@slovdahl] - [#62780]) ([vallox docs]) + +{% enddetails %} + +{% details "Version" %} + +The Version integration migrated to configuration via the +UI. Configuring Version via YAML configuration has been +deprecated and will be removed in a future Home Assistant release. + +Your existing YAML configuration is automatically imported on upgrade to this +release; and thus can be safely removed from your YAML configuration after upgrading. + +Additionally, the `source` and `channel` attributes have been removed from +the Version sensor for the local source. + +([@ludeeus] - [#54642] [#64827]) ([version docs]) + +{% enddetails %} + +{% details "VeSync" %} + +Previous versions of this integration exposed power and energy usage from +VeSync outlets as state attributes on the `switch` entity itself. This used the deprecated properties: `current_power_w` and `today_energy_kwh`. + +In this version, these two attributes have been removed from the `switch` +entity and split into two new diagnostic sensor entities that are attached to +the same Device. + +Automations and template entities based on the state attribute mechanism should +be updated accordingly. + +([@decompil3d] - [#61837]) ([vesync docs]) + +{% enddetails %} + +{% details "Viessmann ViCare" %} + +The scan interval option has been removed, since the default should be fine +in almost all cases. + +If you really need more fine-grained control you can disable automatic updates +in the system settings for the Viessmann ViCare integration and automate the +polling of the entities with the +[`homeassistant.update_entity`](/docs/scripts/service-calls#homeassistant-services) +service. + +([@oischinger] - [#63343]) ([vicare docs]) + +{% enddetails %} + +{% details "VIZIO SmartCast" %} + +If an integrated `vizio` TV supports apps and the source is currently a non-app +input (e.g. HDMI-1), the `app_id` and `app_name` attributes will no longer be in the media player entity's state. + +When the TV is using an app, the `app_name` will still always be visible and the `app_id` will continue to only be shown if the app is not recognized. + +([@raman325] - [#64025]) ([vizio docs]) + +{% enddetails %} + +{% details "VLC media player Telnet" %} + +The previously deprecated YAML configuration of the VLC media player Telnet +integration has been removed. + +VLC media player Telnet is now configured via the UI, any existing YAML +configurationhas been imported in previous releases and can now be safely +removed from your YAML configuration files. + +([@tkdrob] - [#62542]) ([vlc_telnet docs]) + +{% enddetails %} + +{% details "Waze Travel Time" %} + +The previously deprecated YAML configuration of the Waze Travel Time +integration has been removed. + +Waze Travel Time is now configured via the UI, any existing YAML +configurationhas been imported in previous releases and can now be safely +removed from your YAML configuration files. + +([@tkdrob] - [#62543]) ([waze_travel_time docs]) + +{% enddetails %} + +{% details "WebSocket API / Media Source" %} + +This concerns custom integration developers only. + +The parameters for `async_sign_path` have changed. Refresh token is now a keyword parameter. If called as part of a HTTP or WebSocket request, the users refresh token will automatically be used. + +([@balloob] - [#64337]) {% enddetails %} @@ -1570,17 +1548,39 @@ release; and thus can be safely removed from your YAML configuration after upgra {% enddetails %} +{% details "Z-Wave JS" %} -{% details "SolaX Power" %} +Due to a schema change, `zwave-js-server` version 1.14.0 or greater is required. +Ensure you are using the latest version of `zwave-js-server` (or the add-ons +that provides those). -The SolaX Power integration migrated to configuration via the -UI. Configuring SolaX Power via YAML configuration has been -deprecated and will be removed in a future Home Assistant release. +([@raman325] - [#64407]) ([zwave_js docs]) -Your existing YAML configuration is automatically imported on upgrade to this -release; and thus can be safely removed from your YAML configuration after upgrading. +{% enddetails %} -([@tokenize47] - [#56620]) ([solax docs]) +{% details "Zero-configuration networking (zeroconf)" %} + +This change is only a concern for custom integration developers. + +Currently zeroconf matching only allows matching the `macaddress`, `model`, and `manufacturer` properties along with the `name` from the ZeroconfServiceInfo. + +Since properties are arbitrarily defined by the zeroconf service, +the list of named properties has grown over time. + +Matching now allows for any arbitrarily defined property. +All property matches must be lowercase, wildcards are supported + +The top level keys `model`, `manufacturer`, and `macaddress` +are now deprecated from the `manifest.json` file and should +be moved into a `properties` dict. + +For example: +```diff +- {"type":"_airplay._tcp.local.","model":"appletv*"} ++ {"type":"_airplay._tcp.local.","properties":{"model":"appletv*"}} +``` + +([@bdraco] - [#62133]) ([zeroconf docs]) {% enddetails %} From bfd51569ab2056278fd5683cf15f6c35cf37bd8b Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Tue, 1 Feb 2022 19:22:45 +0100 Subject: [PATCH 018/148] 2022.2.0: Zone change has been moved to next release --- source/_posts/2022-02-02-release-20222.markdown | 4 ---- 1 file changed, 4 deletions(-) diff --git a/source/_posts/2022-02-02-release-20222.markdown b/source/_posts/2022-02-02-release-20222.markdown index 52bb6c335c8..60a1db2eadd 100644 --- a/source/_posts/2022-02-02-release-20222.markdown +++ b/source/_posts/2022-02-02-release-20222.markdown @@ -228,10 +228,6 @@ Screenshot from GitHub PR, needs to be replaced - Scenes now have a state, last activated timestamp (like a button entity, last pressed) -- Zones now have a state! Instead of "zoning" they now show the counter of the - number of people entities in the zone. This means you easily automate - when "someone" gets home, or when everybody left home. - ## More Advanced things Short hand condition nation is now supported in conditions actions as well. From 56f24a1f044637da76533aaeadec41419d26581c Mon Sep 17 00:00:00 2001 From: ZuluWhiskey <35011199+ZuluWhiskey@users.noreply.github.com> Date: Tue, 1 Feb 2022 18:52:01 +0000 Subject: [PATCH 019/148] Replace create-automation image (#21427) --- .../automation-editor/create-automation.png | Bin 33609 -> 16616 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/source/images/docs/automation-editor/create-automation.png b/source/images/docs/automation-editor/create-automation.png index b862c025f374b50286a82c95e116816b821020c7..b6c2336547a7e6d39eb099dae3e35eb91faa4d90 100644 GIT binary patch literal 16616 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 From 73970d2f40534dd914337a8def92e5d6ecc2c113 Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Tue, 1 Feb 2022 22:30:51 +0100 Subject: [PATCH 020/148] 2022.2.0: Add social image --- .../_posts/2022-02-02-release-20222.markdown | 4 ++-- source/images/blog/2022-02/social.png | Bin 0 -> 237762 bytes 2 files changed, 2 insertions(+), 2 deletions(-) create mode 100644 source/images/blog/2022-02/social.png diff --git a/source/_posts/2022-02-02-release-20222.markdown b/source/_posts/2022-02-02-release-20222.markdown index 60a1db2eadd..3e6136678ce 100644 --- a/source/_posts/2022-02-02-release-20222.markdown +++ b/source/_posts/2022-02-02-release-20222.markdown @@ -10,10 +10,10 @@ comments: true categories: - Release-Notes - Core -og_image: /images/blog/2022-2/social.png +og_image: /images/blog/2022-02/social.png --- - + These are the beta release notes for Home Assistant Core 2022.2 (and is thus a work in progress). diff --git a/source/images/blog/2022-02/social.png b/source/images/blog/2022-02/social.png new file mode 100644 index 0000000000000000000000000000000000000000..7a8b53dfbb2479744763e628cdac045059ca8cff GIT binary patch literal 237762 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%0Aoo2lr@=w4cGo@{q0w0H?Q>zIgnl~5pQa%JL=Th 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%0DadoC)<@5C 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

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

hWGgRe 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 Date: Tue, 1 Feb 2022 22:31:19 +0100 Subject: [PATCH 021/148] 2022.2.0: Add introduction --- .../_posts/2022-02-02-release-20222.markdown | 21 +++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/source/_posts/2022-02-02-release-20222.markdown b/source/_posts/2022-02-02-release-20222.markdown index 3e6136678ce..88fa9258afc 100644 --- a/source/_posts/2022-02-02-release-20222.markdown +++ b/source/_posts/2022-02-02-release-20222.markdown @@ -36,18 +36,27 @@ Issues introduced in the beta are processed with priority. --- -The release notes are currently a work in progress, and quite a bit has to -be done. So bear with me during this beta, as I try to make some sense of -a release that contains over 2.5K merged contributions! (An absolute record). - -I'm not sure if this is really fitting, it is Februari already... but since +I'm not sure if this is really fitting; it is February already... but since this is the first release of the year, I'm still going to say it: **Happy New Year 🥂** +And, since we have skipped the January release, this release became a big one. +Over 2,500 contributions make this release the largest one we have ever +shipped! Including 15 brand-new integrations and 13 existing integrations, +which are now available to set up via the user interface. + Now don't be scared when you look at the breaking changes section. It is a lot, however, most of those are cleanup of old deprecations or caused by things -moving to the UI. No better way to start a fresh year, by cleaning up 🧹 +moving to the UI. No better way to start a fresh year, than by cleaning up 🧹 + +By the way, in case you've missed it, [@balloob] published a blog post last +week about the focus for Home Assistant in 2022: [Streamlining Experiences](/blog/2022/01/19/streamlining-experiences/). I'm stoked about it, and am really +looking forward to what this year will do for Home Assistant! Go 2022! + +What is your new years' resolution for your smart home this year? + +Enjoy the release! ../Frenck From 4d2b340654d7a69e7c6d5f6f1a6753fc1ec5ea68 Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Tue, 1 Feb 2022 22:31:42 +0100 Subject: [PATCH 022/148] 2022.2.0: Add Nabu Casa section --- .../_posts/2022-02-02-release-20222.markdown | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/source/_posts/2022-02-02-release-20222.markdown b/source/_posts/2022-02-02-release-20222.markdown index 88fa9258afc..45a6a31d0a4 100644 --- a/source/_posts/2022-02-02-release-20222.markdown +++ b/source/_posts/2022-02-02-release-20222.markdown @@ -81,6 +81,50 @@ Examples use cases of button entities. +## Updates from Nabu Casa + +Before we dive into this release, we have some news and updates from +[Nabu Casa](https://www.nabucasa.com) to share with you. + +### Annual subscriptions now available for the US + +The ability to subscribe to the [Home Assistant Cloud](https://www.nabucasa.com) +was one of the most requested features sinds Nabu Casa was founded and was +announced to become available during the [State of the Open Home](/state-of-the-open-home/) in December. + +As of today, the annual subscriptions to Home Assistant Cloud are available +for the United States. 🎉 + +Additionally, in regions where annual subscriptions are available, you be able +to use Apple Pay and Google Pay now. + +Annual subscriptions will become available in other countries in the coming +months, including local currency support for Canada, Europe and the United Kingdom. + +### Improved infrastructure + +Our new payment system is part of our revamped cloud system that we are rolling +out, and this will bring more improvements the Home Assistant Cloud services. + +We already improved our remove access infrastructure to make sure it's routing +as close to you as possible. Last week we have rolled out improvements +to the infrastructure that has significantly improved the speed of the +Google Assistant and Amazon Alexa integrations. + +### Zack Barett and Mike Degatano join Nabu Casa + +We are also happy to announce [Zack Barett](https://github.com/zsarnett) and +[Mike Degatano](https://github.com/mdegat01) will be joining Nabu Casa to work +on Home Assistant. + +Zack will be helping out on different aspects of Home Assistant, including the +[Home Assistant YouTube channel](https://www.youtube.com/channel/UCbX3YkedQunLt7EQAdVxh7w), and the Home Assistant Frontend. + +Mike is going to be focussing on extending and improving the Home Assistant +Supervisor and the eco system around it (like its internal plugins and add-ons). + +Welcome! We are excited to have you on board! 🎉 + ## New media player bar, local media... The media browser, has been renamed to: "Media". Nice, simple, and clean. From 3558ec706bedee07f1a4efe6ebb0ea8823f70687 Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Tue, 1 Feb 2022 22:32:07 +0100 Subject: [PATCH 023/148] 2022.2.0: Add Check for updates --- .../_posts/2022-02-02-release-20222.markdown | 26 ++++++++++-------- .../images/blog/2022-02/check-for-updates.png | Bin 0 -> 18740 bytes 2 files changed, 15 insertions(+), 11 deletions(-) create mode 100644 source/images/blog/2022-02/check-for-updates.png diff --git a/source/_posts/2022-02-02-release-20222.markdown b/source/_posts/2022-02-02-release-20222.markdown index 45a6a31d0a4..4977277aeea 100644 --- a/source/_posts/2022-02-02-release-20222.markdown +++ b/source/_posts/2022-02-02-release-20222.markdown @@ -142,23 +142,27 @@ And Sonos can now even browse other supported media. For example, if you have set up the Spotify and Sonos integration, you can now browse your Spotify to play it on your Sonos devices. Cast also has support for Plex in the media browser. -## Diagnostics for Integration & Device +## Check for updates -To make debugging and reporting issues easier, both in terms of reporting it, -but also for developers to fix them, we have introduce an new feature: -Diagnostics. +A common question, directly seen after a Home Assistant Core, Operating System, +or add-on release announcement: "I don't see the update yet? How do I update?" -Diagnostics can be provided by integrations, to allow you to download -information about your integration instance or a device, directly from the -Home Assistant frontend. +Checking for updates is done by your system - every few hours - automatically. +However, at times you want to check for updates, without waiting for +this to happen. + +This made us realize that doing that was scattered and hidden in several places +depending on which part you wanted to check updates for. Therefore, we +have added a nice and simple "Check for updates" button in the main +configuration screen.

-Screenshot from GitHub PR, needs to be replaced -Screenshot from GitHub PR, needs to be replaced +Screenshot showing the new Check for Updates button in the configuration screen +Checking for any update, is now just a single click.

-This data can be extremely helpful in finding the root causes of issues -and getting them fixed. +This feature is currently available for the Home Assistant OS, +and Home Assistant Supervisor installation methods. Integrations that have adopted it this release (needs to be writte out nicely) diff --git a/source/images/blog/2022-02/check-for-updates.png b/source/images/blog/2022-02/check-for-updates.png new file mode 100644 index 0000000000000000000000000000000000000000..60235e6c6c49422a9f776462344c80edc5bbbd9a GIT binary patch literal 18740 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 Mr>mdKI;Vst05;K5x&QzG literal 0 HcmV?d00001 From 697d01073fbff18820e12092495d1e51b6a2185c Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Tue, 1 Feb 2022 22:32:32 +0100 Subject: [PATCH 024/148] 2022.2.0: Add diagnostics section --- .../_posts/2022-02-02-release-20222.markdown | 94 +++++------------- source/images/blog/2022-02/diagnostics.png | Bin 0 -> 8627 bytes 2 files changed, 27 insertions(+), 67 deletions(-) create mode 100644 source/images/blog/2022-02/diagnostics.png diff --git a/source/_posts/2022-02-02-release-20222.markdown b/source/_posts/2022-02-02-release-20222.markdown index 4977277aeea..70d7c20df5b 100644 --- a/source/_posts/2022-02-02-release-20222.markdown +++ b/source/_posts/2022-02-02-release-20222.markdown @@ -164,74 +164,34 @@ Checking for any update, is now just a single click. This feature is currently available for the Home Assistant OS, and Home Assistant Supervisor installation methods. -Integrations that have adopted it this release (needs to be writte out nicely) +## Diagnostics for integrations and devices + +To make debugging and reporting issues with integrations or devices easier, +both in terms of reporting it, but also for developers to fix them, we introduce: + +**Diagnostics**. + +Diagnostics can be provided by integrations and allow you to download diagnostic +information, bout an integration or device you have set up, +directly from the Home Assistant UI. + +

+SScreenshot showing the Download Diagnostics button on a Sonos device page +Screenshot of the Download Diagnostics button on the device page +

+ +The above screenshot is from the device page of a Sonos speaker in Home +Assistant. The downloadable diagnostics file can be viewed, as a text file, +and can be used for sharing when reporting an issue in our issue tracker. + +The diagnostics data can be extremely helpful in finding the root causes of +issues and getting them fixed. As a matter of fact, it helped us pin-pointing +and fixing issues during the beta of this release. + +The good news is, that **61**! integrations already added support this new +diagnostics feature in this release, including Z-Wave JS, ESPHome, Sonos, +Tuya, Shelly, WLED, Unifi, Nest, deCONZ, KNX, Roku, Samsung TV, and many more! -- Add diagnostics support to Sonos ([@jjlawren] - [#64576]) ([sonos docs]) -- Add diagnostics support to Tuya ([@frenck] - [#64374]) ([tuya docs]) -- Add diagnostics support to Verisure ([@frenck] - [#64789]) ([verisure docs]) -- Add diagnostics to Launch Library ([@ludeeus] - [#64871]) ([launch_library docs]) -- Add diagnostics support to RDW ([@frenck] - [#64787]) -- Add diagnostics support to Stookalert ([@frenck] - [#64747]) ([stookalert docs]) -- Add diagnostics support to CPU Speed ([@frenck] - [#64745]) ([cpuspeed docs]) -- Add diagnostics support to Whois ([@frenck] - [#64855]) ([whois docs]) -- Add event statistics to Sonos diagnostics ([@jjlawren] - [#64845]) ([sonos docs]) -- Add diagnostics to Notion ([@bachya] - [#64713]) ([notion docs]) -- Add diagnostics to Flu Near You ([@bachya] - [#64597]) ([flunearyou docs]) -- Add diagnostics to ReCollect Waste ([@bachya] - [#64814]) ([recollect_waste docs]) -- Add diagnostics support to Tailscale ([@frenck] - [#64649]) ([tailscale docs]) -- Add diagnostics support to Sensor.Community ([@frenck] - [#64636]) ([luftdaten docs]) -- Add diagnostics support to Elgato ([@frenck] - [#64652]) ([elgato docs]) -- Add diagnostics to NAM ([@bieniu] - [#64743]) ([nam docs]) -- Add diagnostics support to PVOutput ([@frenck] - [#64625]) ([pvoutput docs]) -- Add diagnostics support to Open-Meteo ([@frenck] - [#64645]) ([open_meteo docs]) -- Add diagnostics to Renault integration ([@epenet] - [#64531]) ([renault docs]) ([diagnostics docs]) -- Add rainforest diagnostics ([@balloob] - [#64647]) ([rainforest_eagle docs]) -- Add diagnostics support to TwenteMilieu ([@frenck] - [#64627]) ([twentemilieu docs]) -- Add diagnostics to Brother integration ([@bieniu] - [#64478]) ([brother docs]) -- Add CO2signal diagnostics ([@balloob] - [#64646]) ([co2signal docs]) -- Add diagnostics platform to AVM Fritz!Smarthome ([@mib1185] - [#64657]) ([fritzbox docs]) -- Add diagnostics support to Axis integration ([@Kane610] - [#64637]) ([axis docs]) -- Add diagnostics support for homekit_controller ([@Jc2k] - [#64773]) ([homekit_controller docs]) -- Add diagnostics support to roku ([@ctalkington] - [#64729]) ([roku docs]) -- Add diagnostics platform to Shelly ([@mib1185] - [#64660]) ([shelly docs]) -- Add diagnostics to OpenUV ([@bachya] - [#64716]) ([openuv docs]) -- Add diagnostics support to UniFi Network integration ([@Kane610] - [#64640]) ([unifi docs]) -- Add diagnostics to IQVIA ([@bachya] - [#64602]) ([iqvia docs]) -- Add diagnostics to Elexa Guardian ([@bachya] - [#64599]) ([guardian docs]) -- Add diagnostics integration ([@balloob] - [#64330]) ([default_config docs]) ([diagnostics docs]) (new-integration) -- Add zwave_js support for diagnostics ([@raman325] - [#64336]) ([zwave_js docs]) -- Add diagnostics to RainMachine ([@bachya] - [#64788]) ([rainmachine docs]) -- Add diagnostics to Nanoleaf ([@ludeeus] - [#64835]) ([nanoleaf docs]) -- Add diagnostics to Synology DSM integration ([@mib1185] - [#64480]) ([synology_dsm docs]) -- Add diagnostics to Mazda integration ([@bdr99] - [#64606]) ([mazda docs]) -- Add diagnostics to deCONZ integration ([@Kane610] - [#64585]) ([deconz docs]) -- Tibber diagnostics ([@Danielhiversen] - [#64472]) ([tibber docs]) -- Add evil genius labs diagnostics ([@balloob] - [#64339]) ([evil_genius_labs docs]) -- Add diagnostic information for nest ([@allenporter] - [#64405]) ([nest docs]) -- Add diagnostics to the core files ([@epenet] - [#64417]) -- Fix attr spelling error in Nest SDM SensorBase ([@iMicknl] - [#64490]) ([nest docs]) -- Add diagnostics for the AirVisual integration ([@bachya] - [#64479]) ([airvisual docs]) -- Add diagnostics to KNX ([@farmio] - [#64471]) ([knx docs]) -- Add diagnostics to Overkiz integration ([@iMicknl] - [#64427]) ([overkiz docs]) -- Add zwave_js device diagnostics ([@raman325] - [#64504]) -- Add device diagnostics support to Tuya ([@frenck] - [#64537]) ([tuya docs]) -- Add diagnostics to Netatmo integration ([@cgtobi] - [#64392]) ([netatmo docs]) -- Add diagnostics to Ambient PWS ([@bachya] - [#64489]) ([ambient_station docs]) ([airvisual docs]) -- Add diagnostics to GitHub integration ([@ludeeus] - [#64385]) ([github docs]) -- Add diagnostics to UptimeRobot ([@ludeeus] - [#64905]) ([uptimerobot docs]) -- Add diagnostics for Coinbase ([@TomBrien] - [#64900]) -- Add diagnostics to Tile ([@bachya] - [#64875]) ([tile docs]) -- Add diagnostics to Ridwell ([@bachya] - [#64863]) ([ridwell docs]) -- Add diagnostics to WattTime ([@bachya] - [#64887]) ([watttime docs]) -- Add diagnostics download to ESPHome ([@jesserockz] - [#65008]) ([esphome docs]) (beta fix) -- Add diagnostics support to P1 Monitor ([@klaasnicolaas] - [#65060]) ([p1_monitor docs]) (beta fix) -- Add diagnostics support to onewire ([@epenet] - [#65131]) ([onewire docs]) (beta fix) -- Add diagnostics for rtsp_to_webrtc ([@allenporter] - [#65138]) ([rtsp_to_webrtc docs]) (beta fix) -- Update nest diagnostics ([@allenporter] - [#65141]) ([nest docs]) (beta fix) -- Add diagnostics to Advantage Air ([@Bre77] - [#65006]) ([advantage_air docs]) (beta fix) -- Add HomeWizard diagnostics ([@DCSBL] - [#65297]) ([homewizard docs]) (beta fix) (new-integration) -- Add diagnostics support to WLED ([@frenck] - [#65317]) ([wled docs]) (beta fix) -- Add diagnostics for SamsungTV ([@chemelli74] - [#65342]) ([samsungtv docs]) (beta fix ## Improved handling of device tracker entities diff --git a/source/images/blog/2022-02/diagnostics.png b/source/images/blog/2022-02/diagnostics.png new file mode 100644 index 0000000000000000000000000000000000000000..b72e54a8a9ca5ecae50d4b966ef9f45a26830e7c GIT binary patch literal 8627 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 P!9_`4U9MW@eenMQG8xmw literal 0 HcmV?d00001 From 99484c177af6ee87c7e222e84927d1572ae213a2 Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Tue, 1 Feb 2022 22:32:56 +0100 Subject: [PATCH 025/148] 2022.2.0: Add reporting issues section --- .../_posts/2022-02-02-release-20222.markdown | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/source/_posts/2022-02-02-release-20222.markdown b/source/_posts/2022-02-02-release-20222.markdown index 70d7c20df5b..0a8aed641d6 100644 --- a/source/_posts/2022-02-02-release-20222.markdown +++ b/source/_posts/2022-02-02-release-20222.markdown @@ -192,7 +192,28 @@ The good news is, that **61**! integrations already added support this new diagnostics feature in this release, including Z-Wave JS, ESPHome, Sonos, Tuya, Shelly, WLED, Unifi, Nest, deCONZ, KNX, Roku, Samsung TV, and many more! +## Finding known integration issues and where to report them +Experiencing an issue with an integration? Want to know if your issue +is already known and reported? Or, maybe you are not sure where our +issue tracker can be found? + +We added a small menu option to each integration, solving just that. + + + +**TODO: Screenshot** + +This button will bring you to our issue tracker, showing all currently known +and open issues for this integration. + +Is your issue not listed? Well, if this integration provides diagnostics, +download those. Next, go back to issue tracker, using the new known issues link, +and click the "New issue" button in the top right corner to report your issue +by filling out the form. ## Improved handling of device tracker entities From e273ac0bc93b6bb38e8ac8092ab485aa608102b2 Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Tue, 1 Feb 2022 22:33:12 +0100 Subject: [PATCH 026/148] 2022.2.0: Add scenes have state section --- source/_posts/2022-02-02-release-20222.markdown | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/source/_posts/2022-02-02-release-20222.markdown b/source/_posts/2022-02-02-release-20222.markdown index 0a8aed641d6..5e87d6fac76 100644 --- a/source/_posts/2022-02-02-release-20222.markdown +++ b/source/_posts/2022-02-02-release-20222.markdown @@ -228,6 +228,22 @@ will be enabled by default. This keeps our Home Assistant nice and tidy, but also gives you the possibility to enable those extra ones you like to have, yourself. +## Scenes now have a state + +Scenes never had a state, well that is not entirely true, it would always +say: "scening". That is not really helpful with anything. + +To make the state of a scene more useful, it will now have the last timestamp of when the scene was activated. This has a couple of advantages: + +- The timestamp in the state of the scene tells you when the scene was last used. +- You can now see history of when a scene was activated in the logbook, + and who did that. +- You can now automate on a scene being activated. + +The last one is pretty useful as a scene can now be used to trigger even more +actions via automations. For example, you could start playing media or send +a TTS announcement when a scene is used. + ## Streamlining experiences We recently published a blog on our focus for this year: From 23ce5305e377d169fc0d79bba53ec0a2a86b860b Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Tue, 1 Feb 2022 22:33:26 +0100 Subject: [PATCH 027/148] 2022.2.0: Cleanup --- source/_posts/2022-02-02-release-20222.markdown | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/source/_posts/2022-02-02-release-20222.markdown b/source/_posts/2022-02-02-release-20222.markdown index 5e87d6fac76..32df2a5e656 100644 --- a/source/_posts/2022-02-02-release-20222.markdown +++ b/source/_posts/2022-02-02-release-20222.markdown @@ -256,21 +256,6 @@ Things done in this release with that focus: go to that device (instead of showing the table with a single device). (Single device links to device page (#11387) @balloob) -- "Check for updates" in configuration screen. This will check - for Core, Operating System & Add-on updates with a single click. - -

-Screenshot from GitHub PR, needs to be replaced -Screenshot from GitHub PR, needs to be replaced -

- -- Finding known issues for an integration in our issue trackers - -

-Screenshot from GitHub PR, needs to be replaced -Screenshot from Discord, needs to be replaced -

- - Visit device/service and documention on discovered items.

From 3c614a13c6118dc0106c9095ae8b2fd624495dc5 Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Tue, 1 Feb 2022 22:41:03 +0100 Subject: [PATCH 028/148] 2022.2.0: Tweak --- source/_posts/2022-02-02-release-20222.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/_posts/2022-02-02-release-20222.markdown b/source/_posts/2022-02-02-release-20222.markdown index 32df2a5e656..83e394debe8 100644 --- a/source/_posts/2022-02-02-release-20222.markdown +++ b/source/_posts/2022-02-02-release-20222.markdown @@ -89,8 +89,8 @@ Before we dive into this release, we have some news and updates from ### Annual subscriptions now available for the US The ability to subscribe to the [Home Assistant Cloud](https://www.nabucasa.com) -was one of the most requested features sinds Nabu Casa was founded and was -announced to become available during the [State of the Open Home](/state-of-the-open-home/) in December. +anually, was one of the most requested features sinds Nabu Casa was founded and has been +announced at the [State of the Open Home](/state-of-the-open-home/) in December. As of today, the annual subscriptions to Home Assistant Cloud are available for the United States. 🎉 From 6ded71113144a6ce86ed7769c5f665acb97f7d59 Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Tue, 1 Feb 2022 22:44:55 +0100 Subject: [PATCH 029/148] 2022.2.0: Tweaks --- source/_posts/2022-02-02-release-20222.markdown | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/source/_posts/2022-02-02-release-20222.markdown b/source/_posts/2022-02-02-release-20222.markdown index 83e394debe8..2c7b7713dbd 100644 --- a/source/_posts/2022-02-02-release-20222.markdown +++ b/source/_posts/2022-02-02-release-20222.markdown @@ -168,11 +168,10 @@ and Home Assistant Supervisor installation methods. To make debugging and reporting issues with integrations or devices easier, both in terms of reporting it, but also for developers to fix them, we introduce: - **Diagnostics**. Diagnostics can be provided by integrations and allow you to download diagnostic -information, bout an integration or device you have set up, +information, about an integration or device you have set up, directly from the Home Assistant UI.

@@ -180,17 +179,17 @@ directly from the Home Assistant UI. Screenshot of the Download Diagnostics button on the device page

-The above screenshot is from the device page of a Sonos speaker in Home -Assistant. The downloadable diagnostics file can be viewed, as a text file, +The above screenshot is from the device page of a Sonos speaker. The +downloadable diagnostics file can be viewed, as a text file, and can be used for sharing when reporting an issue in our issue tracker. -The diagnostics data can be extremely helpful in finding the root causes of -issues and getting them fixed. As a matter of fact, it helped us pin-pointing +Diagnostics data can be extremely helpful in finding the root causes of +an issue and to get them fixed. As a matter of fact, it helped us pin-pointing and fixing issues during the beta of this release. -The good news is, that **61**! integrations already added support this new -diagnostics feature in this release, including Z-Wave JS, ESPHome, Sonos, -Tuya, Shelly, WLED, Unifi, Nest, deCONZ, KNX, Roku, Samsung TV, and many more! +The good news is that **61**! integrations already added support for this new +diagnostics feature, including Z-Wave JS, ESPHome, Sonos, Shelly, WLED, +Unifi, Nest, deCONZ, KNX, Tuya, Roku, Samsung TV, and many more! ## Finding known integration issues and where to report them From 4f05196014231fcee397a1c2af23d7cedd7a4186 Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Tue, 1 Feb 2022 23:45:36 +0100 Subject: [PATCH 030/148] 2022.2.0: Tweaks --- source/_posts/2022-02-02-release-20222.markdown | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/source/_posts/2022-02-02-release-20222.markdown b/source/_posts/2022-02-02-release-20222.markdown index 2c7b7713dbd..b1601aed415 100644 --- a/source/_posts/2022-02-02-release-20222.markdown +++ b/source/_posts/2022-02-02-release-20222.markdown @@ -37,7 +37,7 @@ Issues introduced in the beta are processed with priority. --- I'm not sure if this is really fitting; it is February already... but since -this is the first release of the year, I'm still going to say it: +this is the first release of the year, I'm going to say it anyway: **Happy New Year 🥂** @@ -47,12 +47,13 @@ shipped! Including 15 brand-new integrations and 13 existing integrations, which are now available to set up via the user interface. Now don't be scared when you look at the breaking changes section. It is a lot, -however, most of those are cleanup of old deprecations or caused by things +however, most of those are cleanup of old deprecations, or caused by things moving to the UI. No better way to start a fresh year, than by cleaning up 🧹 By the way, in case you've missed it, [@balloob] published a blog post last -week about the focus for Home Assistant in 2022: [Streamlining Experiences](/blog/2022/01/19/streamlining-experiences/). I'm stoked about it, and am really -looking forward to what this year will do for Home Assistant! Go 2022! +week about the focus for Home Assistant in 2022: [Streamlining Experiences](/blog/2022/01/19/streamlining-experiences/). +I'm stoked about it, and am really looking forward to what this year will do +for Home Assistant! Go 2022! What is your new years' resolution for your smart home this year? @@ -106,7 +107,7 @@ months, including local currency support for Canada, Europe and the United Kingd Our new payment system is part of our revamped cloud system that we are rolling out, and this will bring more improvements the Home Assistant Cloud services. -We already improved our remove access infrastructure to make sure it's routing +We already improved our remote access infrastructure to make sure it's routing as close to you as possible. Last week we have rolled out improvements to the infrastructure that has significantly improved the speed of the Google Assistant and Amazon Alexa integrations. From a01ff8e622ede88c9bdcc1742927b15c842ae559 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Tue, 1 Feb 2022 16:23:46 -0800 Subject: [PATCH 031/148] Tweaks --- source/_posts/2022-02-02-release-20222.markdown | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/source/_posts/2022-02-02-release-20222.markdown b/source/_posts/2022-02-02-release-20222.markdown index b1601aed415..cc4d0acd532 100644 --- a/source/_posts/2022-02-02-release-20222.markdown +++ b/source/_posts/2022-02-02-release-20222.markdown @@ -87,7 +87,7 @@ Examples use cases of button entities. Before we dive into this release, we have some news and updates from [Nabu Casa](https://www.nabucasa.com) to share with you. -### Annual subscriptions now available for the US +### Annual subscriptions now available for the United States The ability to subscribe to the [Home Assistant Cloud](https://www.nabucasa.com) anually, was one of the most requested features sinds Nabu Casa was founded and has been @@ -96,8 +96,7 @@ announced at the [State of the Open Home](/state-of-the-open-home/) in December. As of today, the annual subscriptions to Home Assistant Cloud are available for the United States. 🎉 -Additionally, in regions where annual subscriptions are available, you be able -to use Apple Pay and Google Pay now. +Additionally, in regions where annual subscriptions are available, Apple Pay and Google Pay will be available as extra options. Annual subscriptions will become available in other countries in the coming months, including local currency support for Canada, Europe and the United Kingdom. @@ -269,7 +268,7 @@ Screenshot from GitHub PR, needs to be replaced ## More Advanced things -Short hand condition nation is now supported in conditions actions as well. +Short hand condition notion is now supported in conditions actions as well. For use in automations and scripts. For example (needs better example): @@ -488,7 +487,7 @@ We welcome the following new integration this release: The following integrations are now available via the Home Assistant UI: - [Android TV][androidtv docs], done by [@ollo69] -- [Azure Event Hub][azure_event_hub docs], done by[@eavanvalkenburg] +- [Azure Event Hub][azure_event_hub docs], done by[@eavanvalkenburg] - [CPU Speed][cpuspeed docs], done by [@frenck] - [DNS IP][dnsip docs], done by [@gjohansson-ST] - [GitHub][github docs], done by [@ludeeus] @@ -1071,7 +1070,7 @@ release; and thus can be safely removed from your YAML configuration after upgra ([@DurgNomis-drol] - [#62416]) ([launch_library docs]) ---- +--- Attributes on the current sensor is changed. Names of these attributes are changed to better describe what information they provide. (Ex. `agency` changed @@ -1219,7 +1218,7 @@ removed from your YAML configuration files. {% details "Nissan Leaf" %} -The service to start a charge has been deprecated; it is replaced with a button. +The service to start a charge has been deprecated; it is replaced with a button. Replace the `nissan_leaf.start_charge` service in any existing automations with `button.press` for the new `button.start_NICKNAME_charging` entity. @@ -1516,7 +1515,7 @@ in almost all cases. If you really need more fine-grained control you can disable automatic updates in the system settings for the Viessmann ViCare integration and automate the polling of the entities with the -[`homeassistant.update_entity`](/docs/scripts/service-calls#homeassistant-services) +[`homeassistant.update_entity`](/docs/scripts/service-calls#homeassistant-services) service. ([@oischinger] - [#63343]) ([vicare docs]) From 48f677712508631f6d485f805a1304fc5da1ba7e Mon Sep 17 00:00:00 2001 From: Marc Randolph Date: Wed, 2 Feb 2022 02:15:10 -0600 Subject: [PATCH 032/148] Remove the other trailing comma and minor copyedit (mqtt/discovery) (#21431) --- source/_docs/mqtt/discovery.markdown | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/source/_docs/mqtt/discovery.markdown b/source/_docs/mqtt/discovery.markdown index 77ce66f2a1c..7780a808a03 100644 --- a/source/_docs/mqtt/discovery.markdown +++ b/source/_docs/mqtt/discovery.markdown @@ -339,7 +339,7 @@ A motion detection device which can be represented by a [binary sensor](/integra - State topic: `homeassistant/binary_sensor/garden/state` - Payload: `{"name": "garden", "device_class": "motion", "state_topic": "homeassistant/binary_sensor/garden/state"}` -To create a new sensor manually. For more details please refer to the [MQTT testing section](/docs/mqtt/testing/). +To create a new sensor manually. ```bash mosquitto_pub -h 127.0.0.1 -p 1883 -t "homeassistant/binary_sensor/garden/config" -m '{"name": "garden", "device_class": "motion", "state_topic": "homeassistant/binary_sensor/garden/state"}' @@ -357,6 +357,8 @@ Delete the sensor by sending an empty message. mosquitto_pub -h 127.0.0.1 -p 1883 -t "homeassistant/binary_sensor/garden/config" -m '' ``` +For more details please refer to the [MQTT testing section](/docs/mqtt/testing/). + ### Sensors with multiple values Setting up a sensor with multiple measurement values requires multiple consecutive configuration topic submissions. @@ -453,7 +455,7 @@ Setting up a climate integration (heat only): { "mode":"off", "target_temp":"21.50", - "current_temp":"23.60", + "current_temp":"23.60" } ``` @@ -477,7 +479,7 @@ Setting up a device tracker: - State topic: `homeassistant/device_tracker/paulus/state` - Example state payload: `home` or `not_home` or `location name` -If the device supports gps coordinates then they can be sent to Home Assistant by specifying an attributes topic (i.e. "json_attributes_topic") in the configuration payload: +If the device supports GPS coordinates then they can be sent to Home Assistant by specifying an attributes topic (i.e. "json_attributes_topic") in the configuration payload: - Attributes topic: `homeassistant/device_tracker/paulus/attributes` - Example attributes payload: @@ -506,5 +508,5 @@ The entity id is automatically generated from the entity's name. All MQTT entity } ``` -In the example above, the the entity_id will be `sensor.device1` instead of `sensor.my_super_device`. +In the example above, the entity_id will be `sensor.device1` instead of `sensor.my_super_device`. From 8d938438db97b81f1ba44cd3cc0053047677cb1e Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Wed, 2 Feb 2022 13:13:38 +0100 Subject: [PATCH 033/148] 2022.2.0: Tweaks --- source/_posts/2022-02-02-release-20222.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_posts/2022-02-02-release-20222.markdown b/source/_posts/2022-02-02-release-20222.markdown index cc4d0acd532..36fab31f7d3 100644 --- a/source/_posts/2022-02-02-release-20222.markdown +++ b/source/_posts/2022-02-02-release-20222.markdown @@ -90,7 +90,7 @@ Before we dive into this release, we have some news and updates from ### Annual subscriptions now available for the United States The ability to subscribe to the [Home Assistant Cloud](https://www.nabucasa.com) -anually, was one of the most requested features sinds Nabu Casa was founded and has been +anually, was one of the most requested features since Nabu Casa was founded and has been announced at the [State of the Open Home](/state-of-the-open-home/) in December. As of today, the annual subscriptions to Home Assistant Cloud are available From fb6730040a2e774c54514415193355aeaf8940a9 Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Wed, 2 Feb 2022 13:24:56 +0100 Subject: [PATCH 034/148] 2022.2.0: Media section --- .../_posts/2022-02-02-release-20222.markdown | 31 ++++++++++++------ source/images/blog/2022-02/media-bar.png | Bin 0 -> 454572 bytes 2 files changed, 21 insertions(+), 10 deletions(-) create mode 100644 source/images/blog/2022-02/media-bar.png diff --git a/source/_posts/2022-02-02-release-20222.markdown b/source/_posts/2022-02-02-release-20222.markdown index 36fab31f7d3..39a637a5f37 100644 --- a/source/_posts/2022-02-02-release-20222.markdown +++ b/source/_posts/2022-02-02-release-20222.markdown @@ -125,22 +125,33 @@ Supervisor and the eco system around it (like its internal plugins and add-ons). Welcome! We are excited to have you on board! 🎉 -## New media player bar, local media... +## Media improvements -The media browser, has been renamed to: "Media". Nice, simple, and clean. +The media browser has been renamed to: "Media". Nice, simple, and clean. -And it now has an nice media bar in the button to control the media you +And, it now has a nice media bar in the bottom to control the media you are playing:

-Screenshot from GitHub PR, needs to be replaced -Screenshot from GitHub PR, needs to be replaced -

+Screenshot showing media with the new media bar + -Sonos, VLC (via Telnet) and Roku now support playing local media. -And Sonos can now even browse other supported media. For example, if you have -set up the Spotify and Sonos integration, you can now browse your Spotify to -play it on your Sonos devices. Cast also has support for Plex in the media browser. +The experience of browsing the media has been improved and extended with +new capabilities. An integration can now browse media of supported +sources provided by other integrations. + +For example, if you have set up the Spotify and Sonos integration, you can now +browse your Spotify to play it on your Sonos devices; and Cast now has support +for playing Plex media straight from the browser. + +Sonos, VLC (via Telnet), and Roku added support for playing local media! Combing +this with the VLC add-on can turn your Home Assistant device into a +media player for your local media. In the video below, Zack will demonstrate how +that works: + +
+ +
## Check for updates diff --git a/source/images/blog/2022-02/media-bar.png b/source/images/blog/2022-02/media-bar.png new file mode 100644 index 0000000000000000000000000000000000000000..19c2630c8e391f45f2121cfd3052ac9e75cb3a3a GIT binary patch literal 454572 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