shack/powerraw: send stats to influx as well
This commit is contained in:
parent
8e0c6fc8c5
commit
a450669027
|
@ -4,6 +4,7 @@
|
|||
# Requires mqtt available at mqtt.shack
|
||||
# Requires hostname powerraw.shack
|
||||
let
|
||||
influx-url = "http://influx.shack:8086";
|
||||
pkg = pkgs.python3.pkgs.callPackage (
|
||||
pkgs.fetchgit {
|
||||
url = "https://git.shackspace.de/rz/powermeter.git";
|
||||
|
@ -13,9 +14,7 @@ let
|
|||
in {
|
||||
# receive response from light.shack / standby.shack
|
||||
networking.firewall.allowedUDPPorts = [ 11111 ];
|
||||
users.users.powermeter = {
|
||||
extraGroups = [ "dialout" ];
|
||||
};
|
||||
users.users.powermeter.extraGroups = [ "dialout" ];
|
||||
|
||||
systemd.services.powermeter-serial2mqtt = {
|
||||
description = "powerraw Serial -> mqtt";
|
||||
|
@ -38,4 +37,36 @@ in {
|
|||
PrivateTmp = true;
|
||||
};
|
||||
};
|
||||
|
||||
services.telegraf = {
|
||||
enable = true;
|
||||
extraConfig = {
|
||||
agent.debug = false;
|
||||
outputs = {
|
||||
influxdb = [{
|
||||
urls = [ influx-url ];
|
||||
database = "telegraf";
|
||||
}];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
services.telegraf.extraConfig.inputs.mqtt_consumer = let
|
||||
genTopic = name: topic: tags: {
|
||||
servers = [ "tcp://mqtt.shack:1883" ];
|
||||
qos = 0;
|
||||
connection_timeout = "30s";
|
||||
topics = [ topic ];
|
||||
inherit tags;
|
||||
persistent_session = false;
|
||||
name_override = name;
|
||||
data_format = "value";
|
||||
data_type = "float";
|
||||
};
|
||||
sensor = "total";
|
||||
types = [ "Voltage" "Current" "Power" ];
|
||||
phases = [ 1 2 3 ];
|
||||
in
|
||||
[ (genTopic "Power consumed" "/power/${sensor}/consumed" { inherit sensor; }) ] ++
|
||||
(lib.flatten (map (type: (map (phase: (genTopic "Power" "/power/${sensor}/L${toString phase}/${type}" { inherit sensor phase type; }) ) phases)) types));
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue