// constants.ts // This is the name of the platform that users will use to register the plugin in the Homebridge config.json export const PLATFORM_NAME = 'FibaroHC'; // This must match the name of your plugin as defined the package.json export const PLUGIN_NAME = 'homebridge-fibaro-home-center'; // API constants export const API_URL_INFO = '/api/settings/info'; export const API_URL_SCENES = '/api/scenes'; export const API_URL_CLIMATE = '/api/panels/climate'; export const API_URL_HEATING = '/api/panels/heating'; export const API_URL_ROOMS = '/api/rooms'; export const API_URL_DEVICES = '/api/devices'; export const API_URL_REFRESH_STATES = '/api/refreshStates'; export const API_URL_GLOBAL_VARIABLES = '/api/globalVariables'; export const DEFAULT_THROTTLE_RATE = 100; export const DEFAULT_THROTTLE_RATE_PER = 1000; export const DEFAULT_THROTTLE_CONCURRENT = 50; export const CERTIFICATE_FILE_NAME = 'ca.cer'; export const CERTIFICATE_PATHS = [ '/homebridge/ca.cer', '~/.homebridge/ca.cer', ]; export const HTTP_ACCEPT_HEADER = 'json'; export const RETRY_DELAY_LOGIN = 300000; // Poller constants export const DEFAULT_POLLER_PERIOD = 3; export const DEFAULT_THERMOSTAT_MAX_TEMP = 100; export const TIME_OFFSET = 2 * 3600; export const POLLER_RESTART_AFTER_SET_VALUE = 3000; // Security system constant export const SECURITY_SYSTEM_GLOBAL_VARIABLE = 'SecuritySystem'; // Device control types export const CONTROL_TYPE_LIGHTING = 2; export const CONTROL_TYPE_BEDSIDE_LAMP = 5; export const CONTROL_TYPE_WALL_LAMP = 7; export const CONTROL_TYPE_OTHER_DEVICE = 1; export const CONTROL_TYPE_OTHER_DEVICE_ALT = 20; export const CONTROL_TYPE_LIGHTING_ALT = 23; export const CONTROL_TYPE_VIDEO_INTERCOM = 24; export const CONTROL_TYPE_VIDEO_GATE_OPEN = 25; export const CONTROL_TYPE_SPRINKLER = 3; export const CONTROL_TYPE_VALVE = 26; export const CONTROL_TYPE_GATE_WITH_POSITIONING = 57; export const CONTROL_TYPE_GARAGE_DOOR = 56; export const CONTROL_TYPE_BLINDS_WITH_POSITIONING = 55; // Device roles export const DEVICE_ROLE_TEMPERATURE_SENSOR = 'TemperatureSensor'; export const DEVICE_ROLE_HUMIDITY_SENSOR = 'HumiditySensor'; export const DEVICE_ROLE_LIGHT_SENSOR = 'LightSensor'; export const DEVICE_ROLE_MULTILEVEL_SENSOR = 'MultilevelSensor'; export const DEVICE_ROLE_MOTION_SENSOR = 'MotionSensor'; export const DEVICE_ROLE_PRESENCE_SENSOR = 'PresenceSensor'; // Device types export const DEVICE_TYPE_SECURITY_SYSTEM = 'securitySystem'; export const DEVICE_TYPE_SCENE = 'scene'; export const DEVICE_TYPE_CLIMATE_ZONE = 'climateZone'; export const DEVICE_TYPE_HEATING_ZONE = 'heatingZone'; export const DEVICE_TYPE_GLOBAL_VARIABLE = 'G'; export const DEVICE_TYPE_DIMMER_GLOBAL_VARIABLE = 'D'; // Service subtypes export const SUBTYPE_LOCK = 'LOCK'; export const SUBTYPE_SCENE = 'SC'; export const SUBTYPE_CLIMATE_ZONE = 'CZ'; export const SUBTYPE_HEATING_ZONE = 'HZ'; export const SUBTYPE_RADIATOR_THERMOSTATIC_VALVE = 'RV'; export const SUBTYPE_OPEN_CLOSE_ONLY = 'OPENCLOSEONLY'; export const SUBTYPE_PM2_5 = 'PM2_5'; export const SUBTYPE_REMOTE_CONTROLLER_CENTRAL_SCENE = 'CS'; export const SUBTYPE_REMOTE_CONTROLLER_SCENE_ACTIVATION = 'SA'; // Configuration export const CONFIG_LOGS_LEVEL_VERBOSE = 2; export const CONFIG_FIBARO_TEMPERATURE_UNIT_FAHRENHEIT = 'F'; export const CONFIG_FIBARO_TEMPERATURE_UNIT_CELSIUS = 'C'; // Manual device types export const MANUAL_DEVICE_TYPES = { SWITCH: 'switch', DIMMER: 'dimmer', BLIND: 'blind', BLIND_WITH_TILT: 'blind2', GARAGE: 'garage', TEMPERATURE: 'temperature', HUMIDITY: 'humidity', LIGHT_SENSOR: 'lightSensor', MOTION: 'motion', LEAK: 'leak', SMOKE: 'smoke', OUTLET: 'outlet', } as const; // Characteristic types export enum Characteristics { On = 'On', MotionDetected = 'MotionDetected', OccupancyDetected = 'OccupancyDetected', Brightness = 'Brightness', PositionState = 'PositionState', CurrentPosition = 'CurrentPosition', TargetPosition = 'TargetPosition', CurrentHorizontalTiltAngle = 'CurrentHorizontalTiltAngle', TargetHorizontalTiltAngle = 'TargetHorizontalTiltAngle', CurrentTemperature = 'CurrentTemperature', TargetTemperature = 'TargetTemperature', ContactSensorState = 'ContactSensorState', LeakDetected = 'LeakDetected', SmokeDetected = 'SmokeDetected', CarbonMonoxideDetected = 'CarbonMonoxideDetected', CarbonMonoxideLevel = 'CarbonMonoxideLevel', CarbonMonoxidePeakLevel = 'CarbonMonoxidePeakLevel', OutletInUse = 'OutletInUse', LockCurrentState = 'LockCurrentState', LockTargetState = 'LockTargetState', CurrentHeatingCoolingState = 'CurrentHeatingCoolingState', TargetHeatingCoolingState = 'TargetHeatingCoolingState', TemperatureDisplayUnits = 'TemperatureDisplayUnits', Hue = 'Hue', Saturation = 'Saturation', CurrentDoorState = 'CurrentDoorState', TargetDoorState = 'TargetDoorState', ObstructionDetected = 'ObstructionDetected', BatteryLevel = 'BatteryLevel', ChargingState = 'ChargingState', StatusLowBattery = 'StatusLowBattery', SecuritySystemCurrentState = 'SecuritySystemCurrentState', SecuritySystemTargetState = 'SecuritySystemTargetState', Active = 'Active', InUse = 'InUse', ProgrammableSwitchEvent = 'ProgrammableSwitchEvent', ServiceLabelIndex = 'ServiceLabelIndex', AirQuality = 'AirQuality', CurrentRelativeHumidity = 'CurrentRelativeHumidity', CurrentAmbientLightLevel = 'CurrentAmbientLightLevel', PM2_5Density = 'PM2_5Density', HoldPosition = 'HoldPosition' }