diff options
author | lassulus <lassulus@lassul.us> | 2020-06-27 10:32:48 +0200 |
---|---|---|
committer | lassulus <lassulus@lassul.us> | 2020-06-27 10:32:48 +0200 |
commit | 9f5626098433dddacc76b48911ae4af7b5b66ddb (patch) | |
tree | 71691a924ff71aa14aacf2627bce7cd36a1fcb47 /makefu/2configs/stats/telegraf/hamstats.nix | |
parent | e80ff853ad7e764956769a1d6746c80b4eb3055e (diff) | |
parent | 1ed4ded92f83e4d2f91b0b46c514acb420b7e0c3 (diff) |
Merge remote-tracking branch 'gum/master'
Diffstat (limited to 'makefu/2configs/stats/telegraf/hamstats.nix')
-rw-r--r-- | makefu/2configs/stats/telegraf/hamstats.nix | 60 |
1 files changed, 46 insertions, 14 deletions
diff --git a/makefu/2configs/stats/telegraf/hamstats.nix b/makefu/2configs/stats/telegraf/hamstats.nix index 88c1b6d5d..0b1723062 100644 --- a/makefu/2configs/stats/telegraf/hamstats.nix +++ b/makefu/2configs/stats/telegraf/hamstats.nix @@ -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 = [ topic ]; - tags = tags; + topics = [ "/ham/zigbee/${name}" ]; + inherit tags; persistent_session = false; - name_override = name; + 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 ]; + inherit tags; + persistent_session = false; + 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"; + } ); + zsensor = room: name: + (genTopic_zigbee name + { inherit room name; "scope" = "ham"; - "sensor" = sensor; } ); - bme = host: [(hamStat host "BME280")]; + 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"); } |