From c60139a90f8325e05f298a124e32572bb9db75f9 Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Wed, 3 Jun 2026 04:51:43 +0200 Subject: [PATCH] home-assistant: 2026.5.4 -> 2026.6.0 https://www.home-assistant.io/blog/2026/06/03/release-20266/ --- .../home-assistant/component-packages.nix | 287 +++++++++++++++++- pkgs/servers/home-assistant/default.nix | 23 +- pkgs/servers/home-assistant/frontend.nix | 4 +- pkgs/servers/home-assistant/tests.nix | 43 +-- .../update-component-packages.py | 4 +- 5 files changed, 292 insertions(+), 69 deletions(-) diff --git a/pkgs/servers/home-assistant/component-packages.nix b/pkgs/servers/home-assistant/component-packages.nix index 59d5b1d9f26b..6157815457f8 100644 --- a/pkgs/servers/home-assistant/component-packages.nix +++ b/pkgs/servers/home-assistant/component-packages.nix @@ -2,7 +2,7 @@ # Do not edit! { - version = "2026.5.4"; + version = "2026.6.0"; components = { "3_day_blinds" = ps: with ps; [ @@ -101,6 +101,9 @@ home-assistant-intents pyturbojpeg ]; + "aidot" = + ps: with ps; [ + ]; # missing inputs: python-aidot "air_quality" = ps: with ps; [ ]; @@ -464,11 +467,20 @@ "august" = ps: with ps; [ aiohasupervisor + aiousbwatcher + bleak + bleak-retry-connector + bluetooth-adapters + bluetooth-auto-recovery + bluetooth-data-tools cronsim + dbus-fast ha-ffmpeg + habluetooth hass-nabucasa hassil home-assistant-intents + matter-ble-proxy matter-python-client mutagen openai @@ -476,6 +488,7 @@ pyspeex-noise pyturbojpeg securetar + serialx yalexs yalexs-ble ]; @@ -512,7 +525,30 @@ ]; "avea" = ps: with ps; [ + aioesphomeapi + aiohasupervisor + aioruuvigateway + aioshelly + aiousbwatcher avea + bleak + bleak-esphome + bleak-retry-connector + bluetooth-adapters + bluetooth-auto-recovery + bluetooth-data-tools + dbus-fast + esphome-dashboard-api + ha-ffmpeg + habluetooth + hassil + home-assistant-intents + ifaddr + mutagen + pymicro-vad + pyspeex-noise + serialx + zeroconf ]; "avion" = ps: with ps; [ @@ -775,6 +811,8 @@ ]; "braviatv" = ps: with ps; [ + async-upnp-client + ifaddr pybravia ]; "brel_home" = @@ -868,7 +906,7 @@ ]; "caldav" = ps: with ps; [ - caldav_2 + caldav icalendar vobject ]; @@ -918,12 +956,21 @@ "cast" = ps: with ps; [ aiohasupervisor + aiousbwatcher + bleak + bleak-retry-connector + bluetooth-adapters + bluetooth-auto-recovery + bluetooth-data-tools cronsim + dbus-fast ha-ffmpeg + habluetooth hass-nabucasa hassil home-assistant-intents ifaddr + matter-ble-proxy matter-python-client mutagen openai @@ -935,12 +982,16 @@ pyspeex-noise pyturbojpeg securetar + serialx zeroconf ]; "ccm15" = ps: with ps; [ py-ccm15 ]; + "centriconnect" = + ps: with ps; [ + ]; # missing inputs: aiocentriconnect "cert_expiry" = ps: with ps; [ ]; @@ -956,6 +1007,9 @@ ps: with ps; [ chess-com-api ]; + "cielo_home" = + ps: with ps; [ + ]; # missing inputs: cielo-connect-api "cisco_ios" = ps: with ps; [ pexpect @@ -991,11 +1045,20 @@ "cloud" = ps: with ps; [ aiohasupervisor + aiousbwatcher + bleak + bleak-retry-connector + bluetooth-adapters + bluetooth-auto-recovery + bluetooth-data-tools cronsim + dbus-fast ha-ffmpeg + habluetooth hass-nabucasa hassil home-assistant-intents + matter-ble-proxy matter-python-client mutagen openai @@ -1003,6 +1066,7 @@ pyspeex-noise pyturbojpeg securetar + serialx ]; "cloudflare" = ps: with ps; [ @@ -1139,6 +1203,9 @@ ps: with ps; [ pydanfossair ]; + "data_grand_lyon" = + ps: with ps; [ + ]; # missing inputs: data-grand-lyon-ha "datadog" = ps: with ps; [ datadog @@ -1199,6 +1266,7 @@ home-assistant-frontend home-assistant-intents ifaddr + matter-ble-proxy matter-python-client mutagen numpy @@ -2239,8 +2307,18 @@ "google_assistant" = ps: with ps; [ aiohasupervisor + aiousbwatcher + bleak + bleak-retry-connector + bluetooth-adapters + bluetooth-auto-recovery + bluetooth-data-tools + dbus-fast + habluetooth + matter-ble-proxy matter-python-client pyturbojpeg + serialx ]; "google_assistant_sdk" = ps: with ps; [ @@ -2381,6 +2459,9 @@ ps: with ps; [ aioguardian ]; + "guntamatic" = + ps: with ps; [ + ]; # missing inputs: guntamatic "habitica" = ps: with ps; [ habiticalib @@ -3292,7 +3373,6 @@ ]; "konnected" = ps: with ps; [ - konnected ]; "konnected_esphome" = ps: with ps; [ @@ -3524,6 +3604,11 @@ ps: with ps; [ thinqconnect ]; + "lg_tv_rs232" = + ps: with ps; [ + aiousbwatcher + serialx + ]; # missing inputs: lg-rs232-tv "libre_hardware_monitor" = ps: with ps; [ librehardwaremonitor-api @@ -3655,12 +3740,21 @@ "loqed" = ps: with ps; [ aiohasupervisor + aiousbwatcher + bleak + bleak-retry-connector + bluetooth-adapters + bluetooth-auto-recovery + bluetooth-data-tools cronsim + dbus-fast ha-ffmpeg + habluetooth hass-nabucasa hassil home-assistant-intents loqedapi + matter-ble-proxy matter-python-client mutagen openai @@ -3668,6 +3762,7 @@ pyspeex-noise pyturbojpeg securetar + serialx ]; "lovelace" = ps: with ps; [ @@ -3729,6 +3824,10 @@ "marantz" = ps: with ps; [ ]; + "marantz_infrared" = + ps: with ps; [ + infrared-protocols + ]; "martec" = ps: with ps; [ ]; @@ -3749,7 +3848,17 @@ "matter" = ps: with ps; [ aiohasupervisor + aiousbwatcher + bleak + bleak-retry-connector + bluetooth-adapters + bluetooth-auto-recovery + bluetooth-data-tools + dbus-fast + habluetooth + matter-ble-proxy matter-python-client + serialx ]; "maxcube" = ps: with ps; [ @@ -3949,6 +4058,9 @@ ps: with ps; [ minio ]; + "mitsubishi_comfort" = + ps: with ps; [ + ]; # missing inputs: mitsubishi-comfort "mjpeg" = ps: with ps; [ ]; @@ -3982,11 +4094,20 @@ "mobile_app" = ps: with ps; [ aiohasupervisor + aiousbwatcher + bleak + bleak-retry-connector + bluetooth-adapters + bluetooth-auto-recovery + bluetooth-data-tools cronsim + dbus-fast ha-ffmpeg + habluetooth hass-nabucasa hassil home-assistant-intents + matter-ble-proxy matter-python-client mutagen openai @@ -3996,6 +4117,7 @@ pyspeex-noise pyturbojpeg securetar + serialx ]; "mochad" = ps: with ps; [ @@ -4214,9 +4336,6 @@ ps: with ps; [ webio-api ]; - "national_grid_us" = - ps: with ps; [ - ]; "neato" = ps: with ps; [ pybotvac @@ -4243,11 +4362,20 @@ "netatmo" = ps: with ps; [ aiohasupervisor + aiousbwatcher + bleak + bleak-retry-connector + bluetooth-adapters + bluetooth-auto-recovery + bluetooth-data-tools cronsim + dbus-fast ha-ffmpeg + habluetooth hass-nabucasa hassil home-assistant-intents + matter-ble-proxy matter-python-client mutagen openai @@ -4256,6 +4384,7 @@ pyspeex-noise pyturbojpeg securetar + serialx ]; "netdata" = ps: with ps; [ @@ -4504,11 +4633,20 @@ "onedrive" = ps: with ps; [ aiohasupervisor + aiousbwatcher + bleak + bleak-retry-connector + bluetooth-adapters + bluetooth-auto-recovery + bluetooth-data-tools cronsim + dbus-fast ha-ffmpeg + habluetooth hass-nabucasa hassil home-assistant-intents + matter-ble-proxy matter-python-client mutagen onedrive-personal-sdk @@ -4517,15 +4655,25 @@ pyspeex-noise pyturbojpeg securetar + serialx ]; "onedrive_for_business" = ps: with ps; [ aiohasupervisor + aiousbwatcher + bleak + bleak-retry-connector + bluetooth-adapters + bluetooth-auto-recovery + bluetooth-data-tools cronsim + dbus-fast ha-ffmpeg + habluetooth hass-nabucasa hassil home-assistant-intents + matter-ble-proxy matter-python-client mutagen onedrive-personal-sdk @@ -4534,6 +4682,7 @@ pyspeex-noise pyturbojpeg securetar + serialx ]; "onewire" = ps: with ps; [ @@ -4734,6 +4883,9 @@ ps: with ps; [ pyotp ]; + "ouman_eh_800" = + ps: with ps; [ + ]; # missing inputs: ouman-eh-800-api "ourgroceries" = ps: with ps; [ ourgroceries @@ -4745,11 +4897,20 @@ "overseerr" = ps: with ps; [ aiohasupervisor + aiousbwatcher + bleak + bleak-retry-connector + bluetooth-adapters + bluetooth-auto-recovery + bluetooth-data-tools cronsim + dbus-fast ha-ffmpeg + habluetooth hass-nabucasa hassil home-assistant-intents + matter-ble-proxy matter-python-client mutagen openai @@ -4758,6 +4919,17 @@ python-overseerr pyturbojpeg securetar + serialx + ]; + "ovhcloud_ai_endpoints" = + ps: with ps; [ + ha-ffmpeg + hassil + home-assistant-intents + mutagen + openai + pymicro-vad + pyspeex-noise ]; "ovo_energy" = ps: with ps; [ @@ -4766,11 +4938,20 @@ "owntracks" = ps: with ps; [ aiohasupervisor + aiousbwatcher + bleak + bleak-retry-connector + bluetooth-adapters + bluetooth-auto-recovery + bluetooth-data-tools cronsim + dbus-fast ha-ffmpeg + habluetooth hass-nabucasa hassil home-assistant-intents + matter-ble-proxy matter-python-client mutagen openai @@ -4780,11 +4961,15 @@ pyspeex-noise pyturbojpeg securetar + serialx ]; "p1_monitor" = ps: with ps; [ p1monitor ]; + "paj_gps" = + ps: with ps; [ + ]; # missing inputs: pajgps-api "palazzetti" = ps: with ps; [ pypalazzetti @@ -4888,11 +5073,20 @@ "plaato" = ps: with ps; [ aiohasupervisor + aiousbwatcher + bleak + bleak-retry-connector + bluetooth-adapters + bluetooth-auto-recovery + bluetooth-data-tools cronsim + dbus-fast ha-ffmpeg + habluetooth hass-nabucasa hassil home-assistant-intents + matter-ble-proxy matter-python-client mutagen openai @@ -4901,6 +5095,7 @@ pyspeex-noise pyturbojpeg securetar + serialx ]; "plant" = ps: with ps; [ @@ -5075,6 +5270,9 @@ "psoklahoma" = ps: with ps; [ ]; + "ptdevices" = + ps: with ps; [ + ]; # missing inputs: aioptdevices "pterodactyl" = ps: with ps; [ py-dactyl @@ -5111,8 +5309,7 @@ ]; "pvpc_hourly_pricing" = ps: with ps; [ - aiopvpc - ]; + ]; # missing inputs: esios_api "pyload" = ps: with ps; [ pyloadapi @@ -5199,11 +5396,20 @@ "rachio" = ps: with ps; [ aiohasupervisor + aiousbwatcher + bleak + bleak-retry-connector + bluetooth-adapters + bluetooth-auto-recovery + bluetooth-data-tools cronsim + dbus-fast ha-ffmpeg + habluetooth hass-nabucasa hassil home-assistant-intents + matter-ble-proxy matter-python-client mutagen openai @@ -5212,6 +5418,7 @@ pyturbojpeg rachiopy securetar + serialx ]; "radarr" = ps: with ps; [ @@ -5539,6 +5746,10 @@ "samsam" = ps: with ps; [ ]; + "samsung_infrared" = + ps: with ps; [ + infrared-protocols + ]; "samsungtv" = ps: with ps; @@ -6585,11 +6796,20 @@ "toon" = ps: with ps; [ aiohasupervisor + aiousbwatcher + bleak + bleak-retry-connector + bluetooth-adapters + bluetooth-auto-recovery + bluetooth-data-tools cronsim + dbus-fast ha-ffmpeg + habluetooth hass-nabucasa hassil home-assistant-intents + matter-ble-proxy matter-python-client mutagen openai @@ -6597,6 +6817,7 @@ pyspeex-noise pyturbojpeg securetar + serialx toonapi ]; "torque" = @@ -6692,7 +6913,10 @@ ]; "trend" = ps: with ps; [ + fnv-hash-fast numpy + psutil-home-assistant + sqlalchemy ]; "triggercmd" = ps: with ps; [ @@ -6962,6 +7186,9 @@ ps: with ps; [ vilfo-api-client ]; + "vistapool" = + ps: with ps; [ + ]; # missing inputs: aioaquarite "vivotek" = ps: with ps; [ libpyvivotek @@ -7047,11 +7274,20 @@ "watts" = ps: with ps; [ aiohasupervisor + aiousbwatcher + bleak + bleak-retry-connector + bluetooth-adapters + bluetooth-auto-recovery + bluetooth-data-tools cronsim + dbus-fast ha-ffmpeg + habluetooth hass-nabucasa hassil home-assistant-intents + matter-ble-proxy matter-python-client mutagen openai @@ -7059,6 +7295,7 @@ pyspeex-noise pyturbojpeg securetar + serialx visionpluspython ]; "watttime" = @@ -7146,12 +7383,21 @@ "withings" = ps: with ps; [ aiohasupervisor + aiousbwatcher aiowithings + bleak + bleak-retry-connector + bluetooth-adapters + bluetooth-auto-recovery + bluetooth-data-tools cronsim + dbus-fast ha-ffmpeg + habluetooth hass-nabucasa hassil home-assistant-intents + matter-ble-proxy matter-python-client mutagen openai @@ -7159,6 +7405,7 @@ pyspeex-noise pyturbojpeg securetar + serialx ]; "wiz" = ps: with ps; [ @@ -7273,14 +7520,26 @@ ps: with ps; [ xs1-api-client ]; + "xthings_cloud" = + ps: with ps; [ + ]; # missing inputs: ha-xthings-cloud "yale" = ps: with ps; [ aiohasupervisor + aiousbwatcher + bleak + bleak-retry-connector + bluetooth-adapters + bluetooth-auto-recovery + bluetooth-data-tools cronsim + dbus-fast ha-ffmpeg + habluetooth hass-nabucasa hassil home-assistant-intents + matter-ble-proxy matter-python-client mutagen openai @@ -7288,6 +7547,7 @@ pyspeex-noise pyturbojpeg securetar + serialx yalexs yalexs-ble ]; @@ -7362,6 +7622,10 @@ ps: with ps; [ yolink-api ]; + "yoto" = + ps: with ps; [ + yoto-api + ]; "youless" = ps: with ps; [ youless-api @@ -7530,6 +7794,7 @@ "auth" "automation" "autoskope" + "avea" "awair" "aws" "aws_s3" @@ -7992,6 +8257,7 @@ "mailgun" "manual" "manual_mqtt" + "marantz_infrared" "marytts" "mastodon" "matrix" @@ -8137,6 +8403,7 @@ "openhardwaremonitor" "openhome" "openrgb" + "opensensemap" "opensky" "opentherm_gw" "openuv" @@ -8151,6 +8418,7 @@ "ourgroceries" "overkiz" "overseerr" + "ovhcloud_ai_endpoints" "ovo_energy" "owntracks" "p1_monitor" @@ -8204,7 +8472,6 @@ "pushbullet" "pushover" "pvoutput" - "pvpc_hourly_pricing" "pyload" "python_script" "qbittorrent" @@ -8268,6 +8535,7 @@ "ruuvitag_ble" "rympro" "sabnzbd" + "samsung_infrared" "samsungtv" "sanix" "satel_integra" @@ -8550,6 +8818,7 @@ "yardian" "yeelight" "yolink" + "yoto" "youless" "youtube" "zamg" diff --git a/pkgs/servers/home-assistant/default.nix b/pkgs/servers/home-assistant/default.nix index 7ebbc8cc459e..01ade7a0c283 100644 --- a/pkgs/servers/home-assistant/default.nix +++ b/pkgs/servers/home-assistant/default.nix @@ -4,7 +4,6 @@ callPackage, fetchFromGitHub, fetchPypi, - fetchpatch, python314Packages, replaceVars, ffmpeg-headless, @@ -266,7 +265,7 @@ let extraBuildInputs = extraPackages python3Packages; # Don't forget to run update-component-packages.py after updating - hassVersion = "2026.5.4"; + hassVersion = "2026.6.0"; in python3Packages.buildPythonApplication rec { @@ -287,13 +286,13 @@ python3Packages.buildPythonApplication rec { owner = "home-assistant"; repo = "core"; tag = version; - hash = "sha256-Z5FUkljaWRr9tfBb6RXJCC86ZbyNkw0PvUcOl+bZ2cc="; + hash = "sha256-/7WBiQwr40EFOwL+J/3L4pBoQp7nNPPjcKHxU4tDNcU="; }; # Secondary source is pypi sdist for translations sdist = fetchPypi { inherit pname version; - hash = "sha256-o5S6rnOTqzPLZpMBxgmp9IpmLlEHLvHTH68ql2EkVbI="; + hash = "sha256-Eu5oUGBKCrIZkyyLfmTJbHxOC7TD9QHjjNpjscgPK/I="; }; build-system = with python3Packages; [ @@ -322,19 +321,6 @@ python3Packages.buildPythonApplication rec { (replaceVars ./patches/ffmpeg-path.patch { ffmpeg = "${lib.getExe ffmpeg-headless}"; }) - - (fetchpatch { - name = "2026.5.4-shelly-tests-fix.patch"; - url = "https://github.com/home-assistant/core/commit/072e9b51a2321b0d4489bae6f1e04f7ed845222f.patch"; - includes = [ "tests/components/shelly/test_coordinator.py" ]; - hash = "sha256-0XQdw2MnwzrHKYY06TotfJJem0bqremmi7k8SyVQVGA="; - }) - - (fetchpatch { - name = "2026.5.4-homewizard-tests-fix.patch"; - url = "https://github.com/home-assistant/core/commit/e796d9c46744097585bfada483108a55ae16344a.patch"; - hash = "sha256-T0Nb6LcL/21WdUm8RmczhHaVX92n5O/rpMdpqDVQ2VU="; - }) ]; postPatch = '' @@ -436,6 +422,9 @@ python3Packages.buildPythonApplication rec { requests-mock respx syrupy + unidiff + # Used in tests/common.py + paho-mqtt ]; nativeCheckInputs = diff --git a/pkgs/servers/home-assistant/frontend.nix b/pkgs/servers/home-assistant/frontend.nix index 9a14ffb72866..251cd0a4334f 100644 --- a/pkgs/servers/home-assistant/frontend.nix +++ b/pkgs/servers/home-assistant/frontend.nix @@ -8,7 +8,7 @@ buildPythonPackage (finalAttrs: { # the frontend version corresponding to a specific home-assistant version can be found here # https://github.com/home-assistant/home-assistant/blob/master/homeassistant/components/frontend/manifest.json pname = "home-assistant-frontend"; - version = "20260429.4"; + version = "20260527.4"; format = "wheel"; src = fetchPypi { @@ -17,7 +17,7 @@ buildPythonPackage (finalAttrs: { pname = "home_assistant_frontend"; dist = "py3"; python = "py3"; - hash = "sha256-fXoz0pQSGkJWtematid3JNVN2sHWckNXAo/BcTAKpOM="; + hash = "sha256-qF5tuwB5YqFXvNa1wc6Y7Yhy+WZzJ3PktgCERNGxDhg="; }; # there is nothing to strip in this package diff --git a/pkgs/servers/home-assistant/tests.nix b/pkgs/servers/home-assistant/tests.nix index 1c413a38b2a1..7ca94e47b720 100644 --- a/pkgs/servers/home-assistant/tests.nix +++ b/pkgs/servers/home-assistant/tests.nix @@ -126,50 +126,15 @@ let # intent fixture mismatch on aarch64 "test_error_no_device_on_floor" ]; - ecovacs = [ - # Translation not found for vacuum - "test_raise_segment_changed_issue" - ]; - homeassistant_sky_connect = [ - # 2026.5.0: after reload device is in loaded state instead of retry state - "test_usb_device_reactivity" - ]; - homeassistant_connect_zbt2 = [ - # 2026.5.0: after reload device is in loaded state instead of retry state - "test_usb_device_reactivity" - ]; - honeywell_string_lights = [ - # [2026.5.2] Failed: Description not found for placeholder `modulation` in component.honeywell_string_lights.config.abort.no_compatible_transmitters" - "test_no_compatible_transmitters" - ]; - lutron_caseta = [ - # [2026.5.4] creates binary_sensor.basement_bedroom_left_shade_battery - # expects binary_sensor.basement_bedroom_basement_bedroom_left_shade_battery - "test_battery_sensor_handles_bridge_response_error" - ]; - novy_cooker_hood = [ - # [2026.5.2] Failed: Description not found for placeholder `modulation` in component.novy_cooker_hood.config.abort.no_compatible_transmitters - "test_no_compatible_transmitters" - ]; - tractive = [ - # [2026.5.3] Entity does not get set up - "test_binary_sensor" - "test_sensor" - "test_switch" - "test_switch_on" - "test_switch_off" - "test_switch_on_with_exception" - "test_switch_off_with_exception" - "test_switch_unavailable" + opendisplay = [ + # [2026.6.0] Failed: Description not found for placeholder `reason` in component.opendisplay.exceptions.device_not_found.message + # https://github.com/home-assistant/core/pull/172909 + "test_upload_image_device_not_in_range" ]; zeroconf = [ # multicast socket bind, not possible in the sandbox "test_subscribe_discovery" ]; - zha = [ - # [2026.5.2] assert == - "test_detect_radio_hardware" - ]; }; in lib.listToAttrs ( diff --git a/pkgs/servers/home-assistant/update-component-packages.py b/pkgs/servers/home-assistant/update-component-packages.py index f8c6fd280722..8d6c1fb02425 100755 --- a/pkgs/servers/home-assistant/update-component-packages.py +++ b/pkgs/servers/home-assistant/update-component-packages.py @@ -1,5 +1,5 @@ #! /usr/bin/env nix-shell -#! nix-shell -i python3 -p "python3.withPackages (ps: with ps; [ packaging rich ])" -p pyright ruff isort nixfmt +#! nix-shell -i python3 -p "python314.withPackages (ps: with ps; [ packaging rich ])" -p pyright ruff isort nixfmt # # This script downloads Home Assistant's source tarball. # Inside the homeassistant/components directory, each integration has an associated manifest.json, @@ -40,7 +40,7 @@ PKG_SET = "home-assistant.python3Packages" # following can be used to choose the correct one PKG_PREFERENCES = { "av": "av", - "caldav": "caldav_2", + "caldav": "caldav", "fiblary3": "fiblary3-fork", # https://github.com/home-assistant/core/issues/66466 "fints": "fints", "HAP-python": "hap-python",