feat: add PeaNUT integration and UPS monitoring widget (#5862)
This commit is contained in:
1 parent
dd7a4908a3
commit
0dc2558faf
19 files changed
+770
-1
No files matched your search
@@ -0,0 +1,41 @@
|
||||
import type { IUpsSummaryIntegration } from "../../interfaces/ups-summary/ups-summary-integration";
|
||||
import type { UpsSummary } from "../../types";
|
||||
|
||||
export class UpsSummaryMockService implements IUpsSummaryIntegration {
|
||||
public async getUpsSummariesAsync(): Promise<UpsSummary[]> {
|
||||
return await Promise.resolve([
|
||||
{
|
||||
id: "ups-rack-1",
|
||||
name: "CyberPower OR1500",
|
||||
manufacturer: "CyberPower",
|
||||
model: "OR1500LCDRM1U",
|
||||
serial: "CPS1500-001",
|
||||
status: "online",
|
||||
batteryCharge: 100,
|
||||
batteryRuntime: 2280,
|
||||
batteryVoltage: 27.3,
|
||||
load: 42,
|
||||
inputVoltage: 230,
|
||||
outputVoltage: 230,
|
||||
power: 315,
|
||||
temperature: 29,
|
||||
},
|
||||
{
|
||||
id: "ups-rack-2",
|
||||
name: "APC Back-UPS Pro",
|
||||
manufacturer: "APC",
|
||||
model: "BR1500G",
|
||||
serial: "APC1500-002",
|
||||
status: "onBattery",
|
||||
batteryCharge: 64,
|
||||
batteryRuntime: 840,
|
||||
batteryVoltage: 25.1,
|
||||
load: 58,
|
||||
inputVoltage: 0,
|
||||
outputVoltage: 229,
|
||||
power: 410,
|
||||
temperature: 31,
|
||||
},
|
||||
]);
|
||||
}
|
||||
}
|
||||
@@ -15,6 +15,7 @@ import type { IMediaServerIntegration } from "../interfaces/media-server/media-s
|
||||
import type { IMediaTranscodingIntegration } from "../interfaces/media-transcoding/media-transcoding-integration";
|
||||
import type { NetworkControllerSummaryIntegration } from "../interfaces/network-controller-summary/network-controller-summary-integration";
|
||||
import type { ISmartHomeIntegration } from "../interfaces/smart-home/smart-home-integration";
|
||||
import type { IUpsSummaryIntegration } from "../interfaces/ups-summary/ups-summary-integration";
|
||||
import { CalendarMockService } from "./data/calendar";
|
||||
import { ClusterHealthMonitoringMockService } from "./data/cluster-health-monitoring";
|
||||
import { DnsHoleMockService } from "./data/dns-hole";
|
||||
@@ -28,6 +29,7 @@ import { NetworkControllerSummaryMockService } from "./data/network-controller-s
|
||||
import { NotificationsMockService } from "./data/notifications";
|
||||
import { SmartHomeMockService } from "./data/smart-home";
|
||||
import { SystemHealthMonitoringMockService } from "./data/system-health-monitoring";
|
||||
import { UpsSummaryMockService } from "./data/ups-summary";
|
||||
|
||||
export class MockIntegration
|
||||
extends Integration
|
||||
@@ -43,7 +45,8 @@ export class MockIntegration
|
||||
IMediaServerIntegration,
|
||||
IMediaTranscodingIntegration,
|
||||
NetworkControllerSummaryIntegration,
|
||||
ISmartHomeIntegration
|
||||
ISmartHomeIntegration,
|
||||
IUpsSummaryIntegration
|
||||
{
|
||||
private static readonly dnsHole = new DnsHoleMockService();
|
||||
private static readonly calendar = new CalendarMockService();
|
||||
@@ -58,6 +61,7 @@ export class MockIntegration
|
||||
private static readonly networkController = new NetworkControllerSummaryMockService();
|
||||
private static readonly notifications = new NotificationsMockService();
|
||||
private static readonly smartHome = new SmartHomeMockService();
|
||||
private static readonly upsSummary = new UpsSummaryMockService();
|
||||
|
||||
protected async testingAsync(_: IntegrationTestingInput): Promise<TestingResult> {
|
||||
return await Promise.resolve({
|
||||
@@ -123,4 +127,7 @@ export class MockIntegration
|
||||
getEntityStateAsync = MockIntegration.smartHome.getEntityStateAsync.bind(MockIntegration.smartHome);
|
||||
triggerAutomationAsync = MockIntegration.smartHome.triggerAutomationAsync.bind(MockIntegration.smartHome);
|
||||
triggerToggleAsync = MockIntegration.smartHome.triggerToggleAsync.bind(MockIntegration.smartHome);
|
||||
|
||||
// UpsSummaryIntegration
|
||||
getUpsSummariesAsync = MockIntegration.upsSummary.getUpsSummariesAsync.bind(MockIntegration.upsSummary);
|
||||
}
|
||||
Reference in new issue
Block a user