%
local sys = require "luci.sys"
local twa = require "luci.tools.webadmin"
-- System
local system, model, memtotal, memcached, membuffers, memfree = sys.sysinfo()
local uptime = twa.date_format(tonumber(sys.uptime()))
local_time = os.date("%c")
local load1, load5, load15 = sys.loadavg()
local load = string.format("%.2f, %.2f, %.2f", load1, load5, load15)
local memory = string.format("%.2f MB (%.0f%% %s, %.0f%% %s, %.0f%% %s)",
tonumber(memtotal) / 1024,
100 * memcached / memtotal,
tostring(translate("cached")),
100 * membuffers / memtotal,
tostring(translate("buffered")),
100 * memfree / memtotal,
tostring(translate("free"))
)
-- wireless
local ntm = require "luci.model.network".init()
local devices = ntm:get_wifidevs()
local netlist = { }
local netdevs = { }
local dev
local has_iwinfo = pcall(require, "iwinfo")
-- Routes
local defroutev4 = sys.net.defaultroute()
local defroutev6 = sys.net.defaultroute6 ()
%>
<%+header%>
<%:System%>
<%=system%>
<%=model%>
<%=load%>
<%=memory%>
<%=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%>