diff --git a/flake.nix b/flake.nix index 7f69641..19fb041 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 }: @@ -39,12 +42,19 @@ imports = [ hardwareConfig home-manager.nixosModules.home-manager config ]; }); - in { + in rec { + + inherit overlays; + + nixosModules.deconz = import ./services/deconz.nix; + + homeManagerModules.git = import ./home/modules/git.nix; nixosConfigurations.felix-nixos = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; modules = [ nixpkgs.nixosModules.notDetected + { home-manager.users.felschr.imports = [ homeManagerModules.git ]; } (systemModule { hostName = "felix-nixos"; hardwareConfig = ./hardware/felix-nixos.nix; @@ -57,6 +67,7 @@ system = "x86_64-linux"; modules = [ nixpkgs.nixosModules.notDetected + { home-manager.users.felschr.imports = [ homeManagerModules.git ]; } (systemModule { hostName = "pilot1"; hardwareConfig = ./hardware-configuration.nix; # TODO @@ -69,6 +80,7 @@ system = "aarch64-linux"; modules = [ nixpkgs.nixosModules.notDetected + nixosModules.deconz (systemModule { hostName = "felix-rpi4"; hardwareConfig = ./hardware/rpi4.nix; @@ -77,12 +89,6 @@ ]; }; - inherit overlays; - - nixosModules.deconz = import ./services/deconz.nix; - - homeManagerModules.git = import ./home/modules/git.nix; - } // flake-utils.lib.eachDefaultSystem (system: let pkgs = nixpkgs.legacyPackages.${system}; diff --git a/home/git.nix b/home/git.nix index 7f1ba19..2e9456e 100644 --- a/home/git.nix +++ b/home/git.nix @@ -1,8 +1,6 @@ { config, pkgs, ... }: { - imports = [ ./modules/git.nix ]; - programs.git = { enable = true; profiles = { 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..e9f62c6 100644 --- a/services/home-assistant.nix +++ b/services/home-assistant.nix @@ -1,24 +1,6 @@ -{ config, pkgs, ... }: - -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 -{ - imports = [ ./deconz.nix ]; +{ config, pkgs, pydeconz, ... }: +with pkgs; { environment.systemPackages = with pkgs; [ deconz ]; local.services.deconz = { @@ -31,7 +13,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 +27,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