From: Jo-Philipp Wich Date: Tue, 11 Dec 2012 13:27:37 +0000 (+0000) Subject: Add NUT UPS support to luci-statistics X-Git-Url: http://git.archive.openwrt.org/?p=project%2Fluci.git;a=commitdiff_plain;h=5a54cc575a7c5f5ec1a671051faec51e15b3b215 Add NUT UPS support to luci-statistics --- 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 1b7084ccd..7d8e6bf4a 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 000000000..ad030718c --- /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 +Copyright © 2012 David Woodhouse + +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 000000000..d10d503fc --- /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 +Copyright © 2012 David Woodhouse + +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 a1e6a6b86..5267a0262 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 4cf39460e..0a9fa1ab3 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"}, { },