nixos/home-assistant: add support for amshan (#355055)

This commit is contained in:
Martin Weinelt
2025-01-13 17:15:24 +01:00
committed by GitHub
4 changed files with 89 additions and 0 deletions
@@ -708,6 +708,9 @@ in {
"zha"
"zwave"
"zwave_js"
# Custom components, maintained manually.
"amshan"
];
in {
ExecStart = escapeSystemdExecArgs ([
@@ -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 ];
};
}
@@ -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 ];
};
}
+2
View File
@@ -584,6 +584,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 { };