From 3978e1f7b149f0416e49efe1e546eda172ff2ae3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Forsman?= Date: Tue, 1 Oct 2024 19:47:59 +0200 Subject: [PATCH 1/3] python3Packages.amshan: init at 2.1.1 https://github.com/toreamun/amshan --- .../python-modules/amshan/default.nix | 50 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 52 insertions(+) create mode 100644 pkgs/development/python-modules/amshan/default.nix diff --git a/pkgs/development/python-modules/amshan/default.nix b/pkgs/development/python-modules/amshan/default.nix new file mode 100644 index 000000000000..82eaa056d876 --- /dev/null +++ b/pkgs/development/python-modules/amshan/default.nix @@ -0,0 +1,50 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + setuptools, + construct, + paho-mqtt, + pyserial-asyncio, + pytestCheckHook, +}: + +buildPythonPackage rec { + pname = "amshan"; + version = "2.1.1"; + pyproject = true; + + src = fetchFromGitHub { + owner = "toreamun"; + repo = "amshan"; + rev = version; + hash = "sha256-aw0wTqb2s84STVUN55h6L926pXwaMSppBCfXZVb87w0="; + }; + + build-system = [ + setuptools + ]; + + dependencies = [ + construct + paho-mqtt + pyserial-asyncio + ]; + + nativeCheckInputs = [ + pytestCheckHook + ]; + + pythonImportsCheck = [ "han" ]; + + meta = { + description = "Decode smart power meter data stream of Cosem HDLC frames used by MBUS"; + longDescription = '' + The package has special support of formats for Aidon, Kaifa and Kamstrup + meters used in Norway and Sweden (AMS HAN). + ''; + homepage = "https://github.com/toreamun/amshan"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ bjornfor ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 851b3f9c7d5b..b99f8d5a12d1 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -588,6 +588,8 @@ self: super: with self; { amqtt = callPackage ../development/python-modules/amqtt { }; + amshan = callPackage ../development/python-modules/amshan { }; + anchor-kr = callPackage ../development/python-modules/anchor-kr { }; ancp-bids = callPackage ../development/python-modules/ancp-bids { }; From f194e743c271619fa2149b8999f7ad71175756d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Forsman?= Date: Tue, 1 Oct 2024 19:42:01 +0200 Subject: [PATCH 2/3] home-assistant-custom-components.amshan: init at 2024.12.0 --- .../custom-components/amshan/package.nix | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 pkgs/servers/home-assistant/custom-components/amshan/package.nix diff --git a/pkgs/servers/home-assistant/custom-components/amshan/package.nix b/pkgs/servers/home-assistant/custom-components/amshan/package.nix new file mode 100644 index 000000000000..60e55f3edad7 --- /dev/null +++ b/pkgs/servers/home-assistant/custom-components/amshan/package.nix @@ -0,0 +1,34 @@ +{ + lib, + fetchFromGitHub, + buildHomeAssistantComponent, + amshan, +}: + +buildHomeAssistantComponent rec { + owner = "toreamun"; + domain = "amshan"; + version = "2024.12.0"; + + src = fetchFromGitHub { + owner = "toreamun"; + repo = "amshan-homeassistant"; + tag = version; + hash = "sha256-L7TGdUjDvIRP9dHIkng9GYwilmRzhGbUK6ivx8PVtQ4="; + }; + + dependencies = [ + amshan + ]; + + meta = { + description = "Home Assistant integration for electricity meters (AMS/HAN/P1)"; + longDescription = '' + The integration supports both streaming (serial port / TCP/IP) and MQTT + (Tibber Pulse, energyintelligence.se etc.). + ''; + homepage = "https://github.com/toreamun/amshan-homeassistant"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ bjornfor ]; + }; +} From bbcb27714f0871129156aae99dd427da97604b30 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Forsman?= Date: Tue, 1 Oct 2024 21:28:37 +0200 Subject: [PATCH 3/3] nixos/home-assistant: allow amshan to access serial ports Separate it from the first part of the list, because that part is updated mechanically. --- nixos/modules/services/home-automation/home-assistant.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/nixos/modules/services/home-automation/home-assistant.nix b/nixos/modules/services/home-automation/home-assistant.nix index 2e91ee55f95e..338c61f89677 100644 --- a/nixos/modules/services/home-automation/home-assistant.nix +++ b/nixos/modules/services/home-automation/home-assistant.nix @@ -708,6 +708,9 @@ in { "zha" "zwave" "zwave_js" + + # Custom components, maintained manually. + "amshan" ]; in { ExecStart = escapeSystemdExecArgs ([