homebridge-pentair-intellicenter-ai
Version:
Homebridge plugin for the Pentair IntelliCenter pool control system (maintained with AI assistance)
205 lines • 5.33 kB
TypeScript
export declare enum IntelliCenterResponseStatus {
Ok = "200"
}
export declare enum IntelliCenterRequestCommand {
GetQuery = "GetQuery",
RequestParamList = "RequestParamList",
SetParamList = "SetParamList"
}
export declare enum IntelliCenterResponseCommand {
SendQuery = "SendQuery",
NotifyList = "NotifyList",
WriteParamList = "WriteParamList",
Error = "Error"
}
export declare enum IntelliCenterQueryName {
GetHardwareDefinition = "GetHardwareDefinition"
}
type CircuitStatusSubscribeRequest = {
objnam: string;
keys: ReadonlyArray<string>;
};
export type CircuitParams = {
STATUS?: string;
SPEED?: number;
[key: string]: string | number | boolean | undefined;
};
export type BodyParams = {
HEAT_MODE?: number;
HEAT_SETPOINT?: number;
HEAT_SOURCE?: string;
LAST_TEMP?: number;
[key: string]: string | number | boolean | undefined;
};
export type SensorParams = {
LAST_TEMP?: number;
PROBE?: number;
[key: string]: string | number | boolean | undefined;
};
export type PumpParams = {
STATUS?: string;
SPEED?: number;
RPM?: number;
GPM?: number;
WATTS?: number;
SELECT?: string;
[key: string]: string | number | boolean | undefined;
};
export type GenericParams = {
[key: string]: string | number | boolean | undefined;
};
export type IntelliCenterParams = CircuitParams | BodyParams | SensorParams | PumpParams | GenericParams;
export type CircuitStatusMessage = {
objnam?: string;
params?: IntelliCenterParams;
changes?: ReadonlyArray<CircuitStatusMessage>;
};
type IntelliCenterMessage = {
queryName?: IntelliCenterQueryName;
messageID: string;
};
export type IntelliCenterRequest = {
command: IntelliCenterRequestCommand;
arguments?: string;
objectList?: ReadonlyArray<CircuitStatusSubscribeRequest | CircuitStatusMessage>;
} & IntelliCenterMessage;
export type HardwareDefinitionAnswer = {
[panelId: string]: {
[moduleId: string]: {
[objectId: string]: {
OBJNAM: string;
OBJTYP: string;
SUBTYP?: string;
HNAME?: string;
[key: string]: string | number | boolean | undefined;
};
};
};
};
export type DiscoveryAnswer = HardwareDefinitionAnswer | Record<string, unknown>;
export type IntelliCenterResponse = {
command: IntelliCenterResponseCommand;
description: string;
response: IntelliCenterResponseStatus;
answer?: DiscoveryAnswer;
objectList?: ReadonlyArray<CircuitStatusMessage>;
} & IntelliCenterMessage;
export declare enum CircuitType {
IntelliBrite = "INTELLI",
Generic = "GENERIC"
}
export declare enum TemperatureSensorType {
Air = "AIR",
Pool = "POOL"
}
export declare enum BodyType {
Pool = "POOL",
Spa = "SPA"
}
export type BaseCircuit = {
id: string;
};
export type Circuit = {
id: string;
name: string;
objectType: ObjectType;
type: CircuitType | BodyType;
status?: CircuitStatus;
} & BaseCircuit;
export type Pump = {
minRpm: number;
maxRpm: number;
minFlow: number;
maxFlow: number;
circuits?: ReadonlyArray<PumpCircuit>;
rpm?: number;
gpm?: number;
watts?: number;
[key: string]: unknown;
} & Circuit;
export type PumpCircuit = {
id: string;
pump: Pump;
circuitId: string;
speed: number;
speedType: string;
status?: CircuitStatus;
rpm?: number;
gpm?: number;
watts?: number;
} & BaseCircuit;
export type Sensor = {
id: string;
name: string;
objectType: ObjectType;
type: TemperatureSensorType;
probe: number;
} & BaseCircuit;
export declare enum CircuitStatus {
On = "ON",
Off = "OFF"
}
export declare enum PumpSpeedType {
RPM = "RPM",
GPM = "GPM"
}
export declare enum HeatMode {
On = 2,
Off = 1
}
export type Body = {
temperature?: number;
highTemperature?: number;
lowTemperature?: number;
heaterId?: string;
heatSource?: string;
heatMode?: number;
circuit?: BaseCircuit;
[key: string]: unknown;
} & Circuit;
export type Heater = {
bodyIds: ReadonlyArray<string>;
coolingEnabled?: boolean;
} & Circuit;
export type Module = {
id: string;
features: ReadonlyArray<Circuit>;
bodies: ReadonlyArray<Body>;
heaters: ReadonlyArray<Heater>;
};
export type Panel = {
id: string;
modules: ReadonlyArray<Module>;
features: ReadonlyArray<Circuit>;
pumps: ReadonlyArray<Pump>;
sensors: ReadonlyArray<Sensor>;
};
export declare enum ObjectType {
Circuit = "CIRCUIT",
Module = "MODULE",
Panel = "PANEL",
Body = "BODY",
Heater = "HEATER",
CircuitGroup = "CIRCGRP",
Pump = "PUMP",
Sensor = "SENSE"
}
export declare const CircuitTypes: ReadonlySet<ObjectType>;
export declare const SensorTypes: ReadonlySet<ObjectType>;
export declare enum TemperatureUnits {
C = "C",
F = "F"
}
export declare class Color {
readonly intellicenterCode: string;
readonly hue: number;
readonly saturation: number;
static readonly White: Color;
static readonly Red: Color;
static readonly Green: Color;
static readonly Blue: Color;
static readonly Magenta: Color;
private constructor();
}
export {};
//# sourceMappingURL=types.d.ts.map