%
local sys = require "luci.sys"
local twa = require "luci.tools.webadmin"
-- System
local system, model, memtotal, memcached, membuffers, memfree, bogomips = sys.sysinfo()
local uptime = twa.date_format(tonumber(sys.uptime()))
local_time = os.date("%a, %d %b %Y %H:%M:%S UTC")
local load1, load5, load15 = sys.loadavg()
local load = string.format("%.2f, %.2f, %.2f", load1, load5, load15)
local mem = string.format(
"%.2f MB (%.2f %s, %.2f %s, %.2f %s, %.2f %s)",
tonumber(memtotal) / 1024,
tonumber(memtotal - memfree) / 1024,
tostring(i18n.translate("used")),
memfree / 1024,
tostring(i18n.translate("free")),
memcached / 1024,
tostring(i18n.translate("cached")),
membuffers / 1024,
tostring(i18n.translate("buffered"))
)
-- update interval
local bogomips = bogomips or 100
local interval
if bogomips > 350 then
interval = "5000"
else
interval = "10000"
end
-- wireless
local ntm = require "luci.model.network".init()
local devices = ntm:get_wifidevs()
local netlist = { }
local netdevs = { }
local dev
for _, dev in ipairs(devices) do
local net
for _, net in ipairs(dev:get_wifinets()) do
netlist[#netlist+1] = net:ifname()
netdevs[net:ifname()] = dev:name()
end
end
local has_iwinfo = pcall(require, "iwinfo")
-- Routes
local defroutev4 = sys.net.defaultroute()
local defroutev6 = sys.net.defaultroute6()
-%>
<%+header%>
<%:System%>
<%=system%>
<%=model%>
<%=load%>
<%=mem%>
<%=local_time%>
<%=uptime%>
<% if devices[1] then %>
<%:Wireless Overview%>
<% if not has_iwinfo then %>
<%:Package libiwinfo required!%>
<%_The libiwinfo package is not installed. You must install this component for working wireless configuration!%>
<% end %>
<%:Signal%>
<%:Bitrate%>
<%:SSID%>
<%:BSSID%>
<%:Channel%>
<%:Mode%>
<%:TX%>-<%:Power%>
<%:Interface%>
<%
for _, dev in ipairs(devices) do
local net
for _, net in ipairs(dev:get_wifinets()) do
netlist[#netlist+1] = net:ifname()
netdevs[net:ifname()] = dev:name()
if net.iwdata.ifname then
local signal = net.iwinfo.signal or "N/A"
local noise = net.iwinfo.noise or "N/A"
local q = net.iwinfo.quality or "0"
local qmax = net.iwinfo.quality_max or "100"
local qperc = q / qmax * 100
if qperc == 0 then
icon = "signal-none.png"
elseif qperc < 26 then
icon = "signal-0-25.png"
elseif qperc < 51 then
icon = "signal-25-50.png"
elseif qperc < 76 then
icon = "signal-50-75.png"
elseif qperc < 100 then
icon = "signal-75-100.png"
else
icon = "signal-0.png"
end
signal_string = ""
local ssid = net.iwinfo.ssid or "N/A"
local bssid = net.iwinfo.bssid or "N/A"
local chan = net.iwinfo.channel or "N/A"
local mode = net.iwinfo.mode or "N/A"
local txpwr = net.iwinfo.txpower or "N/A"
if txpwr ~= "N/A" then
txpwr = txpwr.." dbm"
end
local bitrate = net.iwinfo.bitrate or "N/A"
if bitrate ~= "N/A" then
bitrate = ( bitrate / 1000 ).."Mb/s"
end
local interface = net.iwdata.ifname or "N/A"
%>
<%=signal_string%>
<%=bitrate%>
<%=ssid%>
<%=bssid%>
<%=chan%>
<%=mode%>
<%=txpwr%>
<%=interface%>
<% end
end
end %>
<% end %>
<%:Default routes%>
<% if not defroutev4 and not defroutev6 then %>
<%:No default routes known.%>
<%else%>