homebridge-pentair-intellicenter-ai
Version:
Homebridge plugin for the Pentair IntelliCenter pool control system (maintained with AI assistance)
75 lines • 2.81 kB
TypeScript
/**
* Configuration validation and sanitization for Pentair Platform
*/
import { PlatformConfig } from 'homebridge';
import { TemperatureUnits } from './types';
export interface ValidationResult {
isValid: boolean;
errors: string[];
warnings: string[];
sanitizedConfig?: PentairConfig;
}
export interface TemperatureUnitValidationResult {
isConsistent: boolean;
detectedUnit: TemperatureUnits | null;
configuredUnit: TemperatureUnits;
analysisCount: number;
warning?: string;
}
export type PentairConfig = {
ipAddress: string;
username: string;
password: string;
maxBufferSize: number;
temperatureUnits: TemperatureUnits;
minimumTemperature: number;
maximumTemperature: number;
supportVSP: boolean;
airTemp: boolean;
includeAllCircuits?: boolean;
} & PlatformConfig;
export declare class ConfigValidator {
private static validateRequiredFields;
private static validateRequiredIpAddress;
private static validateRequiredUsername;
private static validateRequiredPassword;
private static validateTemperatureUnits;
private static validateTemperatureRangeConfig;
private static validateOptionalFields;
private static validateBufferSizeConfig;
private static performSecurityChecks;
private static finalizeSanitizedConfig;
static validate(config: PlatformConfig): ValidationResult;
private static validateIpAddress;
private static validateUsername;
private static validatePassword;
private static parseTemperatureValue;
private static validateTemperatureBounds;
private static validateTemperatureRange;
private static validateBoolean;
private static validateBufferSize;
private static isPrivateNetwork;
private static sanitizeInput;
/**
* Runtime validation of temperature unit consistency with IntelliCenter
* Analyzes temperature readings to detect if they match the configured units
*/
static validateTemperatureUnitConsistency(temperatureReadings: number[], configuredUnit: TemperatureUnits): TemperatureUnitValidationResult;
private static processValidTemperatureReadings;
private static validateDetectedTemperatureUnit;
private static filterValidTemperatureReadings;
private static calculateTemperatureStats;
private static detectTemperatureUnit;
private static tryDetectFahrenheit;
private static tryDetectCelsius;
private static isWithinTemperatureRanges;
private static createValidationResult;
private static createInconsistentResult;
/**
* Calculate confidence level for temperature unit detection
*/
private static calculateConfidence;
private static getConfidenceRanges;
private static determineConfidenceLevel;
}
//# sourceMappingURL=configValidation.d.ts.map