From 332adea498f3dad2ef79f307722c9aa58b167a0d Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Wed, 5 Feb 2025 20:49:56 +0100 Subject: [PATCH] home-assistant: 2025.1.4 -> 2025.2.0 https://www.home-assistant.io/blog/2025/02/05/release-20252/ --- .../home-assistant/component-packages.nix | 223 ++++++++++++------ pkgs/servers/home-assistant/default.nix | 61 +++-- pkgs/servers/home-assistant/frontend.nix | 4 +- .../patches/tests-mock-source-ip.patch | 13 - pkgs/servers/home-assistant/tests.nix | 51 +--- 5 files changed, 190 insertions(+), 162 deletions(-) delete mode 100644 pkgs/servers/home-assistant/patches/tests-mock-source-ip.patch diff --git a/pkgs/servers/home-assistant/component-packages.nix b/pkgs/servers/home-assistant/component-packages.nix index 7aeda49df62a..076ed0dc09e0 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 = "2025.1.4"; + version = "2025.2.0"; components = { "3_day_blinds" = ps: with ps; [ @@ -17,6 +17,7 @@ aioesphomeapi aioruuvigateway aioshelly + aiousbwatcher bleak bleak-esphome bleak-retry-connector @@ -34,7 +35,6 @@ pymicro-vad pyserial pyspeex-noise - pyudev zeroconf ]; "accuweather" = @@ -118,6 +118,7 @@ aioesphomeapi aioruuvigateway aioshelly + aiousbwatcher airthings-ble bleak bleak-esphome @@ -136,7 +137,6 @@ pymicro-vad pyserial pyspeex-noise - pyudev zeroconf ]; "airtouch4" = @@ -330,6 +330,7 @@ aioesphomeapi aioruuvigateway aioshelly + aiousbwatcher aranet4 bleak bleak-esphome @@ -348,7 +349,6 @@ pymicro-vad pyserial pyspeex-noise - pyudev zeroconf ]; "arcam_fmj" = @@ -567,6 +567,7 @@ aioesphomeapi aioruuvigateway aioshelly + aiousbwatcher bleak bleak-esphome bleak-retry-connector @@ -585,7 +586,6 @@ pymicro-vad pyserial pyspeex-noise - pyudev zeroconf ]; "blueprint" = @@ -599,6 +599,7 @@ ]; "bluetooth" = ps: with ps; [ + aiousbwatcher bleak bleak-retry-connector bluetooth-adapters @@ -607,13 +608,13 @@ dbus-fast habluetooth pyserial - pyudev ]; "bluetooth_adapters" = ps: with ps; [ aioesphomeapi aioruuvigateway aioshelly + aiousbwatcher bleak bleak-esphome bleak-retry-connector @@ -631,7 +632,6 @@ pymicro-vad pyserial pyspeex-noise - pyudev zeroconf ]; "bluetooth_le_tracker" = @@ -639,6 +639,7 @@ aioesphomeapi aioruuvigateway aioshelly + aiousbwatcher bleak bleak-esphome bleak-retry-connector @@ -656,7 +657,6 @@ pymicro-vad pyserial pyspeex-noise - pyudev zeroconf ]; "bluetooth_tracker" = @@ -739,6 +739,7 @@ aioesphomeapi aioruuvigateway aioshelly + aiousbwatcher bleak bleak-esphome bleak-retry-connector @@ -757,7 +758,6 @@ pymicro-vad pyserial pyspeex-noise - pyudev zeroconf ]; "bticino" = @@ -968,11 +968,11 @@ ]; "crownstone" = ps: with ps; [ + aiousbwatcher crownstone-cloud crownstone-sse crownstone-uart pyserial - pyudev ]; "cups" = ps: with ps; [ @@ -1026,11 +1026,15 @@ "decora_wifi" = ps: with ps; [ ]; # missing inputs: decora-wifi + "decorquip" = + ps: with ps; [ + ]; "default_config" = ps: with ps; [ aiodhcpwatcher aiodiscover aiohasupervisor + aiousbwatcher async-upnp-client av bleak @@ -1060,7 +1064,6 @@ pyspeex-noise python-matter-server pyturbojpeg - pyudev securetar sqlalchemy zeroconf @@ -1116,6 +1119,8 @@ "devolo_home_network" = ps: with ps; [ devolo-plc-api + ifaddr + zeroconf ]; "dexcom" = ps: with ps; [ @@ -1205,6 +1210,7 @@ aioesphomeapi aioruuvigateway aioshelly + aiousbwatcher bleak bleak-esphome bleak-retry-connector @@ -1223,7 +1229,6 @@ pymicro-vad pyserial pyspeex-noise - pyudev zeroconf ]; "downloader" = @@ -1492,6 +1497,7 @@ aioesphomeapi aioruuvigateway aioshelly + aiousbwatcher bleak bleak-esphome bleak-retry-connector @@ -1510,7 +1516,6 @@ pymicro-vad pyserial pyspeex-noise - pyudev zeroconf ]; "escea" = @@ -1523,6 +1528,7 @@ "esphome" = ps: with ps; [ aioesphomeapi + aiousbwatcher bleak bleak-esphome bleak-retry-connector @@ -1540,7 +1546,6 @@ pymicro-vad pyserial pyspeex-noise - pyudev zeroconf ]; "etherscan" = @@ -1555,6 +1560,7 @@ aioesphomeapi aioruuvigateway aioshelly + aiousbwatcher bleak bleak-esphome bleak-retry-connector @@ -1573,7 +1579,6 @@ pymicro-vad pyserial pyspeex-noise - pyudev zeroconf ]; "event" = @@ -1691,6 +1696,7 @@ aioesphomeapi aioruuvigateway aioshelly + aiousbwatcher bleak bleak-esphome bleak-retry-connector @@ -1709,7 +1715,6 @@ pymicro-vad pyserial pyspeex-noise - pyudev zeroconf ]; "fleetgo" = @@ -1872,6 +1877,7 @@ aioesphomeapi aioruuvigateway aioshelly + aiousbwatcher bleak bleak-esphome bleak-retry-connector @@ -1890,7 +1896,6 @@ pymicro-vad pyserial pyspeex-noise - pyudev zeroconf ]; "gaviota" = @@ -2006,6 +2011,13 @@ google-cloud-speech google-cloud-texttospeech ]; + "google_drive" = + ps: with ps; [ + aiohasupervisor + cronsim + python-google-drive-api + securetar + ]; "google_generative_ai_conversation" = ps: with ps; [ google-generativeai @@ -2056,6 +2068,7 @@ aioesphomeapi aioruuvigateway aioshelly + aiousbwatcher bleak bleak-esphome bleak-retry-connector @@ -2074,7 +2087,6 @@ pymicro-vad pyserial pyspeex-noise - pyudev zeroconf ]; "govee_light_local" = @@ -2124,7 +2136,7 @@ ]; "habitica" = ps: with ps; [ - habitipy + habiticalib ]; "hardkernel" = ps: with ps; [ @@ -2244,41 +2256,31 @@ "homeassistant_green" = ps: with ps; [ aiohasupervisor - pillow psutil-home-assistant - pyserial - pyudev universal-silabs-flasher - zha ]; "homeassistant_hardware" = ps: with ps; [ aiohasupervisor - pillow - pyserial - pyudev universal-silabs-flasher - zha ]; "homeassistant_sky_connect" = ps: with ps; [ aiohasupervisor - pillow + aiousbwatcher psutil-home-assistant pyserial - pyudev universal-silabs-flasher - zha ]; "homeassistant_yellow" = ps: with ps; [ aiohasupervisor - pillow psutil-home-assistant - pyserial - pyudev universal-silabs-flasher - zha + ]; + "homee" = + ps: with ps; [ + pyhomee ]; "homekit" = ps: with ps; [ @@ -2297,6 +2299,7 @@ aiohomekit aioruuvigateway aioshelly + aiousbwatcher bleak bleak-esphome bleak-retry-connector @@ -2316,7 +2319,6 @@ pyserial pyspeex-noise python-otbr-api - pyudev zeroconf ]; "homematic" = @@ -2386,6 +2388,7 @@ aioesphomeapi aioruuvigateway aioshelly + aiousbwatcher automower-ble bleak bleak-esphome @@ -2404,7 +2407,6 @@ pymicro-vad pyserial pyspeex-noise - pyudev zeroconf ]; "huum" = @@ -2441,6 +2443,7 @@ aioesphomeapi aioruuvigateway aioshelly + aiousbwatcher bleak bleak-esphome bleak-retry-connector @@ -2459,7 +2462,6 @@ pymicro-vad pyserial pyspeex-noise - pyudev zeroconf ]; "icloud" = @@ -2471,6 +2473,7 @@ aioesphomeapi aioruuvigateway aioshelly + aiousbwatcher bleak bleak-esphome bleak-retry-connector @@ -2489,7 +2492,6 @@ pymicro-vad pyserial pyspeex-noise - pyudev zeroconf ]; "idteck_prox" = @@ -2502,6 +2504,10 @@ "iglo" = ps: with ps; [ ]; # missing inputs: iglo + "igloohome" = + ps: with ps; [ + igloohome-api + ]; "ign_sismologia" = ps: with ps; [ georss-ign-sismologia-client @@ -2535,6 +2541,7 @@ aioesphomeapi aioruuvigateway aioshelly + aiousbwatcher bleak bleak-esphome bleak-retry-connector @@ -2553,7 +2560,6 @@ pymicro-vad pyserial pyspeex-noise - pyudev zeroconf ]; "incomfort" = @@ -2573,6 +2579,7 @@ aioesphomeapi aioruuvigateway aioshelly + aiousbwatcher bleak bleak-esphome bleak-retry-connector @@ -2591,7 +2598,6 @@ pymicro-vad pyserial pyspeex-noise - pyudev zeroconf ]; "input_boolean" = @@ -2618,13 +2624,13 @@ "insteon" = ps: with ps; [ aiohasupervisor + aiousbwatcher cronsim home-assistant-frontend insteon-frontend-home-assistant pillow pyinsteon pyserial - pyudev securetar ]; "integration" = @@ -2680,6 +2686,7 @@ aioesphomeapi aioruuvigateway aioshelly + aiousbwatcher bleak bleak-esphome bleak-retry-connector @@ -2698,7 +2705,6 @@ pynecil pyserial pyspeex-noise - pyudev zeroconf ]; "isal" = @@ -2799,6 +2805,7 @@ aioesphomeapi aioruuvigateway aioshelly + aiousbwatcher bleak bleak-esphome bleak-retry-connector @@ -2817,7 +2824,6 @@ pymicro-vad pyserial pyspeex-noise - pyudev zeroconf ]; "kentuckypower" = @@ -2836,6 +2842,7 @@ aioesphomeapi aioruuvigateway aioshelly + aiousbwatcher bleak bleak-esphome bleak-retry-connector @@ -2854,7 +2861,6 @@ pymicrobot pyserial pyspeex-noise - pyudev zeroconf ]; "kira" = @@ -2930,6 +2936,7 @@ aioesphomeapi aioruuvigateway aioshelly + aiousbwatcher bleak bleak-esphome bleak-retry-connector @@ -2948,7 +2955,6 @@ pymicro-vad pyserial pyspeex-noise - pyudev zeroconf ]; "lametric" = @@ -2957,8 +2963,8 @@ ]; "landisgyr_heat_meter" = ps: with ps; [ + aiousbwatcher pyserial - pyudev ultraheat-api ]; "lannouncer" = @@ -2994,6 +3000,7 @@ aioesphomeapi aioruuvigateway aioshelly + aiousbwatcher bleak bleak-esphome bleak-retry-connector @@ -3012,7 +3019,6 @@ pymicro-vad pyserial pyspeex-noise - pyudev zeroconf ]; "leaone" = @@ -3020,6 +3026,7 @@ aioesphomeapi aioruuvigateway aioshelly + aiousbwatcher bleak bleak-esphome bleak-retry-connector @@ -3038,7 +3045,6 @@ pymicro-vad pyserial pyspeex-noise - pyudev zeroconf ]; "led_ble" = @@ -3046,6 +3052,7 @@ aioesphomeapi aioruuvigateway aioshelly + aiousbwatcher bleak bleak-esphome bleak-retry-connector @@ -3064,7 +3071,6 @@ pymicro-vad pyserial pyspeex-noise - pyudev zeroconf ]; "legrand" = @@ -3074,6 +3080,10 @@ ps: with ps; [ lektricowifi ]; + "letpot" = + ps: with ps; [ + letpot + ]; "lg_netcast" = ps: with ps; [ ifaddr @@ -3219,7 +3229,9 @@ "lovelace" = ps: with ps; [ aiohasupervisor + cronsim pillow + securetar ]; "luci" = ps: with ps; [ @@ -3300,6 +3312,18 @@ "mazda" = ps: with ps; [ ]; + "mcp" = + ps: with ps; [ + mcp + ]; + "mcp_server" = + ps: with ps; [ + aiohttp-sse + anyio + hassil + home-assistant-intents + mcp + ]; "mealie" = ps: with ps; [ aiomealie @@ -3313,6 +3337,7 @@ aioesphomeapi aioruuvigateway aioshelly + aiousbwatcher bleak bleak-esphome bleak-retry-connector @@ -3330,7 +3355,6 @@ pymicro-vad pyserial pyspeex-noise - pyudev zeroconf ]; # missing inputs: medcom-ble "media_extractor" = @@ -3362,6 +3386,7 @@ aioesphomeapi aioruuvigateway aioshelly + aiousbwatcher bleak bleak-esphome bleak-retry-connector @@ -3380,7 +3405,6 @@ pymicro-vad pyserial pyspeex-noise - pyudev zeroconf ]; "meraki" = @@ -3473,6 +3497,7 @@ aioesphomeapi aioruuvigateway aioshelly + aiousbwatcher bleak bleak-esphome bleak-retry-connector @@ -3491,7 +3516,6 @@ pymicro-vad pyserial pyspeex-noise - pyudev zeroconf ]; "mobile_app" = @@ -3520,9 +3544,9 @@ ]; "modem_callerid" = ps: with ps; [ + aiousbwatcher phone-modem pyserial - pyudev ]; "modern_forms" = ps: with ps; [ @@ -3555,6 +3579,7 @@ aioesphomeapi aioruuvigateway aioshelly + aiousbwatcher bleak bleak-esphome bleak-retry-connector @@ -3573,7 +3598,6 @@ pymicro-vad pyserial pyspeex-noise - pyudev zeroconf ]; "motion_blinds" = @@ -3586,6 +3610,7 @@ aioesphomeapi aioruuvigateway aioshelly + aiousbwatcher bleak bleak-esphome bleak-retry-connector @@ -3604,7 +3629,6 @@ pymicro-vad pyserial pyspeex-noise - pyudev zeroconf ]; "motioneye" = @@ -3945,7 +3969,9 @@ "onboarding" = ps: with ps; [ aiohasupervisor + cronsim pillow + securetar ]; "oncue" = ps: with ps; [ @@ -3955,6 +3981,10 @@ ps: with ps; [ ondilo ]; + "onedrive" = + ps: with ps; [ + onedrive-personal-sdk + ]; "onewire" = ps: with ps; [ pyownet @@ -4048,6 +4078,7 @@ aioesphomeapi aioruuvigateway aioshelly + aiousbwatcher bleak bleak-esphome bleak-retry-connector @@ -4066,7 +4097,6 @@ pymicro-vad pyserial pyspeex-noise - pyudev zeroconf ]; "oru" = @@ -4089,13 +4119,15 @@ "otbr" = ps: with ps; [ aiohasupervisor + aiousbwatcher + cronsim ifaddr pillow psutil-home-assistant pyroute2 pyserial python-otbr-api - pyudev + securetar universal-silabs-flasher zeroconf zha @@ -4112,6 +4144,22 @@ ps: with ps; [ pyoverkiz ]; + "overseerr" = + ps: with ps; [ + aiohasupervisor + cronsim + ha-ffmpeg + hass-nabucasa + hassil + home-assistant-intents + mutagen + pymicro-vad + pyspeex-noise + python-matter-server + python-overseerr + pyturbojpeg + securetar + ]; "ovo_energy" = ps: with ps; [ ovoenergy @@ -4296,6 +4344,7 @@ aioesphomeapi aioruuvigateway aioshelly + aiousbwatcher bleak bleak-esphome bleak-retry-connector @@ -4313,7 +4362,6 @@ pymicro-vad pyserial pyspeex-noise - pyudev zeroconf ]; "profiler" = @@ -4409,11 +4457,18 @@ ps: with ps; [ qbittorrent-api ]; + "qbus" = + ps: with ps; [ + aiohasupervisor + paho-mqtt_1 + qbusmqttapi + ]; "qingping" = ps: with ps; [ aioesphomeapi aioruuvigateway aioshelly + aiousbwatcher bleak bleak-esphome bleak-retry-connector @@ -4431,7 +4486,6 @@ pymicro-vad pyserial pyspeex-noise - pyudev qingping-ble zeroconf ]; @@ -4518,8 +4572,8 @@ "rainforest_raven" = ps: with ps; [ aioraven + aiousbwatcher pyserial - pyudev ]; "rainmachine" = ps: with ps; [ @@ -4533,6 +4587,7 @@ aioesphomeapi aioruuvigateway aioshelly + aiousbwatcher bleak bleak-esphome bleak-retry-connector @@ -4550,7 +4605,6 @@ pymicro-vad pyserial pyspeex-noise - pyudev rapt-ble zeroconf ]; @@ -4751,6 +4805,7 @@ "ruuvi_gateway" = ps: with ps; [ aioruuvigateway + aiousbwatcher bleak bleak-retry-connector bluetooth-adapters @@ -4759,13 +4814,13 @@ dbus-fast habluetooth pyserial - pyudev ]; "ruuvitag_ble" = ps: with ps; [ aioesphomeapi aioruuvigateway aioshelly + aiousbwatcher bleak bleak-esphome bleak-retry-connector @@ -4783,7 +4838,6 @@ pymicro-vad pyserial pyspeex-noise - pyudev ruuvitag-ble zeroconf ]; @@ -4886,6 +4940,7 @@ aioesphomeapi aioruuvigateway aioshelly + aiousbwatcher bleak bleak-esphome bleak-retry-connector @@ -4903,7 +4958,6 @@ pymicro-vad pyserial pyspeex-noise - pyudev sensirion-ble zeroconf ]; @@ -4921,6 +4975,7 @@ aioesphomeapi aioruuvigateway aioshelly + aiousbwatcher bleak bleak-esphome bleak-retry-connector @@ -4938,7 +4993,6 @@ pymicro-vad pyserial pyspeex-noise - pyudev sensorpro-ble zeroconf ]; @@ -4947,6 +5001,7 @@ aioesphomeapi aioruuvigateway aioshelly + aiousbwatcher bleak bleak-esphome bleak-retry-connector @@ -4964,7 +5019,6 @@ pymicro-vad pyserial pyspeex-noise - pyudev sensorpush-ble zeroconf ]; @@ -5013,6 +5067,7 @@ "shelly" = ps: with ps; [ aioshelly + aiousbwatcher bleak bleak-retry-connector bluetooth-adapters @@ -5022,7 +5077,6 @@ habluetooth ifaddr pyserial - pyudev ]; "shodan" = ps: with ps; [ @@ -5196,6 +5250,7 @@ aioesphomeapi aioruuvigateway aioshelly + aiousbwatcher bleak bleak-esphome bleak-retry-connector @@ -5214,7 +5269,6 @@ pyserial pysnooz pyspeex-noise - pyudev zeroconf ]; "solaredge" = @@ -5421,6 +5475,7 @@ aioesphomeapi aioruuvigateway aioshelly + aiousbwatcher bleak bleak-esphome bleak-retry-connector @@ -5439,7 +5494,6 @@ pyserial pyspeex-noise pyswitchbot - pyudev zeroconf ]; "switchbot_cloud" = @@ -5612,6 +5666,7 @@ aioesphomeapi aioruuvigateway aioshelly + aiousbwatcher bleak bleak-esphome bleak-retry-connector @@ -5629,7 +5684,6 @@ pymicro-vad pyserial pyspeex-noise - pyudev thermobeacon-ble zeroconf ]; @@ -5641,6 +5695,7 @@ aioesphomeapi aioruuvigateway aioshelly + aiousbwatcher bleak bleak-esphome bleak-retry-connector @@ -5658,7 +5713,6 @@ pymicro-vad pyserial pyspeex-noise - pyudev thermopro-ble zeroconf ]; @@ -5704,6 +5758,7 @@ aioesphomeapi aioruuvigateway aioshelly + aiousbwatcher bleak bleak-esphome bleak-retry-connector @@ -5721,7 +5776,6 @@ pymicro-vad pyserial pyspeex-noise - pyudev tilt-ble zeroconf ]; @@ -5976,8 +6030,8 @@ ]; "usb" = ps: with ps; [ + aiousbwatcher pyserial - pyudev ]; "usgs_earthquakes_feed" = ps: with ps; [ @@ -6011,8 +6065,8 @@ ]; "velbus" = ps: with ps; [ + aiousbwatcher pyserial - pyudev velbus-aio ]; "velux" = @@ -6085,6 +6139,7 @@ ha-ffmpeg hassil home-assistant-intents + ifaddr mutagen pymicro-vad pyspeex-noise @@ -6295,6 +6350,7 @@ aioesphomeapi aioruuvigateway aioshelly + aiousbwatcher bleak bleak-esphome bleak-retry-connector @@ -6312,7 +6368,6 @@ pymicro-vad pyserial pyspeex-noise - pyudev xiaomi-ble zeroconf ]; @@ -6363,6 +6418,7 @@ aioesphomeapi aioruuvigateway aioshelly + aiousbwatcher bleak bleak-esphome bleak-retry-connector @@ -6380,7 +6436,6 @@ pymicro-vad pyserial pyspeex-noise - pyudev yalexs-ble zeroconf ]; @@ -6463,9 +6518,11 @@ "zha" = ps: with ps; [ aiohasupervisor + aiousbwatcher + cronsim pillow pyserial - pyudev + securetar universal-silabs-flasher zha ]; @@ -6491,8 +6548,8 @@ "zwave_js" = ps: with ps; [ aiohasupervisor + aiousbwatcher pyserial - pyudev zwave-js-server-python ]; "zwave_me" = @@ -6784,6 +6841,7 @@ "google_assistant" "google_assistant_sdk" "google_cloud" + "google_drive" "google_generative_ai_conversation" "google_mail" "google_photos" @@ -6825,6 +6883,7 @@ "homeassistant_hardware" "homeassistant_sky_connect" "homeassistant_yellow" + "homee" "homekit" "homekit_controller" "homematic" @@ -6851,6 +6910,7 @@ "icloud" "idasen_desk" "ifttt" + "igloohome" "ign_sismologia" "image" "image_processing" @@ -6917,6 +6977,7 @@ "leaone" "led_ble" "lektrico" + "letpot" "lg_netcast" "lg_soundbar" "lg_thinq" @@ -6956,6 +7017,8 @@ "matter" "maxcube" "mazda" + "mcp" + "mcp_server" "mealie" "meater" "media_extractor" @@ -7028,6 +7091,7 @@ "niko_home_control" "nina" "nmap_tracker" + "nmbs" "no_ip" "nobo_hub" "nordpool" @@ -7050,6 +7114,7 @@ "onboarding" "oncue" "ondilo_ico" + "onedrive" "onewire" "onkyo" "onvif" @@ -7072,6 +7137,7 @@ "otp" "ourgroceries" "overkiz" + "overseerr" "ovo_energy" "owntracks" "p1_monitor" @@ -7111,6 +7177,7 @@ "pyload" "python_script" "qbittorrent" + "qbus" "qingping" "qld_bushfire" "qnap" diff --git a/pkgs/servers/home-assistant/default.nix b/pkgs/servers/home-assistant/default.nix index 0c65e367f17b..40d1389c20ad 100644 --- a/pkgs/servers/home-assistant/default.nix +++ b/pkgs/servers/home-assistant/default.nix @@ -4,7 +4,6 @@ callPackage, fetchFromGitHub, fetchPypi, - fetchpatch2, python313, substituteAll, ffmpeg-headless, @@ -88,6 +87,37 @@ let ]; }); + async-timeout = super.async-timeout.overridePythonAttrs (oldAttrs: rec { + version = "4.0.3"; + src = fetchFromGitHub { + owner = "aio-libs"; + repo = "async-timeout"; + tag = "v${version}"; + hash = "sha256-gJGVRm7YMWnVicz2juHKW8kjJBxn4/vQ/kc2kQyl1i4="; + }; + }); + + eq3btsmart = super.eq3btsmart.overridePythonAttrs (oldAttrs: rec { + version = "1.4.1"; + src = fetchFromGitHub { + owner = "EuleMitKeule"; + repo = "eq3btsmart"; + tag = version; + hash = "sha256-FRnCnSMtsiZ1AbZOMwO/I5UoFWP0xAFqRZsnrHG9WJA="; + }; + build-system = with self; [ poetry-core ]; + }); + + govee-local-api = super.govee-local-api.overridePythonAttrs (oldAttrs: rec { + version = "1.5.3"; + src = fetchFromGitHub { + owner = "Galorhallen"; + repo = "govee-local-api"; + tag = "v${version}"; + hash = "sha256-qBT0Xub+eL7rfF+lQWlheBJSahEKWjREGJQD6sHjTPk="; + }; + }); + gspread = super.gspread.overridePythonAttrs (oldAttrs: rec { version = "5.12.4"; src = fetchFromGitHub { @@ -255,22 +285,6 @@ let doCheck = false; }); - slack-sdk = super.slack-sdk.overridePythonAttrs (oldAttrs: rec { - version = "2.5.0"; - src = fetchFromGitHub { - owner = "slackapi"; - repo = "python-slackclient"; - rev = "refs/tags/${version}"; - hash = "sha256-U//HUe6e41wOOzoaDl4yXPnEASCzpGBIScHStWMN8tk="; - }; - postPatch = '' - substituteInPlace setup.py \ - --replace-fail "pytest-runner" "" - ''; - pythonImportsCheck = [ "slack" ]; - doCheck = false; # Tests changed a lot for > 3 - }); - vulcan-api = super.vulcan-api.overridePythonAttrs (oldAttrs: rec { version = "2.3.2"; src = fetchFromGitHub { @@ -320,7 +334,7 @@ let extraBuildInputs = extraPackages python.pkgs; # Don't forget to run update-component-packages.py after updating - hassVersion = "2025.1.4"; + hassVersion = "2025.2.0"; in python.pkgs.buildPythonApplication rec { @@ -341,13 +355,13 @@ python.pkgs.buildPythonApplication rec { owner = "home-assistant"; repo = "core"; rev = "refs/tags/${version}"; - hash = "sha256-QqWF/uvFQbf0tdJMzFV3hAt9Je5sFR5z+aAPtCxycbM="; + hash = "sha256-TGlfqvmYUPA5wdvZWD89z6lfvDr+K/1kgu6NjkRpNxs="; }; # Secondary source is pypi sdist for translations sdist = fetchPypi { inherit pname version; - hash = "sha256-yzX4Wgo468On/WuK32Xdl0O3en/WFRdykvfvHNEU1S0="; + hash = "sha256-+dkS6AuqyzvC2NiGCGkDAGxF/kS/LuKkMFXWXjC3I8Y="; }; build-system = with python.pkgs; [ @@ -395,12 +409,6 @@ python.pkgs.buildPythonApplication rec { src = ./patches/ffmpeg-path.patch; ffmpeg = "${lib.getExe ffmpeg-headless}"; }) - - (fetchpatch2 { - # python-matter-server 7.0 compat - url = "https://github.com/home-assistant/core/commit/ea4931ca3a91920b66a747a18a2dece2c8215d4f.patch"; - hash = "sha256-evfMdBdEYsVSu2iDZ5xgNTg/QljJ+MXrV69g9liNcN4="; - }) ]; postPatch = '' @@ -414,6 +422,7 @@ python.pkgs.buildPythonApplication rec { aiodns aiohasupervisor aiohttp + aiohttp-asyncmdnsresolver aiohttp-cors aiohttp-fast-zlib aiozoneinfo diff --git a/pkgs/servers/home-assistant/frontend.nix b/pkgs/servers/home-assistant/frontend.nix index 033672d7666e..79914ed854f3 100644 --- a/pkgs/servers/home-assistant/frontend.nix +++ b/pkgs/servers/home-assistant/frontend.nix @@ -8,7 +8,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 = "20250109.2"; + version = "20250205.0"; format = "wheel"; src = fetchPypi { @@ -16,7 +16,7 @@ buildPythonPackage rec { pname = "home_assistant_frontend"; dist = "py3"; python = "py3"; - hash = "sha256-jE8+QzYUftQFuGgJuvFYIzZ9DsEFoNpPS94Wjmk73Ss="; + hash = "sha256-9P2OqnPNPydBi4k9iN0hSyGTyBW4PohdgJwQqa8MlYg="; }; # there is nothing to strip in this package diff --git a/pkgs/servers/home-assistant/patches/tests-mock-source-ip.patch b/pkgs/servers/home-assistant/patches/tests-mock-source-ip.patch deleted file mode 100644 index 6812ee1915bb..000000000000 --- a/pkgs/servers/home-assistant/patches/tests-mock-source-ip.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/homeassistant/components/network/__init__.py b/homeassistant/components/network/__init__.py -index b3ef88e7ab..b7a8471e1a 100644 ---- a/homeassistant/components/network/__init__.py -+++ b/homeassistant/components/network/__init__.py -@@ -30,7 +30,7 @@ async def async_get_source_ip( - ) -> str: - """Get the source ip for a target ip.""" - adapters = await async_get_adapters(hass) -- all_ipv4s = [] -+ all_ipv4s = ["127.0.0.1"] - for adapter in adapters: - if adapter["enabled"] and (ipv4s := adapter["ipv4"]): - all_ipv4s.extend([ipv4["address"] for ipv4 in ipv4s]) diff --git a/pkgs/servers/home-assistant/tests.nix b/pkgs/servers/home-assistant/tests.nix index 99edc7936034..a45707b4cdb6 100644 --- a/pkgs/servers/home-assistant/tests.nix +++ b/pkgs/servers/home-assistant/tests.nix @@ -14,6 +14,9 @@ let ibeacon-ble ]; hassio = getComponentDeps "homeassistant_yellow"; + homeassistant_hardware = getComponentDeps "zha"; + homeassistant_sky_connect = getComponentDeps "zha"; + homeassistant_yellow = getComponentDeps "zha"; husqvarna_automower_ble = getComponentDeps "gardena_bluetooth"; lovelace = [ pychromecast @@ -36,6 +39,7 @@ let songpal = [ isal ]; + swiss_public_transport = getComponentDeps "cookidoo"; system_log = [ isal ]; @@ -52,6 +56,10 @@ let }; extraDisabledTestPaths = { + overseerr = [ + # imports broken future module + "tests/components/overseerr/test_event.py" + ]; }; extraDisabledTests = { @@ -59,10 +67,6 @@ let # tries to retrieve file from github "test_non_text_stdout_capture" ]; - sma = [ - # missing operating_status attribute in entity - "test_sensor_entities" - ]; websocket_api = [ # AssertionError: assert 'unknown_error' == 'template_error' "test_render_template_with_timeout" @@ -70,46 +74,20 @@ let }; extraPytestFlagsArray = { - conversation = [ - # Expected: Sorry, I am not aware of any device called missing entity on ground floor - # Actually: Sorry, I am not aware of any area called ground floor - "--deselect tests/components/conversation/test_default_agent.py::test_error_no_device_on_floor" - ]; dnsip = [ # 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" "--deselect tests/components/jellyfin/test_media_source.py::test_audio_codec_resolve" - # 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" - ]; - vicare = [ - # Snapshot 'test_all_entities[sensor.model0_electricity_consumption_today-entry]' does not exist! - "--deselect=tests/components/vicare/test_sensor.py::test_all_entities" - ]; }; in lib.listToAttrs ( @@ -140,19 +118,6 @@ lib.listToAttrs ( ++ extraPytestFlagsArray.${component} or [ ] ++ [ "tests/components/${component}" ]; - preCheck = - old.preCheck - + - lib.optionalString - (builtins.elem component [ - "emulated_hue" - "songpal" - "system_log" - ]) - '' - patch -p1 < ${./patches/tests-mock-source-ip.patch} - ''; - meta = old.meta // { broken = lib.elem component [ ]; # upstream only tests on Linux, so do we.