From c50bfd50d3acc85b447b878f1e8e9e0514710475 Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Wed, 6 Nov 2024 22:52:38 +0100 Subject: [PATCH] home-assistant: 2024.10.04 -> 2024.11.0 https://www.home-assistant.io/blog/2024/11/06/release-202411/ --- .../home-assistant/component-packages.nix | 106 ++++++++++++++---- pkgs/servers/home-assistant/default.nix | 39 +++++-- pkgs/servers/home-assistant/frontend.nix | 4 +- pkgs/servers/home-assistant/tests.nix | 15 +++ .../update-component-packages.py | 1 + 5 files changed, 132 insertions(+), 33 deletions(-) diff --git a/pkgs/servers/home-assistant/component-packages.nix b/pkgs/servers/home-assistant/component-packages.nix index 07cc7ecb0e62..f72064a46c0f 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.10.4"; + version = "2024.11.0"; components = { "3_day_blinds" = ps: with ps; [ ]; @@ -145,6 +145,7 @@ asmog ]; "analytics" = ps: with ps; [ + aiohasupervisor fnv-hash-fast psutil-home-assistant sqlalchemy @@ -273,6 +274,7 @@ asyncarve ]; "arwn" = ps: with ps; [ + aiohasupervisor paho-mqtt_1 ]; "aseko_pool_live" = ps: with ps; [ @@ -345,6 +347,7 @@ botocore ]; "axis" = ps: with ps; [ + aiohasupervisor axis paho-mqtt_1 ]; @@ -404,8 +407,6 @@ ]; "blockchain" = ps: with ps; [ ]; # missing inputs: python-blockchain-api - "bloomsky" = ps: with ps; [ - ]; "blue_current" = ps: with ps; [ bluecurrent-api ]; @@ -605,6 +606,7 @@ py-canary ]; "cast" = ps: with ps; [ + aiohasupervisor ha-ffmpeg hass-nabucasa hassil @@ -638,6 +640,9 @@ "cisco_mobility_express" = ps: with ps; [ ciscomobilityexpress ]; + "cisco_webex_teams" = ps: with ps; [ + webexpythonsdk + ]; "citybikes" = ps: with ps; [ ]; "clementine" = ps: with ps; [ @@ -651,6 +656,7 @@ "climate" = ps: with ps; [ ]; "cloud" = ps: with ps; [ + aiohasupervisor ha-ffmpeg hass-nabucasa hassil @@ -782,6 +788,7 @@ cached-ipaddress dbus-fast fnv-hash-fast + go2rtc-client ha-ffmpeg habluetooth hass-nabucasa @@ -936,6 +943,7 @@ dremel3dpy ]; "drop_connect" = ps: with ps; [ + aiohasupervisor dropmqttapi paho-mqtt_1 ]; @@ -943,6 +951,7 @@ dsmr-parser ]; "dsmr_reader" = ps: with ps; [ + aiohasupervisor paho-mqtt_1 ]; "dte_energy_bridge" = ps: with ps; [ @@ -1353,7 +1362,7 @@ forecast-solar ]; "forked_daapd" = ps: with ps; [ - spotipy + spotifyaio ]; # missing inputs: pyforked-daapd pylibrespot-java "fortios" = ps: with ps; [ fortiosapi @@ -1404,6 +1413,7 @@ ayla-iot-unofficial ]; "fully_kiosk" = ps: with ps; [ + aiohasupervisor paho-mqtt_1 python-fullykiosk ]; @@ -1497,6 +1507,10 @@ "glances" = ps: with ps; [ glances-api ]; + "go2rtc" = ps: with ps; [ + go2rtc-client + pyturbojpeg + ]; "goalzero" = ps: with ps; [ goalzero ]; @@ -1512,6 +1526,7 @@ oauth2client ]; "google_assistant" = ps: with ps; [ + aiohasupervisor python-matter-server pyturbojpeg ]; @@ -1522,8 +1537,6 @@ google-cloud-speech google-cloud-texttospeech ]; - "google_domains" = ps: with ps; [ - ]; "google_generative_ai_conversation" = ps: with ps; [ google-generativeai ha-ffmpeg @@ -1701,6 +1714,7 @@ "homeassistant" = ps: with ps; [ ]; "homeassistant_alerts" = ps: with ps; [ + aiohasupervisor ]; "homeassistant_green" = ps: with ps; [ aiohasupervisor @@ -1820,6 +1834,31 @@ "husqvarna_automower" = ps: with ps; [ aioautomower ]; + "husqvarna_automower_ble" = ps: with ps; [ + aioesphomeapi + aioruuvigateway + aioshelly + automower-ble + 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 + ]; "huum" = ps: with ps; [ huum ]; @@ -2042,6 +2081,7 @@ ]; # missing inputs: pyirishrail "iron_os" = ps: with ps; [ aioesphomeapi + aiogithubapi aioruuvigateway aioshelly bleak @@ -2379,6 +2419,9 @@ "lg_soundbar" = ps: with ps; [ temescal ]; + "lg_thinq" = ps: with ps; [ + thinqconnect + ]; "lidarr" = ps: with ps; [ aiopyarr ]; @@ -2462,6 +2505,7 @@ aiolookin ]; "loqed" = ps: with ps; [ + aiohasupervisor ha-ffmpeg hass-nabucasa hassil @@ -2510,12 +2554,8 @@ "manual" = ps: with ps; [ ]; "manual_mqtt" = ps: with ps; [ - paho-mqtt_1 - ]; - "map" = ps: with ps; [ aiohasupervisor - home-assistant-frontend - pillow + paho-mqtt_1 ]; "marantz" = ps: with ps; [ ]; @@ -2531,6 +2571,7 @@ pillow ]; "matter" = ps: with ps; [ + aiohasupervisor python-matter-server ]; "maxcube" = ps: with ps; [ @@ -2570,7 +2611,8 @@ ]; # missing inputs: medcom-ble "media_extractor" = ps: with ps; [ yt-dlp - ]; + ] + ++ yt-dlp.optional-dependencies.default; "media_player" = ps: with ps; [ ]; "media_source" = ps: with ps; [ @@ -2695,6 +2737,7 @@ zeroconf ]; "mobile_app" = ps: with ps; [ + aiohasupervisor ha-ffmpeg hass-nabucasa hassil @@ -2799,18 +2842,23 @@ mpd2 ]; "mqtt" = ps: with ps; [ + aiohasupervisor paho-mqtt_1 ]; "mqtt_eventstream" = ps: with ps; [ + aiohasupervisor paho-mqtt_1 ]; "mqtt_json" = ps: with ps; [ + aiohasupervisor paho-mqtt_1 ]; "mqtt_room" = ps: with ps; [ + aiohasupervisor paho-mqtt_1 ]; "mqtt_statestream" = ps: with ps; [ + aiohasupervisor paho-mqtt_1 ]; "msteams" = ps: with ps; [ @@ -2830,6 +2878,7 @@ "myq" = ps: with ps; [ ]; "mysensors" = ps: with ps; [ + aiohasupervisor paho-mqtt_1 pymysensors ]; @@ -2868,6 +2917,7 @@ ha-ffmpeg ]; "netatmo" = ps: with ps; [ + aiohasupervisor ha-ffmpeg hass-nabucasa hassil @@ -3158,6 +3208,7 @@ ovoenergy ]; "owntracks" = ps: with ps; [ + aiohasupervisor ha-ffmpeg hass-nabucasa hassil @@ -3173,6 +3224,8 @@ "p1_monitor" = ps: with ps; [ p1monitor ]; + "palazzetti" = ps: with ps; [ + ]; # missing inputs: pypalazzetti "panasonic_bluray" = ps: with ps; [ panacotta ]; @@ -3187,11 +3240,6 @@ home-assistant-frontend pillow ]; - "panel_iframe" = ps: with ps; [ - aiohasupervisor - home-assistant-frontend - pillow - ]; "pcs_lighting" = ps: with ps; [ ]; "peco" = ps: with ps; [ @@ -3242,6 +3290,7 @@ "pjlink" = ps: with ps; [ ]; # missing inputs: pypjlink2 "plaato" = ps: with ps; [ + aiohasupervisor ha-ffmpeg hass-nabucasa hassil @@ -3429,6 +3478,7 @@ zeroconf ]; "rachio" = ps: with ps; [ + aiohasupervisor ha-ffmpeg hass-nabucasa hassil @@ -3444,6 +3494,7 @@ aiopyarr ]; "radio_browser" = ps: with ps; [ + pycountry radios ]; "radiotherm" = ps: with ps; [ @@ -3948,6 +3999,7 @@ "smarther" = ps: with ps; [ ]; "smartthings" = ps: with ps; [ + aiohasupervisor ha-ffmpeg hass-nabucasa hassil @@ -3982,6 +4034,7 @@ snapcast ]; "snips" = ps: with ps; [ + aiohasupervisor paho-mqtt_1 ]; "snmp" = ps: with ps; [ @@ -4046,7 +4099,7 @@ plexwebsocket soco sonos-websocket - spotipy + spotifyaio zeroconf ]; "sony_projector" = ps: with ps; [ @@ -4064,13 +4117,12 @@ speedtest-cli ]; "spider" = ps: with ps; [ - spiderpy ]; "splunk" = ps: with ps; [ hass-splunk ]; "spotify" = ps: with ps; [ - spotipy + spotifyaio ]; "sql" = ps: with ps; [ sqlalchemy @@ -4253,6 +4305,7 @@ "tapsaff" = ps: with ps; [ ]; # missing inputs: tapsaff "tasmota" = ps: with ps; [ + aiohasupervisor hatasmota paho-mqtt_1 ]; @@ -4304,6 +4357,7 @@ ]; "teslemetry" = ps: with ps; [ tesla-fleet-api + teslemetry-stream ]; "tessie" = ps: with ps; [ tesla-fleet-api @@ -4440,6 +4494,7 @@ pytomorrowio ]; "toon" = ps: with ps; [ + aiohasupervisor ha-ffmpeg hass-nabucasa hassil @@ -4650,7 +4705,7 @@ "viaggiatreno" = ps: with ps; [ ]; "vicare" = ps: with ps; [ - pyvicare-neo + pyvicare ]; "vilfo" = ps: with ps; [ vilfo-api-client @@ -4766,6 +4821,7 @@ "wirelesstag" = ps: with ps; [ ]; # missing inputs: wirelesstagpy "withings" = ps: with ps; [ + aiohasupervisor aiowithings ha-ffmpeg hass-nabucasa @@ -4865,6 +4921,7 @@ "xs1" = ps: with ps; [ ]; # missing inputs: xs1-api-client "yale" = ps: with ps; [ + aiohasupervisor ha-ffmpeg hass-nabucasa hassil @@ -4987,6 +5044,7 @@ zm-py ]; "zwave_js" = ps: with ps; [ + aiohasupervisor pyserial pyudev zwave-js-server-python @@ -5268,6 +5326,7 @@ "gios" "github" "glances" + "go2rtc" "goalzero" "gogogate2" "goodwe" @@ -5275,7 +5334,6 @@ "google_assistant" "google_assistant_sdk" "google_cloud" - "google_domains" "google_generative_ai_conversation" "google_mail" "google_photos" @@ -5332,6 +5390,7 @@ "humidifier" "hunterdouglas_powerview" "husqvarna_automower" + "husqvarna_automower_ble" "huum" "hvv_departures" "hydrawise" @@ -5408,6 +5467,7 @@ "lektrico" "lg_netcast" "lg_soundbar" + "lg_thinq" "lidarr" "life360" "lifx" @@ -5439,7 +5499,6 @@ "mailgun" "manual" "manual_mqtt" - "map" "mastodon" "matrix" "matter" @@ -5558,7 +5617,6 @@ "p1_monitor" "panasonic_viera" "panel_custom" - "panel_iframe" "peco" "pegel_online" "permobil" diff --git a/pkgs/servers/home-assistant/default.nix b/pkgs/servers/home-assistant/default.nix index 0b56bf3763b0..915f4bf10287 100644 --- a/pkgs/servers/home-assistant/default.nix +++ b/pkgs/servers/home-assistant/default.nix @@ -161,6 +161,15 @@ 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"; @@ -226,6 +235,15 @@ let }; }); + pymodbus = super.pymodbus.overridePythonAttrs (oldAttrs: rec { + version = "3.6.9"; + src = fetchFromGitHub { + inherit (oldAttrs.src) owner repo; + rev = "refs/tags/v${version}"; + hash = "sha256-ScqxDO0hif8p3C6+vvm7FgSEQjCXBwUPOc7Y/3OfkoI="; + }; + }); + pyoctoprintapi = super.pyoctoprintapi.overridePythonAttrs (oldAttrs: rec { version = "0.1.12"; src = fetchFromGitHub { @@ -335,6 +353,15 @@ let ]; }; + voip-utils = super.voip-utils.overridePythonAttrs (oldAttrs: rec { + version = "0.1.0"; + src = fetchFromGitHub { + inherit (oldAttrs.src) owner repo; + rev = "refs/tags/v${version}"; + hash = "sha256-PG4L6KphH9JIZO76cCN8eClFE2CneEIExlXS+x79k3U="; + }; + }); + # Pinned due to API changes ~1.0 vultr = super.vultr.overridePythonAttrs (oldAttrs: rec { version = "0.1.2"; @@ -403,7 +430,7 @@ let extraBuildInputs = extraPackages python.pkgs; # Don't forget to run update-component-packages.py after updating - hassVersion = "2024.10.4"; + hassVersion = "2024.11.0"; in python.pkgs.buildPythonApplication rec { pname = "homeassistant"; @@ -421,13 +448,13 @@ in python.pkgs.buildPythonApplication rec { owner = "home-assistant"; repo = "core"; rev = "refs/tags/${version}"; - hash = "sha256-uaGGt5qCdyFXuEtg20MzmFd4PXkdPP8h4HJBvRV6sz8="; + hash = "sha256-9wFF0tDy3IAnmjjP1juQsU2G6qmQiBnBX1imNrbib7Y="; }; # Secondary source is pypi sdist for translations sdist = fetchPypi { inherit pname version; - hash = "sha256-al45WS8SIgOM2TqGPIptZU7iNMapYUg+fK2MLh68lxs="; + hash = "sha256-9DtxrMhozse672aa1pHvk/wOpr7GdWUZtz0u7GNGBVw="; }; build-system = with python.pkgs; [ @@ -474,12 +501,9 @@ in python.pkgs.buildPythonApplication rec { ]; postPatch = '' - substituteInPlace tests/test_config.py --replace-fail '"/usr"' "\"$NIX_BUILD_TOP/media\"" - - substituteInPlace pyproject.toml --replace-fail "wheel~=0.43.0" wheel + substituteInPlace tests/test_core_config.py --replace-fail '"/usr"' "\"$NIX_BUILD_TOP/media\"" sed -i 's/setuptools[~=]/setuptools>/' pyproject.toml - sed -i 's/wheel[~=]/wheel>/' pyproject.toml ''; dependencies = with python.pkgs; [ @@ -509,6 +533,7 @@ in python.pkgs.buildPythonApplication rec { orjson packaging pillow + propcache psutil-home-assistant pyjwt pyopenssl diff --git a/pkgs/servers/home-assistant/frontend.nix b/pkgs/servers/home-assistant/frontend.nix index bb9cc204bf59..1ee12aaf46f3 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 = "20241002.4"; + version = "20241106.0"; format = "wheel"; src = fetchPypi { @@ -12,7 +12,7 @@ buildPythonPackage rec { pname = "home_assistant_frontend"; dist = "py3"; python = "py3"; - hash = "sha256-b1/VrN0r/7rvSCjSn9HugKLaA40yl4AsFugzmCZKzd8="; + hash = "sha256-EqF3fgT7pMjYTMVFcoXXnbeGjT7ZevmmTCqG8q3Qqt4="; }; # 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 4f1ae7204fad..a9d12c4e43cb 100644 --- a/pkgs/servers/home-assistant/tests.nix +++ b/pkgs/servers/home-assistant/tests.nix @@ -8,10 +8,12 @@ let # some components' tests have additional dependencies extraCheckInputs = with home-assistant.python.pkgs; { axis = getComponentDeps "deconz"; + gardena_bluetooth = getComponentDeps "husqvarna_automower_ble"; govee_ble = [ ibeacon-ble ]; hassio = getComponentDeps "homeassistant_yellow"; + husqvarna_automower_ble = getComponentDeps "gardena_bluetooth"; lovelace = [ pychromecast ]; @@ -35,6 +37,7 @@ let system_log = [ isal ]; + tesla_fleet = getComponentDeps "teslemetry"; xiaomi_miio = [ arrow ]; @@ -69,6 +72,10 @@ let # Tries to resolve DNS entries "--deselect tests/components/dnsip/test_config_flow.py::test_options_flow" ]; + honeywell = [ + # Failed: Unused ignore translations: component.honeywell.config.abort.reauth_successful. Please remove them from the ignore_translations fixture. + "--deselect=tests/components/honeywell/test_config_flow.py::test_reauth_flow" + ]; jellyfin = [ # AssertionError: assert 'audio/x-flac' == 'audio/flac' "--deselect tests/components/jellyfin/test_media_source.py::test_resolve" @@ -76,10 +83,18 @@ let # AssertionError: assert [+ received] == [- snapshot] "--deselect tests/components/jellyfin/test_media_source.py::test_music_library" ]; + jewish_calendar = [ + # Failed: Unused ignore translations: component.jewish_calendar.config.abort.reconfigure_successful. Please remove them from the ignore_translations fixture. + "--deselect tests/components/jewish_calendar/test_config_flow.py::test_reconfigure" + ]; modem_callerid = [ # aioserial mock produces wrong state "--deselect tests/components/modem_callerid/test_init.py::test_setup_entry" ]; + nina = [ + # Failed: Unused ignore translations: component.nina.options.error.unknown. Please remove them from the ignore_translations fixture. + "--deselect tests/components/nina/test_config_flow.py::test_options_flow_unexpected_exception" + ]; sql = [ "-W" "ignore::sqlalchemy.exc.SAWarning" diff --git a/pkgs/servers/home-assistant/update-component-packages.py b/pkgs/servers/home-assistant/update-component-packages.py index 1c68331d1c1c..5d8dbacd91bc 100755 --- a/pkgs/servers/home-assistant/update-component-packages.py +++ b/pkgs/servers/home-assistant/update-component-packages.py @@ -45,6 +45,7 @@ PKG_PREFERENCES = { "numpy": "numpy_1", "ollama-hass": "ollama", "paho-mqtt": "paho-mqtt_1", + "pysuezV2": "pysuez", "sentry-sdk": "sentry-sdk", "slackclient": "slack-sdk", "SQLAlchemy": "sqlalchemy",