Fan control issue

A plugin to integration Indigo devices into HomeKit (and Siri)
User avatar
durosity
Posts: 4810
Joined: Thu May 10, 2012 3:21 pm
Location: Newcastle Upon Tyne, Ye Ol' England.

Fan control issue

Post by durosity »

So I* have created a little plugin that lets me use two relay devices to simulate speeds on a fan. The plugin seems to work as expected in Indigo, it comes up with the correct UI for off/low/medium/high, but when I add it to HomeKit via HomeKitLink Siri it doesn't behave as I'd expect. If I go into the Home app and open the device it shows as a dimmer like device, but if I set it to any brightness level it doesn't seem to even attempt to control my device in Indigo, so it'll stay in the off position (or whatever state it was in when I tried to control it via Home app. The only exception seems to be when turning it off from Home App where it'll send an off command to the fan device in Indigo. On the flip side, if I control the device in Indigo then the status will update accordingly in the Home App and it'll show the correct brightness levels that I've defined for it (in this case 33% for Low, 66% for Medium, 100% for High).

I can't quite work out what I'm missing on my side to make it accept a command from the Home app.

Here's the device output from the fan device:

Code: Select all

address : 
batteryLevel : None
buttonConfiguredCount : 0
buttonGroupCount : 0
configured : True
description : 
deviceTypeId : Relay2Fan
displayStateId : speedIndex
displayStateImageSel : FanHigh
displayStateValRaw : 2
displayStateValUi : medium
enabled : True
energyAccumBaseTime : None
energyAccumTimeDelta : None
energyAccumTotal : None
energyCurLevel : None
errorState : 
folderId : 0
globalProps : MetaProps : (dict)
     com.GlennNZ.indigoplugin.HomeKitLink-Siri : (dict)
          HomeKit_audioSelector : false (bool)
          HomeKit_bridgeUniqueID : 405252 (integer)
          HomeKit_deviceSensor : speedIndex.ui (string)
          HomeKit_deviceSubtype : Fan (string)
          HomeKit_inverseSelector : false (bool)
          HomeKit_motionEnabled : true (bool)
          HomeKit_publishDevice : true (bool)
          HomeKit_tempSelector : false (bool)
          homekit-name : Scene 6 (string)
     com.durosity.indigoplugin.lighttools : (dict)
          SupportsOnState : true (bool)
          SupportsStatusRequest : false (bool)
          relay1Device : 1593770219 (string)
          relay2Device : 1189129218 (string)
id : 791057298
lastChanged : 2025-11-20 20:09:25
lastSuccessfulComm : 2025-11-20 20:09:25
ledStates : []
model : Relay to Fan Converter
name : Scene 6
onState : True
ownerProps : com.durosity.indigoplugin.lighttools : (dict)
     SupportsOnState : true (bool)
     SupportsStatusRequest : false (bool)
     relay1Device : 1593770219 (string)
     relay2Device : 1189129218 (string)
pluginId : com.durosity.indigoplugin.lighttools2
pluginProps : emptyDict : (dict)
protocol : Plugin
remoteDisplay : True
sharedProps : com.indigodomo.indigoserver : (dict)
speedIndex : 2
speedIndexCount : 4
speedLevel : 66
states : States : (dict)
     onOffState : on (on/off bool)
     speedIndex : 2 (integer)
     speedIndex.ui : medium (string)
     speedLevel : 66 (integer)
subModel : 
subType : 
supportsAllLightsOnOff : False
supportsAllOff : False
supportsOnState : True
supportsStatusRequest : True
version : None
I turned on Debug Logging on on the HKLS plugin but nothing shows up there when I change the device from Home.. perhaps that's a clue as to what's going on?

Is there anything you can suggest that would help identify why the commands from Home to Indigo aren't controlling this device?

*I being me and Claude, mostly Claude! :D
Computer says no.
User avatar
GlennNZ
Posts: 1873
Joined: Sun Dec 07, 2014 3:33 pm
Location: Central Coast, Australia

Re: Fan control issue

Post by GlennNZ »

Hi

Indigo fan device is quite different to most of the others and the support for the Fan in Homekit is limited, for those reasons, to Indigo Fan, SpeedControl devices.

As you know support for multiple, and particularly single user - plugin devices isn’t anywhere high on the radar…

If your plugin is creating a custom device - then that would be the issue. (I’m guessing)

You could change your plugin device created to be speedcontrol/fan devices - but would need to support the fan calls as per the SDK. It is possible to do this on the fly - with already created devices - somewhere in forum

https://github.com/IndigoDomotics/Indig ... n/Contents

If you point claude/or Copilot (github) to the SDKs it will probably do a reasonable job. (provided you rein it in heavily…)


Sent from my iPad using Tapatalk
Post Reply

Return to “HomeKitLink Siri”