@chrispyduck/homie-sensors
Version:
Sensor library intended for ues with homie-device
48 lines • 1.58 kB
TypeScript
/// <reference types="node" />
import { HomieDevice } from "@chrispyduck/homie-device";
import { ISensor } from "../ISensor";
import { ICableModemScraperConfiguration } from "./INetClientConfiguration";
import { EventEmitter } from "events";
export default class ArrisSurfboardStatus extends EventEmitter implements ISensor<IMetrics> {
static readonly DefaultConfiguration: ICableModemScraperConfiguration;
constructor(config?: ICableModemScraperConfiguration);
private readonly config;
private homieRegistration;
register(device: HomieDevice): void;
read: () => Promise<IMetrics>;
init(): Promise<void>;
private extractSummary;
private extractDownstreamChannels;
private extractUpstreamChannels;
}
export interface IMetrics {
startupProcedureStatus: IGeneralStatus;
downstreamChannels: Array<IDownstreamChannel>;
upstreamChannels: Array<IUpstreamChannel>;
}
export interface IGeneralStatus {
downstreamChannelStatus?: string;
downstreamChannelFrequency?: number;
connectivityState?: string;
bootState?: string;
configurationFileStatus?: string;
securityStatus?: string;
networkAccess?: string;
}
export interface IChannel {
id: number;
lockStatus: string;
frequency: number;
power: number;
}
export interface IDownstreamChannel extends IChannel {
modulation: string;
snr: number;
corrected: number;
uncorrectable: number;
}
export interface IUpstreamChannel extends IChannel {
channelType: string;
width: number;
}
//# sourceMappingURL=ArrisSurfboard.d.ts.map