UNPKG

homebridge-pentair-intellicenter-ai

Version:

Homebridge plugin for the Pentair IntelliCenter pool control system (maintained with AI assistance)

76 lines 2.85 kB
/** * 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 setDummyCredentials; 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