homebridge-gira-client
Version:
Homebridge Plugin für Gira Homeserver 4 mit automatischer Geräteerkennung über IoT REST API
134 lines • 3.44 kB
TypeScript
import { API, Logger, PlatformAccessory, PlatformConfig } from 'homebridge';
export interface GiraHomebridgeConfig extends PlatformConfig {
name: string;
host: string;
port?: number;
username: string;
password: string;
pollingInterval?: number;
debugMode?: boolean;
adminMode?: boolean;
forceCompleteAccess?: boolean;
alternativeClientId?: string;
buildingStructure?: {
useLocationHierarchy?: boolean;
groupByFloor?: boolean;
groupByBuilding?: boolean;
customRoomMappings?: Record<string, string>;
};
deviceFilters?: {
includeRooms?: string[];
excludeRooms?: string[];
includeTypes?: string[];
excludeTypes?: string[];
includeTrades?: string[];
excludeTrades?: string[];
};
}
export interface QuoadDevice {
id: string;
name: string;
type: string;
room?: string;
location?: GiraLocation;
trade?: string;
functions: QuoadFunction[];
properties: Record<string, any>;
}
export interface GiraLocation {
name: string;
type: string;
parent?: GiraLocation;
children?: GiraLocation[];
path: string[];
}
export interface QuoadFunction {
id: string;
name: string;
type: QuoadFunctionType;
value: any;
writable: boolean;
dataType: string;
unit?: string;
min?: number;
max?: number;
step?: number;
options?: string[];
}
export declare enum QuoadFunctionType {
SWITCHING = "switching",
DIMMING = "dimming",
COLORED_LIGHT = "colored_light",
TUNABLE_WHITE = "tunable_white",
BLINDS = "blinds",
TRIGGER = "trigger",
PRESS_AND_HOLD = "press_and_hold",
SCENE = "scene",
HEATING = "heating",
COOLING = "cooling",
FAN_COIL = "fan_coil",
SAUNA = "sauna",
AUDIO = "audio",
SONOS = "sonos",
CAMERA = "camera",
LINK = "link",
BINARY_STATUS = "binary_status",
UNSIGNED_STATUS = "unsigned_status",
SIGNED_STATUS = "signed_status",
FLOAT_STATUS = "float_status",
TEXT_STATUS = "text_status",
UNSIGNED_VALUE = "unsigned_value",
SIGNED_VALUE = "signed_value",
PERCENT_VALUE = "percent_value",
TEMPERATURE_VALUE = "temperature_value",
DECIMAL_VALUE = "decimal_value",
TEMPERATURE = "temperature",
HUMIDITY = "humidity",
SENSOR = "sensor",
WEATHER = "weather",
ENERGY = "energy",
UNKNOWN = "unknown"
}
export interface DeviceMapping {
homebridgeService: string;
characteristics: CharacteristicMapping[];
}
export interface CharacteristicMapping {
homebridgeCharacteristic: string;
quoadFunction: string;
converter?: (value: any) => any;
reverseConverter?: (value: any) => any;
}
export interface PlatformContext {
api: API;
log: Logger;
config: GiraHomebridgeConfig;
accessories: Map<string, PlatformAccessory>;
}
export interface QuoadConnectionConfig {
host: string;
port: number;
username: string;
password: string;
secure?: boolean;
}
export interface QuoadMessage {
type: 'request' | 'response' | 'event';
id?: string;
method?: string;
params?: any;
result?: any;
error?: QuoadError;
}
export interface QuoadError {
code: number;
message: string;
data?: any;
}
export interface DeviceUpdate {
deviceId: string;
functionId: string;
value: any;
timestamp: Date;
}
//# sourceMappingURL=types.d.ts.map