UNPKG

homebridge-fujitsu-airstage

Version:

A Homebridge plugin to control devices that use the Fujitsu Airstage API.

230 lines (229 loc) 8.96 kB
{ "pluginAlias": "fujitsu-airstage", "pluginType": "platform", "singular": true, "schema": { "type": "object", "properties": { "name": { "title": "Name", "type": "string", "default": "Airstage Platform", "required": true, "description": "The display name for this platform instance." }, "enableCloudControl": { "title": "Enable Airstage API (cloud) device control", "type": "boolean", "default": true }, "enableLanControl": { "title": "Enable LAN device control", "type": "boolean", "default": false }, "region": { "title": "Region", "type": "string", "default": "us", "required": true, "oneOf": [ { "title": "U.S.", "const": "us" }, { "title": "Europe", "const": "eu" } ], "description": "The region for your Airstage account (U.S. or Europe).", "condition": { "functionBody": "return model.enableCloudControl === true;" } }, "country": { "title": "Country", "type": "string", "required": true, "default": "United States", "description": "The country associated with your Airstage account.", "condition": { "functionBody": "return model.enableCloudControl === true;" } }, "language": { "title": "Language", "type": "string", "required": true, "default": "en", "description": "The language code for your Airstage account (e.g., 'en').", "condition": { "functionBody": "return model.enableCloudControl === true;" } }, "email": { "title": "Airstage Email", "type": "string", "format": "email", "default": "", "description": "The email address for your Airstage account.", "condition": { "functionBody": "return model.enableCloudControl === true;" } }, "password": { "title": "Airstage Password", "type": "string", "default": "", "description": "The password for your Airstage account.", "condition": { "functionBody": "return model.enableCloudControl === true;" } }, "cloudPollingInterval": { "title": "Airstage API Polling Interval", "type": "integer", "default": 30, "description": "The polling interval for getting updates from the Airstage API, in minutes. WARNING: setting this too low may result in getting your IP banned from accessing the Airstage API! Set to '0' to disable polling completely.", "condition": { "functionBody": "return model.enableCloudControl === true;" } }, "lanDevices": { "title": "LAN Devices", "type": "array", "description": "If your Homebridge server is on the same local network as your Fujitsu devices, you can manually specify the hostname (or IP address) and the MAC address here, in order to control them directly.", "items": { "title": "Local Device", "type": "object", "properties": { "displayName": { "title": "Display Name", "type": "string", "required": true }, "hostname": { "title": "IP Address / Hostname", "type": "string", "required": true, "format": "hostname" }, "macAddress": { "title": "MAC Address", "type": "string", "required": true, "pattern": "^([A-Fa-f0-9]{2}:){5}[A-Fa-f0-9]{2}$" } } }, "condition": { "functionBody": "return model.enableLanControl === true;" } }, "lanTemperatureScale": { "title": "LAN Temperature Scale", "type": "string", "description": "The temperature scale that your local devices should use: either Celsius (default), or Fahrenheit.", "required": true, "default": "C", "oneOf": [ { "title": "Celsius (C)", "enum": ["C"] }, { "title": "Fahrenheit (F)", "enum": ["F"] } ], "condition": { "functionBody": "return model.enableLanControl === true;" } }, "lanPollingInterval": { "title": "LAN Polling Interval (value)", "type": "integer", "default": 30, "description": "The polling interval value for getting updates from local devices. Set to '0' to disable polling completely.", "condition": { "functionBody": "return model.enableLanControl === true;" } }, "lanPollingIntervalUnits": { "title": "LAN Polling Interval (units)", "type": "string", "default": "m", "description": "The units used by the polling interval for getting updates from local devices: either minutes (default), or seconds.", "oneOf": [ { "title": "Minutes (m)", "enum": ["m"] }, { "title": "Seconds (s)", "enum": ["s"] } ], "condition": { "functionBody": "return model.enableLanControl === true;" } }, "enableHeaterCooler": { "title": "Enable heater cooler control", "type": "boolean", "default": false }, "enableThermostat": { "title": "Enable thermostat control", "type": "boolean", "default": true }, "enableFan": { "title": "Enable fan control", "type": "boolean", "default": true }, "enableVerticalAirflowDirection": { "title": "Enable vertical airflow direction control", "type": "boolean", "default": false }, "enableAutoFanSpeedSwitch": { "title": "Enable 'Auto Fan Speed' switch", "type": "boolean", "default": false }, "enableDryModeSwitch": { "title": "Enable 'Dry Mode' switch", "type": "boolean", "default": false }, "enableEconomySwitch": { "title": "Enable 'Economy' switch", "type": "boolean", "default": false }, "enableEnergySavingFanSwitch": { "title": "Enable 'Energy Saving Fan' switch", "type": "boolean", "default": false }, "enableFanModeSwitch": { "title": "Enable 'Fan Mode' switch", "type": "boolean", "default": false }, "enableMinimumHeatModeSwitch": { "title": "Enable 'Minimum Heat Mode' switch", "type": "boolean", "default": false }, "enablePowerfulSwitch": { "title": "Enable 'Powerful' switch", "type": "boolean", "default": false } } } }