diff --git a/public/locales/en/common.json b/public/locales/en/common.json
index d41e30ed..aa1d6601 100644
--- a/public/locales/en/common.json
+++ b/public/locales/en/common.json
@@ -287,10 +287,10 @@
},
"homebridge": {
"available_update": "System",
+ "updates": "Updates",
"update_available": "Update Available",
"up_to_date": "Up to Date",
- "available_homebridge_update": "Plugins",
- "plugins_updates_available": "{{quantity}} Available",
- "plugins_up_to_date": "Up to Date"
+ "child_bridges": "Child Bridges",
+ "child_bridges_status": "{{ok}}/{{total}}"
}
}
diff --git a/src/widgets/homebridge/component.jsx b/src/widgets/homebridge/component.jsx
index bc6dd87d..f8477cfc 100644
--- a/src/widgets/homebridge/component.jsx
+++ b/src/widgets/homebridge/component.jsx
@@ -19,8 +19,8 @@ export default function Component({ service }) {
return (
-
-
+
+
);
}
@@ -32,13 +32,20 @@ export default function Component({ service }) {
value={homebridge.data.status}
/>
-
+ {homebridge?.data?.childBridges.quantity > 0 &&
+ }
);
}
diff --git a/src/widgets/homebridge/proxy.js b/src/widgets/homebridge/proxy.js
index 7e666b53..ea4c1654 100644
--- a/src/widgets/homebridge/proxy.js
+++ b/src/widgets/homebridge/proxy.js
@@ -70,6 +70,14 @@ function formatPluginsResponse(plugins) {
}
}
+function formatChildBridgesResponse(childBridges) {
+ const quantity = childBridges?.data?.length
+ return {
+ quantity,
+ quantityWithOkStatus: childBridges?.data?.filter(cb => cb.status === "ok").length,
+ }
+}
+
export default async function homebridgeProxyHandler(req, res) {
const { group, service } = req.query;
@@ -87,15 +95,17 @@ export default async function homebridgeProxyHandler(req, res) {
await login(widget);
- const statusRS = await apiCall(widget, "status/homebridge");
- const versionRS = await apiCall(widget, "status/homebridge-version");
- const pluginsRS = await apiCall(widget, "plugins");
+ const statusRs = await apiCall(widget, "status/homebridge");
+ const versionRs = await apiCall(widget, "status/homebridge-version");
+ const childBrigdeRs = await apiCall(widget, "status/homebridge/child-bridges");
+ const pluginsRs = await apiCall(widget, "plugins");
return res.status(200).send({
data: {
- status: statusRS?.data?.status,
- updateAvailable: versionRS?.data?.updateAvailable,
- plugins: formatPluginsResponse(pluginsRS)
+ status: statusRs?.data?.status,
+ updateAvailable: versionRs?.data?.updateAvailable,
+ plugins: formatPluginsResponse(pluginsRs),
+ childBridges: formatChildBridgesResponse(childBrigdeRs),
}
});
}