+++ /dev/null
--- Copyright 2015 Jo-Philipp Wich <jow@openwrt.org>
--- Licensed to the public under the Apache License 2.0.
-
-local m, s, o
-local sensor_types = {
- ["12v"] = "voltage",
- ["2.0v"] = "voltage",
- ["2.5v"] = "voltage",
- ["3.3v"] = "voltage",
- ["5.0v"] = "voltage",
- ["5v"] = "voltage",
- ["ain1"] = "voltage",
- ["ain2"] = "voltage",
- ["cpu_temp"] = "temperature",
- ["fan1"] = "fanspeed",
- ["fan2"] = "fanspeed",
- ["fan3"] = "fanspeed",
- ["fan4"] = "fanspeed",
- ["fan5"] = "fanspeed",
- ["fan6"] = "fanspeed",
- ["fan7"] = "fanspeed",
- ["in0"] = "voltage",
- ["in10"] = "voltage",
- ["in2"] = "voltage",
- ["in3"] = "voltage",
- ["in4"] = "voltage",
- ["in5"] = "voltage",
- ["in6"] = "voltage",
- ["in7"] = "voltage",
- ["in8"] = "voltage",
- ["in9"] = "voltage",
- ["power1"] = "power",
- ["remote_temp"] = "temperature",
- ["temp1"] = "temperature",
- ["temp2"] = "temperature",
- ["temp3"] = "temperature",
- ["temp4"] = "temperature",
- ["temp5"] = "temperature",
- ["temp6"] = "temperature",
- ["temp7"] = "temperature",
- ["temp"] = "temperature",
- ["vccp1"] = "voltage",
- ["vccp2"] = "voltage",
- ["vdd"] = "voltage",
- ["vid1"] = "voltage",
- ["vid2"] = "voltage",
- ["vid3"] = "voltage",
- ["vid4"] = "voltage",
- ["vid5"] = "voltage",
- ["vid"] = "voltage",
- ["vin1"] = "voltage",
- ["vin2"] = "voltage",
- ["vin3"] = "voltage",
- ["vin4"] = "voltage",
- ["volt12"] = "voltage",
- ["volt5"] = "voltage",
- ["voltbatt"] = "voltage",
- ["vrm"] = "voltage"
-
-}
-
-
-m = Map("luci_statistics",
- translate("Sensors Plugin Configuration"),
- translate("The sensors plugin uses the Linux Sensors framework to gather environmental statistics."))
-
-s = m:section( NamedSection, "collectd_sensors", "luci_statistics" )
-
-
-o = s:option( Flag, "enable", translate("Enable this plugin") )
-o.default = 0
-
-
-o = s:option(Flag, "__all", translate("Monitor all sensors"))
-o:depends("enable", 1)
-o.default = 1
-o.write = function() end
-o.cfgvalue = function(self, sid)
- local v = self.map:get(sid, "Sensor")
- if v == nil or (type(v) == "table" and #v == 0) or (type(v) == "string" and #v == 0) then
- return "1"
- end
-end
-
-
-o = s:option(MultiValue, "Sensor", translate("Sensor list"), translate("Hold Ctrl to select multiple items or to deselect entries."))
-o:depends({enable = 1, __all = "" })
-o.widget = "select"
-o.rmempty = true
-o.size = 0
-
-local sensorcli = io.popen("/usr/sbin/sensors -u -A")
-if sensorcli then
- local bus, sensor
-
- while true do
- local ln = sensorcli:read("*ln")
- if not ln then
- break
- elseif ln:match("^[%w-]+$") then
- bus = ln
- elseif ln:match("^[%w-]+:$") then
- sensor = ln:sub(0, -2):lower()
- if bus and sensor_types[sensor] then
- o:value("%s/%s-%s" %{ bus, sensor_types[sensor], sensor })
- o.size = o.size + 1
- end
- elseif ln == "" then
- bus = nil
- sensor = nil
- end
- end
-
- sensorcli:close()
-end
-
-
-o = s:option( Flag, "IgnoreSelected", translate("Monitor all except specified") )
-o.default = 0
-o.rmempty = true
-o:depends({ enable = 1, __all = "" })
-
-return m