homebridge-config-ui-x
Version:
A web based management, configuration and control platform for Homebridge.
167 lines (166 loc) • 3.93 kB
TypeScript
export interface MatterConfig {
port?: number;
enabled?: boolean;
externalsOnly?: boolean;
}
export interface BridgeHapConfig {
enabled?: boolean;
externalsOnly?: boolean;
}
export type MatterEvent = {
type: 'accessoriesData';
correlationId?: string;
data: MatterAccessoriesResponse;
} | {
type: 'accessoryUpdate';
correlationId?: string;
data: MatterStateUpdate;
} | {
type: 'accessoryAdded';
correlationId?: string;
data: MatterAccessoryInfo;
} | {
type: 'accessoryRemoved';
correlationId?: string;
data: MatterAccessoryInfo;
} | {
type: 'accessoryControlResponse';
correlationId?: string;
data: MatterControlResponse;
} | {
type: 'accessoryInfo';
correlationId?: string;
data: MatterAccessoryInfo;
} | {
type: 'monitoringStarted';
correlationId?: string;
data: MatterMonitoringAck;
} | {
type: 'monitoringStopped';
correlationId?: string;
data: MatterMonitoringAck;
};
export interface MatterMonitoringAck {
success: boolean;
alreadyActive?: boolean;
alreadyStopped?: boolean;
othersActive?: boolean;
}
export interface MatterAccessoriesResponse {
accessories?: MatterAccessory[];
error?: string;
}
export interface MatterAccessory {
uuid: string;
displayName: string;
deviceType: string;
clusters: Record<string, Record<string, unknown>>;
manufacturer?: string;
model?: string;
serialNumber?: string;
firmwareRevision?: string;
bridge?: {
name?: string;
username?: string;
};
plugin?: string;
platform?: string;
commissioned?: boolean;
fabricCount?: number;
fabrics?: MatterFabric[];
parts?: MatterAccessoryPart[];
}
export interface MatterAccessoryPart {
id: string;
displayName: string;
deviceType: string;
clusters: Record<string, Record<string, unknown>>;
}
export interface MatterAccessoryInfo extends MatterAccessory {
error?: string;
}
export interface MatterService {
uniqueId: string;
uuid: string;
serviceName: string;
displayName: string;
deviceType: string;
clusters: Record<string, Record<string, unknown>>;
partId?: string;
protocol: 'matter';
instance: {
name: string;
username: string;
};
accessoryInformation: {
'Name': string;
'Manufacturer': string;
'Model': string;
'Serial Number': string;
'Firmware Revision': string;
};
bridge?: {
name?: string;
username?: string;
};
plugin?: string;
platform?: string;
commissioned?: boolean;
fabricCount?: number;
fabrics?: MatterFabric[];
aid: 0;
iid: 0;
}
export interface MatterStateUpdate {
uuid: string;
cluster: string;
state: Record<string, unknown>;
partId?: string;
}
export interface MatterFabric {
fabricIndex: number;
label?: string;
vendorId?: number;
fabricId?: string;
nodeId?: string;
}
export interface MatterControlResponse {
success: boolean;
error?: string;
}
export interface MatterControlRequest {
uniqueId: string;
cluster: string;
attributes: Record<string, unknown>;
}
export interface StoredMatterAccessory {
uuid: string;
displayName?: string;
plugin?: string;
manufacturer?: string;
model?: string;
serialNumber?: string;
$deviceId?: string;
$protocol?: 'matter';
[key: string]: unknown;
}
export interface HomebridgeStatusMatterUpdate {
enabled: boolean;
port?: number;
setupUri?: string;
pin?: string;
serialNumber?: string;
commissioned?: boolean;
deviceCount?: number;
externalsOnly?: boolean;
}
export interface NetworkOverviewEntry {
service: string;
port: number;
protocol: string;
bridge: string;
status: string;
matterPort?: number;
commissioned?: boolean;
deviceCount?: number;
}