Omada widget : adding stats for isolated aps, connected gateways, connected switches, available ports, power consumption

This commit is contained in:
Benoit 2022-12-10 10:24:55 +01:00
parent f375f0b815
commit 1f48491406
3 changed files with 39 additions and 3 deletions

View file

@ -89,7 +89,12 @@
"omada": {
"activeUser": "Active devices",
"alerts": "Alerts",
"connectedAp": "Connected APs"
"connectedAp": "Connected APs",
"isolatedAp": "Isolated APs",
"powerConsumption": "Power consumption",
"availablePorts" : "Available ports",
"connectedGateway": "Connected gateways",
"connectedSwitches": "Connected switches"
},
"nzbget": {
"rate": "Rate",

View file

@ -23,6 +23,12 @@ export default function Component({ service }) {
<Block label="omada.connectedAp" />
<Block label="omada.activeUser" />
<Block label="omada.alerts" />
<Block label="omada.isolatedAp" />
<Block label="omada.connectedGateway" />
<Block label="omada.powerConsumption" />
<Block label="omada.availablePorts" />
<Block label="omada.connectedSwitches" />
</Container>
);
}
@ -32,6 +38,12 @@ export default function Component({ service }) {
<Block label="omada.connectedAp" value={t( "common.number", { value: omadaData.connectedAp})} />
<Block label="omada.activeUser" value={t( "common.number", { value: omadaData.activeUser })} />
<Block label="omada.alerts" value={t( "common.number", { value: omadaData.alerts })} />
<Block label="omada.isolatedAp" value={t("common.number", { value: omadaData.isolatedAp})} />
<Block label="omada.connectedGateway" value={t("common.number", { value: omadaData.connectedGateways})}/>
<Block label="omada.powerConsumption" value={t("common.number", { value: omadaData.powerConsumption})}/>
<Block label="omada.availablePorts" value={t("common.number", { value: omadaData.availablePorts})}/>
<Block label="omada.connectedSwitches" value={t("common.number", { value: omadaData.connectedSwitches})} />
</Container>
);
}

View file

@ -59,7 +59,13 @@ export default async function omadaProxyHandler(req, res) {
let cid;
let cversion;
let connectedAp;
let isolatedAp;
let activeuser;
let connectedSwitches;
let connectedGateways;
let availablePorts;
let powerConsumption;
let alerts;
let loginUrl;
let siteName;
@ -191,18 +197,20 @@ export default async function omadaProxyHandler(req, res) {
});
const data = JSON.parse(statResponse[2]);
if (data.errorCode !== 0) {
return res.status(500).send(statResponse[2]);
}
connectedAp = data.result.connectedAp;
activeuser = data.result.activeUser;
isolatedAp = data.result.isolatedAp;
alerts = data.result.alerts;
} else {
let siteStatsUrl;
let response;
sitetoswitch = listresult.result.data.filter(site => site.name === widget.site);
// On 5.0.0, the key we need is id, on 4.x.x, it's key ...
// On 5.0.0, the field we need is id, on 4.x.x, it's key ...
siteName = sitetoswitch[0].id ?? sitetoswitch[0].key;
if (cversion < "5.0.0") {
siteStatsUrl = `${url}/api/v2/sites/${siteName}/dashboard/overviewDiagram?token=${token}&currentPage=1&currentPageSize=1000`;
@ -224,6 +232,11 @@ export default async function omadaProxyHandler(req, res) {
activeuser = clientresult.result.totalClientNum;
connectedAp = clientresult.result.connectedApNum;
isolatedAp = clientresult.result.isolatedApNum;
connectedGateways = clientresult.result.connectedGatewayNum;
connectedSwitches = clientresult.result.connectedSwitchNum;
availablePorts = clientresult.result.availablePorts;
powerConsumption = clientresult.result.powerConsumption;
let alertUrl;
if (cversion >= "5.0.0") {
@ -244,7 +257,13 @@ export default async function omadaProxyHandler(req, res) {
return res.send(JSON.stringify({
"connectedAp": connectedAp,
"activeUser": activeuser,
"alerts": alerts
"alerts": alerts,
"isolatedAp": isolatedAp,
"connectedGateways": connectedGateways,
"connectedSwitches": connectedSwitches,
"availablePorts": availablePorts,
"powerConsumption": powerConsumption,
}));
}
}