ma stats.airsensor: generate Topic receiver
This commit is contained in:
parent
555a0ec0f3
commit
5af2f43844
|
@ -1,11 +1,36 @@
|
||||||
{ pkgs, ...}:
|
{ pkgs, ...}:
|
||||||
|
let
|
||||||
{
|
genTopic = name: topic: tags: {
|
||||||
|
servers = [ "tcp://localhost:1883" ];
|
||||||
|
qos = 0;
|
||||||
|
connection_timeout = "30s";
|
||||||
|
topics = [ topic ];
|
||||||
|
tags = tags;
|
||||||
|
persistent_session = false;
|
||||||
|
name_override = name;
|
||||||
|
data_format = "value";
|
||||||
|
data_type = "float";
|
||||||
|
};
|
||||||
|
bamStat = stat: # Temperature or Humidity
|
||||||
|
host: # easy{1-4}
|
||||||
|
sensor: # dht11, dht22, ds18
|
||||||
|
(genTopic stat
|
||||||
|
"/bam/${host}/${sensor}/${stat}"
|
||||||
|
{"host" = host;
|
||||||
|
"scope" = "bam";
|
||||||
|
"sensor" = sensor;
|
||||||
|
} );
|
||||||
|
dht22 = host: [(bamStat "Temperature" host "dht22")
|
||||||
|
(bamStat "Humidity" host "dht22")];
|
||||||
|
dht11 = host: [(bamStat "Temperature" host "dht11")
|
||||||
|
(bamStat "Humidity" host "dht11")];
|
||||||
|
ds18 = host: [(bamStat "Temperature" host "ds18")];
|
||||||
|
in {
|
||||||
services.udev.extraRules = ''
|
services.udev.extraRules = ''
|
||||||
SUBSYSTEMS=="usb", ATTRS{product}=="iAQ Stick", GROUP="input"
|
SUBSYSTEMS=="usb", ATTRS{product}=="iAQ Stick", GROUP="input"
|
||||||
'';
|
'';
|
||||||
users.users.telegraf.extraGroups = [ "input" ];
|
users.users.telegraf.extraGroups = [ "input" ];
|
||||||
services.telegraf.extraConfig.inputs.exec = [
|
services.telegraf.extraConfig.inputs.exec = [
|
||||||
{
|
{
|
||||||
commands = [ "${pkgs.airsensor-py}/bin/airsensor-py"];
|
commands = [ "${pkgs.airsensor-py}/bin/airsensor-py"];
|
||||||
timeout = "10s";
|
timeout = "10s";
|
||||||
|
@ -16,4 +41,9 @@
|
||||||
tags.unit="VOC";
|
tags.unit="VOC";
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
services.telegraf.extraConfig.inputs.mqtt_consumer =
|
||||||
|
(dht22 "easy1")
|
||||||
|
++ (dht22 "easy2")
|
||||||
|
++ (dht11 "easy3")
|
||||||
|
++ (ds18 "easy3");
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user