<% 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("%c") 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 %>
<% 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 = "Signal Quality" 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" %> <% end end end %>
<%:Signal%> <%:Bitrate%> <%:SSID%> <%:BSSID%> <%:Channel%> <%:Mode%> <%:TX%>-<%:Power%> <%:Interface%>
<%=signal_string%> <%=bitrate%> <%=ssid%> <%=bssid%> <%=chan%> <%=mode%> <%=txpwr%> <%=interface%>
<% end %>

<%:Default routes%>

<% if not defroutev4 and not defroutev6 then %> <%:No default routes known.%> <%else%> <% if defroutev4 then %> <% end if defroutev6 then %> <% end %>
<%:Network%> <%:Interface%> <%:Gateway%> <%:Metric%>
<%=defroutev4.dest:string()%> <%=defroutev4.device%> <%=defroutev4.gateway:string()%> <%=defroutev4.metric%>
<%=defroutev6.dest:string()%> <%=defroutev6.device%> <%=defroutev6.nexthop:string()%> <%=defroutev6.metric%>
<% end %> <%+footer%>