diff --git a/pkgs/development/python-modules/knocki/default.nix b/pkgs/development/python-modules/knocki/default.nix new file mode 100644 index 000000000000..b37f50cd5ac8 --- /dev/null +++ b/pkgs/development/python-modules/knocki/default.nix @@ -0,0 +1,60 @@ +{ + aiohttp, + aioresponses, + lib, + buildPythonPackage, + fetchFromGitHub, + mashumaro, + orjson, + poetry-core, + pythonOlder, + pytestCheckHook, + pytest-aiohttp, + syrupy, + yarl, +}: + +buildPythonPackage rec { + pname = "knocki"; + version = "0.3.1"; + pyproject = true; + + disabled = pythonOlder "3.11"; + + src = fetchFromGitHub { + owner = "swan-solutions"; + repo = "knocki-homeassistant"; + rev = "v${version}"; + hash = "sha256-tWtANsujAcdIddoUBrKWIPfiPzDqWhW94Goz0QQ2BfE="; + }; + + postPatch = '' + substituteInPlace pyproject.toml \ + --replace-fail "addopts = \"--cov\"" "" + ''; + + build-system = [ poetry-core ]; + + dependencies = [ + aiohttp + mashumaro + orjson + yarl + ]; + + nativeCheckInputs = [ + aioresponses + pytestCheckHook + pytest-aiohttp + syrupy + ]; + + pythonImportsCheck = [ "knocki" ]; + + meta = with lib; { + description = "Asynchronous Python client for Knocki vibration / door sensors"; + homepage = "https://github.com/swan-solutions/knocki-homeassistant"; + license = licenses.mit; + maintainers = with maintainers; [ mindstorms6 ]; + }; +} diff --git a/pkgs/servers/home-assistant/component-packages.nix b/pkgs/servers/home-assistant/component-packages.nix index 8593acd6bc5d..77e03da4ae00 100644 --- a/pkgs/servers/home-assistant/component-packages.nix +++ b/pkgs/servers/home-assistant/component-packages.nix @@ -2274,7 +2274,8 @@ pykmtronic ]; "knocki" = ps: with ps; [ - ]; # missing inputs: knocki + knocki + ]; "knx" = ps: with ps; [ fnv-hash-fast home-assistant-frontend @@ -5581,6 +5582,7 @@ "kira" "kitchen_sink" "kmtronic" + "knocki" "knx" "kodi" "konnected" diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 58df34a3083d..68047d862928 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -6564,6 +6564,8 @@ self: super: with self; { kneed = callPackage ../development/python-modules/kneed { }; + knocki = callPackage ../development/python-modules/knocki { }; + knx-frontend = callPackage ../development/python-modules/knx-frontend { }; kombu = callPackage ../development/python-modules/kombu { };