UNPKG

homebridge-config-ui-x

Version:

A web based management, configuration and control platform for Homebridge.

145 lines (144 loc) 3.78 kB
import type { Buffer } from 'node:buffer'; import { BridgeHapConfig, MatterConfig } from '../matter/matter.interfaces.js'; export interface StartupConfig { host?: '::' | '0.0.0.0' | string; httpsOptions?: { key?: Buffer; cert?: Buffer; pfx?: Buffer; passphrase?: string; }; cspWsOverride?: string; debug?: boolean; } interface PluginChildBridge { username: string; port?: number; pin?: string; name?: string; manufacturer?: string; model?: string; firmwareRevision?: string; hap?: boolean | BridgeHapConfig; env?: { DEBUG?: string; NODE_OPTIONS?: string; }; matter?: MatterConfig; } export interface PlatformConfig { platform: string; name?: string; _bridge?: PluginChildBridge; [key: string]: any; } export interface AccessoryConfig { accessory: string; name: string; _bridge?: PluginChildBridge; [key: string]: any; } export interface HomebridgeConfig { bridge: { username: string; pin: string; name: string; port: number; advertiser?: 'avahi' | 'resolved' | 'ciao' | 'bonjour-hap'; bind?: string | string[]; manufacturer?: string; model?: string; firmwareRevision?: string; hap?: boolean | BridgeHapConfig; matter?: MatterConfig; }; mdns?: { interface?: string | string[]; legacyAdvertiser?: boolean; }; ports?: { start?: number; end?: number; }; matterPorts?: { start?: number; end?: number; }; platforms?: PlatformConfig[]; accessories?: AccessoryConfig[]; plugins?: string[]; disabledPlugins?: string[]; } export interface HomebridgeUiBridgeConfig { username: string; hideHapAlert?: boolean; hideMatterAlert?: boolean; scheduledRestartCron?: string; } export interface HomebridgeUiConfig { name: string; port: number; host?: '::' | '0.0.0.0' | string; proxyHost?: string; auth: 'form' | 'none'; theme: string; lightingMode: 'auto' | 'light' | 'dark'; menuMode?: 'default' | 'freeze'; sudo?: boolean; restart?: string; lang?: string; log?: { method?: 'file' | 'custom' | 'systemd' | 'native'; command?: string; path?: string; service?: string; maxSize?: number; truncateSize?: number; }; ssl?: { key?: string; cert?: string; pfx?: string; passphrase?: string; selfSigned?: boolean; selfSignedHostnames?: string[]; }; accessoryControl?: { debug?: boolean; instanceBlacklist?: string[]; }; plugins?: { hideUpdatesFor?: string[]; showBetasFor?: string[]; hideChildBridgeSetupFor?: string[]; }; nodeUpdatePolicy?: 'all' | 'none' | 'major'; homebridgeUpdatePolicy?: 'all' | 'beta' | 'major' | 'none'; homebridgeUiUpdatePolicy?: 'all' | 'beta' | 'major' | 'none'; scheduledRestartCron?: string; bridges?: HomebridgeUiBridgeConfig[]; temp?: string; tempUnits?: string; wallpaper?: string; linux?: { shutdown?: string; restart?: string; }; debug?: boolean; sessionTimeout?: number; sessionTimeoutInactivityBased?: boolean; homebridgePackagePath?: string; scheduledBackupPath?: string; scheduledBackupDisable?: boolean; disableServerMetricsMonitoring?: boolean; enableMdnsAdvertise?: boolean; terminal?: { persistence?: boolean; hideWarning?: boolean; bufferSize?: number; fontSize?: string | number; fontWeight?: string | number; lightingMode?: 'light' | 'dark'; }; } export {};