aboutsummaryrefslogtreecommitdiff
path: root/nixos/machine/spt-mox.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixos/machine/spt-mox.nix')
-rw-r--r--nixos/machine/spt-mox.nix155
1 files changed, 1 insertions, 154 deletions
diff --git a/nixos/machine/spt-mox.nix b/nixos/machine/spt-mox.nix
index 87d720f..57573ef 100644
--- a/nixos/machine/spt-mox.nix
+++ b/nixos/machine/spt-mox.nix
@@ -6,6 +6,7 @@ with lib;
{
config = {
+ cynerd.home-assistant = true;
environment.systemPackages = with pkgs; [
mosquitto
@@ -62,160 +63,6 @@ with lib;
dhcpcd.allowInterfaces = [ "brlan" ];
};
- services.mosquitto = {
- enable = true;
- listeners = [
- {
- users = {
- cynerd = {
- acl = ["readwrite #"];
- passwordFile = "/run/secrets/mosquitto.cynerd.pass";
- };
- bigclown = {
- acl = ["readwrite bigclown/#"];
- passwordFile = "/run/secrets/mosquitto.bigclown.pass";
- };
- homeassistant = {
- acl = [
- "readwrite bigclown/#"
- "readwrite homeassistant/#"
- ];
- passwordFile = "/run/secrets/mosquitto.homeassistant.pass";
- };
- };
- }
- ];
- };
- networking.firewall.allowedTCPPorts = [1883];
-
- services.bigclown = {
- gateway = {
- enable = true;
- device = "/dev/ttyUSB0";
- environmentFile = "/run/secrets/bigclown.env";
- baseTopicPrefix = "bigclown/";
- mqtt = {
- username = "bigclown";
- password = "@PASS_MQTT@";
- };
- };
- mqtt2influxdb = {
- enable = true;
- environmentFile = "/run/secrets/bigclown.env";
- mqtt = {
- username = "bigclown";
- password = "@PASS_MQTT@";
- };
- influxdb = {
- host = "cynerd.cz";
- database = "bigclown";
- username = "bigclown";
- password = "@PASS_INFLUXDB@";
- ssl = true;
- verify_ssl = false;
- };
- points = [
- {
- measurement = "temperature";
- topic = "bigclown/node/+/thermometer/+/temperature";
- fields.value = "$.payload";
- tags = {
- id = "$.topic[2]";
- channel = "$.topic[4]";
- };
- }
- {
- measurement = "relative-humidity";
- topic = "bigclown/node/+/hygrometer/+/relative-humidity";
- fields.value = "$.payload";
- tags = {
- id = "$.topic[2]";
- channel = "$.topic[4]";
- };
- }
- {
- measurement = "illuminance";
- topic = "bigclown/node/+/lux-meter/0:0/illuminance";
- fields.value = "$.payload";
- tags = {
- id = "$.topic[2]";
- };
- }
- {
- measurement = "pressure";
- topic = "bigclown/node/+/barometer/0:0/pressure";
- fields.value = "$.payload";
- tags = {
- id = "$.topic[2]";
- };
- }
- {
- measurement = "voltage";
- topic = "bigclown/node/+/battery/+/voltage";
- fields.value = "$.payload";
- tags = {
- id = "$.topic[2]";
- };
- }
- {
- measurement = "button";
- topic = "bigclown/node/+/push-button/+/event-count";
- fields.value = "$.payload";
- tags = {
- id = "$.topic[2]";
- channel = "$.topic[4]";
- };
- }
- ];
- };
- };
-
- systemd.services.bigclown-leds = {
- description = "Bigclown LEDs control";
- wantedBy = ["multi-user.target"];
- wants = ["mosquitto.service"];
- serviceConfig.ExecStart = "${pkgs.bigclown-leds}/bin/bigclown-leds /run/secrets/bigclown-leds.ini";
- };
-
- services.home-assistant = {
- enable = false;
- openFirewall = true;
- configDir = "/var/lib/hass";
- config = {
- homeassistant = {
- name = "SPT";
- latitude = "!secret latitude";
- longitude = "!secret longitude";
- elevation = "!secret elevation";
- time_zone = "Europe/Prague";
- country = "CZ";
- };
- http.server_port = 8808;
- mqtt = {
- broker = config.cynerd.hosts.spt.mox;
- port = 1883;
- username = "homeassistant";
- password = "!secret mqtt_password";
- sensor = import ./hass/sensors.nix;
- light = import ./hass/light.nix;
- };
- met = {};
- default_config = {};
- };
- extraComponents = [];
- package = pkgs.home-assistant.override {
- packageOverrides = (self: super: {
- scapy = super.scapy.override {
- withPlottingSupport = false;
- };
- s3transfer = super.s3transfer.overridePythonAttrs (oldAttrs: {
- dontUsePytestCheck = true;
- dontUseSetuptoolsCheck = true;
- });
- });
- };
- };
-
};
}