homebridge-ecowitt-weather-sensors
Version:
Homebridge support for your Fine Offset weather station (Ecowitt, Ambient, Froggit, GoGen, and more)
66 lines (65 loc) • 2.44 kB
TypeScript
import { API, DynamicPlatformPlugin, Logger, PlatformAccessory, PlatformConfig, Service, Characteristic } from 'homebridge';
import { EcowittAccessory } from './EcowittAccessory';
import express from 'express';
interface SensorType {
type: string;
channel: number | undefined;
accessory: EcowittAccessory | undefined;
id: string | undefined;
uuid: string | undefined;
}
interface BaseStationInfoType {
model: string;
deviceName: string;
deviceIP: string;
serialNumber: string;
shortSerial: string;
protocol: string;
hardwareRevision: string;
softwareRevision: string;
firmwareRevision: string;
frequency: string;
MAC: string;
PASSKEY: string;
sensors: SensorType[];
}
/**
* HomebridgePlatform
* This class is the main constructor for your plugin, this is where you should
* parse the user config and discover/register accessories with Homebridge.
*/
export declare class EcowittPlatform implements DynamicPlatformPlugin {
readonly log: Logger;
readonly config: PlatformConfig;
readonly api: API;
readonly Service: typeof Service;
readonly Characteristic: typeof Characteristic;
readonly accessories: PlatformAccessory[];
dataReportServer: express.Application;
lastDataReport: null;
registeredProperties: string[];
consumedReportData: string[];
unconsumedReportData: string[];
validatorsReportData: string[];
requiredReportData: string[];
ignoreableReportData: string[];
protocolCheckFieldsWU: string[];
baseStationInfo: BaseStationInfoType;
constructor(log: Logger, config: PlatformConfig, api: API);
serviceUuid(name: string): string;
serviceId(name: string, channel: number | undefined): string;
shortServiceId(name: string, channel: number | undefined): string;
isEcowitt(): boolean;
isAmbient(): boolean;
/**
* This function is invoked when homebridge restores cached accessories from disk at startup.
* It should be used to setup event handlers for characteristics and update respective values.
*/
configureAccessory(accessory: PlatformAccessory): void;
onDataReport(dataReport: any): Promise<void>;
addSensorType(add: boolean, type: string, channel?: number | undefined): void;
registerAccessories(dataReport: any): void;
createAccessory(sensor: any, accessory: any): void;
updateAccessories(dataReport: any): void;
}
export {};