config/modules/services/hass/default.nix

87 lines
1.9 KiB
Nix

{
config,
lib,
myData,
...
}:
let
cfg = config.mj.services.hass;
in
{
options.mj.services.hass = with lib.types; {
enable = lib.mkEnableOption "Enable home-assistant";
};
config = lib.mkIf cfg.enable {
mj.services.friendlyport.ports = [
{
subnets = [ myData.subnets.tailscale.cidr ];
tcp = [ myData.ports.hass ];
}
];
environment.systemPackages = [ ];
services = {
home-assistant = {
enable = true;
extraComponents = [
"met"
"radio_browser"
# my stuff
"yamaha_musiccast"
"dlna_dmr"
"shelly"
"webostv"
"daikin"
"ipp"
];
config = {
default_config = { };
http = {
use_x_forwarded_for = true;
trusted_proxies = [
"127.0.0.1"
"${myData.hosts."vno1-oh2.servers.jakst".jakstIP}"
];
};
#homeassistant = {
# auth_providers = [
# {
# type = "trusted_networks";
# trusted_networks = myData.subnets.motiejus.cidrs;
# }
# ];
#};
wake_on_lan = { };
# requires a restore from backup
"automation ui" = "!include automations.yaml";
"automation yaml" = [
{
alias = "Turn On Living Room TV with WakeOnLan";
trigger = [
{
platform = "webostv.turn_on";
entity_id = "media_player.lg_webos_smart_tv";
}
];
action = [
{
service = "wake_on_lan.send_magic_packet";
data = {
mac = "74:e6:b8:4c:fb:b7";
};
}
];
}
];
};
};
};
};
}