ma telegraf: add zigbee nodes
This commit is contained in:
parent
e2c349c988
commit
8ff56542bc
@ -12,13 +12,18 @@ in {
|
||||
urls = [ url ];
|
||||
database = "telegraf";
|
||||
}];
|
||||
mqtt = [{
|
||||
servers = [ mqtt_server ];
|
||||
topic_prefix = "/telegraf";
|
||||
data_format = "json";
|
||||
qos = 0;
|
||||
batch = false;
|
||||
}];
|
||||
#file = [{ # debugging
|
||||
# files = [ "stdout" ];
|
||||
# data_format = "influx";
|
||||
#}];
|
||||
|
||||
#mqtt = [{
|
||||
# servers = [ mqtt_server ];
|
||||
# topic_prefix = "/telegraf";
|
||||
# data_format = "json";
|
||||
# qos = 0;
|
||||
# batch = false;
|
||||
#}];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -1,28 +1,60 @@
|
||||
{ pkgs, ...}:
|
||||
{ pkgs, lib, ...}:
|
||||
|
||||
let
|
||||
genTopic = name: topic: tags: {
|
||||
genTopic_zigbee = name: tags: {
|
||||
servers = [ "tcp://localhost:1883" ];
|
||||
username = "stats";
|
||||
password = builtins.readFile <secrets/mqtt/stats>;
|
||||
password = lib.removeSuffix "\n" (builtins.readFile <secrets/mqtt/stats>);
|
||||
qos = 0;
|
||||
connection_timeout = "30s";
|
||||
topics = [ "/ham/zigbee/${name}" ];
|
||||
inherit tags;
|
||||
persistent_session = false;
|
||||
name_override = "zigbee ${tags.room} ${name}";
|
||||
data_format = "json";
|
||||
json_string_fields = [ "linkquality" "temperature" "humidity" "pressure" "battery" "contact" ];
|
||||
# json_name_key = <filed which defines the name>
|
||||
|
||||
};
|
||||
genTopic_plain = name: topic: tags: {
|
||||
servers = [ "tcp://localhost:1883" ];
|
||||
username = "stats";
|
||||
password = lib.removeSuffix "\n" (builtins.readFile <secrets/mqtt/stats>);
|
||||
qos = 0;
|
||||
connection_timeout = "30s";
|
||||
topics = [ topic ];
|
||||
tags = tags;
|
||||
inherit tags;
|
||||
persistent_session = false;
|
||||
name_override = name;
|
||||
data_format = "json";
|
||||
name_override = tags.sensor;
|
||||
data_type = "float";
|
||||
data_format = "value";
|
||||
# json_query = tags.sensor; #TODO?
|
||||
};
|
||||
hamStat = host:
|
||||
sensor:
|
||||
(genTopic sensor
|
||||
"/ham/${host}/${sensor}/tele/SENSOR"
|
||||
{"host" = host;
|
||||
esensor = room: name: sensor:
|
||||
(genTopic_plain sensor ''/ham/${room}/${name}/sensor/${sensor}/state''
|
||||
{ inherit room sensor name;
|
||||
"scope" = "ham";
|
||||
"sensor" = sensor;
|
||||
} );
|
||||
bme = host: [(hamStat host "BME280")];
|
||||
zsensor = room: name:
|
||||
(genTopic_zigbee name
|
||||
{ inherit room name;
|
||||
"scope" = "ham";
|
||||
} );
|
||||
zigbee_temphum = room: name: [
|
||||
(zsensor room name)
|
||||
];
|
||||
esphome_temphum = room: name: [
|
||||
(esensor room name ''${room}_${name}_temperature'')
|
||||
(esensor room name ''${room}_${name}_humidity'')
|
||||
(esensor room name ''${room}_${name}_pressure'')
|
||||
];
|
||||
in {
|
||||
services.telegraf.extraConfig.inputs.mqtt_consumer = (bme "schlafzimmer");
|
||||
services.telegraf.extraConfig.inputs.mqtt_consumer =
|
||||
(zigbee_temphum "Wohnzimmer" "temp1")
|
||||
++ (zigbee_temphum "Badezimmer" "temp2")
|
||||
++ (zigbee_temphum "Kinderzimmer" "temp3")
|
||||
++ (esphome_temphum "arbeitszimmer" "box")
|
||||
++ (esphome_temphum "schlafzimmer" "plug")
|
||||
++ (esphome_temphum "wohnzimmer" "plug")
|
||||
++ (esphome_temphum "terrasse" "plug");
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user