diff --git a/flake.nix b/flake.nix index 7f69641..c8b0377 100644 --- a/flake.nix +++ b/flake.nix @@ -22,6 +22,9 @@ overlays = { deconz = self: super: { deconz = self.qt5.callPackage ./pkgs/deconz { }; + # This is the path so that the correct python deps and versions can be used + # with python{version}Packages.callPackage pydeconz { } + pydeconz = ./pkgs/pydeconz; }; }; systemModule = { hostName, hardwareConfig, config }: diff --git a/pkgs/pydeconz/default.nix b/pkgs/pydeconz/default.nix new file mode 100644 index 0000000..1652e30 --- /dev/null +++ b/pkgs/pydeconz/default.nix @@ -0,0 +1,15 @@ +{ buildPythonPackage, fetchPypi, setuptools, aiohttp }: + +buildPythonPackage rec { + pname = "pydeconz"; + version = "73"; + + src = fetchPypi { + inherit pname version; + sha256 = "Lm7J0p2dp2gyesDpgN0WGpxPewC1z/IUy0CDEqofQGA="; + }; + + propagateBuildInputs = [ setuptools ]; + buildInputs = [ aiohttp ]; + doCheck = false; +} diff --git a/services/home-assistant.nix b/services/home-assistant.nix index 3a68bb9..3190838 100644 --- a/services/home-assistant.nix +++ b/services/home-assistant.nix @@ -1,22 +1,6 @@ -{ config, pkgs, ... }: +{ config, pkgs, pydeconz, ... }: -with pkgs; -let - pydeconz = python3.pkgs.buildPythonPackage rec { - pname = "pydeconz"; - version = "73"; - - src = python3.pkgs.fetchPypi { - inherit pname version; - sha256 = "Lm7J0p2dp2gyesDpgN0WGpxPewC1z/IUy0CDEqofQGA="; - }; - - propagateBuildInputs = with python3Packages; [ setuptools ]; - buildInputs = with python3Packages; [ aiohttp ]; - doCheck = false; - }; -in -{ +with pkgs; { imports = [ ./deconz.nix ]; environment.systemPackages = with pkgs; [ deconz ]; @@ -31,7 +15,7 @@ in services.home-assistant = { enable = true; package = home-assistant.override { - extraPackages = ps: with ps; [ pydeconz ]; + extraPackages = ps: [ (ps.callPackage pydeconz { }) ]; }; openFirewall = true; config = { @@ -45,22 +29,22 @@ in external_url = "https://home.felschr.com"; internal_url = "http://192.168.86.233:8123"; }; - default_config = {}; - config = {}; - frontend = {}; - mobile_app = {}; - discovery = {}; - zeroconf = {}; - ssdp = {}; - shopping_list = {}; + default_config = { }; + config = { }; + frontend = { }; + mobile_app = { }; + discovery = { }; + zeroconf = { }; + ssdp = { }; + shopping_list = { }; owntracks = { mqtt_topic = "owntracks/#"; - secret = "!secret owntracks_secret"; + secret = "!secret owntracks_secret"; }; deconz = { host = "localhost"; port = 8080; - api_key = "!secret deconz_apikey"; + api_key = "!secret deconz_apikey"; }; }; # configWritable = true; # doesn't work atm