diff options
Diffstat (limited to 'pkgs/servers/home-assistant')
14 files changed, 340 insertions, 13 deletions
diff --git a/pkgs/servers/home-assistant/appdaemon.nix b/pkgs/servers/home-assistant/appdaemon.nix index 167e740f2181..40c55e9f5d78 100644 --- a/pkgs/servers/home-assistant/appdaemon.nix +++ b/pkgs/servers/home-assistant/appdaemon.nix @@ -51,6 +51,7 @@ python3.pkgs.buildPythonApplication rec { meta = with lib; { description = "Sandboxed Python execution environment for writing automation apps for Home Assistant"; + mainProgram = "appdaemon"; homepage = "https://github.com/AppDaemon/appdaemon"; changelog = "https://github.com/AppDaemon/appdaemon/blob/${version}/docs/HISTORY.md"; license = licenses.mit; diff --git a/pkgs/servers/home-assistant/cli.nix b/pkgs/servers/home-assistant/cli.nix index 32f17178fb33..b567cb0fe536 100644 --- a/pkgs/servers/home-assistant/cli.nix +++ b/pkgs/servers/home-assistant/cli.nix @@ -55,6 +55,7 @@ python3.pkgs.buildPythonApplication rec { meta = with lib; { description = "Command-line tool for Home Assistant"; + mainProgram = "hass-cli"; homepage = "https://github.com/home-assistant-ecosystem/home-assistant-cli"; changelog = "https://github.com/home-assistant-ecosystem/home-assistant-cli/releases/tag/${version}"; license = licenses.asl20; diff --git a/pkgs/servers/home-assistant/component-packages.nix b/pkgs/servers/home-assistant/component-packages.nix index 78fbdbadeae2..ebed5dab1989 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.3.0"; + version = "2024.3.3"; components = { "3_day_blinds" = ps: with ps; [ ]; @@ -2430,6 +2430,7 @@ "joaoapps_join" = ps: with ps; [ ]; # missing inputs: python-join-api "juicenet" = ps: with ps; [ + python-juicenet ]; "justnimbus" = ps: with ps; [ justnimbus @@ -4025,12 +4026,13 @@ aiohttp-cors aiohttp-fast-url-dispatcher aiohttp-zlib-ng + aioraven fnv-hash-fast psutil-home-assistant pyserial pyudev sqlalchemy - ]; # missing inputs: aioraven + ]; "rainmachine" = ps: with ps; [ regenmaschine ]; @@ -6395,6 +6397,7 @@ "radiotherm" "rainbird" "rainforest_eagle" + "rainforest_raven" "rainmachine" "random" "rapt_ble" diff --git a/pkgs/servers/home-assistant/custom-components/better_thermostat/default.nix b/pkgs/servers/home-assistant/custom-components/better_thermostat/default.nix index a4a514b2693c..d61d1850e13b 100644 --- a/pkgs/servers/home-assistant/custom-components/better_thermostat/default.nix +++ b/pkgs/servers/home-assistant/custom-components/better_thermostat/default.nix @@ -19,6 +19,6 @@ buildHomeAssistantComponent rec { "Smart TRV control integrates room-temp sensors, window/door sensors, weather forecasts, and ambient probes for efficient heating and calibration, enhancing energy savings and comfort."; homepage = "https://better-thermostat.org/"; maintainers = with maintainers; [ mguentner ]; - license = licenses.agpl3; + license = licenses.agpl3Only; }; } diff --git a/pkgs/servers/home-assistant/custom-components/default.nix b/pkgs/servers/home-assistant/custom-components/default.nix index 81e708b637bc..fb558e343220 100644 --- a/pkgs/servers/home-assistant/custom-components/default.nix +++ b/pkgs/servers/home-assistant/custom-components/default.nix @@ -10,6 +10,10 @@ emporia_vue = callPackage ./emporia_vue {}; + epex_spot = callPackage ./epex_spot {}; + + frigate = callPackage ./frigate {}; + govee-lan = callPackage ./govee-lan {}; gpio = callPackage ./gpio {}; @@ -18,7 +22,13 @@ miele = callPackage ./miele {}; + moonraker = callPackage ./moonraker {}; + + omnik_inverter = callPackage ./omnik_inverter {}; + prometheus_sensor = callPackage ./prometheus_sensor {}; + sensi = callPackage ./sensi {}; + waste_collection_schedule = callPackage ./waste_collection_schedule {}; } diff --git a/pkgs/servers/home-assistant/custom-components/epex_spot/default.nix b/pkgs/servers/home-assistant/custom-components/epex_spot/default.nix new file mode 100644 index 000000000000..e655a0d788d9 --- /dev/null +++ b/pkgs/servers/home-assistant/custom-components/epex_spot/default.nix @@ -0,0 +1,39 @@ +{ lib +, fetchFromGitHub +, buildHomeAssistantComponent +, beautifulsoup4 +}: + +buildHomeAssistantComponent rec { + owner = "mampfes"; + domain = "epex_spot"; + version = "2.3.5"; + + src = fetchFromGitHub { + owner = "mampfes"; + repo = "ha_epex_spot"; + rev = "refs/tags/${version}"; + hash = "sha256-WmPsFfQm8ChEr41XVgKi2BGwta5aKH9GDz4iIfTAPK4="; + }; + + propagatedBuildInputs = [ + beautifulsoup4 + ]; + + postPatch = '' + substituteInPlace custom_components/epex_spot/manifest.json --replace-fail 'bs4' 'beautifulsoup4' + ''; + + #skip phases without activity + dontConfigure = true; + doCheck = false; + dontBuild = true; + + meta = with lib; { + changelog = "https://github.com/mampfes/ha_epex_spot/releases/tag/${version}"; + description = "This component adds electricity prices from stock exchange EPEX Spot to Home Assistant"; + homepage = "https://github.com/mampfes/ha_epex_spot"; + maintainers = with maintainers; [ _9R ]; + license = licenses.mit; + }; +} diff --git a/pkgs/servers/home-assistant/custom-components/frigate/default.nix b/pkgs/servers/home-assistant/custom-components/frigate/default.nix new file mode 100644 index 000000000000..0065c94b6ebc --- /dev/null +++ b/pkgs/servers/home-assistant/custom-components/frigate/default.nix @@ -0,0 +1,32 @@ +{ lib +, fetchFromGitHub +, buildHomeAssistantComponent +, pytz +}: + +buildHomeAssistantComponent rec { + owner = "presto8"; + domain = "frigate"; + version = "5.1.0"; + + src = fetchFromGitHub { + owner = "blakeblackshear"; + repo = "frigate-hass-integration"; + rev = "v${version}"; + hash = "sha256-6W9U0Q0wW36RsErvtFQo1sc1AF7js6MMHxgMQcDFexw="; + }; + + propagatedBuildInputs = [ + pytz + ]; + + dontBuild = true; + + meta = with lib; { + description = "Provides Home Assistant integration to interface with a separately running Frigate service"; + homepage = "https://github.com/blakeblackshear/frigate-hass-integration"; + changelog = "https://github.com/blakeblackshear/frigate-hass-integration/releases/tag/v${version}"; + maintainers = with maintainers; [ presto8 ]; + license = licenses.mit; + }; +} diff --git a/pkgs/servers/home-assistant/custom-components/moonraker/default.nix b/pkgs/servers/home-assistant/custom-components/moonraker/default.nix new file mode 100644 index 000000000000..660847ddd2e3 --- /dev/null +++ b/pkgs/servers/home-assistant/custom-components/moonraker/default.nix @@ -0,0 +1,35 @@ +{ lib +, fetchFromGitHub +, buildHomeAssistantComponent +, moonraker-api +}: + +buildHomeAssistantComponent rec { + owner = "marcolivierarsenault"; + domain = "moonraker"; + version = "1.1.1"; + + src = fetchFromGitHub { + owner = "marcolivierarsenault"; + repo = "moonraker-home-assistant"; + rev = "refs/tags/${version}"; + hash = "sha256-jxMi4hmSVBU9ztoHxFINoJo8klirfo6j7gWty7FXFkQ="; + }; + + propagatedBuildInputs = [ + moonraker-api + ]; + + #skip phases with nothing to do + dontConfigure = true; + dontBuild = true; + doCheck = false; + + meta = with lib; { + changelog = "https://github.com/marcolivierarsenault/moonraker-home-assistant/releases/tag/${version}"; + description = "Custom integration for Moonraker and Klipper in Home Assistant"; + homepage = "https://github.com/marcolivierarsenault/moonraker-home-assistant"; + maintainers = with maintainers; [ _9R ]; + license = licenses.mit; + }; +} diff --git a/pkgs/servers/home-assistant/custom-components/omnik_inverter/default.nix b/pkgs/servers/home-assistant/custom-components/omnik_inverter/default.nix new file mode 100644 index 000000000000..a0a33f644bac --- /dev/null +++ b/pkgs/servers/home-assistant/custom-components/omnik_inverter/default.nix @@ -0,0 +1,32 @@ +{ lib +, fetchFromGitHub +, buildHomeAssistantComponent +, omnikinverter +}: + +buildHomeAssistantComponent rec { + owner = "robbinjanssen"; + domain = "omnik_inverter"; + version = "2.6.4"; + + src = fetchFromGitHub { + owner = "robbinjanssen"; + repo = "home-assistant-omnik-inverter"; + rev = "refs/tags/v${version}"; + hash = "sha256-O1NxT7u27xLydPqEqH72laU0tlYVrMPo0TwWIVNJ+0Q="; + }; + + propagatedBuildInputs = [ + omnikinverter + ]; + + doCheck = false; # no tests + + meta = with lib; { + changelog = "https://github.com/robbinjanssen/home-assistant-omnik-inverter/releases/tag/v${version}"; + description = "The Omnik Inverter integration will scrape data from an Omnik inverter connected to your local network"; + homepage = "https://github.com/robbinjanssen/home-assistant-omnik-inverter"; + maintainers = with maintainers; [ _9R ]; + license = licenses.mit; + }; +} diff --git a/pkgs/servers/home-assistant/custom-components/sensi/default.nix b/pkgs/servers/home-assistant/custom-components/sensi/default.nix new file mode 100644 index 000000000000..f8293518a51e --- /dev/null +++ b/pkgs/servers/home-assistant/custom-components/sensi/default.nix @@ -0,0 +1,30 @@ +{ + lib, + fetchFromGitHub, + buildHomeAssistantComponent, + websockets, +}: +buildHomeAssistantComponent rec { + owner = "iprak"; + domain = "sensi"; + version = "1.3.4"; + + src = fetchFromGitHub { + inherit owner; + repo = domain; + rev = "refs/tags/v${version}"; + hash = "sha256-NbK9h0nvcWNSwsc04YgjqKl+InijxftPJ3SLCQF/Hns="; + }; + + propagatedBuildInputs = [ + websockets + ]; + + meta = with lib; { + changelog = "https://github.com/iprak/sensi/releases/tag/v${version}"; + description = "HomeAssistant integration for Sensi thermostat"; + homepage = "https://github.com/iprak/sensi"; + maintainers = with maintainers; [ ivan ]; + license = licenses.mit; + }; +} diff --git a/pkgs/servers/home-assistant/custom-lovelace-modules/mini-graph-card/default.nix b/pkgs/servers/home-assistant/custom-lovelace-modules/mini-graph-card/default.nix index 68ec48997d5d..1846339bd1e4 100644 --- a/pkgs/servers/home-assistant/custom-lovelace-modules/mini-graph-card/default.nix +++ b/pkgs/servers/home-assistant/custom-lovelace-modules/mini-graph-card/default.nix @@ -5,16 +5,16 @@ buildNpmPackage rec { pname = "mini-graph-card"; - version = "0.12.0"; + version = "0.12.1"; src = fetchFromGitHub { owner = "kalkih"; repo = "mini-graph-card"; rev = "refs/tags/v${version}"; - hash = "sha256-o87c1tqZAQDlzxsxVdPZj1ei37nx7dVIZDzoQIUkmPk="; + hash = "sha256-cDgfAfS4U3ihN808KPcG+jEQR+S2Q1M5SPqOkkYwYkI="; }; - npmDepsHash = "sha256-4GgFlSpqGxY7TCgyovqMSoLUin46bKN8tUQTdjv1eog="; + npmDepsHash = "sha256-v+DqUAMNtDruR8E0sy7uAu3jndZUHkOw2xKtpY163R8="; installPhase = '' runHook preInstall diff --git a/pkgs/servers/home-assistant/default.nix b/pkgs/servers/home-assistant/default.nix index 1a41629d92c7..797b2ecae5f6 100644 --- a/pkgs/servers/home-assistant/default.nix +++ b/pkgs/servers/home-assistant/default.nix @@ -30,6 +30,28 @@ let # Override the version of some packages pinned in Home Assistant's setup.py and requirements_all.txt (self: super: { + aioaladdinconnect = super.aioaladdinconnect.overridePythonAttrs (oldAttrs: rec { + version = "0.1.58"; + src = fetchPypi { + pname = "AIOAladdinConnect"; + inherit version; + hash = "sha256-ymynaOKvnqqHIEuQc+5CagsaH5cHnQit8ileoUO6G+I="; + }; + }); + + aioelectricitymaps = super.aioelectricitymaps.overridePythonAttrs (oldAttrs: rec { + version = "0.4.0"; + src = fetchFromGitHub { + owner = "jpbede"; + repo = "aioelectricitymaps"; + rev = "refs/tags/v${version}"; + hash = "sha256-q06B40c0uvSuzH/3YCoxg4p9aNIOPrphsoESktF+B14="; + }; + nativeCheckInputs = with self; [ + aresponses + ]; + }); + aiogithubapi = super.aiogithubapi.overridePythonAttrs (oldAttrs: rec { version = "22.10.1"; src = fetchFromGitHub { @@ -112,12 +134,36 @@ let ]; }); + bluecurrent-api = super.bluecurrent-api.overridePythonAttrs (oldAttrs: rec { + version = "1.0.6"; + src = fetchPypi { + pname = "bluecurrent-api"; + inherit version; + hash = "sha256-XHVdtkiG0ff/OY8g+W5iur7OAyhhk1UGA+XUfB2L8/o="; + }; + build-system = oldAttrs.build-system ++ (with self; [ + pythonRelaxDepsHook + ]); + pythonRemoveDeps = [ "asyncio" ]; + }); + debugpy = super.debugpy.overridePythonAttrs (oldAttrs: { # tests are deadlocking too often # https://github.com/NixOS/nixpkgs/issues/262000 doCheck = false; }); + dsmr-parser = super.dsmr-parser.overridePythonAttrs (oldAttrs: rec { + version = "1.3.1"; + src = fetchFromGitHub { + owner = "ndokter"; + repo = "dsmr_parser"; + rev = "refs/tags/v${version}"; + hash = "sha256-PULrKRHrCuDFZcR+5ha0PjkN438QFgf2CrpYhKIqYTs="; + }; + doCheck = false; + }); + geojson = super.geojson.overridePythonAttrs (oldAttrs: rec { version = "2.5.0"; src = fetchFromGitHub { @@ -128,6 +174,19 @@ let doCheck = false; }); + gspread = super.gspread.overridePythonAttrs (oldAttrs: rec { + version = "5.12.4"; + src = fetchFromGitHub { + owner = "burnash"; + repo = "gspread"; + rev = "refs/tags/v${version}"; + hash = "sha256-i+QbnF0Y/kUMvt91Wzb8wseO/1rZn9xzeA5BWg1haks="; + }; + dependencies = with self; [ + requests + ]; + }); + ha-av = super.av.overridePythonAttrs (oldAttrs: rec { pname = "ha-av"; version = "10.1.1"; @@ -167,6 +226,25 @@ let }; }); + jaraco-collections = super.jaraco-collections.overridePythonAttrs (oldAttrs: rec { + version = "3.4.0"; + src = fetchPypi { + pname = "jaraco.collections"; + inherit version; + hash = "sha256-NE0Udp1xbnSWr4eaxxs8br3UarxkvZ7CHRUkg2WqOsk="; + }; + }); + + lmcloud = super.lmcloud.overridePythonAttrs (oldAttrs: rec { + version = "0.4.35"; + src = fetchFromGitHub { + owner = "zweckj"; + repo = "lmcloud"; + rev = "refs/tags/v${version}"; + hash = "sha256-TUve21yamtEmEceK/V1w7IZjnMgKConMfSY/GlqFpp8="; + }; + }); + lxml = super.lxml.overridePythonAttrs (oldAttrs: rec { version = "5.1.0"; pyprojet = true; @@ -283,6 +361,30 @@ let }; }); + python-roborock = super.python-roborock.overridePythonAttrs (oldAttrs: rec { + version = "0.40.0"; + src = fetchFromGitHub { + owner = "humbertogontijo"; + repo = "python-roborock"; + rev = "refs/tags/v${version}"; + hash = "sha256-H4xwgulNLs3R1Q5GhvQffpAZ1CWXZUJAja8BskW+YJk="; + }; + postPatch = '' + substituteInPlace pyproject.toml \ + --replace-fail "poetry-core==" "poetry-core>=" + ''; + }); + + pytibber = super.pytibber.overridePythonAttrs (oldAttrs: rec { + version = "0.28.2"; + src = fetchFromGitHub { + owner = "Danielhiversen"; + repo = "pyTibber"; + rev = "refs/tags/${version}"; + hash = "sha256-vi5f4V0nPb9K3nwdmwMDoNE85Or6haOWjMY4d/2Fj2s="; + }; + }); + pykaleidescape = super.pykaleidescape.overridePythonAttrs (oldAttrs: rec { version = "1.0.1"; src = fetchFromGitHub { @@ -292,6 +394,16 @@ let }; }); + pyoctoprintapi = super.pyoctoprintapi.overridePythonAttrs (oldAttrs: rec { + version = "0.1.12"; + src = fetchFromGitHub { + owner = "rfleming71"; + repo = "pyoctoprintapi"; + rev = "refs/tags/v${version}"; + hash = "sha256-Jf/zYnBHVl3TYxFy9Chy6qNH/eCroZkmUOEWfd62RIo="; + }; + }); + pysnooz = super.pysnooz.overridePythonAttrs (oldAttrs: rec { version = "0.8.6"; src = fetchFromGitHub { @@ -312,6 +424,36 @@ let }; }); + pywaze = super.pywaze.overridePythonAttrs (oldAttrs: rec { + version = "0.5.1"; + src = fetchFromGitHub { + owner = "eifinger"; + repo = "pywaze"; + rev = "refs/tags/v${version}"; + hash = "sha256-r7ROEdgHdjXkveVUbuALHtwCX4IO0lwx9Zo3u6R9I58="; + }; + }); + + sqlalchemy = super.sqlalchemy.overridePythonAttrs (oldAttrs: rec { + version = "2.0.27"; + src = fetchFromGitHub { + owner = "sqlalchemy"; + repo = "sqlalchemy"; + rev = "refs/tags/rel_${lib.replaceStrings [ "." ] [ "_" ] version}"; + hash = "sha256-6R+A7rVq1olRXj1wMolHhEq418bpr5rsmH8RjxajmmQ="; + }; + }); + + tesla-powerwall = super.tesla-powerwall.overridePythonAttrs (oldAttrs: rec { + version = "0.5.1"; + src = fetchFromGitHub { + owner = "jrester"; + repo = "tesla_powerwall"; + rev = "refs/tags/v${version}"; + hash = "sha256-if/FCfxAB48WGXZOMvCtdSOW2FWO43OrlcHZbXIPmGE="; + }; + }); + versioningit = super.versioningit.overridePythonAttrs (oldAttrs: rec { version = "2.2.0"; src = fetchPypi { @@ -399,7 +541,7 @@ let extraBuildInputs = extraPackages python.pkgs; # Don't forget to run parse-requirements.py after updating - hassVersion = "2024.3.0"; + hassVersion = "2024.3.3"; in python.pkgs.buildPythonApplication rec { pname = "homeassistant"; @@ -417,13 +559,13 @@ in python.pkgs.buildPythonApplication rec { owner = "home-assistant"; repo = "core"; rev = "refs/tags/${version}"; - hash = "sha256-/DCE2IHdS+oImpzwIaFgXotAsoiPPbe3X3HG7RXbv9g="; + hash = "sha256-EutnNqENt1MTmbMe9vtSM+bM5PzvjsfMhpkwXdxWoeI="; }; # Secondary source is pypi sdist for translations sdist = fetchPypi { inherit pname version; - hash = "sha256-G9M1WV+s4zu9BY10RWmJ71ghafAOHMjnCR6BOlggguM="; + hash = "sha256-9i8snvozDKgvcEQfk9KTYfqHxQbDBluvArXYVVnNvnA="; }; nativeBuildInputs = with python.pkgs; [ @@ -436,6 +578,7 @@ in python.pkgs.buildPythonApplication rec { "bcrypt" "ciso8601" "cryptography" + "hass-nabucasa" "httpx" "orjson" "pyopenssl" @@ -482,6 +625,7 @@ in python.pkgs.buildPythonApplication rec { certifi ciso8601 cryptography + hass-nabucasa httpx home-assistant-bluetooth ifaddr diff --git a/pkgs/servers/home-assistant/frontend.nix b/pkgs/servers/home-assistant/frontend.nix index 1795e8daa7ba..ec699e83164a 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 = "20240306.0"; + version = "20240307.0"; format = "wheel"; src = fetchPypi { @@ -12,7 +12,7 @@ buildPythonPackage rec { pname = "home_assistant_frontend"; dist = "py3"; python = "py3"; - hash = "sha256-eDuJC23PJbjaKC9TBCLg5ML3XR6admKrT9RVgfUQCw8="; + hash = "sha256-Wy5TzJ6+Dbkk51TMt9zGIfjI7gMrT4mK0IIRnl4byVE="; }; # there is nothing to strip in this package diff --git a/pkgs/servers/home-assistant/intents.nix b/pkgs/servers/home-assistant/intents.nix index ddb576795880..d0c77694413c 100644 --- a/pkgs/servers/home-assistant/intents.nix +++ b/pkgs/servers/home-assistant/intents.nix @@ -9,14 +9,14 @@ buildPythonPackage rec { pname = "home-assistant-intents"; - version = "2024.2.28"; + version = "2024.3.12"; format = "pyproject"; disabled = pythonOlder "3.9"; src = fetchPypi { inherit pname version; - hash = "sha256-EmnaYc+L1PHOv6M7odYDl+UBZkLJRtP86xPoqdbuOqU="; + hash = "sha256-9oMn5ogHcuopAnXgATu9xlBBBMeWJ9RT5C//xJ5FOBI="; }; postPatch = '' |