From eca16eac979a8cc7e98d7cb07f0c1f79f891ce1b Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Thu, 7 Mar 2024 02:11:45 +0100 Subject: [PATCH] home-assistant: 2024.2.5 -> 2024.3.0 https://www.home-assistant.io/blog/2024/03/06/release-20243/ --- .../home-assistant/component-packages.nix | 61 ++++++++++---- pkgs/servers/home-assistant/default.nix | 83 +++---------------- pkgs/servers/home-assistant/frontend.nix | 4 +- .../home-assistant/patches/ffmpeg-path.patch | 18 ++-- pkgs/servers/home-assistant/tests.nix | 5 ++ 5 files changed, 73 insertions(+), 98 deletions(-) diff --git a/pkgs/servers/home-assistant/component-packages.nix b/pkgs/servers/home-assistant/component-packages.nix index 6cc484b64a59..b9fc857f211c 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 = "2024.2.5"; + version = "2024.3.0"; components = { "3_day_blinds" = ps: with ps; [ ]; @@ -19,6 +19,8 @@ "acmeda" = ps: with ps; [ aiopulse ]; + "acomax" = ps: with ps; [ + ]; "actiontec" = ps: with ps; [ ]; "adax" = ps: with ps; [ @@ -224,6 +226,8 @@ "apprise" = ps: with ps; [ apprise ]; + "aprilaire" = ps: with ps; [ + ]; # missing inputs: pyaprilaire "aprs" = ps: with ps; [ aprslib geopy @@ -568,8 +572,7 @@ "brel_home" = ps: with ps; [ ]; "bring" = ps: with ps; [ - python-bring-api - ]; + ]; # missing inputs: bring-api "broadlink" = ps: with ps; [ broadlink ]; @@ -831,6 +834,7 @@ "decora_wifi" = ps: with ps; [ ]; # missing inputs: decora-wifi "default_config" = ps: with ps; [ + aiodhcpwatcher aiodiscover aiohttp-cors aiohttp-fast-url-dispatcher @@ -862,7 +866,6 @@ python-matter-server pyturbojpeg pyudev - scapy securetar sqlalchemy webrtc-noise-gain @@ -929,9 +932,9 @@ pydexcom ]; "dhcp" = ps: with ps; [ + aiodhcpwatcher aiodiscover cached-ipaddress - scapy ]; "diagnostics" = ps: with ps; [ aiohttp-cors @@ -980,7 +983,6 @@ ifaddr psutil-home-assistant sqlalchemy - zeroconf ]; "dlna_dms" = ps: with ps; [ aiohttp-cors @@ -991,7 +993,6 @@ ifaddr psutil-home-assistant sqlalchemy - zeroconf ]; "dnsip" = ps: with ps; [ aiodns @@ -1080,6 +1081,8 @@ "duotecno" = ps: with ps; [ pyduotecno ]; + "duquesne_light" = ps: with ps; [ + ]; "dwd_weather_warnings" = ps: with ps; [ dwdwfsapi ]; @@ -2131,6 +2134,15 @@ ]; "hurrican_shutters_wholesale" = ps: with ps; [ ]; + "husqvarna_automower" = ps: with ps; [ + aioautomower + aiohttp-cors + aiohttp-fast-url-dispatcher + aiohttp-zlib-ng + fnv-hash-fast + psutil-home-assistant + sqlalchemy + ]; "huum" = ps: with ps; [ huum ]; @@ -2418,7 +2430,6 @@ "joaoapps_join" = ps: with ps; [ ]; # missing inputs: python-join-api "juicenet" = ps: with ps; [ - python-juicenet ]; "justnimbus" = ps: with ps; [ justnimbus @@ -2557,6 +2568,8 @@ krakenex pykrakenapi ]; + "krispol" = ps: with ps; [ + ]; "kulersky" = ps: with ps; [ pykulersky ]; @@ -2854,6 +2867,8 @@ psutil-home-assistant sqlalchemy ]; + "madeco" = ps: with ps; [ + ]; "mailbox" = ps: with ps; [ aiohttp-cors aiohttp-fast-url-dispatcher @@ -3025,6 +3040,14 @@ ]; "mfi" = ps: with ps; [ ]; # missing inputs: mficlient + "microbees" = ps: with ps; [ + aiohttp-cors + aiohttp-fast-url-dispatcher + aiohttp-zlib-ng + fnv-hash-fast + psutil-home-assistant + sqlalchemy + ]; # missing inputs: microBeesPy "microsoft" = ps: with ps; [ ]; # missing inputs: pycsspeechtts "microsoft_face" = ps: with ps; [ @@ -3396,10 +3419,10 @@ aiohttp-cors aiohttp-fast-url-dispatcher aiohttp-zlib-ng + aiooui fnv-hash-fast getmac ifaddr - mac-vendor-lookup netmap psutil-home-assistant sqlalchemy @@ -4263,6 +4286,8 @@ "saj" = ps: with ps; [ pysaj ]; + "samsam" = ps: with ps; [ + ]; "samsungtv" = ps: with ps; [ aiohttp-cors aiohttp-fast-url-dispatcher @@ -4276,7 +4301,6 @@ samsungtvws sqlalchemy wakeonlan - zeroconf ] ++ samsungctl.optional-dependencies.websocket ++ samsungtvws.optional-dependencies.async @@ -4727,7 +4751,6 @@ ifaddr psutil-home-assistant sqlalchemy - zeroconf ]; "starline" = ps: with ps; [ starline @@ -4899,6 +4922,7 @@ ]; "systemmonitor" = ps: with ps; [ psutil + psutil-home-assistant ]; "tado" = ps: with ps; [ python-tado @@ -5330,7 +5354,6 @@ ifaddr psutil-home-assistant sqlalchemy - zeroconf ]; "uprise_smart_shades" = ps: with ps; [ ]; @@ -5486,6 +5509,8 @@ "weatherflow" = ps: with ps; [ pyweatherflowudp ]; + "weatherflow_cloud" = ps: with ps; [ + ]; # missing inputs: weatherflow4py "weatherkit" = ps: with ps; [ apple-weatherkit ]; @@ -5494,6 +5519,8 @@ aiohttp-fast-url-dispatcher aiohttp-zlib-ng ]; + "webmin" = ps: with ps; [ + ]; # missing inputs: webmin-xmlrpc "webostv" = ps: with ps; [ aiowebostv ]; @@ -5555,7 +5582,7 @@ wled ]; "wolflink" = ps: with ps; [ - ]; # missing inputs: wolf-smartset + ]; # missing inputs: wolf-comm "workday" = ps: with ps; [ holidays ]; @@ -5693,7 +5720,6 @@ ifaddr psutil-home-assistant sqlalchemy - zeroconf ]; "yandex_transport" = ps: with ps; [ aioymaps @@ -5713,7 +5739,6 @@ psutil-home-assistant sqlalchemy yeelight - zeroconf ]; "yeelightsunflower" = ps: with ps; [ ]; # missing inputs: yeelightsunflower @@ -5797,6 +5822,8 @@ ]; # missing inputs: ziggo-mediabox-xl "zodiac" = ps: with ps; [ ]; + "zondergas" = ps: with ps; [ + ]; "zone" = ps: with ps; [ ]; "zoneminder" = ps: with ps; [ @@ -5874,6 +5901,7 @@ "arcam_fmj" "aseko_pool_live" "assist_pipeline" + "asterisk_mbox" "asuswrt" "atag" "august" @@ -5905,7 +5933,6 @@ "bond" "bosch_shc" "braviatv" - "bring" "broadlink" "brother" "brottsplatskartan" @@ -6124,6 +6151,7 @@ "huisbaasje" "humidifier" "hunterdouglas_powerview" + "husqvarna_automower" "huum" "hvv_departures" "hydrawise" @@ -6570,6 +6598,7 @@ "vallox" "valve" "velbus" + "velux" "venstar" "vera" "verisure" diff --git a/pkgs/servers/home-assistant/default.nix b/pkgs/servers/home-assistant/default.nix index 1d0809edf320..07b11ee1bf5f 100644 --- a/pkgs/servers/home-assistant/default.nix +++ b/pkgs/servers/home-assistant/default.nix @@ -3,7 +3,6 @@ , callPackage , fetchFromGitHub , fetchPypi -, fetchpatch , python311 , substituteAll , ffmpeg-headless @@ -31,15 +30,6 @@ let # Override the version of some packages pinned in Home Assistant's setup.py and requirements_all.txt (self: super: { - aemet-opendata = super.aemet-opendata.overridePythonAttrs (oldAttrs: rec { - version = "0.4.7"; - src = fetchFromGitHub { - inherit (oldAttrs.src) owner repo; - rev = "refs/tags/${version}"; - hash = "sha256-kmU2HtNyYhfwWQv6asOtDpLZ6+O+eEICzBNLxUhAwaY="; - }; - }); - aiogithubapi = super.aiogithubapi.overridePythonAttrs (oldAttrs: rec { version = "22.10.1"; src = fetchFromGitHub { @@ -55,23 +45,6 @@ let ]; }); - aionotion = super.aionotion.overridePythonAttrs (oldAttrs: rec { - version = "2023.05.5"; - src = fetchFromGitHub { - owner = "bachya"; - repo = "aionotion"; - rev = "refs/tags/${version}"; - hash = "sha256-/2sF8m5R8YXkP89bi5zR3h13r5LrFOl1OsixAcX0D4o="; - }; - patches = [ - (fetchpatch { - # clean up build dependencies; https://github.com/bachya/aionotion/commit/53c7285110d12810f9b43284295f71d052a81b83 - url = "https://github.com/bachya/aionotion/commit/53c7285110d12810f9b43284295f71d052a81b83.patch"; - hash = "sha256-RLRbHmaR2A8MNc96WHx0L8ccyygoBUaOulAuRJkFuUM="; - }) - ]; - }); - aiopurpleair = super.aiopurpleair.overridePythonAttrs (oldAttrs: rec { version = "2022.12.1"; src = fetchFromGitHub { @@ -87,16 +60,6 @@ let ''; }); - aiopvapi = super.aiopvapi.overridePythonAttrs (oldAttrs: rec { - version = "2.0.4"; - src = fetchFromGitHub { - owner = "sander76"; - repo = "aio-powerview-api"; - rev = "refs/tags/v${version}"; - hash = "sha256-cghfNi5T343/7GxNLDrE0iAewMlRMycQTP7SvDVpU2M="; - }; - }); - aioskybell = super.aioskybell.overridePythonAttrs (oldAttrs: rec { version = "22.7.0"; src = fetchFromGitHub { @@ -149,15 +112,6 @@ let ]; }); - brother = super.brother.overridePythonAttrs (oldAttrs: rec { - version = "3.0.0"; - src = fetchFromGitHub { - inherit (oldAttrs.src) owner repo; - rev = "refs/tags/${version}"; - hash = "sha256-rRzcWT9DcNTBUYxyYYC7WORBbrkgj0toCp2e8ADUN5s="; - }; - }); - debugpy = super.debugpy.overridePythonAttrs (oldAttrs: { # tests are deadlocking too often # https://github.com/NixOS/nixpkgs/issues/262000 @@ -348,16 +302,6 @@ let }; }); - python-slugify = super.python-slugify.overridePythonAttrs (oldAttrs: rec { - version = "8.0.1"; - src = fetchFromGitHub { - owner = "un33k"; - repo = "python-slugify"; - rev = "refs/tags/v${version}"; - hash = "sha256-MJac63XjgWdUQdyyEm8O7gAGVszmHxZzRF4frJtR0BU="; - }; - }); - pytradfri = super.pytradfri.overridePythonAttrs (oldAttrs: rec { version = "9.0.1"; src = fetchFromGitHub { @@ -398,16 +342,6 @@ let }; }); - wyoming = super.wyoming.overridePythonAttrs (oldAttrs: rec { - version = "1.5.2"; - src = fetchFromGitHub { - owner = "rhasspy"; - repo = "wyoming"; - rev = "refs/tags/${version}"; - hash = "sha256-2bc5coKL5KlTeL9fdghPmRF66NXfimHOKGtE2yPXgrA="; - }; - }); - xbox-webapi = super.xbox-webapi.overridePythonAttrs (oldAttrs: rec { version = "2.0.11"; src = fetchFromGitHub { @@ -462,7 +396,7 @@ let extraBuildInputs = extraPackages python.pkgs; # Don't forget to run parse-requirements.py after updating - hassVersion = "2024.2.5"; + hassVersion = "2024.3.0"; in python.pkgs.buildPythonApplication rec { pname = "homeassistant"; @@ -480,13 +414,13 @@ in python.pkgs.buildPythonApplication rec { owner = "home-assistant"; repo = "core"; rev = "refs/tags/${version}"; - hash = "sha256-RRoxWNcubpxzmExzrifRKhgNm0IM5OuNZYHz6tp9zm8="; + hash = "sha256-/DCE2IHdS+oImpzwIaFgXotAsoiPPbe3X3HG7RXbv9g="; }; # Secondary source is pypi sdist for translations sdist = fetchPypi { inherit pname version; - hash = "sha256-qhUfOMSM4FKUQ9LdeoHLLrVm5cWFrlTER02s+tLVAMU="; + hash = "sha256-G9M1WV+s4zu9BY10RWmJ71ghafAOHMjnCR6BOlggguM="; }; nativeBuildInputs = with python.pkgs; [ @@ -496,7 +430,10 @@ in python.pkgs.buildPythonApplication rec { pythonRelaxDeps = [ "attrs" + "bcrypt" "ciso8601" + "cryptography" + "httpx" "orjson" "pyopenssl" "typing-extensions" @@ -534,7 +471,7 @@ in python.pkgs.buildPythonApplication rec { aiohttp-fast-url-dispatcher aiohttp-zlib-ng astral - async-timeout + async-interrupt atomicwrites-homeassistant attrs awesomeversion @@ -555,7 +492,9 @@ in python.pkgs.buildPythonApplication rec { python-slugify pyyaml requests + typing-extensions ulid-transform + urllib3 voluptuous voluptuous-serialize yarl @@ -563,7 +502,7 @@ in python.pkgs.buildPythonApplication rec { pyotp pyqrcode # Implicit dependency via homeassistant/requirements.py - setuptools + packaging ]; makeWrapperArgs = lib.optional skipPip "--add-flags --skip-pip"; @@ -593,7 +532,9 @@ in python.pkgs.buildPythonApplication rec { ] ++ lib.concatMap (component: getPackages component python.pkgs) [ # some components are needed even if tests in tests/components are disabled "default_config" + "debugpy" "hue" + "sentry" ]; pytestFlagsArray = [ diff --git a/pkgs/servers/home-assistant/frontend.nix b/pkgs/servers/home-assistant/frontend.nix index 24ee86b9b25f..1795e8daa7ba 100644 --- a/pkgs/servers/home-assistant/frontend.nix +++ b/pkgs/servers/home-assistant/frontend.nix @@ -4,7 +4,7 @@ buildPythonPackage rec { # 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 = "20240207.1"; + version = "20240306.0"; format = "wheel"; src = fetchPypi { @@ -12,7 +12,7 @@ buildPythonPackage rec { pname = "home_assistant_frontend"; dist = "py3"; python = "py3"; - hash = "sha256-uGBVha7nJvYua1rZXlIJGhUzEm5wSrhazrOBUi3omJk="; + hash = "sha256-eDuJC23PJbjaKC9TBCLg5ML3XR6admKrT9RVgfUQCw8="; }; # there is nothing to strip in this package diff --git a/pkgs/servers/home-assistant/patches/ffmpeg-path.patch b/pkgs/servers/home-assistant/patches/ffmpeg-path.patch index 8a83618b1a4b..5417c64f13ea 100644 --- a/pkgs/servers/home-assistant/patches/ffmpeg-path.patch +++ b/pkgs/servers/home-assistant/patches/ffmpeg-path.patch @@ -1,8 +1,8 @@ diff --git a/homeassistant/components/ffmpeg/__init__.py b/homeassistant/components/ffmpeg/__init__.py -index a98766c78c..1c47bb1f80 100644 +index 4ab4ee32a0..0f04f037f6 100644 --- a/homeassistant/components/ffmpeg/__init__.py +++ b/homeassistant/components/ffmpeg/__init__.py -@@ -41,7 +41,7 @@ CONF_FFMPEG_BIN = "ffmpeg_bin" +@@ -46,7 +46,7 @@ CONF_FFMPEG_BIN = "ffmpeg_bin" CONF_EXTRA_ARGUMENTS = "extra_arguments" CONF_OUTPUT = "output" @@ -70,15 +70,15 @@ index 6eec115d6f..c55b4fb26c 100644 hass.bus.async_fire(EVENT_HOMEASSISTANT_START) diff --git a/tests/components/ffmpeg/test_init.py b/tests/components/ffmpeg/test_init.py -index 0c6ce300d0..ff74a5d7f7 100644 +index 452a818859..41ba776436 100644 --- a/tests/components/ffmpeg/test_init.py +++ b/tests/components/ffmpeg/test_init.py -@@ -91,7 +91,7 @@ class TestFFmpegSetup: +@@ -81,7 +81,7 @@ def test_setup_component(): with assert_setup_component(1): - setup_component(self.hass, ffmpeg.DOMAIN, {ffmpeg.DOMAIN: {}}) + setup_component(hass, ffmpeg.DOMAIN, {ffmpeg.DOMAIN: {}}) + +- assert hass.data[ffmpeg.DATA_FFMPEG].binary == "ffmpeg" ++ assert hass.data[ffmpeg.DATA_FFMPEG].binary == "@ffmpeg@" + hass.stop() -- assert self.hass.data[ffmpeg.DATA_FFMPEG].binary == "ffmpeg" -+ assert self.hass.data[ffmpeg.DATA_FFMPEG].binary == "@ffmpeg@" - def test_setup_component_test_service(self): - """Set up ffmpeg component test services.""" diff --git a/pkgs/servers/home-assistant/tests.nix b/pkgs/servers/home-assistant/tests.nix index 3cce799ec19a..989bfccb7236 100644 --- a/pkgs/servers/home-assistant/tests.nix +++ b/pkgs/servers/home-assistant/tests.nix @@ -82,6 +82,11 @@ let # aioserial mock produces wrong state "--deselect tests/components/modem_callerid/test_init.py::test_setup_entry" ]; + velux = [ + # uses unmocked sockets + "--deselect tests/components/velux/test_config_flow.py::test_user_success" + "--deselect tests/components/velux/test_config_flow.py::test_import_valid_config" + ]; }; in lib.listToAttrs (map (component: lib.nameValuePair component ( home-assistant.overridePythonAttrs (old: {