From c4c07753b9eefa9798c7ea3b209dc2fec434fb8d Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Sat, 7 Dec 2024 18:21:49 +0100 Subject: [PATCH] home-assistant: 2024.11.3 -> 2024.12.1 https://www.home-assistant.io/blog/2024/12/04/release-202412/ --- .../home-assistant/component-packages.nix | 64 +++++++++++++++---- pkgs/servers/home-assistant/default.nix | 43 +++++++++---- pkgs/servers/home-assistant/frontend.nix | 4 +- .../patches/watchdog5-compat.patch | 13 ++++ .../update-component-packages.py | 2 +- 5 files changed, 99 insertions(+), 27 deletions(-) create mode 100644 pkgs/servers/home-assistant/patches/watchdog5-compat.patch diff --git a/pkgs/servers/home-assistant/component-packages.nix b/pkgs/servers/home-assistant/component-packages.nix index af28371ac6d1..06c6d5c9bae4 100644 --- a/pkgs/servers/home-assistant/component-packages.nix +++ b/pkgs/servers/home-assistant/component-packages.nix @@ -2,13 +2,38 @@ # Do not edit! { - version = "2024.11.3"; + version = "2024.12.1"; components = { "3_day_blinds" = ps: with ps; [ ]; "abode" = ps: with ps; [ jaraco-abode ]; + "acaia" = ps: with ps; [ + aioacaia + aioesphomeapi + aioruuvigateway + aioshelly + 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 + pyserial + pyspeex-noise + pyudev + zeroconf + ]; "accuweather" = ps: with ps; [ accuweather ]; @@ -699,7 +724,7 @@ jsonpath ]; "compensation" = ps: with ps; [ - numpy_1 + numpy ]; "concord232" = ps: with ps; [ ]; # missing inputs: concord232 @@ -800,7 +825,7 @@ home-assistant-intents ifaddr mutagen - numpy_1 + numpy pillow psutil-home-assistant pymicro-vad @@ -2077,7 +2102,7 @@ pyipp ]; "iqvia" = ps: with ps; [ - numpy_1 + numpy pyiqvia ]; "irish_rail_transport" = ps: with ps; [ @@ -2300,12 +2325,13 @@ home-assistant-intents ifaddr mutagen + pylamarzocco pymicro-vad pyserial pyspeex-noise pyudev zeroconf - ]; # missing inputs: lmcloud + ]; "lametric" = ps: with ps; [ demetriek ]; @@ -2869,6 +2895,9 @@ "mullvad" = ps: with ps; [ mullvad-api ]; + "music_assistant" = ps: with ps; [ + music-assistant-client + ]; "mutesync" = ps: with ps; [ mutesync ]; @@ -2905,6 +2934,8 @@ "nanoleaf" = ps: with ps; [ aionanoleaf ]; + "nasweb" = ps: with ps; [ + ]; # missing inputs: webio-api "neato" = ps: with ps; [ pybotvac ]; @@ -3000,6 +3031,9 @@ "nobo_hub" = ps: with ps; [ pynobo ]; + "nordpool" = ps: with ps; [ + pynordpool + ]; "norway_air" = ps: with ps; [ pymetno ]; @@ -3967,6 +4001,9 @@ "sky_hub" = ps: with ps; [ pyskyqhub ]; + "sky_remote" = ps: with ps; [ + skyboxremote + ]; "skybeacon" = ps: with ps; [ pygatt ] @@ -4178,7 +4215,7 @@ ]; "stream" = ps: with ps; [ av - numpy_1 + numpy pyturbojpeg ]; "streamlabswater" = ps: with ps; [ @@ -4324,8 +4361,7 @@ xmltodict ]; "tedee" = ps: with ps; [ - pytedee-async - ]; + ]; # missing inputs: aiotedee "telegram" = ps: with ps; [ python-telegram-bot ] @@ -4347,7 +4383,7 @@ "template" = ps: with ps; [ ]; "tensorflow" = ps: with ps; [ - numpy_1 + numpy pillow pycocotools tensorflow @@ -4568,7 +4604,7 @@ "travisci" = ps: with ps; [ ]; # missing inputs: TravisPy "trend" = ps: with ps; [ - numpy_1 + numpy ]; "triggercmd" = ps: with ps; [ ]; # missing inputs: triggercmd @@ -4659,7 +4695,7 @@ aio-geojson-usgs-earthquakes ]; "utility_meter" = ps: with ps; [ - croniter + cronsim ]; "uvc" = ps: with ps; [ uvcclient @@ -5062,6 +5098,7 @@ # components listed in tests/components for which all dependencies are packaged supportedComponentsWithTests = [ "abode" + "acaia" "accuweather" "acmeda" "adax" @@ -5457,6 +5494,7 @@ "kostal_plenticore" "kraken" "kulersky" + "lamarzocco" "lametric" "landisgyr_heat_meter" "lastfm" @@ -5549,6 +5587,7 @@ "mqtt_room" "mqtt_statestream" "mullvad" + "music_assistant" "mutesync" "my" "myq" @@ -5578,6 +5617,7 @@ "nmap_tracker" "no_ip" "nobo_hub" + "nordpool" "notify" "notify_events" "notion" @@ -5741,6 +5781,7 @@ "simplisafe" "simulated" "siren" + "sky_remote" "skybell" "slack" "sleepiq" @@ -5815,7 +5856,6 @@ "tautulli" "tcp" "technove" - "tedee" "telegram" "telegram_bot" "tellduslive" diff --git a/pkgs/servers/home-assistant/default.nix b/pkgs/servers/home-assistant/default.nix index f1fa3e4920cc..37e8419beeb5 100644 --- a/pkgs/servers/home-assistant/default.nix +++ b/pkgs/servers/home-assistant/default.nix @@ -161,15 +161,6 @@ let doCheck = false; # no tests }); - plugwise = super.plugwise.overridePythonAttrs (oldAttrs: rec { - version = "1.4.4"; - src = fetchFromGitHub { - inherit (oldAttrs.src) owner repo; - rev = "refs/tags/v${version}"; - hash = "sha256-dlDytOSp/7npanxXH5uaDv29AP21UciEzIzDlMf6jf8="; - }; - }); - # Pinned due to API changes in 0.1.0 poolsense = super.poolsense.overridePythonAttrs (oldAttrs: rec { version = "0.0.8"; @@ -235,6 +226,21 @@ let }; }); + pylamarzocco = super.pylamarzocco.overridePythonAttrs (oldAttrs: rec { + version = "1.2.12"; + src = fetchFromGitHub { + owner = "zweckj"; + repo = "pylamarzocco"; + tag = "v${version}"; + hash = "sha256-h3Oh1y1tirOWh3I8piybLZfTKwyGk0zJJ6XmHvmbUW0="; + }; + dependencies = with self; [ + bleak + httpx + websockets + ]; + }); + pymodbus = super.pymodbus.overridePythonAttrs (oldAttrs: rec { version = "3.6.9"; src = fetchFromGitHub { @@ -264,6 +270,16 @@ let }; }); + python-linkplay = super.python-linkplay.overridePythonAttrs (oldAttrs: rec { + version = "0.0.20"; + src = fetchFromGitHub { + owner = "Velleman"; + repo = "python-linkplay"; + tag = "v${version}"; + hash = "sha256-UIWubFLHtf43co/aYXh3rxkjLJ77E+Sgkx25UFC5vcg="; + }; + }); + # newer versions require pydantic>=2 python-on-whales = super.python-on-whales.overridePythonAttrs (oldAttrs: rec { version = "0.72.0"; @@ -441,7 +457,7 @@ let extraBuildInputs = extraPackages python.pkgs; # Don't forget to run update-component-packages.py after updating - hassVersion = "2024.11.3"; + hassVersion = "2024.12.1"; in python.pkgs.buildPythonApplication rec { pname = "homeassistant"; @@ -459,13 +475,13 @@ in python.pkgs.buildPythonApplication rec { owner = "home-assistant"; repo = "core"; rev = "refs/tags/${version}"; - hash = "sha256-9b4HPSCPYUUwKxn0JBw5uN6nI97jvgqBHFRUNhDue/k="; + hash = "sha256-Gmm8PfgxJYlTEGYKcteSMFbxDWFqmZ/Gt0qbuMe7oHg="; }; # Secondary source is pypi sdist for translations sdist = fetchPypi { inherit pname version; - hash = "sha256-W7Z6C3kMyEIkY/3zQHm1OMMN7Tuj3ThsubLo6KjVotw="; + hash = "sha256-oQ53syzdVjd8HiO83YloDczDXDweZY4muAFB4HR8SJQ="; }; build-system = with python.pkgs; [ @@ -509,6 +525,8 @@ in python.pkgs.buildPythonApplication rec { src = ./patches/ffmpeg-path.patch; ffmpeg = "${lib.getExe ffmpeg-headless}"; }) + + ./patches/watchdog5-compat.patch ]; postPatch = '' @@ -551,6 +569,7 @@ in python.pkgs.buildPythonApplication rec { python-slugify pyyaml requests + securetar sqlalchemy typing-extensions ulid-transform diff --git a/pkgs/servers/home-assistant/frontend.nix b/pkgs/servers/home-assistant/frontend.nix index 53bc67e53179..4ae543ec08aa 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 = "20241106.2"; + version = "20241127.6"; format = "wheel"; src = fetchPypi { @@ -12,7 +12,7 @@ buildPythonPackage rec { pname = "home_assistant_frontend"; dist = "py3"; python = "py3"; - hash = "sha256-9Il9/lHKIaymw7H8fL1gpp80+VzSqVJ1IyHGEa3OoO8="; + hash = "sha256-wNIkAuedlgHO05rGnxJHFOH2W5eQ45yGWK+tjLRLERo="; }; # there is nothing to strip in this package diff --git a/pkgs/servers/home-assistant/patches/watchdog5-compat.patch b/pkgs/servers/home-assistant/patches/watchdog5-compat.patch new file mode 100644 index 000000000000..d4e27769579b --- /dev/null +++ b/pkgs/servers/home-assistant/patches/watchdog5-compat.patch @@ -0,0 +1,13 @@ +diff --git a/homeassistant/components/folder_watcher/__init__.py b/homeassistant/components/folder_watcher/__init__.py +index 3aeaa6f7ef2..f5c2db513b7 100644 +--- a/homeassistant/components/folder_watcher/__init__.py ++++ b/homeassistant/components/folder_watcher/__init__.py +@@ -68,7 +68,7 @@ class EventHandler(PatternMatchingEventHandler): + + def __init__(self, patterns: list[str], hass: HomeAssistant, entry_id: str) -> None: + """Initialise the EventHandler.""" +- super().__init__(patterns) ++ super().__init__(patterns=patterns) + self.hass = hass + self.entry_id = entry_id + diff --git a/pkgs/servers/home-assistant/update-component-packages.py b/pkgs/servers/home-assistant/update-component-packages.py index 5d8dbacd91bc..088a04283de8 100755 --- a/pkgs/servers/home-assistant/update-component-packages.py +++ b/pkgs/servers/home-assistant/update-component-packages.py @@ -42,7 +42,7 @@ PKG_PREFERENCES = { "fiblary3": "fiblary3-fork", # https://github.com/home-assistant/core/issues/66466 "HAP-python": "hap-python", "ha-av": "av", - "numpy": "numpy_1", + "numpy": "numpy", "ollama-hass": "ollama", "paho-mqtt": "paho-mqtt_1", "pysuezV2": "pysuez",