homebridge-miot icon indicating copy to clipboard operation
homebridge-miot copied to clipboard

Swing angle buttons are not shown for Xiaomi Tower Fan 2

Open ShchirinAleks opened this issue 10 months ago • 3 comments

Describe the bug After adding divide by pulling from MiCloud the Swing angle buttons are not shown for the fan.

Expected behavior Expected to see swing angle buttons in Homebridge and HomeKit.

Your config.json hb-miot.json

Debug log log.txt

ShchirinAleks avatar Jun 26 '25 15:06 ShchirinAleks

It seems that the device has different property name for the swing functionality fan:horizontal-swing-included-angle https://www.merdok.org/miotspec/?model=xiaomi.fan.p45

You could try to add it as propertyControl.

merdok avatar Jun 26 '25 20:06 merdok

@merdok Thank you for that tip it actually worked. The model I have is xiaomi.fan.p45

What's also missing here are buttons to turn it manually right/left and the turn-off delay

The percentage slider is acting a bit weird because you can set it to any 1-step value and it updates afterward

Here is my config for further reference

{
    "name": "Tower Fan",
    "pollingInterval": 10,
    "deepDebugLog": false,
    "silentLog": false,
    "deviceEnabled": true,
    "buzzerControl": true,
    "ledControl": true,
    "childLockControl": true,
    "modeControl": true,
    "moveControl": true,
    "fanLevelControl": true,
    "offDelayControl": true,
    "horizontalAngleButtons": [
        30,
        60,
        90,
        120,
        150
    ],
    "actionButtons": [
        {
            "action": "2.4",
            "name": "Turn left"
        },
        {
            "action": "2.5",
            "name": "Turn right"
        }
    ],
    "propertyControl": [
        {
            "property": "fan:horizontal-swing-included-angle",
            "name": "Oscillation angle"
        },
        {
            "property": "delay:delay",
            "name": "Delay Timer Active"
        },
        {
            "property": "delay:delay-time",
            "name": "Delay Time",
            "config": {
                "type": "fan"
            }
        }
    ],
    "propertyMonitor": [
        {
            "property": "delay:delay-remain-time",
            "name": "Delay Remaining Time",
            "config": {
                "type": "fan"
            }
        }
    ]
}

D3SOX avatar Aug 26 '25 11:08 D3SOX

Great, that can be used to create a dedicated device class with mapping to these properties!

merdok avatar Aug 26 '25 13:08 merdok