# I'm not using Home Assistant because many of its integrations can only be configured via the UI. # (see https://github.com/home-assistant/architecture/blob/master/adr/0010-integration-configuration.md) { config, lib, pkgs, ... }: let cfg = config.home-automation; in { options.home-automation = { zigbee2mqttPort = lib.mkOption { type = lib.types.int; }; zigbeeSerialPort = lib.mkOption { type = lib.types.str; }; }; config = { services = { zigbee2mqtt = { enable = true; settings = { serial = { port = cfg.zigbeeSerialPort; }; frontend = { port = cfg.zigbee2mqttPort; }; }; }; mosquitto = { enable = true; }; # TODO: somehow record a history of events (perhaps in Grafana?) # TODO: somehow set up some automations }; }; }