Skip to content

Using HomeKit with Faikin

Nicholas Humfrey edited this page Sep 14, 2024 · 2 revisions

Matter

RevK did start looking at adding support for Matter to Faikin, however it was looking harder than first anticipated:

https://github.com/revk/ESP32-Faikin/issues/93

The work is currently on-hold.

Homebridge

Homebridge is an open-source platform that allows you to integrate non-HomeKit compatible smart devices into Apple's HomeKit ecosystem. It acts as a bridge, enabling control of a wide variety of smart home devices through Apple's Home app and Siri, even if those devices aren't natively supported by HomeKit.

Faikin emulates the old did, which means that the Daikin Local HTTP API plugin works: homebridge-daikin-local

Alternatively, it is possible to use Homebridge MQTT-Thing. The advantage of this approach is that it is event-driven, rather than polling the HTTP API.

Example Homebridge accessory configuration:

{
    "accessory": "mqttthing",
    "name": "Air Conditioner",
    "type": "heaterCooler",
    "manufacturer": "Daikin",
    "topics": {
        "getOnline": "state/Faikin/status$.online",
        "getActive": "state/Faikin/status$.power",
        "setActive": "command/Faikin/power",
        "getCoolingThresholdTemperature": "state/Faikin/status$.temp",
        "setCoolingThresholdTemperature": "command/Faikin/temp",
        "getCurrentHeaterCoolerState": "state/Faikin/status$.mode",
        "getCurrentTemperature": "state/Faikin/status$.home",
        "getHeatingThresholdTemperature": "state/Faikin/status$.temp",
        "setHeatingThresholdTemperature": "command/Faikin/temp",
        "getTargetHeaterCoolerState": "state/Faikin/status$.mode",
        "setTargetHeaterCoolerState": "command/Faikin/mode"
    },
    "onValue": "1",
    "offValue": "0",
    "minTemperature": 18,
    "maxTemperature": 25,
    "restrictHeaterCoolerState": [
        1,
        2
    ],
    "currentHeaterCoolerValues": [
        "",
        "0",
        "H",
        "C"
    ],
    "targetHeaterCoolerValues": [
        "A",
        "H",
        "C"
    ],
    "logMqtt": true
}