stockholm/makefu/2configs/bureautomation/default.nix

44 lines
977 B
Nix
Raw Normal View History

2017-12-08 13:04:35 +00:00
{ pkgs, lib, ... }:
with lib;
let
port = 3001;
runit = pkgs.writeDash "runit" ''
set -xeuf
PATH=${pkgs.mosquitto}/bin:${pkgs.coreutils}/bin
2017-12-08 13:04:35 +00:00
name=''${1?must provide name as first arg}
state=''${2?must provide state as second arg}
# val=''${3?must provide val as third arg}
# we ignore non-alerting events
test $state = alerting || exit 0
echo $name - $state
topic=plug
mosquitto_pub -t /bam/$topic/cmnd/POWER -m ON
2017-12-08 13:04:35 +00:00
sleep 5
mosquitto_pub -t /bam/$topic/cmnd/POWER -m OFF
2017-12-08 13:04:35 +00:00
'';
in {
2019-04-17 18:42:45 +00:00
imports = [
./ota.nix
];
2017-12-08 13:04:35 +00:00
services.logstash = {
package = pkgs.logstash7;
plugins = [ pkgs.logstash-output-exec ];
2017-12-08 13:04:35 +00:00
enable = true;
inputConfig = ''
http {
port => ${toString port}
host => "127.0.0.1"
type => "schlechteluft"
2017-12-08 13:04:35 +00:00
}
'';
outputConfig = ''
if [type] == "schlechteluft" {
exec { command => "${runit} '%{ruleName}' '%{state}'" }
}
2017-12-08 13:04:35 +00:00
'';
};
}