fibaro-mcp-server
Version:
Model Context Protocol server for Fibaro Home Center 2 integration with AI assistants
146 lines • 3.39 kB
TypeScript
/**
* Fibaro Home Center 2 API Client
*/
export interface FibaroDevice {
id: number;
name: string;
roomID: number;
type: string;
enabled?: boolean;
visible?: boolean;
properties?: Record<string, any>;
actions?: Record<string, any>;
}
export interface FibaroRoom {
id: number;
name: string;
sectionID?: number;
}
export interface FibaroScene {
id: number;
name: string;
roomID: number;
type?: string;
enabled?: boolean;
autostart?: boolean;
runConfig?: string;
runningInstances?: number;
visible?: boolean;
isLua?: boolean;
triggers?: {
properties?: any[];
globals?: any[];
events?: any[];
weather?: any[];
};
actions?: {
devices?: any[];
scenes?: any[];
groups?: any[];
};
lua?: string;
html?: string;
}
export interface FibaroSystemInfo {
serialNumber: string;
hcVersion: string;
platform: string;
mac: string;
}
export interface FibaroGlobalVariable {
name: string;
value: string;
modified: number;
isEnum?: boolean;
enumValues?: string[];
}
export declare class FibaroClient {
private client;
private baseUrl;
constructor(host: string, username: string, password: string, useHttps?: boolean, timeout?: number);
/**
* Get all devices
*/
getDevices(): Promise<FibaroDevice[]>;
/**
* Get specific device by ID
*/
getDevice(deviceId: number): Promise<FibaroDevice>;
/**
* Call an action on a device
*/
callAction(deviceId: number, action: string, args?: any[]): Promise<any>;
/**
* Get all rooms
*/
getRooms(): Promise<FibaroRoom[]>;
/**
* Get specific room by ID
*/
getRoom(roomId: number): Promise<FibaroRoom>;
/**
* Get all scenes
*/
getScenes(): Promise<FibaroScene[]>;
/**
* Get specific scene by ID
*/
getScene(sceneId: number): Promise<FibaroScene>;
/**
* Trigger/execute a scene
*/
triggerScene(sceneId: number): Promise<any>;
/**
* Get system information
*/
getSystemInfo(): Promise<FibaroSystemInfo>;
/**
* Get weather information
*/
getWeather(): Promise<any>;
/**
* Get location information
*/
getLocation(): Promise<any>;
/**
* Get system diagnostics
*/
getDiagnostics(): Promise<any>;
/**
* Get all users
*/
getUsers(): Promise<any[]>;
/**
* Get specific user by ID
*/
getUser(userId: number): Promise<any>;
/**
* Get all sections
*/
getSections(): Promise<any[]>;
/**
* Get specific section by ID
*/
getSection(sectionId: number): Promise<any>;
/**
* Get energy consumption
*/
getEnergy(type: string, id: number): Promise<any>;
/**
* Get temperature data
*/
getTemperaturePanel(type: string, method: string, id: number): Promise<any>;
/**
* Get all global variables
*/
getGlobalVariables(): Promise<FibaroGlobalVariable[]>;
/**
* Get specific global variable by name
*/
getGlobalVariable(varName: string): Promise<FibaroGlobalVariable>;
/**
* Set a global variable value
*/
setGlobalVariable(varName: string, value: any): Promise<any>;
}
//# sourceMappingURL=fibaro-client.d.ts.map