/homebridge-daikin-oneplus

Homebridge plugin to control a Daikin One+ thermostat

Primary LanguageTypeScriptApache License 2.0Apache-2.0

Daikin One+ Thermostat Homebridge Plugin

Downloads Version Daikin One+@Homebridge Discord verified-by-homebridge

HomeKit support for Daikin One+ thermostats using Homebridge

homebridge-daikin-oneplus uses the Daikin One+ API to allow native HomeKit support via Homebridge for any thermostats on your account.

Accessories and their features (dependent upon your system/equipment capabilities):

  • Thermostat
    • Display current temperature
    • Display and set target temperature
    • Switch mode between cool, heat, and auto
    • Set both cooling and heating threshold in auto mode
    • Temporarily override a schedule
      • Schedule will be paused for a period of time based on how the thermostat is configured. The thermostat can be configured to pause for 1, 4, or 8 hours, or until the next event in the schedule.
    • Air Quality sensors
      • Display indoor and outdoor levels
    • Relative humidity sensors
      • Display indoor and outdoor levels
      • Set target indoor relative humidity
  • Schedule switch
    • Display and set thermostat's schedule state
  • Away switch
    • Display and set thermostat's away state
    • Optionally, the schedule can be enabled automatically when the Away switch is toggled off. By default this plugin and the thermostat itself do not enable the schedule after returning from Away.
  • Emergency Heat switch
    • Display and set thermostat's emergency/auxiliary heat state
  • One Clean fan
    • Trigger the thermostat to run the fan for a 3 hour One Clean cycle
  • Circulate Air fan
    • Allows the Circulate Air feature to be toggled between 'off' and 'always on'
    • Fan speed can be adjusted:
      • 0% : Off
      • 33% : Low
      • 66% : Medium
      • 100% : High
  • Version 2+ improves performance in several ways:
    • Reduce bandwidth by checking the Daikin API every 3 minutes or on demand when interacting with HomeKit (instead of the previous every 10s)
    • After updates, wait up to 15 seconds before checking API to avoid HomeKit showing stale data.
  • Version 3
    • Minimum node version increased to 14
    • Plugin is now verified!

Known Issue

  • Per issue #20, it may now be necessary to request an integration token via the Daikin One Home app before this plugin can successfully communicate with the Daikin API.
    • To get an integration token:
      • Open the Daikin One Home app
      • Go to account settings on the Location/root/top screen of the app.
      • Select home integration
      • Select get integration token
      • Agree to terms
      • Enter your account password
      • Select send request
    • Once you receive the token, nothing further should be required.
    • You may need to uninstall/reinstall the plugin, or at least restart Homebridge to get a successful connection.

Installation

If you are new to Homebridge, please first read the Homebridge documentation and installation instructions before proceeding.

If you have installed the Homebridge Config UI, you can install this plugin by going to the Plugins tab and searching for homebridge-daikin-oneplus and installing it.

Homebridge Config

The easiest way to configure this plugin is via Homebridge Config UI X.

"platforms": [
  {
    "platform": "DaikinOnePlus",
    "name": "Daikin One+",              // Required. The name of the thermostat. Can be anything.
    "user": "any@email.address",        // Required. The email of your Daikin One+ account.
    "password": "password",             // Required.
    "includeDeviceName": false,         // Required. Should the default sensor names start with the thermostat name (as configured in the thermostat).
    "ignoreThermostat": false,          // If true, do not load thermostats found in Daikin account.
    "ignoreIndoorAqi": false,           // If true, do not load indoor air quality sensors of thermostats found in Daikin account.
    "ignoreOutdoorAqi": false,          // If true, do not load outdoor air quality sensors of thermostats found in Daikin account.
    "ignoreIndoorHumSensor": false,     // If true, do not load indoor humidity sensors of thermostats found in Daikin account.
    "ignoreOutdoorHumSensor": false,    // If true, do not load outdoor humidity sensors of thermostats found in Daikin account.
    "ignoreOutdoorTemp": false,         // If true, do not load outdoor temperature data of thermostats found in Daiking account.
    "enableAwaySwitch": false,          // If true, enable switch accessory to get/set the Away state of thermostats found in Daikin account.
    "autoResumeSchedule": false,        // If true, enable schedule after Away switch is toggled off.
    "enableEmergencyHeatSwitch": false, // If true, enable switch accessory to request auxiliary/emergency heat only.
    "enableOneCleanFan": false,         // If true, enable fan accessory that allows the user to run one clean.
    "enableCirculateAirFan": false,     // If true, enable fan accessory that allows the user to run the fan constantly at the specified speed.
    "enableScheduleSwitch": false,      // If true, enable switch accessory to get/set the Schedule state of thermostats found in Daikin account.
  }
]

Acknowledgements

The Daikin API requests and parsing of the results is based on the daikinskyport repo by apetrycki.

Many thanks to Fabian Frank for his valued contributions towards performance improvements and other bug fixes.