home-assistant: 2026.4.4 -> 2026.5.0 (#517365)

This commit is contained in:
Martin Weinelt
2026-05-07 06:50:57 +00:00
committed by GitHub
76 changed files with 527 additions and 432 deletions
@@ -3,29 +3,33 @@
aiohttp,
buildPythonPackage,
fetchFromGitHub,
lxml,
hatchling,
hatch-vcs,
defusedxml,
pytest-aiohttp,
pytestCheckHook,
setuptools-scm,
}:
buildPythonPackage rec {
buildPythonPackage (finalAttrs: {
pname = "afsapi";
version = "0.3.1";
format = "setuptools";
version = "1.0.0";
pyproject = true;
src = fetchFromGitHub {
owner = "wlcrs";
repo = "python-afsapi";
tag = version;
hash = "sha256-WkkRsXRJ4i3lUn3X94YX7ZqfaKE2GgrBycbflnnlC74=";
tag = finalAttrs.version;
hash = "sha256-5gvA3rFyAlTx7oKrUq9q0lBuwatzMPvRhjy7GYnwdik=";
};
nativeBuildInputs = [ setuptools-scm ];
build-system = [
hatchling
hatch-vcs
];
propagatedBuildInputs = [
dependencies = [
aiohttp
lxml
defusedxml
];
doCheck = false; # Failed: async def functions are not natively supported.
@@ -40,10 +44,10 @@ buildPythonPackage rec {
pythonImportsCheck = [ "afsapi" ];
meta = {
changelog = "https://github.com/wlcrs/python-afsapi/releases/tag/${finalAttrs.version}";
description = "Python implementation of the Frontier Silicon API";
homepage = "https://github.com/wlcrs/python-afsapi";
changelog = "https://github.com/wlcrs/python-afsapi/releases/tag/${version}";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ fab ];
};
}
})
@@ -1,48 +1,51 @@
{
lib,
buildPythonPackage,
fetchPypi,
setuptools,
aiobotocore,
fetchFromGitHub,
poetry-core,
aiohttp,
attr,
aws-request-signer,
boto3,
botocore,
requests-aws4auth,
pycognito,
}:
buildPythonPackage rec {
buildPythonPackage (finalAttrs: {
pname = "aioaquacell";
version = "0.2.0";
version = "1.0.0";
pyproject = true;
src = fetchPypi {
inherit pname version;
hash = "sha256-n2kPD1t5d/nf43rB0q1hNNYdHeaBiadsFWTmu1bYN1A=";
src = fetchFromGitHub {
owner = "Jordi1990";
repo = "aioaquacell";
tag = finalAttrs.version;
hash = "sha256-ghzuNIqpDwrt2EJ8u74yF5pWdS2nR3FvbPdHQMH4KxE=";
};
build-system = [ setuptools ];
postPatch = ''
substituteInPlace pyproject.toml \
--replace-fail 'version = "0.0.0"' 'version = "${finalAttrs.version}"'
'';
build-system = [ poetry-core ];
dependencies = [
aiohttp
aiobotocore
attr
aws-request-signer
boto3
botocore
requests-aws4auth
pycognito
];
pythonImportsCheck = [ "aioaquacell" ];
doCheck = false;
doCheck = false; # no tests
meta = {
changelog = "https://github.com/Jordi1990/aioaquacell/releases/tag/v${version}";
changelog = "https://github.com/Jordi1990/aioaquacell/releases/tag/${finalAttrs.version}";
description = "Asynchronous library to retrieve details of your Aquacell water softener device";
homepage = "https://github.com/Jordi1990/aioaquacell";
license = lib.licenses.asl20;
maintainers = [ ];
};
}
})
@@ -22,14 +22,14 @@
buildPythonPackage (finalAttrs: {
pname = "aioautomower";
version = "2.7.3";
version = "2.7.5";
pyproject = true;
src = fetchFromGitHub {
owner = "Thomas55555";
repo = "aioautomower";
tag = "v${finalAttrs.version}";
hash = "sha256-O1z0dhVtKfIOr7TrXFiPElC11isD4aDDLmzc0+OX+B8=";
hash = "sha256-6McuzSo3CanhafN8ooB/fQkD+BAVpaPqPDNHSSsVLgA=";
};
postPatch = ''
@@ -4,25 +4,23 @@
buildPythonPackage,
colorlog,
fetchFromGitHub,
orjson,
pint,
setuptools,
pytest-cov-stub,
pytestCheckHook,
pythonOlder,
setuptools,
}:
buildPythonPackage (finalAttrs: {
pname = "aiocomelit";
version = "2.0.2";
version = "2.0.3";
pyproject = true;
disabled = pythonOlder "3.12";
src = fetchFromGitHub {
owner = "chemelli74";
repo = "aiocomelit";
tag = "v${finalAttrs.version}";
hash = "sha256-k/p6z+flMvmuwwHqPH9Aw/ai761kbT+HQUXVNKeqk0U=";
hash = "sha256-EB07sAGSyTpsCNH8xwOuHBYhQyajBnZBP+8WCLBq7i4=";
};
build-system = [ setuptools ];
@@ -30,6 +28,7 @@ buildPythonPackage (finalAttrs: {
dependencies = [
aiohttp
colorlog
orjson
pint
];
@@ -18,14 +18,14 @@
buildPythonPackage (finalAttrs: {
pname = "aiohomeconnect";
version = "0.34.0";
version = "0.36.0";
pyproject = true;
src = fetchFromGitHub {
owner = "MartinHjelmare";
repo = "aiohomeconnect";
tag = "v${finalAttrs.version}";
hash = "sha256-fGK7Qc4dzW1BTbSNrNE7N4RZvyaXf2pQ49zTOkjNyBg=";
hash = "sha256-tm8CEIv2QfawDs26oCnwXZ4cX/9785h7IX/kuCzjCWc=";
};
build-system = [ setuptools ];
@@ -17,14 +17,14 @@
buildPythonPackage (finalAttrs: {
pname = "aiomealie";
version = "1.2.2";
version = "1.2.4";
pyproject = true;
src = fetchFromGitHub {
owner = "joostlek";
repo = "python-mealie";
tag = "v${finalAttrs.version}";
hash = "sha256-2244R2r+b08UG58Amd94Dsn6d59oAiJLL6jOd4ZOqro=";
hash = "sha256-OROL48v5SniYtzuCYZWt9mSXcFqMTO0JB2K+Ym3Ksz4=";
};
build-system = [ poetry-core ];
@@ -10,7 +10,7 @@
# dependencies
mashumaro,
orjson,
pyserial-asyncio-fast,
serialx,
# tests
pytestCheckHook,
@@ -18,7 +18,7 @@
buildPythonPackage rec {
pname = "aiorussound";
version = "4.9.1";
version = "5.0.1";
pyproject = true;
# requires newer f-strings introduced in 3.12
@@ -28,7 +28,7 @@ buildPythonPackage rec {
owner = "noahhusby";
repo = "aiorussound";
tag = version;
hash = "sha256-vDGNb2eXvNLWzEs9ZI2vOk4+7RJQ/ISu9PCkIWCBJQw=";
hash = "sha256-TFRxeQQwgoI4O0k6A1pO622oEONOxANQDLr7SAkjuA0=";
};
build-system = [ poetry-core ];
@@ -36,7 +36,7 @@ buildPythonPackage rec {
dependencies = [
mashumaro
orjson
pyserial-asyncio-fast
serialx
];
nativeCheckInputs = [
@@ -17,14 +17,14 @@
buildPythonPackage rec {
pname = "aioshelly";
version = "13.24.0";
version = "13.25.0";
pyproject = true;
src = fetchFromGitHub {
owner = "home-assistant-libs";
repo = "aioshelly";
tag = version;
hash = "sha256-yb6oZlrB3MBafKoga9vRrcixXlZeknVRsMztX4hV3PA=";
hash = "sha256-BZsuvYtP2tuRb3QGN09lwTXadMKqM1TLPKEQU5+qz6w=";
};
build-system = [ setuptools ];
@@ -11,28 +11,24 @@
python-dotenv,
setuptools,
syrupy,
yarl,
}:
buildPythonPackage rec {
buildPythonPackage (finalAttrs: {
pname = "bring-api";
version = "1.1.1";
version = "1.1.2";
pyproject = true;
src = fetchFromGitHub {
owner = "miaucl";
repo = "bring-api";
tag = version;
hash = "sha256-BslU1ekbQIZh1f1zRYXbZdbOepB2+NWIuWZI4L/oxSg=";
tag = finalAttrs.version;
hash = "sha256-EwOb+AkjpJSpINFmfWNDqRPF7MDpwDa0LK3LFj7U/sY=";
};
build-system = [ setuptools ];
dependencies = [
# https://github.com/miaucl/bring-api/blob/1.0.0/requirements.txt
# pyproject.toml is out of sync
aiohttp
yarl
mashumaro
orjson
];
@@ -50,8 +46,8 @@ buildPythonPackage rec {
meta = {
description = "Module to access the Bring! shopping lists API";
homepage = "https://github.com/miaucl/bring-api";
changelog = "https://github.com/miaucl/bring-api/releases/tag/${src.tag}";
changelog = "https://github.com/miaucl/bring-api/releases/tag/${finalAttrs.src.tag}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ fab ];
};
}
})
@@ -28,14 +28,14 @@
buildPythonPackage rec {
pname = "bumble";
version = "0.0.227";
version = "0.0.228";
pyproject = true;
src = fetchFromGitHub {
owner = "google";
repo = "bumble";
tag = "v${version}";
hash = "sha256-qB1dVKDy061NqAzv+QoFeG1BU9sRYfb5ntcXQd909rM=";
hash = "sha256-wvs6Pod2eub9SOQAgcU+SahSykVvCe7SBV6i10w6Y7Q=";
};
build-system = [
@@ -15,14 +15,14 @@
buildPythonPackage rec {
pname = "dbus-fast";
version = "4.0.0";
version = "4.0.4";
pyproject = true;
src = fetchFromGitHub {
owner = "Bluetooth-Devices";
repo = "dbus-fast";
tag = "v${version}";
hash = "sha256-XLtLRIbiB+4AKKq5ekEeBv92qmBPKEJihh0b3lHMnsg=";
hash = "sha256-lfAG17R33YsU8HYbnM9te0H7YoVUUpB6TtqQrWbhR6Q=";
};
postPatch = ''
@@ -4,25 +4,27 @@
aresponses,
buildPythonPackage,
fetchFromGitHub,
mashumaro,
poetry-core,
pytest-asyncio,
pytest-cov-stub,
pytest-freezer,
pytestCheckHook,
syrupy,
typer,
yarl,
}:
buildPythonPackage rec {
pname = "easyenergy";
version = "2.2.0";
version = "3.0.0";
pyproject = true;
src = fetchFromGitHub {
owner = "klaasnicolaas";
repo = "python-easyenergy";
tag = "v${version}";
hash = "sha256-AFEygSSHr7YJK4Yx4dvBVGR3wBswAeUNrC/7NndzfBg=";
hash = "sha256-aCRXL//hGJyG1eIonz/HJqFyG9eGKOoFhd6yD5zAR3s=";
};
postPatch = ''
@@ -30,13 +32,23 @@ buildPythonPackage rec {
--replace '"0.0.0"' '"${version}"'
'';
nativeBuildInputs = [ poetry-core ];
build-system = [ poetry-core ];
propagatedBuildInputs = [
pythonRelaxDeps = [
"aiohttp"
"mashumaro"
];
dependencies = [
aiohttp
mashumaro
yarl
];
optional-dependencies = {
cli = [ typer ];
};
nativeCheckInputs = [
aresponses
pytest-asyncio
@@ -44,7 +56,8 @@ buildPythonPackage rec {
pytest-freezer
pytestCheckHook
syrupy
];
]
++ lib.concatAttrValues optional-dependencies;
pythonImportsCheck = [ "easyenergy" ];
@@ -68,6 +81,7 @@ buildPythonPackage rec {
homepage = "https://github.com/klaasnicolaas/python-easyenergy";
changelog = "https://github.com/klaasnicolaas/python-easyenergy/releases/tag/${src.tag}";
license = lib.licenses.mit;
mainProgram = "easyenergy";
maintainers = with lib.maintainers; [ fab ];
};
}
@@ -10,14 +10,14 @@
buildPythonPackage (finalAttrs: {
pname = "epaper-dithering";
version = "0.6.3";
version = "0.6.4";
pyproject = true;
src = fetchFromGitHub {
owner = "OpenDisplay";
repo = "epaper-dithering";
tag = "python-v${finalAttrs.version}";
hash = "sha256-h84AgWJR8zVuwoz02A3U82yTOw4MSK9DjaxkYi0nWkM=";
hash = "sha256-GWILjyzPg5mCDQ6jQw5o3v+gkbdxiHzSSVQkW3dC01I=";
};
sourceRoot = "${finalAttrs.src.name}/packages/python";
@@ -20,14 +20,14 @@
buildPythonPackage rec {
pname = "habluetooth";
version = "5.11.2";
version = "6.1.0";
pyproject = true;
src = fetchFromGitHub {
owner = "Bluetooth-Devices";
repo = "habluetooth";
tag = "v${version}";
hash = "sha256-/5oJOSNP3vbmX7V8m6LLomNAvRzV2hM0vMCbwjFBmbg=";
hash = "sha256-/A+7u8mMZMiloHz0fnlQAQDe7DcrgFBU0IOaZJEdkKo=";
};
build-system = [
@@ -15,14 +15,14 @@
buildPythonPackage (finalAttrs: {
pname = "imgw-pib";
version = "2.1.0";
version = "2.1.1";
pyproject = true;
src = fetchFromGitHub {
owner = "bieniu";
repo = "imgw-pib";
tag = finalAttrs.version;
hash = "sha256-VwoYxV6XlDRX3zdOwtfBxZG3ntBh8l+abNByN7HIAeo=";
hash = "sha256-R1WhKOboItkKamO+hyyJyTl0veDCHDc4N70UE7IuFqI=";
};
build-system = [ setuptools ];
@@ -8,14 +8,14 @@
buildPythonPackage (finalAttrs: {
pname = "infrared-protocols";
version = "1.1.0";
version = "2.1.0";
pyproject = true;
src = fetchFromGitHub {
owner = "home-assistant-libs";
repo = "infrared-protocols";
tag = finalAttrs.version;
hash = "sha256-Sw9N8vdmdR13itUtx3Vcmc0DJN8IcIub+mzEWms/fpE=";
hash = "sha256-TAeqDCuLSuzAOq2bsHTMYjQ1AyKDRQSAq8cC8oSfY1E=";
};
build-system = [ setuptools ];
@@ -1,5 +1,6 @@
{
aiohttp,
awesomeversion,
buildPythonPackage,
fetchFromGitLab,
hatchling,
@@ -12,20 +13,21 @@
buildPythonPackage rec {
pname = "lunatone-rest-api-client";
version = "0.7.2";
version = "0.9.2";
pyproject = true;
src = fetchFromGitLab {
owner = "lunatone-public";
repo = "lunatone-rest-api-client";
tag = "v${version}";
hash = "sha256-x9L65L5wEbJMOGlNBoQfPjS8/Ijr+fzaISoDD+cMWzU=";
hash = "sha256-hUc2cMZ2OWheqDQjg6A7mEZw0RrljestouPr1WdOl7Q=";
};
build-system = [ hatchling ];
dependencies = [
aiohttp
awesomeversion
pydantic
]
++ aiohttp.optional-dependencies.speedups;
@@ -5,7 +5,6 @@
blurhash,
cryptography,
decorator,
fetchpatch,
graphemeu,
http-ece,
python-dateutil,
@@ -21,24 +20,16 @@
buildPythonPackage rec {
pname = "mastodon-py";
version = "2.1.4";
version = "2.2.1";
pyproject = true;
src = fetchFromGitHub {
owner = "halcy";
repo = "Mastodon.py";
tag = "v${version}";
hash = "sha256-i3HMT8cabSl664UK3eopJQ9bDBpGCgbHTvBJkgeoxd8=";
hash = "sha256-RsSM7TkNwsirT1ksaXP/IKOmrpPrNGh/16S77Up+3MM=";
};
patches = [
# Switch dependency from unmaintained `grapheme` to `graphemeu`
(fetchpatch {
url = "https://github.com/halcy/Mastodon.py/commit/939c7508414e950922c518260a9ba5a5853aeef2.patch";
hash = "sha256-XBiAFxYUBNyynld++UwPGIIg9j+3/EF2jGqiysVqYRM=";
})
];
build-system = [ setuptools ];
dependencies = [
@@ -67,13 +58,6 @@ buildPythonPackage rec {
]
++ lib.concatAttrValues optional-dependencies;
# disabledTests = [
# "test_notifications_dismiss_pre_2_9_2"
# "test_status_card_pre_2_9_2"
# "test_stream_user_direct"
# "test_stream_user_local"
# ];
pythonImportsCheck = [ "mastodon" ];
meta = {
@@ -19,14 +19,14 @@
buildPythonPackage (finalAttrs: {
pname = "matter-python-client";
version = "0.4.3";
version = "0.6.4";
pyproject = true;
src = fetchFromGitHub {
owner = "matter-js";
repo = "matterjs-server";
tag = "v${finalAttrs.version}";
hash = "sha256-SnOo6AQzkIqlZPTDe/dhA1EJ8oTBg37zfjiqheGYxIM=";
hash = "sha256-iHTc5PDlg4KvOY+oY9GU2l/pPNMrnmIyFqxjCL7w0kw=";
};
sourceRoot = "${finalAttrs.src.name}/python_client";
@@ -1,18 +1,19 @@
{
lib,
aiohttp,
aresponses,
aioresponses,
awesomeversion,
backoff,
buildPythonPackage,
fetchFromGitHub,
hatchling,
mashumaro,
orjson,
poetry-core,
pytest-asyncio,
pytest-cov-stub,
pytestCheckHook,
rich,
syrupy,
tenacity,
typer,
yarl,
zeroconf,
@@ -20,14 +21,14 @@
buildPythonPackage rec {
pname = "peblar";
version = "0.4.0";
version = "0.5.1";
pyproject = true;
src = fetchFromGitHub {
owner = "frenck";
repo = "python-peblar";
tag = "v${version}";
hash = "sha256-cHb/VTaa7tkePqV7eLpDSxrnY8hAnjshwtwyWmJnt/4=";
hash = "sha256-58PIvbl0QqOrvEc2rIieImWSnGZVIrhVAwsN+fZcWT4=";
};
postPatch = ''
@@ -36,31 +37,33 @@ buildPythonPackage rec {
--replace-fail 'version = "0.0.0"' 'version = "${version}"'
'';
build-system = [ hatchling ];
build-system = [ poetry-core ];
dependencies = [
aiohttp
awesomeversion
backoff
mashumaro
orjson
tenacity
yarl
];
optional-dependencies = {
cli = [
rich
typer
zeroconf
];
};
nativeCheckInputs = [
aresponses
aioresponses
pytest-asyncio
pytest-cov-stub
pytestCheckHook
syrupy
];
]
++ lib.concatAttrValues optional-dependencies;
pythonImportsCheck = [ "peblar" ];
@@ -69,6 +72,7 @@ buildPythonPackage rec {
homepage = "https://github.com/frenck/python-peblar";
changelog = "https://github.com/frenck/python-peblar/releases/tag/v${version}";
license = lib.licenses.mit;
mainProgram = "peblar";
maintainers = with lib.maintainers; [ fab ];
};
}
@@ -1,39 +0,0 @@
{
lib,
buildPythonPackage,
fetchFromGitHub,
pytestCheckHook,
setuptools,
}:
buildPythonPackage rec {
pname = "pilight";
version = "0.1.1";
pyproject = true;
src = fetchFromGitHub {
owner = "DavidLP";
repo = "pilight";
tag = version;
hash = "sha256-8KLEeyf1uwYjsBfIoi+736cu+We6OjLvptCXL539bDA=";
};
build-system = [ setuptools ];
nativeCheckInputs = [ pytestCheckHook ];
postPatch = ''
substituteInPlace pilight/test/test_client.py \
--replace-fail "from mock import patch, call" "from unittest.mock import patch, call" \
--replace-fail "pilight_client.isAlive()" "pilight_client.is_alive()"
'';
pythonImportsCheck = [ "pilight" ];
meta = {
description = "Pure python module to connect to a pilight daemon to send and receive commands";
homepage = "https://github.com/DavidLP/pilight";
license = lib.licenses.mit;
maintainers = [ lib.maintainers.jamiemagee ];
};
}
@@ -15,14 +15,14 @@
buildPythonPackage rec {
pname = "prowlpy";
version = "1.1.4";
version = "1.1.5";
pyproject = true;
src = fetchFromGitHub {
owner = "OMEGARAZER";
repo = "prowlpy";
tag = "v${version}";
hash = "sha256-vtLj0Rxl8XM6JigM5kWQWiEaE8dDQ40zsZGRPfJ+aiY=";
hash = "sha256-psXq858y5wsDU5GqGOzVFmYBSZvfuYXzOTZ20mx8PMw=";
};
build-system = [ setuptools ];
@@ -1,7 +1,7 @@
{
lib,
aiohttp,
aresponses,
aioresponses,
buildPythonPackage,
fetchFromGitHub,
poetry-core,
@@ -15,14 +15,14 @@
buildPythonPackage rec {
pname = "pvo";
version = "2.2.1";
version = "3.0.0";
pyproject = true;
src = fetchFromGitHub {
owner = "frenck";
repo = "python-pvoutput";
tag = "v${version}";
hash = "sha256-UdMcY7Va8LAW3x4CR6hIrIdwrXiHh1Hs3tK+SWBrJFE=";
hash = "sha256-qCODRfE+fM3Cwgz8sOUTJ8AXQSlr3I4Q0I+gJmMaDjM=";
};
postPatch = ''
@@ -40,7 +40,7 @@ buildPythonPackage rec {
];
nativeCheckInputs = [
aresponses
aioresponses
pytest-asyncio
pytest-cov-stub
pytestCheckHook
@@ -5,6 +5,7 @@
hatchling,
bleak,
bleak-retry-connector,
cryptography,
epaper-dithering,
numpy,
pillow,
@@ -14,14 +15,14 @@
buildPythonPackage (finalAttrs: {
pname = "py-opendisplay";
version = "5.5.0";
version = "5.9.0";
pyproject = true;
src = fetchFromGitHub {
owner = "OpenDisplay";
repo = "py-opendisplay";
tag = "v${finalAttrs.version}";
hash = "sha256-pPV4Ir9GK++66qq5QGnwyjpBinK7EvI7C7HB14tFDXU=";
hash = "sha256-7YR+VPCsmuDJaWdToCytg8zsIDkKVRiQnVlmWtBzqrA=";
};
build-system = [ hatchling ];
@@ -29,6 +30,7 @@ buildPythonPackage (finalAttrs: {
dependencies = [
bleak
bleak-retry-connector
cryptography
epaper-dithering
numpy
pillow
@@ -12,14 +12,14 @@
buildPythonPackage (finalAttrs: {
pname = "pyaxencoapi";
version = "1.0.9";
version = "1.0.7";
pyproject = true;
src = fetchFromGitHub {
owner = "AXENCO-FR";
repo = "ha-py-axenco-api";
tag = "v${finalAttrs.version}";
hash = "sha256-rqjDI8e3ZeZHsEk0EBaKlEl3w9blinlc2MsTCAKk85o=";
hash = "sha256-Ml58+kstIpqQUXDt/jpZeR8ueu5U3nnH7hiUcZxveAM=";
};
build-system = [ setuptools ];
@@ -12,14 +12,14 @@
buildPythonPackage (finalAttrs: {
pname = "pykaleidescape";
version = "1.1.3";
version = "1.1.6";
pyproject = true;
src = fetchFromGitHub {
owner = "SteveEasley";
repo = "pykaleidescape";
tag = "v${finalAttrs.version}";
hash = "sha256-IA6BefKBFMfatiaw+Ye8NdYZ6BDlR1z4L+YkZ4Iy3Wg=";
hash = "sha256-irXm1kX9gy6XU1PWvFKG2IeUE7raKI2C0I6Vge1ZKsI=";
};
build-system = [ setuptools ];
@@ -44,6 +44,8 @@ buildPythonPackage (finalAttrs: {
# stuck in EpollSelector.poll()
"test_manual_disconnect"
"test_concurrency"
"test_reconnect_calls_on_reconnect"
"test_refresh_after_reconnect"
];
meta = {
@@ -6,16 +6,16 @@
poetry-core,
}:
buildPythonPackage rec {
buildPythonPackage (finalAttrs: {
pname = "pynordpool";
version = "0.3.2";
version = "0.4.0";
pyproject = true;
src = fetchFromGitHub {
owner = "gjohansson-ST";
repo = "pynordpool";
tag = "v${version}";
hash = "sha256-3yMVhdfjl2l56WzI+uRMUwFuYafSH3YfabYqKSK25Y4=";
tag = "v${finalAttrs.version}";
hash = "sha256-HDbYrwQ4v5cqej5aUat0gVzaRpJz5jaFHjWUC98gacg=";
};
build-system = [ poetry-core ];
@@ -30,8 +30,8 @@ buildPythonPackage rec {
meta = {
description = "Python api for Nordpool";
homepage = "https://github.com/gjohansson-ST/pynordpool";
changelog = "https://github.com/gjohansson-ST/pynordpool/releases/tag/${src.tag}";
changelog = "https://github.com/gjohansson-ST/pynordpool/releases/tag/${finalAttrs.src.tag}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ fab ];
};
}
})
@@ -9,14 +9,14 @@
buildPythonPackage rec {
pname = "pyopensprinkler";
version = "0.7.15";
version = "0.7.17";
pyproject = true;
src = fetchFromGitHub {
owner = "vinteo";
repo = "py-opensprinkler";
rev = version;
hash = "sha256-OfC3YYP2GeoiJh+3Ti35dmjtjg4xpN7KXPy/5BA3pPs=";
hash = "sha256-5iGvC7S1DdowkT4MZCkI5toy1AKYiMITwy84VYwW/0U=";
};
build-system = [ setuptools ];
@@ -1,5 +1,6 @@
{
lib,
aiohttp,
aiohttp-retry,
buildPythonPackage,
fetchFromGitHub,
@@ -9,41 +10,43 @@
parameterized,
pycryptodome,
pytest-aiohttp,
pytest-asyncio_0,
pytest-asyncio,
pytest-cov-stub,
pytest-golden,
pytest-mock,
pytestCheckHook,
python-dateutil,
pyyaml,
requests,
requests-mock,
responses,
setuptools,
syrupy,
}:
buildPythonPackage (finalAttrs: {
pname = "pyrainbird";
version = "6.1.2";
version = "6.3.1";
pyproject = true;
src = fetchFromGitHub {
owner = "allenporter";
repo = "pyrainbird";
tag = finalAttrs.version;
hash = "sha256-ac/QzhdfvOpqKi8tjz2Udge2+AIg/yEQBmbYCu0i/0A=";
hash = "sha256-0hjHPoUJP/sRljn0VS3qXUa5OhbxzYl5u/086kksLiE=";
};
build-system = [ setuptools ];
pythonRelaxDeps = [
"aiohttp"
];
dependencies = [
aiohttp
aiohttp-retry
ical
mashumaro
pycryptodome
python-dateutil
pyyaml
requests
];
__darwinAllowLocalNetworking = true;
@@ -51,14 +54,13 @@ buildPythonPackage (finalAttrs: {
nativeCheckInputs = [
freezegun
parameterized
(pytest-aiohttp.override { pytest-asyncio = pytest-asyncio_0; })
pytest-asyncio_0
pytest-aiohttp
pytest-asyncio
pytest-cov-stub
pytest-golden
pytest-mock
pytestCheckHook
requests-mock
responses
syrupy
];
pythonImportsCheck = [ "pyrainbird" ];
@@ -14,14 +14,14 @@
buildPythonPackage (finalAttrs: {
pname = "pyswitchbot";
version = "2.0.1";
version = "2.2.0";
pyproject = true;
src = fetchFromGitHub {
owner = "Danielhiversen";
repo = "pySwitchbot";
tag = finalAttrs.version;
hash = "sha256-vVFCzbp7DMhyPlUXrw3fXwyKybf3nXyTH9zCTz6uh5E=";
hash = "sha256-uBHDOAitnVTFGuwzz9at0X6Mr54feMeKiFG/9CqIN4g=";
};
build-system = [ setuptools ];
@@ -11,6 +11,7 @@
freezegun,
hatchling,
paho-mqtt,
protobuf,
pycryptodome,
pycryptodomex,
pyrate-limiter,
@@ -23,17 +24,20 @@
buildPythonPackage (finalAttrs: {
pname = "python-roborock";
version = "5.0.0";
version = "5.5.1";
pyproject = true;
src = fetchFromGitHub {
owner = "Python-roborock";
repo = "python-roborock";
tag = "v${finalAttrs.version}";
hash = "sha256-Lzr+OBbOjsLpkUsFYNJ37teegWjicUAoW9Jvw3hOvGE=";
hash = "sha256-2ShXt2mtMhMugzqOHhY1GT7cQ0K78k/4/bPmmP/uheI=";
};
pythonRelaxDeps = [ "pycryptodome" ];
pythonRelaxDeps = [
"protobuf"
"pycryptodome"
];
build-system = [ hatchling ];
@@ -43,6 +47,7 @@ buildPythonPackage (finalAttrs: {
click
construct
paho-mqtt
protobuf
pycryptodome
pyrate-limiter
vacuum-map-parser-roborock
@@ -16,14 +16,14 @@
buildPythonPackage rec {
pname = "python-technove";
version = "2.0.0";
version = "2.1.1";
pyproject = true;
src = fetchFromGitHub {
owner = "Moustachauve";
repo = "pytechnove";
tag = "v${version}";
hash = "sha256-LgrydBgx68HP8yaywkMMeS71VqhilYGODppBZbdkssQ=";
hash = "sha256-TAB70EVrjxpl+vm3ncg45l2duaIXHjn7YKOURkS6k0k=";
};
build-system = [ poetry-core ];
@@ -12,14 +12,14 @@
buildPythonPackage (finalAttrs: {
pname = "pytibber";
version = "0.37.2";
version = "0.37.4";
pyproject = true;
src = fetchFromGitHub {
owner = "Danielhiversen";
repo = "pyTibber";
tag = finalAttrs.version;
hash = "sha256-ZM9oXX6iEmsR20f2Jgg3fME1lm3egKun1GvNOZIKTV0=";
hash = "sha256-xXZLMLPlOYCDO1+b3/lL5O5NI5UA+4HX+YOMHLwCbig=";
};
build-system = [ setuptools ];
@@ -17,14 +17,14 @@
buildPythonPackage rec {
pname = "pytrydan";
version = "0.8.1";
version = "1.0.0";
pyproject = true;
src = fetchFromGitHub {
owner = "dgomes";
repo = "pytrydan";
tag = "v${version}";
hash = "sha256-OHC+Ul64BYCsgoFDxI1hPjBGkd/pQ0j0c9Pt5lWg1E0=";
hash = "sha256-ivLNP5lconJ0G8MuY8xgcJ9MTx91yUjeY1NA4U7OwMo=";
};
pythonRelaxDeps = [ "tenacity" ];
@@ -12,7 +12,7 @@
buildPythonPackage rec {
pname = "pyuptimerobot";
version = "24.0.1";
version = "25.0.0";
pyproject = true;
disabled = pythonOlder "3.14";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
owner = "ludeeus";
repo = "pyuptimerobot";
tag = version;
hash = "sha256-vlEXUwGCmscasdWyCxF1bFjA3weR74Zf3RCk5W5ljFg=";
hash = "sha256-Fa/65IANK/LP2AaD6hLVH+Jau0swCwd/iBQXVcle6Y0=";
};
postPatch = ''
@@ -12,14 +12,14 @@
buildPythonPackage (finalAttrs: {
pname = "pyvicare";
version = "2.59.1";
version = "2.60.1";
pyproject = true;
src = fetchFromGitHub {
owner = "openviess";
repo = "PyViCare";
tag = finalAttrs.version;
hash = "sha256-dy6VFVisQXWB46pdltP2Ww/WyAyQ1igLn8LiSGHPKa8=";
hash = "sha256-pLXSUEetkGBrdPZ5Lo0gFTIP6pkc9C2tcx6+3Khr7EY=";
};
postPatch = ''
@@ -12,14 +12,14 @@
buildPythonPackage rec {
pname = "satel-integra";
version = "1.2.2";
version = "1.3.1";
pyproject = true;
src = fetchFromGitHub {
owner = "c-soft";
repo = "satel_integra";
tag = version;
hash = "sha256-bYwAW8mbgE4D6xvAmkOPewAGkKJuF5AKPjXGeaJpk6s=";
hash = "sha256-lNlre+0mOmIjrmYsAqt0QERERsXzKi0wRfbs1c//f/c=";
};
build-system = [
@@ -1,9 +1,11 @@
{
aioesphomeapi,
buildPythonPackage,
cargo,
fetchFromGitHub,
lib,
psutil,
pythonAtLeast,
pytest-asyncio,
pytest-xdist,
pytestCheckHook,
@@ -49,6 +51,10 @@ buildPythonPackage (finalAttrs: {
typing-extensions
];
optional-dependencies.esphome = lib.optionals (pythonAtLeast "3.14") [
aioesphomeapi
];
pythonImportsCheck = [ "serialx" ];
nativeCheckInputs = [
@@ -1,7 +1,7 @@
{
lib,
aiohttp,
aresponses,
aioresponses,
buildPythonPackage,
fetchFromGitHub,
mashumaro,
@@ -10,19 +10,22 @@
pytest-asyncio,
pytest-cov-stub,
pytestCheckHook,
rich,
syrupy,
typer,
yarl,
}:
buildPythonPackage rec {
pname = "tailscale";
version = "0.6.2";
version = "0.8.0";
pyproject = true;
src = fetchFromGitHub {
owner = "frenck";
repo = "python-tailscale";
tag = "v${version}";
hash = "sha256-azqvMAluhThfteLEZObApnJjtnT3NzO+VVwTzmxuaFY=";
hash = "sha256-Lvtx3/tYJO8qCQhVjJTV0qu064duH7MI+A+a+pdeoHI=";
};
postPatch = ''
@@ -31,21 +34,30 @@ buildPythonPackage rec {
--replace 'version = "0.0.0"' 'version = "${version}"'
'';
nativeBuildInputs = [ poetry-core ];
build-system = [ poetry-core ];
propagatedBuildInputs = [
dependencies = [
aiohttp
mashumaro
orjson
yarl
];
optional-dependencies = {
cli = [
rich
typer
];
};
nativeCheckInputs = [
aresponses
aioresponses
pytest-asyncio
pytest-cov-stub
pytestCheckHook
];
syrupy
]
++ lib.concatAttrValues optional-dependencies;
pythonImportsCheck = [ "tailscale" ];
@@ -54,6 +66,7 @@ buildPythonPackage rec {
homepage = "https://github.com/frenck/python-tailscale";
changelog = "https://github.com/frenck/python-tailscale/releases/tag/v${version}";
license = lib.licenses.mit;
mainProgram = "tailscale";
maintainers = with lib.maintainers; [ fab ];
};
}
@@ -38,21 +38,21 @@
buildPythonPackage (finalAttrs: {
pname = "uiprotect";
version = "10.2.6";
version = "10.4.1";
pyproject = true;
src = fetchFromGitHub {
owner = "uilibs";
repo = "uiprotect";
tag = "v${finalAttrs.version}";
hash = "sha256-6QU+K5TGmZ0Me2QWVyECGhHYZ0d1t4h+kZfTsKlHV5s=";
hash = "sha256-J9SVsExFQMxUQSONsB6G8rb0nIu3sNKtHmiMdy6jpqk=";
};
build-system = [ poetry-core ];
pythonRemoveDeps = [
"aioshutil"
"async-timeout"
pythonRelaxDeps = [
"platformdirs"
"pydantic"
];
dependencies = [
@@ -8,12 +8,11 @@
setuptools,
# dependencies
aiohttp,
bellows,
click,
coloredlogs,
crc,
gpiod,
pyserial-asyncio-fast,
tqdm,
typing-extensions,
zigpy,
@@ -26,14 +25,14 @@
buildPythonPackage rec {
pname = "universal-silabs-flasher";
version = "1.0.3";
version = "1.1.0";
pyproject = true;
src = fetchFromGitHub {
owner = "NabuCasa";
repo = "universal-silabs-flasher";
tag = "v${version}";
hash = "sha256-6rdWi+un85YWSann2zHFFnWvAZF6V8wXBP1VunaiZMo=";
hash = "sha256-niNjHhOwy+5mgs4UY9bIBykmZ+7TifbYnMuG1LAV7PA=";
};
postPatch = ''
@@ -45,11 +44,10 @@ buildPythonPackage rec {
build-system = [ setuptools ];
dependencies = [
aiohttp
bellows
click
coloredlogs
crc
pyserial-asyncio-fast
tqdm
typing-extensions
zigpy
@@ -1,7 +1,7 @@
{
lib,
aiohttp,
aresponses,
aioresponses,
buildPythonPackage,
fetchFromGitHub,
mashumaro,
@@ -10,20 +10,22 @@
pytest-asyncio,
pytest-cov-stub,
pytestCheckHook,
rich,
syrupy,
typer,
yarl,
}:
buildPythonPackage rec {
pname = "vehicle";
version = "2.2.2";
version = "3.0.0";
pyproject = true;
src = fetchFromGitHub {
owner = "frenck";
repo = "python-vehicle";
tag = "v${version}";
hash = "sha256-MPK5Aim/kGXLMOapttkp5ygl8gIlHv0675sBBf6kyAA=";
hash = "sha256-gmLBm3ru525cayhdRJ0Ccwsq+juZRQAAjCQQq7g0m+0=";
};
postPatch = ''
@@ -41,13 +43,21 @@ buildPythonPackage rec {
yarl
];
optional-dependencies = {
cli = [
rich
typer
];
};
nativeCheckInputs = [
aresponses
aioresponses
pytest-asyncio
pytest-cov-stub
pytestCheckHook
syrupy
];
]
++ lib.concatAttrValues optional-dependencies;
pythonImportsCheck = [ "vehicle" ];
@@ -56,6 +66,7 @@ buildPythonPackage rec {
homepage = "https://github.com/frenck/python-vehicle";
changelog = "https://github.com/frenck/python-vehicle/releases/tag/v${version}";
license = lib.licenses.mit;
mainProgram = "vehicle";
maintainers = with lib.maintainers; [ fab ];
};
}
@@ -10,14 +10,14 @@
buildPythonPackage rec {
pname = "victron-ble-ha-parser";
version = "0.6.3";
version = "0.7.0";
pyproject = true;
src = fetchFromGitHub {
owner = "rajlaud";
repo = "victron-ble-ha-parser";
tag = "v${version}";
hash = "sha256-wSkTIX1TTP2geU7bgsdJj6Nv5SIGgd6k84G7tRCo3O0=";
hash = "sha256-WbJ0OQHTWigszOQ03427Nk6xfKqTHcPQ63tcSvG3x/k=";
};
build-system = [ setuptools ];
@@ -1,7 +1,7 @@
{
lib,
aiohttp,
aresponses,
aioresponses,
awesomeversion,
backoff,
buildPythonPackage,
@@ -14,27 +14,28 @@
pytest-cov-stub,
pytest-xdist,
pytestCheckHook,
syrupy,
typer,
yarl,
zeroconf,
}:
buildPythonPackage rec {
buildPythonPackage (finalAttrs: {
pname = "wled";
version = "0.21.0";
version = "0.22.0";
pyproject = true;
src = fetchFromGitHub {
owner = "frenck";
repo = "python-wled";
tag = "v${version}";
hash = "sha256-yJ7tiJWSOpkkLwKXo4lYlDrp1FEJ/cGoDaXJamY4ARg=";
tag = "v${finalAttrs.version}";
hash = "sha256-CUTuIQf6gj9teLicIOtu1FUsYiYXtKeLNuDbNh/21sc=";
};
postPatch = ''
# Upstream doesn't set a version for the pyproject.toml
substituteInPlace pyproject.toml \
--replace-fail "0.0.0" "${version}"
--replace-fail "0.0.0" "${finalAttrs.version}"
'';
build-system = [ poetry-core ];
@@ -57,11 +58,18 @@ buildPythonPackage rec {
};
nativeCheckInputs = [
aresponses
aioresponses
pytest-asyncio
pytest-cov-stub
pytest-xdist
pytestCheckHook
syrupy
]
++ lib.concatAttrValues finalAttrs.passthru.optional-dependencies;
disabledTests = [
# wled release table rendering is inconsistent
"test_releases_command"
];
pythonImportsCheck = [ "wled" ];
@@ -69,8 +77,8 @@ buildPythonPackage rec {
meta = {
description = "Asynchronous Python client for WLED";
homepage = "https://github.com/frenck/python-wled";
changelog = "https://github.com/frenck/python-wled/releases/tag/v${version}";
changelog = "https://github.com/frenck/python-wled/releases/tag/${finalAttrs.src.tag}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ hexa ];
};
}
})
@@ -10,14 +10,14 @@
buildPythonPackage rec {
pname = "xknxproject";
version = "3.8.2";
version = "3.9.0";
pyproject = true;
src = fetchFromGitHub {
owner = "XKNX";
repo = "xknxproject";
tag = version;
hash = "sha256-EIonCsolfAAFQpHuSFUuYAAZozjtqSwJCpw86Cc2d4I=";
hash = "sha256-IA6rEH7iv5IbmfAvNpuLXQQKdatTOzPXf+PwToBtlcg=";
};
build-system = [ setuptools ];
@@ -10,14 +10,14 @@
buildPythonPackage rec {
pname = "yoto-api";
version = "2.2.5";
version = "2.2.6";
pyproject = true;
src = fetchFromGitHub {
owner = "cdnninja";
repo = "yoto_api";
tag = "v${version}";
hash = "sha256-Sv6X1Cuj7D3gSkq8YipyOsNJeqnP3yL9UuHxVJlMyPg=";
hash = "sha256-f0bRi/4v71/jNYrONlTloFknP6xnXV3uirJMKUje5LY=";
};
build-system = [ setuptools ];
@@ -2,7 +2,7 @@
# Do not edit!
{
version = "2026.4.4";
version = "2026.5.0";
components = {
"3_day_blinds" =
ps: with ps; [
@@ -34,8 +34,8 @@
ifaddr
mutagen
pymicro-vad
pyserial
pyspeex-noise
serialx
zeroconf
];
"accuweather" =
@@ -44,7 +44,7 @@
];
"acer_projector" =
ps: with ps; [
pyserial
serialx
];
"acmeda" =
ps: with ps; [
@@ -159,8 +159,8 @@
ifaddr
mutagen
pymicro-vad
pyserial
pyspeex-noise
serialx
zeroconf
];
"airtouch4" =
@@ -388,8 +388,8 @@
ifaddr
mutagen
pymicro-vad
pyserial
pyspeex-noise
serialx
zeroconf
];
"arcam_fmj" =
@@ -488,7 +488,9 @@
];
"aurora_abb_powerone" =
ps: with ps; [
aiousbwatcher
aurorapy
serialx
];
"aussie_broadband" =
ps: with ps; [
@@ -670,8 +672,8 @@
ifaddr
mutagen
pymicro-vad
pyserial
pyspeex-noise
serialx
zeroconf
];
"blueprint" =
@@ -693,7 +695,7 @@
bluetooth-data-tools
dbus-fast
habluetooth
pyserial
serialx
];
"bluetooth_adapters" =
ps: with ps; [
@@ -717,8 +719,8 @@
ifaddr
mutagen
pymicro-vad
pyserial
pyspeex-noise
serialx
zeroconf
];
"bluetooth_le_tracker" =
@@ -743,8 +745,8 @@
ifaddr
mutagen
pymicro-vad
pyserial
pyspeex-noise
serialx
zeroconf
];
"bmw_connected_drive" =
@@ -843,8 +845,8 @@
ifaddr
mutagen
pymicro-vad
pyserial
pyspeex-noise
serialx
zeroconf
];
"bticino" =
@@ -907,8 +909,8 @@
ifaddr
mutagen
pymicro-vad
pyserial
pyspeex-noise
serialx
zeroconf
]; # missing inputs: pycasperglow
"cast" =
@@ -1115,7 +1117,7 @@
crownstone-cloud
crownstone-sse
crownstone-uart
pyserial
serialx
];
"currencylayer" =
ps: with ps; [
@@ -1203,10 +1205,10 @@
psutil-home-assistant
pymicro-vad
pynacl
pyserial
pyspeex-noise
pyturbojpeg
securetar
serialx
sqlalchemy
zeroconf
];
@@ -1229,6 +1231,11 @@
"denon" =
ps: with ps; [
];
"denon_rs232" =
ps: with ps; [
aiousbwatcher
serialx
]; # missing inputs: denon-rs232
"denonavr" =
ps: with ps; [
denonavr
@@ -1334,6 +1341,9 @@
"door" =
ps: with ps; [
];
"doorbell" =
ps: with ps; [
];
"doorbird" =
ps: with ps; [
doorbirdpy
@@ -1364,8 +1374,8 @@
mutagen
py-dormakaba-dkey
pymicro-vad
pyserial
pyspeex-noise
serialx
zeroconf
];
"downloader" =
@@ -1381,13 +1391,21 @@
dropmqttapi
paho-mqtt
];
"dropbox" =
ps: with ps; [
aiohasupervisor
cronsim
securetar
]; # missing inputs: python-dropbox-api
"droplet" =
ps: with ps; [
pydroplet
];
"dsmr" =
ps: with ps; [
aiousbwatcher
dsmr-parser
serialx
];
"dsmr_reader" =
ps: with ps; [
@@ -1400,6 +1418,9 @@
"duckdns" =
ps: with ps; [
];
"duco" =
ps: with ps; [
]; # missing inputs: python-duco-client
"dunehd" =
ps: with ps; [
pdunehd
@@ -1425,6 +1446,9 @@
ps: with ps; [
aioeafm
];
"earn_e_p1" =
ps: with ps; [
]; # missing inputs: earn-e-p1
"eastron" =
ps: with ps; [
];
@@ -1595,7 +1619,7 @@
ps: with ps; [
aiousbwatcher
enocean-async
pyserial
serialx
];
"enphase_envoy" =
ps: with ps; [
@@ -1652,8 +1676,8 @@
ifaddr
mutagen
pymicro-vad
pyserial
pyspeex-noise
serialx
zeroconf
];
"escea" =
@@ -1683,8 +1707,8 @@
ifaddr
mutagen
pymicro-vad
pyserial
pyspeex-noise
serialx
zeroconf
];
"essent" =
@@ -1722,10 +1746,22 @@
ifaddr
mutagen
pymicro-vad
pyserial
pyspeex-noise
serialx
zeroconf
];
"eurotronic_cometblue" =
ps: with ps; [
aiousbwatcher
bleak
bleak-retry-connector
bluetooth-adapters
bluetooth-auto-recovery
bluetooth-data-tools
dbus-fast
habluetooth
serialx
]; # missing inputs: eurotronic-cometblue-ha
"event" =
ps: with ps; [
];
@@ -1873,8 +1909,8 @@
ifaddr
mutagen
pymicro-vad
pyserial
pyspeex-noise
serialx
zeroconf
];
"fleetgo" =
@@ -2027,6 +2063,9 @@
paho-mqtt
python-fullykiosk
];
"fumis" =
ps: with ps; [
]; # missing inputs: fumis
"futurenow" =
ps: with ps; [
pyfnip
@@ -2071,8 +2110,8 @@
ifaddr
mutagen
pymicro-vad
pyserial
pyspeex-noise
serialx
zeroconf
];
"gate" =
@@ -2284,8 +2323,8 @@
ifaddr
mutagen
pymicro-vad
pyserial
pyspeex-noise
serialx
zeroconf
];
"govee_light_local" =
@@ -2477,7 +2516,6 @@
aiousbwatcher
ha-silabs-firmware-client
psutil-home-assistant
pyserial
serialx
universal-silabs-flasher
];
@@ -2487,7 +2525,6 @@
aiousbwatcher
ha-silabs-firmware-client
psutil-home-assistant
pyserial
serialx
universal-silabs-flasher
];
@@ -2496,7 +2533,6 @@
aiohasupervisor
aiousbwatcher
ha-silabs-firmware-client
pyserial
serialx
universal-silabs-flasher
];
@@ -2506,7 +2542,6 @@
aiousbwatcher
ha-silabs-firmware-client
psutil-home-assistant
pyserial
serialx
universal-silabs-flasher
];
@@ -2516,7 +2551,6 @@
aiousbwatcher
ha-silabs-firmware-client
psutil-home-assistant
pyserial
serialx
universal-silabs-flasher
];
@@ -2560,9 +2594,9 @@
mutagen
pymicro-vad
pyroute2
pyserial
pyspeex-noise
python-otbr-api
serialx
zeroconf
];
"homematic" =
@@ -2589,6 +2623,10 @@
ps: with ps; [
aiosomecomfort
];
"honeywell_string_lights" =
ps: with ps; [
rf-protocols
];
"horizon" =
ps: with ps; [
horimote
@@ -2641,8 +2679,8 @@
ifaddr
mutagen
pymicro-vad
pyserial
pyspeex-noise
serialx
zeroconf
];
"huisbaasje" =
@@ -2690,8 +2728,8 @@
ifaddr
mutagen
pymicro-vad
pyserial
pyspeex-noise
serialx
zeroconf
];
"huum" =
@@ -2750,8 +2788,8 @@
ifaddr
mutagen
pymicro-vad
pyserial
pyspeex-noise
serialx
zeroconf
];
"icloud" =
@@ -2781,8 +2819,8 @@
ifaddr
mutagen
pymicro-vad
pyserial
pyspeex-noise
serialx
zeroconf
];
"idrive_e2" =
@@ -2868,8 +2906,8 @@
mutagen
py-improv-ble-client
pymicro-vad
pyserial
pyspeex-noise
serialx
zeroconf
];
"incomfort" =
@@ -2921,8 +2959,8 @@
inkbird-ble
mutagen
pymicro-vad
pyserial
pyspeex-noise
serialx
zeroconf
];
"input_boolean" =
@@ -2952,7 +2990,7 @@
home-assistant-frontend
insteon-frontend-home-assistant
pyinsteon
pyserial
serialx
];
"integration" =
ps: with ps; [
@@ -3040,8 +3078,8 @@
mutagen
pymicro-vad
pynecil
pyserial
pyspeex-noise
serialx
zeroconf
];
"isal" =
@@ -3169,8 +3207,8 @@
kegtron-ble
mutagen
pymicro-vad
pyserial
pyspeex-noise
serialx
zeroconf
];
"kentuckypower" =
@@ -3204,10 +3242,13 @@
mutagen
pymicro-vad
pymicrobot
pyserial
pyspeex-noise
serialx
zeroconf
];
"kiosker" =
ps: with ps; [
]; # missing inputs: kiosker-python-api
"kira" =
ps: with ps; [
pykira
@@ -3283,8 +3324,8 @@
mutagen
pykulersky
pymicro-vad
pyserial
pyspeex-noise
serialx
zeroconf
];
"kwb" =
@@ -3325,8 +3366,8 @@
mutagen
pylamarzocco
pymicro-vad
pyserial
pyspeex-noise
serialx
zeroconf
];
"lametric" =
@@ -3336,7 +3377,7 @@
"landisgyr_heat_meter" =
ps: with ps; [
aiousbwatcher
pyserial
serialx
ultraheat-api
];
"lannouncer" =
@@ -3386,8 +3427,8 @@
ld2410-ble
mutagen
pymicro-vad
pyserial
pyspeex-noise
serialx
zeroconf
];
"leaone" =
@@ -3413,8 +3454,8 @@
leaone-ble
mutagen
pymicro-vad
pyserial
pyspeex-noise
serialx
zeroconf
];
"led_ble" =
@@ -3440,8 +3481,8 @@
led-ble
mutagen
pymicro-vad
pyserial
pyspeex-noise
serialx
zeroconf
];
"legrand" =
@@ -3755,8 +3796,8 @@
medcom-ble
mutagen
pymicro-vad
pyserial
pyspeex-noise
serialx
zeroconf
];
"media_extractor" =
@@ -3807,8 +3848,8 @@
melnor-bluetooth
mutagen
pymicro-vad
pyserial
pyspeex-noise
serialx
zeroconf
];
"meraki" =
@@ -3926,8 +3967,8 @@
moat-ble
mutagen
pymicro-vad
pyserial
pyspeex-noise
serialx
zeroconf
];
"mobile_app" =
@@ -3960,7 +4001,7 @@
ps: with ps; [
aiousbwatcher
phone-modem
pyserial
serialx
];
"modern_forms" =
ps: with ps; [
@@ -4017,8 +4058,8 @@
mopeka-iot-ble
mutagen
pymicro-vad
pyserial
pyspeex-noise
serialx
zeroconf
];
"motion" =
@@ -4052,8 +4093,8 @@
motionblindsble
mutagen
pymicro-vad
pyserial
pyspeex-noise
serialx
zeroconf
];
"motioneye" =
@@ -4329,6 +4370,10 @@
ps: with ps; [
aionotion
];
"novy_cooker_hood" =
ps: with ps; [
rf-protocols
];
"nrgkick" =
ps: with ps; [
nrgkick-api
@@ -4430,6 +4475,9 @@
ps: with ps; [
pyombi
];
"omie" =
ps: with ps; [
]; # missing inputs: pyomie
"omnilogic" =
ps: with ps; [
omnilogic
@@ -4545,8 +4593,8 @@
mutagen
py-opendisplay
pymicro-vad
pyserial
pyspeex-noise
serialx
zeroconf
];
"openerz" =
@@ -4600,8 +4648,7 @@
];
"opnsense" =
ps: with ps; [
pyopnsense
];
]; # missing inputs: aiopnsense
"opower" =
ps: with ps; [
fnv-hash-fast
@@ -4636,8 +4683,8 @@
mutagen
oralb-ble
pymicro-vad
pyserial
pyspeex-noise
serialx
zeroconf
];
"oru" =
@@ -4667,7 +4714,6 @@
ifaddr
psutil-home-assistant
pyroute2
pyserial
python-otbr-api
serialx
universal-silabs-flasher
@@ -4809,10 +4855,6 @@
"picotts" =
ps: with ps; [
];
"pilight" =
ps: with ps; [
pilight
];
"pinecil" =
ps: with ps; [
];
@@ -4938,8 +4980,8 @@
ifaddr
mutagen
pymicro-vad
pyserial
pyspeex-noise
serialx
zeroconf
];
"probe_plus" =
@@ -4965,8 +5007,8 @@
mutagen
pymicro-vad
pyprobeplus
pyserial
pyspeex-noise
serialx
zeroconf
];
"profiler" =
@@ -5101,9 +5143,9 @@
ifaddr
mutagen
pymicro-vad
pyserial
pyspeex-noise
qingping-ble
serialx
zeroconf
];
"qld_bushfire" =
@@ -5170,6 +5212,10 @@
pycountry
radios
];
"radio_frequency" =
ps: with ps; [
rf-protocols
];
"radiotherm" =
ps: with ps; [
radiotherm
@@ -5191,7 +5237,7 @@
ps: with ps; [
aioraven
aiousbwatcher
pyserial
serialx
];
"rainmachine" =
ps: with ps; [
@@ -5222,9 +5268,9 @@
ifaddr
mutagen
pymicro-vad
pyserial
pyspeex-noise
rapt-ble
serialx
zeroconf
];
"raspberry_pi" =
@@ -5333,7 +5379,9 @@
];
"rfxtrx" =
ps: with ps; [
aiousbwatcher
pyrfxtrx
serialx
];
"rhasspy" =
ps: with ps; [
@@ -5396,7 +5444,7 @@
ps: with ps; [
aiousbwatcher
momonga
pyserial
serialx
];
"rova" =
ps: with ps; [
@@ -5419,10 +5467,12 @@
"russound_rio" =
ps: with ps; [
aiorussound
aiousbwatcher
serialx
];
"russound_rnet" =
ps: with ps; [
russound
aiorussound
];
"ruuvi_gateway" =
ps: with ps; [
@@ -5435,7 +5485,7 @@
bluetooth-data-tools
dbus-fast
habluetooth
pyserial
serialx
];
"ruuvitag_ble" =
ps: with ps; [
@@ -5459,9 +5509,9 @@
ifaddr
mutagen
pymicro-vad
pyserial
pyspeex-noise
ruuvitag-ble
serialx
zeroconf
];
"rympro" =
@@ -5587,9 +5637,9 @@
ifaddr
mutagen
pymicro-vad
pyserial
pyspeex-noise
sensirion-ble
serialx
zeroconf
];
"sensor" =
@@ -5623,9 +5673,9 @@
ifaddr
mutagen
pymicro-vad
pyserial
pyspeex-noise
sensorpro-ble
serialx
zeroconf
];
"sensorpush" =
@@ -5650,9 +5700,9 @@
ifaddr
mutagen
pymicro-vad
pyserial
pyspeex-noise
sensorpush-ble
serialx
zeroconf
];
"sensorpush_cloud" =
@@ -5674,7 +5724,7 @@
];
"serial" =
ps: with ps; [
pyserial-asyncio-fast
serialx
];
"serial_pm" =
ps: with ps; [
@@ -5722,7 +5772,7 @@
dbus-fast
habluetooth
ifaddr
pyserial
serialx
];
"shodan" =
ps: with ps; [
@@ -5911,9 +5961,9 @@
ifaddr
mutagen
pymicro-vad
pyserial
pysnooz
pyspeex-noise
serialx
zeroconf
];
"solaredge" =
@@ -6157,9 +6207,9 @@
ifaddr
mutagen
pymicro-vad
pyserial
pyspeex-noise
pyswitchbot
serialx
zeroconf
];
"switchbot_cloud" =
@@ -6291,6 +6341,11 @@
python-telegram-bot
]
++ python-telegram-bot.optional-dependencies.socks;
"teleinfo" =
ps: with ps; [
aiousbwatcher
serialx
]; # missing inputs: pyteleinfo
"tellduslive" =
ps: with ps; [
tellduslive
@@ -6363,8 +6418,8 @@
ifaddr
mutagen
pymicro-vad
pyserial
pyspeex-noise
serialx
thermobeacon-ble
zeroconf
];
@@ -6393,8 +6448,8 @@
ifaddr
mutagen
pymicro-vad
pyserial
pyspeex-noise
serialx
thermopro-ble
zeroconf
];
@@ -6460,8 +6515,8 @@
ifaddr
mutagen
pymicro-vad
pyserial
pyspeex-noise
serialx
tilt-ble
zeroconf
];
@@ -6502,7 +6557,7 @@
bluetooth-data-tools
dbus-fast
habluetooth
pyserial
serialx
togrill-bluetooth
];
"tolo" =
@@ -6702,15 +6757,21 @@
"unifi" =
ps: with ps; [
aiounifi
unifi-discovery
];
"unifi_access" =
ps: with ps; [
py-unifi-access
unifi-discovery
];
"unifi_direct" =
ps: with ps; [
unifi-ap
];
"unifi_discovery" =
ps: with ps; [
unifi-discovery
];
"unifiled" =
ps: with ps; [
unifiled
@@ -6767,7 +6828,7 @@
"usb" =
ps: with ps; [
aiousbwatcher
pyserial
serialx
];
"usgs_earthquakes_feed" =
ps: with ps; [
@@ -6809,7 +6870,7 @@
"velbus" =
ps: with ps; [
aiousbwatcher
pyserial
serialx
velbus-aio
];
"velux" =
@@ -6873,11 +6934,15 @@
ifaddr
mutagen
pymicro-vad
pyserial
pyspeex-noise
serialx
victron-ble-ha-parser
zeroconf
];
"victron_gx" =
ps: with ps; [
victron-mqtt
];
"victron_remote_monitoring" =
ps: with ps; [
victron-vrm
@@ -6959,6 +7024,9 @@
];
"waterfurnace" =
ps: with ps; [
fnv-hash-fast
psutil-home-assistant
sqlalchemy
waterfurnace
];
"watergate" =
@@ -7170,8 +7238,8 @@
ifaddr
mutagen
pymicro-vad
pyserial
pyspeex-noise
serialx
xiaomi-ble
zeroconf
];
@@ -7238,8 +7306,8 @@
ifaddr
mutagen
pymicro-vad
pyserial
pyspeex-noise
serialx
yalexs-ble
zeroconf
];
@@ -7327,7 +7395,6 @@
aiohasupervisor
aiousbwatcher
ha-silabs-firmware-client
pyserial
serialx
universal-silabs-flasher
zha
@@ -7365,7 +7432,7 @@
ps: with ps; [
aiohasupervisor
aiousbwatcher
pyserial
serialx
zwave-js-server-python
];
"zwave_me" =
@@ -7503,6 +7570,7 @@
"cert_expiry"
"chacon_dio"
"chess_com"
"citybikes"
"clicksend_tts"
"climate"
"cloud"
@@ -7559,6 +7627,7 @@
"dlna_dms"
"dnsip"
"door"
"doorbell"
"doorbird"
"dormakaba_dkey"
"downloader"
@@ -7758,6 +7827,7 @@
"homewizard"
"homeworks"
"honeywell"
"honeywell_string_lights"
"hr_energy_qube"
"html5"
"http"
@@ -8007,6 +8077,7 @@
"notify"
"notify_events"
"notion"
"novy_cooker_hood"
"nrgkick"
"nsw_fuel_station"
"nsw_rural_fire_service_feed"
@@ -8050,7 +8121,6 @@
"opentherm_gw"
"openuv"
"openweathermap"
"opnsense"
"opower"
"oralb"
"orvibo"
@@ -8077,7 +8147,7 @@
"philips_js"
"pi_hole"
"picnic"
"pilight"
"picotts"
"ping"
"pjlink"
"plaato"
@@ -8128,6 +8198,7 @@
"rachio"
"radarr"
"radio_browser"
"radio_frequency"
"radiotherm"
"rainbird"
"rainforest_eagle"
@@ -8363,6 +8434,7 @@
"ukraine_alarm"
"unifi"
"unifi_access"
"unifi_discovery"
"unifiprotect"
"universal"
"upb"
@@ -8391,6 +8463,7 @@
"vesync"
"vicare"
"victron_ble"
"victron_gx"
"victron_remote_monitoring"
"vilfo"
"vivotek"
@@ -7,13 +7,13 @@
buildHomeAssistantComponent rec {
owner = "jwillemsen";
domain = "daikin_onecta";
version = "4.4.9";
version = "4.5.1";
src = fetchFromGitHub {
owner = "jwillemsen";
repo = "daikin_onecta";
tag = "v${version}";
hash = "sha256-Ra1KL4t3aNECQuAfdqaIOctIb0qvrk43+bAh3YlpGbM=";
hash = "sha256-7icy9MAeVPrA2j+d/kJvZTv1LE5BPzWfjHDMC4iKxTk=";
};
meta = {
@@ -11,15 +11,19 @@
buildHomeAssistantComponent rec {
owner = "tolwi";
domain = "ecoflow_cloud";
version = "1.3.0";
version = "1.4.1";
src = fetchFromGitHub {
owner = "tolwi";
repo = "hassio-ecoflow-cloud";
tag = "v${version}";
hash = "sha256-CVm5+zLWN/ayhHRNFUr4PLwedwf4GJXvLOFgrh2qxAc=";
hash = "sha256-vN+po7S+/QxAHnVHJ0EpQGoxXBmcKNMRTCOPdeZ0f90=";
};
ignoreVersionRequirement = [
"protobuf"
];
dependencies = [
jsonpath-ng
paho-mqtt
@@ -6,13 +6,13 @@
buildHomeAssistantComponent rec {
owner = "iMicknl";
domain = "nest_protect";
version = "0.4.2";
version = "0.4.4";
src = fetchFromGitHub {
inherit owner;
repo = "ha-nest-protect";
tag = "v${version}";
hash = "sha256-3ydysyhXi2ucExNGH3S5HIUN7iUIC4ysjuXKDyqq/hs=";
hash = "sha256-WpQKpYVtmyqLWqhyDsImWvpfWagVWe50zG0RsmeU/8Q=";
};
# AttributeError: 'async_generator' object has no attribute 'data'
@@ -8,13 +8,13 @@
buildHomeAssistantComponent rec {
owner = "vinteo";
domain = "opensprinkler";
version = "1.5.4";
version = "1.5.5";
src = fetchFromGitHub {
owner = "vinteo";
repo = "hass-opensprinkler";
tag = "v${version}";
hash = "sha256-i7RQBkHxzxcOyBJ7dOALRqJjef0eb/rlYiSjZKluH+A=";
hash = "sha256-P+VSnMioZGwdsQ053uNiqpZzrtDFPb80FQaKqr3pOT4=";
};
dependencies = [
@@ -15,13 +15,13 @@
buildHomeAssistantComponent rec {
owner = "amitfin";
domain = "oref_alert";
version = "6.18.0";
version = "6.18.1";
src = fetchFromGitHub {
owner = "amitfin";
repo = "oref_alert";
tag = "v${version}";
hash = "sha256-apdtHRJEAKtDPsun9QfXTkO1iASmx8ip1uvB4aXxzbE=";
hash = "sha256-Ev+5BhLkqxluPf86tDgoK/YQD22mMmBWm/LHaUamxX8=";
};
# Do not publish cards, currently broken, attempting to write to nix store.
@@ -12,13 +12,13 @@
buildHomeAssistantComponent rec {
owner = "Pirate-Weather";
domain = "pirateweather";
version = "1.8.8";
version = "1.8.9";
src = fetchFromGitHub {
inherit owner;
repo = "pirate-weather-ha";
tag = "v${version}";
hash = "sha256-lcI+ClZ6iwkzI88fzxyWvbILMfLwMgHu0WJSSWGM7q0=";
hash = "sha256-QcTRLQ/jFH3lacnFu/cIGyAf74HaoG35iGKf8FQIlVo=";
};
nativeCheckInputs = [
@@ -2,6 +2,7 @@
lib,
buildHomeAssistantComponent,
fetchFromGitHub,
fetchpatch,
# dependencies
numpy,
@@ -26,6 +27,14 @@ buildHomeAssistantComponent rec {
hash = "sha256-Tm9h6ZHByuiM9XZz3D1TZR3ISbb16l0K1Vy8sJxI4+s=";
};
patches = [
# Fix compatibility with Home-Assistant 2026.5.0
(fetchpatch {
url = "https://github.com/bramstroker/homeassistant-powercalc/commit/3d5e162954c21adfd9251c4d8e21872e66680454.patch";
hash = "sha256-7InjKxT8gPiR2IvLbA4oZpkgPRJbQY39SF4YNPilp4k=";
})
];
dependencies = [ numpy ];
nativeCheckInputs = [
@@ -7,13 +7,13 @@
buildHomeAssistantComponent rec {
owner = "mweinelt";
domain = "prometheus_sensor";
version = "1.2.1";
version = "1.3.0";
src = fetchFromGitHub {
owner = "mweinelt";
repo = "ha-prometheus-sensor";
tag = version;
hash = "sha256-uXPUBNxF9DnVBTIPYS/3P1JK78Vozodmf7Ds7C6p+nQ=";
hash = "sha256-uIC/yGqjigVURZYVMMLY33VqRbadSCqTtT0Qtaq71uc=";
};
meta = {
@@ -11,13 +11,13 @@
buildHomeAssistantComponent rec {
owner = "make-all";
domain = "tuya_local";
version = "2026.4.2";
version = "2026.5.0";
src = fetchFromGitHub {
inherit owner;
repo = "tuya-local";
tag = version;
hash = "sha256-yxnWiAsI3nJrugnxI6XE4s2AIK/YvUIDfLY7BINzup4=";
hash = "sha256-WhS8qSiHSQYK+83xCk4C9hud6R0/PNSN9XPeW4uB1fc=";
};
dependencies = [
@@ -20,13 +20,13 @@
buildHomeAssistantComponent rec {
owner = "mampfes";
domain = "waste_collection_schedule";
version = "2.21.0";
version = "2.22.0";
src = fetchFromGitHub {
inherit owner;
repo = "hacs_waste_collection_schedule";
tag = "v${version}";
hash = "sha256-QUXtozk5FIUsXDJfb1GHGYa1LKh+CCARAsPKkX9ok34=";
hash = "sha256-eUpfeWfMHsBBlDJpq0lBo1aQ7VF3THTXQTXDaXL5+tQ=";
};
dependencies = [
@@ -8,13 +8,13 @@
buildHomeAssistantComponent rec {
owner = "cdnninja";
domain = "yoto";
version = "3.1.1";
version = "3.2.0";
src = fetchFromGitHub {
owner = "cdnninja";
repo = "yoto_ha";
tag = "v${version}";
hash = "sha256-187rLCHKYS8w7i+q99K1vP3ry8Z7Tbg8F3c95QPKTq8=";
hash = "sha256-t//Ox8Ytwjp7kTdz8k1QZyDyejW+mZBt1auncikBYb0=";
};
dependencies = [
@@ -10,19 +10,19 @@
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "custom-sidebar";
version = "12.0.0";
version = "14.0.0";
src = fetchFromGitHub {
owner = "elchininet";
repo = "custom-sidebar";
tag = "v${finalAttrs.version}";
hash = "sha256-U/HjDnHKAlUVAMbiA4AUPSasLJQbSeuvq/e4oR/dTcI=";
hash = "sha256-2CQcY5/Cb3IPuI7cL28t7iZCH3kD21equBW5BL6w8TU=";
};
pnpmDeps = fetchPnpmDeps {
inherit (finalAttrs) pname version src;
fetcherVersion = 3;
hash = "sha256-gUVETXrl5rcXvn0YeKLfM+eErUpMxCuVlAOoyqQkLXs=";
hash = "sha256-gYNCjCeAt6LP4tZE4ufiQu7OG2ujWydm4etcGQxMxcU=";
};
nativeBuildInputs = [
@@ -6,13 +6,13 @@
buildNpmPackage (finalAttrs: {
pname = "flower-card";
version = "2026.2.0";
version = "2026.4.1";
src = fetchFromGitHub {
owner = "olen";
repo = "lovelace-flower-card";
tag = "v${finalAttrs.version}";
hash = "sha256-EPahVDglhKjtPwIdu5HfUZ6KhMtTu/9YfY4VdsN+vyc=";
hash = "sha256-5v5xd2DSTg1meRr4ORAmZbtfBSNM1z/3Y5Y/vI20R4s=";
};
npmDepsHash = "sha256-XGKGoFdbeUIx12ZGP8o2oSTJHVa+PZ6jwYSWiqjtSuM=";
@@ -10,19 +10,19 @@
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "kiosk-mode";
version = "11.0.0";
version = "13.1.0";
src = fetchFromGitHub {
owner = "nemesisre";
repo = "kiosk-mode";
tag = "v${finalAttrs.version}";
hash = "sha256-aAZkqTSzH3JXLhp7QGfTYLTMLCe2TrqvonPQrVyeC7w=";
hash = "sha256-IfVV08WwFovNCgs6d3DOltEzF7Ox0w4B8G237Ma3ayY=";
};
pnpmDeps = fetchPnpmDeps {
inherit (finalAttrs) pname version src;
fetcherVersion = 3;
hash = "sha256-aubBpCupXGemYmeO+Sao9nsUtCm01M7fALbpd4qe7cA=";
hash = "sha256-k7kXZ4yFe3As1IGijrmJfgqrMoO2Yi+PrNapuq8Ow3Y=";
};
nativeBuildInputs = [
@@ -6,16 +6,16 @@
buildNpmPackage rec {
pname = "material-you-utilities";
version = "2.1.8";
version = "2.1.9";
src = fetchFromGitHub {
owner = "Nerwyn";
repo = "material-you-utilities";
tag = version;
hash = "sha256-yfwZBkrfTmQRyzzajBhmuyxPkJ4fNeIner4TJV49rzo=";
hash = "sha256-mifpvFGuF6rUPReab+FBlzP1eeCiWPt7In76x1Ar2wQ=";
};
npmDepsHash = "sha256-EIkEzy1UZ+EU+734LZJlU7yRrix97I2Uc+/ghtMRVv0=";
npmDepsHash = "sha256-/2YU5AVXfvardF1EcWjBcq8UXjXh/flH9BjhrTLNzyA=";
installPhase = ''
runHook preInstall
@@ -6,16 +6,16 @@
buildNpmPackage rec {
pname = "mushroom";
version = "5.0.12";
version = "5.1.1";
src = fetchFromGitHub {
owner = "piitaya";
repo = "lovelace-mushroom";
rev = "v${version}";
hash = "sha256-zZxUctseYDG3S8GG/xMxQWqt0yOC+1CD21XfEg7nTF4=";
hash = "sha256-nAEpbf7FkWUxLVyG2zQw+LKA5umffgk6I5/9PyXh2lo=";
};
npmDepsHash = "sha256-CnP5LvqUzo2jlLzFpYOVjZiZO726Nbv4uDBXAC/7KlI=";
npmDepsHash = "sha256-x149dkRilon1PL+V0M9gwAjKUXu4g2adobAatRXj+YY=";
installPhase = ''
runHook preInstall
@@ -9,13 +9,13 @@
let
pname = "navbar-card";
version = "1.3.0";
version = "1.6.0";
src = fetchFromGitHub {
owner = "joseluis9595";
repo = "lovelace-navbar-card";
tag = "v${version}";
hash = "sha256-lFsQPyIMhyVHCNwRiGXVu8bMvmlfCI7KTu2Hk90agIE=";
hash = "sha256-ngKsH83nrDglRQBdQhJzMC8/TRV+uL21vi2ovsLEPuY=";
};
# Create node_modules as a separate derivation
@@ -57,7 +57,7 @@ let
# Required else we get errors that our fixed-output derivation references store paths
dontFixup = true;
outputHash = "sha256-3IGzPEUPVnlD/K8a3Mp53vBEkTdlvrEYNpWCA/rIBwc=";
outputHash = "sha256-F8nNDBl/BYhtwggaZd61oibYE4j5u7WPVjLG8P4UEcc=";
outputHashAlgo = "sha256";
outputHashMode = "recursive";
};
@@ -6,13 +6,13 @@
buildNpmPackage rec {
pname = "scheduler-card";
version = "4.0.14";
version = "4.0.17";
src = fetchFromGitHub {
owner = "nielsfaber";
repo = "scheduler-card";
tag = "v${version}";
hash = "sha256-cW46bxD50p1kkCP729GsUDMO+iLkXJcil3lNgjrCsh0=";
hash = "sha256-S3pJr0Cz1aZVeu3AuVzRz6glY5a0buGibsPMNuHFS8w=";
};
postPatch = ''
@@ -6,16 +6,16 @@
buildNpmPackage rec {
pname = "universal-remote-card";
version = "4.10.10";
version = "4.11.0";
src = fetchFromGitHub {
owner = "Nerwyn";
repo = "android-tv-card";
rev = version;
hash = "sha256-2qtxohJLtccku1fQvxCV97QbZUwvn5FGvsuaunvsViA=";
hash = "sha256-EaZ85XPwsz+XPXc/bxep+sl7txp/K96tgsZouMOd3hg=";
};
npmDepsHash = "sha256-c5A+GmMkqxgL8fQyDp8qul/cW40iTbgHf7O/iR0F2bY=";
npmDepsHash = "sha256-RtCUWxwYUqJLtYmpaNReMYDXrvQtOny5O+LjbRhfrsI=";
installPhase = ''
runHook preInstall
+17 -7
View File
@@ -223,6 +223,15 @@ let
doCheck = false;
});
serialx = super.serialx.overridePythonAttrs (oldAttrs: {
# many components use the serialx[esphome] implicitly
dependencies = oldAttrs.dependencies or [ ] ++ oldAttrs.optional-dependencies.esphome;
disabledTests = oldAttrs.disabledTests or [ ] ++ [
# network access, only runs with esphome extra
"test_connect_timeout_raises_timeout_error"
];
});
# internal python packages only consumed by home-assistant itself
hass-web-proxy-lib = self.callPackage ./python-modules/hass-web-proxy-lib { };
home-assistant-frontend = self.callPackage ./frontend.nix { };
@@ -253,7 +262,7 @@ let
extraBuildInputs = extraPackages python.pkgs;
# Don't forget to run update-component-packages.py after updating
hassVersion = "2026.4.4";
hassVersion = "2026.5.0";
in
python.pkgs.buildPythonApplication rec {
@@ -274,13 +283,13 @@ python.pkgs.buildPythonApplication rec {
owner = "home-assistant";
repo = "core";
tag = version;
hash = "sha256-x2BF1N1LDZAnryOkGy/Pru+mlw3CaOgnrmdQMg0uo7k=";
hash = "sha256-RrXjrwl6BQzjilKluAM8oVihmZqLBpVLWN/OhaJY+1c=";
};
# Secondary source is pypi sdist for translations
sdist = fetchPypi {
inherit pname version;
hash = "sha256-EPmX+3wAsvirvjDzQ0aUKGZbaNWh5mX+7iuCfZ2BUhI=";
hash = "sha256-SXsJqYETHp92ZC/I2jS2ZlerUVVTugFdbOhLCxoLJ9I=";
};
build-system = with python.pkgs; [
@@ -296,15 +305,15 @@ python.pkgs.buildPythonApplication rec {
# leave this in, so users don't have to constantly update their downstream patch handling
patches = [
# https://github.com/home-assistant/core/pull/165143
./pyjwt-2.11.patch
# Follow symlinks in /var/lib/hass/www
./patches/static-follow-symlinks.patch
# Copy default blueprints without preserving permissions
./patches/default-blueprint-permissions.patch
# No scaring our users about not running in a docker or a venv
./patches/pythonpath-is-a-venv.patch
# Patch path to ffmpeg binary
(replaceVars ./patches/ffmpeg-path.patch {
ffmpeg = "${lib.getExe ffmpeg-headless}";
@@ -418,6 +427,7 @@ python.pkgs.buildPythonApplication rec {
"frontend"
"hue"
"mobile_app"
"radio_frequency"
];
pytestFlags = [
@@ -460,7 +470,7 @@ python.pkgs.buildPythonApplication rec {
export HOME="$TEMPDIR"
export PYTHONASYNCIODEBUG=1
# the tests require the existance of a media dir
# the tests require the existence of a media dir
mkdir "$NIX_BUILD_TOP"/media
# put ping binary into PATH, e.g. for wake_on_lan tests
+2 -2
View File
@@ -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 = "20260325.8";
version = "20260429.3";
format = "wheel";
src = fetchPypi {
@@ -17,7 +17,7 @@ buildPythonPackage (finalAttrs: {
pname = "home_assistant_frontend";
dist = "py3";
python = "py3";
hash = "sha256-+zM6D+mBsBNrx0oj99t83iJb2A8tz6OGe01LTWFvf5s=";
hash = "sha256-P4UMMscDsoX1Cdki0pKkZCcv5qQUKTIk9qVt3ZirQts=";
};
# there is nothing to strip in this package
+2 -2
View File
@@ -21,7 +21,7 @@
buildPythonPackage (finalAttrs: {
pname = "home-assistant-intents";
version = "2026.3.24";
version = "2026.5.5";
pyproject = true;
src = fetchFromGitHub {
@@ -29,7 +29,7 @@ buildPythonPackage (finalAttrs: {
repo = "intents-package";
tag = finalAttrs.version;
fetchSubmodules = true;
hash = "sha256-nwKMg5O/QnYFFviwg1vC++NoQfMpHHK0WoJaxa1xDwE=";
hash = "sha256-R6PPZSiDiFvB+lNxyuIHwMIgpQvVI0oqrucnw4jnYNU=";
};
build-system = [
@@ -0,0 +1,17 @@
diff --git a/homeassistant/util/package.py b/homeassistant/util/package.py
index 21149f43cb2..faf3cdbd31d 100644
--- a/homeassistant/util/package.py
+++ b/homeassistant/util/package.py
@@ -32,8 +32,10 @@ class InstalledPackage(TypedDict):
def is_virtual_env() -> bool:
"""Return if we run in a virtual environment."""
# Check supports venv && virtualenv
- return getattr(sys, "base_prefix", sys.prefix) != sys.prefix or hasattr(
- sys, "real_prefix"
+ return (
+ getattr(sys, "base_prefix", sys.prefix) != sys.prefix
+ or hasattr(sys, "real_prefix")
+ or "PYTHONPATH" in os.environ
)
@@ -1,54 +0,0 @@
diff --git a/homeassistant/auth/jwt_wrapper.py b/homeassistant/auth/jwt_wrapper.py
index 464df006f5f..0a9c7c4a2ec 100644
--- a/homeassistant/auth/jwt_wrapper.py
+++ b/homeassistant/auth/jwt_wrapper.py
@@ -21,7 +21,9 @@ MAX_TOKEN_SIZE = 8192
_VERIFY_KEYS = ("signature", "exp", "nbf", "iat", "aud", "iss", "sub", "jti")
_VERIFY_OPTIONS: dict[str, Any] = {f"verify_{key}": True for key in _VERIFY_KEYS} | {
- "require": []
+ "require": [],
+ "strict_aud": False,
+ "enforce_minimum_key_length": False,
}
_NO_VERIFY_OPTIONS = {f"verify_{key}": False for key in _VERIFY_KEYS}
diff --git a/homeassistant/package_constraints.txt b/homeassistant/package_constraints.txt
index b0ebcfd61d0..e4b36f04637 100644
--- a/homeassistant/package_constraints.txt
+++ b/homeassistant/package_constraints.txt
@@ -54,7 +54,7 @@ paho-mqtt==2.1.0
Pillow==12.1.1
propcache==0.4.1
psutil-home-assistant==0.0.1
-PyJWT==2.10.1
+PyJWT==2.11.0
pymicro-vad==1.0.1
PyNaCl==1.6.2
pyOpenSSL==25.3.0
diff --git a/pyproject.toml b/pyproject.toml
index 86aeed2fb1e..239780d1dd7 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -59,7 +59,7 @@ dependencies = [
"ifaddr==0.2.0",
"Jinja2==3.1.6",
"lru-dict==1.3.0",
- "PyJWT==2.10.1",
+ "PyJWT==2.11.0",
# PyJWT has loose dependency. We want the latest one.
"cryptography==46.0.5",
"Pillow==12.1.1",
diff --git a/requirements.txt b/requirements.txt
index bde0cd69e87..637ec0a9933 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -40,7 +40,7 @@ packaging>=23.1
Pillow==12.1.1
propcache==0.4.1
psutil-home-assistant==0.0.1
-PyJWT==2.10.1
+PyJWT==2.11.0
pymicro-vad==1.0.1
pyOpenSSL==25.3.0
pyspeex-noise==1.0.2
@@ -18,7 +18,7 @@
buildPythonPackage rec {
pname = "pytest-homeassistant-custom-component";
version = "0.13.325";
version = "0.13.329";
pyproject = true;
disabled = pythonOlder "3.13";
@@ -27,7 +27,7 @@ buildPythonPackage rec {
owner = "MatthewFlamm";
repo = "pytest-homeassistant-custom-component";
tag = version;
hash = "sha256-Rs3CZsQDL/gCgJzUwBEbAX56EUNugpmwxNAAQRK6Nvs=";
hash = "sha256-ZE/zBXWk/GXBQAJ94pBjrW2GTburiMqlvkcjCFi4NLU=";
};
build-system = [ setuptools ];
+2 -2
View File
@@ -10,7 +10,7 @@
buildPythonPackage rec {
pname = "homeassistant-stubs";
version = "2026.4.4";
version = "2026.5.0";
pyproject = true;
disabled = python.version != home-assistant.python.version;
@@ -19,7 +19,7 @@ buildPythonPackage rec {
owner = "KapJI";
repo = "homeassistant-stubs";
tag = version;
hash = "sha256-ysVtXtiMmXmCq39cOO2Eh+YJN+SIi+Y4Y62+psJSkWM=";
hash = "sha256-awpDHL58GAO1Ijyg+wiSe/E+3XvNpN39GcSUj1cMuVY=";
};
build-system = [
+25 -2
View File
@@ -11,13 +11,20 @@ let
abode = getComponentDeps "camera";
agent_dvr = getComponentDeps "camera";
air_quality = getComponentDeps "camera" ++ getComponentDeps "conversation";
alexa = getComponentDeps "cloud" ++ getComponentDeps "frontend" ++ getComponentDeps "stream";
alexa = map getComponentDeps [
"cloud"
"frontend"
"stream"
];
android_ip_webcam = getComponentDeps "camera";
anthropic = getComponentDeps "ai_task" ++ getComponentDeps "openai_conversation";
assist_pipeline = getComponentDeps "frontend";
automation = getComponentDeps "frontend" ++ getComponentDeps "mobile_app";
axis = getComponentDeps "camera" ++ getComponentDeps "deconz";
blink = getComponentDeps "camera";
bluetooth = getComponentDeps "switchbot";
braviatv = getComponentDeps "ssdp";
broadlink = getComponentDeps "radio_frequency";
bthome = getComponentDeps "frontend";
buienradar = getComponentDeps "camera";
camera = getComponentDeps "conversation" ++ getComponentDeps "stream";
@@ -39,7 +46,7 @@ let
];
emulated_kasa = getComponentDeps "camera" ++ getComponentDeps "conversation";
environment_canada = getComponentDeps "camera";
esphome = getComponentDeps "camera";
esphome = getComponentDeps "camera" ++ getComponentDeps "radio_frequency";
fan = getComponentDeps "conversation";
fish_audio = getComponentDeps "tts";
foscam = getComponentDeps "camera";
@@ -77,6 +84,7 @@ let
image_processing = getComponentDeps "conversation";
intelliclima = getComponentDeps "intellifire";
intent = getComponentDeps "conversation";
kitchen_sink = getComponentDeps "radio_frequency";
light = getComponentDeps "conversation";
local_file = getComponentDeps "camera";
locative = getComponentDeps "assist_pipeline" ++ getComponentDeps "camera";
@@ -87,6 +95,11 @@ let
lutron_caseta = getComponentDeps "frontend";
mailgun = getComponentDeps "assist_pipeline" ++ getComponentDeps "camera";
marytts = getComponentDeps "tts";
mastodon = map getComponentDeps [
"ffmpeg"
"stream"
"tts"
];
media_player = getComponentDeps "camera" ++ getComponentDeps "conversation";
microsoft = getComponentDeps "tts";
microsoft_face_detect = getComponentDeps "conversation";
@@ -113,6 +126,7 @@ let
open_router = getComponentDeps "ai_task";
openai_conversation = getComponentDeps "camera";
openalpr_cloud = getComponentDeps "camera" ++ getComponentDeps "conversation";
picotts = getComponentDeps "tts";
prosegur = getComponentDeps "camera";
prusalink = getComponentDeps "camera";
push = getComponentDeps "camera";
@@ -149,6 +163,7 @@ let
tts = getComponentDeps "conversation";
tuya = getComponentDeps "camera";
twilio = getComponentDeps "assist_pipeline" ++ getComponentDeps "camera";
unifi_discovery = getComponentDeps "unifiprotect";
unifiprotect = getComponentDeps "camera";
universal = getComponentDeps "camera" ++ getComponentDeps "conversation";
uvc = getComponentDeps "camera";
@@ -222,6 +237,14 @@ let
# 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"
];
roborock = [
# Translation not found for vacuum
"test_clean_segments_mixed_maps"
+1
View File
@@ -379,6 +379,7 @@ mapAliases {
pdfminer = throw "'pdfminer' has been renamed to/replaced by 'pdfminer-six'"; # Converted to throw 2025-10-29
pep257 = throw "'pep257' has been renamed to/replaced by 'pydocstyle'"; # Converted to throw 2025-10-29
percol = throw "percol has been removed because it hasn't been updated since 2019"; # added 2025-05-25
pilight = throw "'pilight' has been removed, because it is unmaintained since 2019 and the integration was removed from Home Assistant."; # added 2026-05-06
pillow-avif-plugin = throw "'pillow-avif-plugin' has been removed because 'pillow' has native avif support since 11.3"; # added 2025-11-26
pizzapi = throw "pizzapi was removed because it no longer works"; # added 2025-12-03
pkuseg = throw "'pkuseg' has been removed because it was not supported on newer versions of Python"; # added 2026-01-20
-2
View File
@@ -12528,8 +12528,6 @@ self: super: with self; {
pikepdf = callPackage ../development/python-modules/pikepdf { };
pilight = callPackage ../development/python-modules/pilight { };
pilkit = callPackage ../development/python-modules/pilkit { };
pillow = callPackage ../development/python-modules/pillow {