homebridge-daikin-local
Version:
daikin plugin for homebridge: https://github.com/homebridge/homebridge
388 lines (387 loc) • 16.7 kB
JSON
{
"pluginAlias": "Daikin-Local",
"pluginType": "accessory",
"schema": {
"type": "object",
"properties": {
"name": {
"title": "Name",
"type": "string",
"required": true,
"default": "Daikin Livingroom"
},
"apiroute": {
"title": "URI of the WIFI controller.",
"description": "Should be in the format of: http://aaa.bbb.ccc.ddd or https://aaa.bbb.ccc.ddd",
"type": "string",
"required": true,
"default": "http://192.168.1.33",
"format": "uri"
},
"temperature_unit": {
"title": "Define Temperature Unit",
"type": "string",
"required": true,
"default": "C",
"oneOf": [{"title": "Fahrenheit", "enum": ["F"]},
{"title": "Celsius", "enum": ["C"]}]
},
"temperatureOffsetOutside": {
"title": "Temperature-Offset-Outside",
"type": "number",
"required": false,
"default": 0.0,
"minimum": -10.0,
"maximum": 10.0,
"step": 0.1,
"description": "Allows an offset to calibrate the measurement."
},
"temperatureOffsetInside": {
"title": "Temperature-Offset-Inside",
"type": "number",
"required": false,
"default": 0.0,
"minimum": -10.0,
"maximum": 10.0,
"step": 0.1,
"description": "Allows an offset to calibrate the measurement."
},
"uuid": {
"title": "Client UUID token if needed",
"description": "Should be a 32 digit hex string. Most Daikin devices do not need a UUID token. Read the documentation: https://github.com/cbrandlehner/homebridge-daikin-local#httpsregistered-client-support",
"type": "string",
"required": false
},
"system": {
"type": "string",
"title": "Controller Type",
"description": "Select your WiFi controller type: 'Default' for standard Daikin WiFi modules (BRP069xxx), 'Skyfi' for Skyfi controllers, or 'Faikout' for ESP32-Faikout open-source controllers. Choose 'Faikout' if you installed the ESP32-Faikout firmware on an ESP32 chip.",
"enum": [ "Default", "Skyfi", "Faikout" ],
"default": "Default",
"required": true
},
"OpenSSL3": {
"title": "OpenSSL3 support",
"description": "Use new OpenSSL3 SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION option",
"type": "boolean",
"default": false
},
"swingMode": {
"title": "Swing Direction Preference",
"description": "Choose your preferred swing direction when oscillation is enabled in HomeKit. All controller types support this setting.",
"type": "string",
"default": "1",
"required": true,
"oneOf": [
{ "title": "Vertical Swing (default)", "enum": ["1"] },
{ "title": "Horizontal Swing", "enum": ["2"] },
{ "title": "3D Swing (Both Directions)", "enum": ["3"] }
]
},
"disableFan": {
"title": "Disable Separate Fan Accessory",
"description": "When enabled (true), hides the separate Fan accessory from HomeKit main view. Fan speed and oscillation controls in AC settings remain available based on the settings below.",
"type": "boolean",
"default": false
},
"fanMode": {
"title": "Fan mode",
"description": "If in DRY-mode, switching on the FAN in Apple-Home will start the AC in dry mode. If in FAN-mode, it will only activate the FAN.",
"type": "string",
"default": "FAN",
"required": true,
"oneOf": [
{ "title": "FAN", "enum": ["FAN"] },
{ "title": "DRY", "enum": ["DRY"] }
]
},
"fanPowerMode": {
"title": "Fan power mode",
"description": "Should Fan power only affect the fan or complete device.",
"type": "string",
"default": "FAN only",
"required": true,
"enum": [ "FAN only", "Complete Device" ]
},
"fanName": {
"title": "FAN name",
"description": "The name of the fan. Only applies if the FAN has not been disabled.",
"type": "string",
"required": true,
"default": "Livingroom FAN"
},
"defaultMode": {
"title": "Default operation mode",
"description": "When turning on the Daikin device in HomeBridge using a single-tap, the default operation mode will be applied. The Daikin-Auto-mode does not match Apple-Homekit - so it is advised to use either COOL- or HEAT-mode if possible.",
"type": "string",
"default": "3",
"oneOf": [
{ "title": "Auto", "enum": ["1"] },
{ "title": "Cool (default)", "enum": ["3"] },
{ "title": "Heat", "enum": ["4"] }
],
"required": true
},
"enableHumiditySensor": {
"title": "Humidity sensor enabled",
"description": "Enables humidity sensor if present in Daikin device.",
"type": "boolean",
"default": false
},
"enableTemperatureSensor": {
"title": "Temperature sensor enabled",
"description": "Enables temperature sensor in HomeKit.",
"type": "boolean",
"default": false
},
"enableEconoMode": {
"title": "Econo Mode switch enabled",
"description": "Enables a switch in HomeKit to toggle the AC's Econo mode (energy-saving mode). Works with both traditional Daikin and Faikout controllers. Mutually exclusive with Powerful mode.",
"type": "boolean",
"default": false
},
"econoModeName": {
"title": "Econo Mode switch name (optional)",
"description": "Custom name for the Econo Mode switch. Default: 'Econo Mode'. Toggle the switch and check Homebridge logs to identify which one it is.",
"type": "string",
"required": false,
"placeholder": "Econo Mode"
},
"enablePowerfulMode": {
"title": "Powerful Mode switch enabled",
"description": "Enables a switch in HomeKit to toggle the AC's Powerful mode (maximum cooling/heating). Works with both traditional Daikin and Faikout controllers. Mutually exclusive with Econo mode.",
"type": "boolean",
"default": false
},
"powerfulModeName": {
"title": "Powerful Mode switch name (optional)",
"description": "Custom name for the Powerful Mode switch. Default: 'Powerful Mode'. Toggle the switch and check Homebridge logs to identify which one it is.",
"type": "string",
"required": false,
"placeholder": "Powerful Mode"
},
"enableNightQuietMode": {
"title": "Night Quiet Mode switch enabled",
"description": "Enables a switch in HomeKit to toggle the AC's Night Quiet mode (silent operation). Faikout uses fan='Q', traditional Daikin uses f_rate='B' (silent). Can be used with Econo or Powerful modes.",
"type": "boolean",
"default": false
},
"nightQuietModeName": {
"title": "Night Quiet Mode switch name (optional)",
"description": "Custom name for the Night Quiet switch. Default: 'Night Quiet'. Toggle the switch and check Homebridge logs to identify which one it is.",
"type": "string",
"required": false,
"placeholder": "Night Quiet"
},
"enableFanSpeedInSettings": {
"title": "Enable Fan Speed in AC Settings",
"description": "When enabled (default), adds a fan speed slider directly in the AC accessory settings for easy access. Disable this if you only want to use the separate Fan accessory for fan speed control.",
"type": "boolean",
"default": true,
"required": false
},
"enableOscillationInSettings": {
"title": "Enable Oscillation in AC Settings",
"description": "When enabled (default), adds an oscillation toggle directly in the AC accessory settings. This is independent of fan speed and separate Fan accessory settings.",
"type": "boolean",
"default": true,
"required": false
},
"enableVerticalSwingSwitch": {
"title": "Enable Vertical Swing Switch (Faikout only)",
"description": "Adds a separate switch in HomeKit to independently control vertical (up/down) swing. Combined with the Horizontal Swing switch, this gives you 3 modes: vertical only, horizontal only, or 3D (both). Only works with Faikout controllers.",
"type": "boolean",
"default": false
},
"verticalSwingName": {
"title": "Vertical Swing switch name (optional)",
"description": "Custom name for the Vertical Swing switch. Default: 'Vertical Swing'.",
"type": "string",
"required": false,
"placeholder": "Vertical Swing"
},
"enableHorizontalSwingSwitch": {
"title": "Enable Horizontal Swing Switch (Faikout only)",
"description": "Adds a separate switch in HomeKit to independently control horizontal (left/right) swing. Combined with the Vertical Swing switch, this gives you 3 modes: vertical only, horizontal only, or 3D (both). Only works with Faikout controllers.",
"type": "boolean",
"default": false
},
"horizontalSwingName": {
"title": "Horizontal Swing switch name (optional)",
"description": "Custom name for the Horizontal Swing switch. Default: 'Horizontal Swing'.",
"type": "string",
"required": false,
"placeholder": "Horizontal Swing"
},
"quietWebSocketLogging": {
"title": "Quiet WebSocket Logging (Faikout only)",
"description": "When enabled (default), reduces log noise from WebSocket heartbeat and button status updates. Status messages will use debug level instead of info level. Set to false for verbose debugging.",
"type": "boolean",
"default": true,
"required": false
},
"minTemperature": {
"title": "Minimum Temperature",
"description": "Minimum temperature setting for your AC unit in Celsius. Most Daikin units support 10°C for heating and 18°C for cooling.",
"type": "number",
"default": 18,
"minimum": 5,
"maximum": 20,
"multipleOf": 0.5,
"required": false
},
"maxTemperature": {
"title": "Maximum Temperature",
"description": "Maximum temperature setting for your AC unit in Celsius. Most Daikin units support 30-32°C.",
"type": "number",
"default": 30,
"minimum": 25,
"maximum": 40,
"multipleOf": 0.5,
"required": false
},
"response": {
"title": "Response",
"description": "Timeout in milliseconds for the device to start responding. Default: 2000 (2 seconds).",
"type": "integer",
"default": 2000,
"minimum": 2000,
"maximum": 8000
},
"deadline": {
"title": "Deadline",
"description": "Timeout in milliseconds for the device to complete a response. Default: 60000 (one minute).",
"type": "integer",
"default": 60000,
"minimum": 10000,
"maximum": 60000
},
"retries": {
"title": "Retries",
"description": "The plugin can retry to reconnect in case of a connection problem. Default: 5.",
"type": "integer",
"default": 5,
"minimum": 0,
"maximum": 10
}
}
},
"layout": [
{
"type": "help",
"helpvalue": "<div style='background-color: #e3f2fd; padding: 15px; border-radius: 5px; margin-bottom: 15px;'><h5 style='margin-top: 0;'>🔌 Controller Type Selection</h5><ul style='margin-bottom: 0;'><li><strong>Default:</strong> Standard Daikin WiFi modules (BRP069xxx series)</li><li><strong>Skyfi:</strong> Skyfi WiFi controller models</li><li><strong>Faikout:</strong> ESP32-Faikout open-source controller (uses JSON API instead of query strings) - <a href='https://github.com/revk/ESP32-Faikout' target='_blank' style='color: #1565c0;'>Visit ESP32-Faikout GitHub →</a> for installation guides and compatible hardware lists.</li></ul><p style='margin-bottom: 0; margin-top: 10px;'><em>Faikout controllers automatically use separate horizontal/vertical swing controls and JSON-based API endpoints.</em></p></div>"
},
{
"type": "section",
"title": "Device Connection",
"expandable": false,
"items": [
"name",
"apiroute",
"system",
"uuid",
"temperature_unit"
]
},
{
"type": "section",
"title": "Swing & Fan Settings",
"expandable": true,
"items": [
"swingMode",
{
"type": "help",
"helpvalue": "<div style='background-color: #fff3cd; padding: 10px; border-radius: 5px; margin: 10px 0;'><strong>💡 Fan Control Options:</strong><br/><br/>1. <strong>In AC Settings</strong> (recommended): Adds fan speed slider and oscillation toggle directly in your AC accessory settings for quick access<br/><br/>2. <strong>Separate Fan Accessory</strong>: Creates a standalone fan accessory in HomeKit main view<br/><br/>You can enable both, just one, or neither based on your preference. The AC settings options work independently of the separate fan accessory.</div>"
},
"enableFanSpeedInSettings",
"enableOscillationInSettings",
{
"type": "help",
"helpvalue": "<div style='background-color: #e8f5e9; padding: 10px; border-radius: 5px; margin: 10px 0;'><strong>↕↔ Independent Swing Switches (Faikout only):</strong><br/><br/>Enable separate switches for vertical and horizontal swing to get 3 swing modes:<br/>• <strong>Vertical only</strong> - up/down airflow<br/>• <strong>Horizontal only</strong> - left/right airflow<br/>• <strong>3D mode</strong> - both switches ON<br/><br/>These appear as separate toggles in the Home app and work independently of the main oscillation setting above.</div>"
},
"enableVerticalSwingSwitch",
{
"key": "verticalSwingName",
"condition": {
"functionBody": "return model.enableVerticalSwingSwitch === true;"
}
},
"enableHorizontalSwingSwitch",
{
"key": "horizontalSwingName",
"condition": {
"functionBody": "return model.enableHorizontalSwingSwitch === true;"
}
},
"disableFan",
"fanMode",
"fanPowerMode",
"fanName"
]
},
{
"type": "section",
"title": "Special Modes (Econo, Powerful, Night Quiet)",
"expandable": true,
"items": [
{
"type": "help",
"helpvalue": "<p><strong>Note:</strong> Econo and Powerful modes are mutually exclusive - enabling one will disable the other.</p>"
},
"enableEconoMode",
{
"key": "econoModeName",
"condition": {
"functionBody": "return model.enableEconoMode === true;"
}
},
"enablePowerfulMode",
{
"key": "powerfulModeName",
"condition": {
"functionBody": "return model.enablePowerfulMode === true;"
}
},
"enableNightQuietMode",
{
"key": "nightQuietModeName",
"condition": {
"functionBody": "return model.enableNightQuietMode === true;"
}
}
]
},
{
"type": "section",
"title": "Additional Sensors & Modes",
"expandable": true,
"items": [
"defaultMode",
"enableHumiditySensor",
"enableTemperatureSensor",
{
"type": "help",
"helpvalue": "<div style='background-color: #e7f3ff; padding: 10px; border-radius: 5px; margin: 10px 0;'><strong>🌡️ Temperature Range Settings:</strong><br/>Configure the minimum and maximum temperature limits for your specific Daikin AC unit. Different models support different ranges.</div>"
},
"minTemperature",
"maxTemperature"
]
},
{
"type": "section",
"title": "Advanced Settings",
"expandable": true,
"items": [
{
"type": "help",
"helpvalue": "<div style='background-color: #d1ecf1; padding: 10px; border-radius: 5px; margin: 10px 0;'><strong>🌐 Faikout WebSocket Settings:</strong><br/>For Faikout controllers (ESP32-Faikout), quiet logging reduces log noise from status updates while maintaining full functionality.</div>"
},
"quietWebSocketLogging",
"OpenSSL3",
"response",
"deadline",
"retries"
]
}
]
}