summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJo-Philipp Wich <jow@openwrt.org>2012-12-11 13:27:37 +0000
committerJo-Philipp Wich <jow@openwrt.org>2012-12-11 13:27:37 +0000
commit5a54cc575a7c5f5ec1a671051faec51e15b3b215 (patch)
tree7b36d96303b134623a869d8d3f79eabfb6403f94
parent2138efa4bdbf2751a918878c886cdba3dde7f5a0 (diff)
Add NUT UPS support to luci-statistics
-rw-r--r--applications/luci-statistics/luasrc/controller/luci_statistics/luci_statistics.lua1
-rw-r--r--applications/luci-statistics/luasrc/model/cbi/luci_statistics/nut.lua28
-rw-r--r--applications/luci-statistics/luasrc/statistics/rrdtool/definitions/nut.lua104
-rw-r--r--applications/luci-statistics/root/etc/config/luci_statistics4
-rwxr-xr-xapplications/luci-statistics/root/usr/bin/stat-genconfig6
5 files changed, 143 insertions, 0 deletions
diff --git a/applications/luci-statistics/luasrc/controller/luci_statistics/luci_statistics.lua b/applications/luci-statistics/luasrc/controller/luci_statistics/luci_statistics.lua
index 1b7084ccd6..7d8e6bf4a4 100644
--- a/applications/luci-statistics/luasrc/controller/luci_statistics/luci_statistics.lua
+++ b/applications/luci-statistics/luasrc/controller/luci_statistics/luci_statistics.lua
@@ -50,6 +50,7 @@ function index()
memory = _("Memory"),
netlink = _("Netlink"),
network = _("Network"),
+ nut = _("UPS"),
olsrd = _("OLSRd"),
ping = _("Ping"),
processes = _("Processes"),
diff --git a/applications/luci-statistics/luasrc/model/cbi/luci_statistics/nut.lua b/applications/luci-statistics/luasrc/model/cbi/luci_statistics/nut.lua
new file mode 100644
index 0000000000..ad030718cf
--- /dev/null
+++ b/applications/luci-statistics/luasrc/model/cbi/luci_statistics/nut.lua
@@ -0,0 +1,28 @@
+--[[
+LuCI - Lua Configuration Interface
+
+Copyright © 2011 Manuel Munz <freifunk at somakoma dot de>
+Copyright © 2012 David Woodhouse <dwmw2@infradead.org>
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+]]--
+
+m = Map("luci_statistics",
+ translate("UPS Plugin Configuration"),
+ translate("The NUT plugin reads information about Uninterruptible Power Supplies."))
+
+s = m:section(NamedSection, "collectd_nut", "luci_statistics" )
+
+enable = s:option(Flag, "enable", translate("Enable this plugin"))
+enable.default = 0
+
+host = s:option(Value, "UPS", translate("UPS"), translate("UPS name in NUT ups@host format"))
+host.placeholder = "myupsname"
+host.datatype = "string"
+host.rmempty = true
+
+return m
diff --git a/applications/luci-statistics/luasrc/statistics/rrdtool/definitions/nut.lua b/applications/luci-statistics/luasrc/statistics/rrdtool/definitions/nut.lua
new file mode 100644
index 0000000000..d10d503fcc
--- /dev/null
+++ b/applications/luci-statistics/luasrc/statistics/rrdtool/definitions/nut.lua
@@ -0,0 +1,104 @@
+--[[
+
+Luci statistics - ups plugin diagram definition
+Copyright © 2008 Freifunk Leipzig / Jo-Philipp Wich <xm@leipzig.freifunk.net>
+Copyright © 2012 David Woodhouse <dwmw2@infradead.org>
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+]]--
+
+
+module("luci.statistics.rrdtool.definitions.nut",package.seeall)
+
+function rrdargs( graph, plugin, plugin_instance, dtype )
+
+ local voltages = {
+ title = "%H: Voltages on UPS \"%pi\"",
+ vlabel = "V",
+ number_format = "%5.1lfV",
+ data = {
+ instances = {
+ voltage = { "battery", "input", "output" }
+ },
+
+ options = {
+ voltage_output = { color = "00e000", title = "Output voltage", noarea=true, overlay=true },
+ voltage_battery = { color = "0000ff", title = "Battery voltage", noarea=true, overlay=true },
+ voltage_input = { color = "ffb000", title = "Input voltage", noarea=true, overlay=true }
+ }
+ }
+ }
+
+ local currents = {
+ title = "%H: Current on UPS \"%pi\"",
+ vlabel = "A",
+ number_format = "%5.3lfA",
+ data = {
+ instances = {
+ current = { "battery", "output" }
+ },
+
+ options = {
+ current_output = { color = "00e000", title = "Output current", noarea=true, overlay=true },
+ current_battery = { color = "0000ff", title = "Battery current", noarea=true, overlay=true },
+ }
+ }
+ }
+
+ local percentage = {
+ title = "%H: Battery charge on UPS \"%pi\"",
+ vlabel = "Percent",
+ number_format = "%5.1lf%%",
+ data = {
+ sources = {
+ percent = { "percent" }
+ },
+ instances = {
+ percent = "charge"
+ },
+ options = {
+ percent_charge = { color = "00ff00", title = "Charge level" }
+ }
+ }
+ }
+
+ -- Note: This is in ISO8859-1 for rrdtool. Welcome to the 20th century.
+ local temperature = {
+ title = "%H: Battery temperature on UPS \"%pi\"",
+ vlabel = "\176C",
+ number_format = "%5.1lf\176C",
+ data = {
+ instances = {
+ temperature = "battery"
+ },
+
+ options = {
+ temperature_battery = { color = "ffb000", title = "Battery temperature" }
+ }
+ }
+ }
+
+ local timeleft = {
+ title = "%H: Time left on UPS \"%pi\"",
+ vlabel = "seconds",
+ number_format = "%7lfs",
+ data = {
+ sources = {
+ timeleft = { "timeleft" }
+ },
+ instances = {
+ timeleft = { "battery" }
+ },
+ options = {
+ timeleft_battery = { color = "0000ff", title = "Time left"}
+ }
+ }
+ }
+
+ return { voltages, currents, percentage, temperature, timeleft }
+end
diff --git a/applications/luci-statistics/root/etc/config/luci_statistics b/applications/luci-statistics/root/etc/config/luci_statistics
index a1e6a6b86b..5267a02626 100644
--- a/applications/luci-statistics/root/etc/config/luci_statistics
+++ b/applications/luci-statistics/root/etc/config/luci_statistics
@@ -131,3 +131,7 @@ config 'statistics' 'collectd_olsrd'
config 'statistics' 'collectd_iwinfo'
option 'enable' '1'
+
+config 'statistics' 'collectd_nut'
+ option 'enable' '0'
+ option 'UPS' 'myupsname'
diff --git a/applications/luci-statistics/root/usr/bin/stat-genconfig b/applications/luci-statistics/root/usr/bin/stat-genconfig
index 4cf39460ef..0a9fa1ab33 100755
--- a/applications/luci-statistics/root/usr/bin/stat-genconfig
+++ b/applications/luci-statistics/root/usr/bin/stat-genconfig
@@ -357,6 +357,12 @@ plugins = {
network = config_network,
+ nut = {
+ { "UPS" },
+ { },
+ { }
+ },
+
olsrd = {
{ "Host", "Port", "CollectLinks","CollectRoutes","CollectTopology"},
{ },