63 lines
1.3 KiB
Nix
63 lines
1.3 KiB
Nix
|
{
|
||
|
lib,
|
||
|
config,
|
||
|
options,
|
||
|
pkgs,
|
||
|
...
|
||
|
}:
|
||
|
with lib; let
|
||
|
cfg = config.pub-solar.home-assistant;
|
||
|
in {
|
||
|
imports = [
|
||
|
./home-assistant.nix
|
||
|
./mqtt.nix
|
||
|
./zigbee.nix
|
||
|
];
|
||
|
|
||
|
options.pub-solar.home-assistant = {
|
||
|
enable = mkOption {
|
||
|
description = "Control your home";
|
||
|
type = types.bool;
|
||
|
default = false;
|
||
|
};
|
||
|
|
||
|
config = options.services.home-assistant.config;
|
||
|
extraComponents = options.services.home-assistant.extraComponents;
|
||
|
extraPackages = options.services.home-assistant.extraPackages;
|
||
|
|
||
|
mqtt = {
|
||
|
enable = mkOption {
|
||
|
description = "use mqtt";
|
||
|
type = types.bool;
|
||
|
default = true;
|
||
|
};
|
||
|
|
||
|
users = mkOption {
|
||
|
description = "mqtt users";
|
||
|
# type = types.AttrSet;
|
||
|
default = null;
|
||
|
};
|
||
|
};
|
||
|
|
||
|
zigbee2mqtt = {
|
||
|
enable = mkOption {
|
||
|
description = "Enable zigbee2mqtt";
|
||
|
type = types.bool;
|
||
|
default = false;
|
||
|
};
|
||
|
|
||
|
device = mkOption {
|
||
|
description = "Device to connect to zigbee network";
|
||
|
type = types.nullOr types.str;
|
||
|
default = null;
|
||
|
};
|
||
|
|
||
|
adapter = mkOption {
|
||
|
description = "Specify zigbee adapter type";
|
||
|
type = types.nullOr types.str;
|
||
|
default = null;
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
}
|