We will be releasing a firmware update that includes another endpoint that is a fan endpoint. In zha it should have a dimmer endpoint and a fan endpoint that both control the fan. Users can disable the dimmer endpoint if they would like (or the fan endpoint). The reason we keep the dimmer endpoint is so that the device can be bound to dimmer devices and control them remotely.
@EricM_Inovelli Are there any updates to this? I’ve setup a template to emulate a fan device type, but have been unable to get the switch to update to the beta firmware.
@anthony.hamill I believe if you update to the HA that came out today, the 1.07 firmware should eventually show up. We are testing their new update method in this new release.
@EricM_Inovelli I’ve updated HASS core and it now says my firmware version is “up-to-date”, but I’m still on 1.04. I’m assuming that’s because 1.07 is still in beta.
Update - the new firmware has downloaded and the device is showing the new FW version, but I’m still only seeing the light entity.
I was able to see the fan entity when I removed it from my zigbee network, then re-added it (now that I’m on 1.07) using ZHA. The strange thing for me is when I click to turn on, it says power at 66% (even though it’s set as on/off switch and max level is set in parameters). I noticed the same for the VZM36 module, which I do have set as a ceiling fan - it turns on at 66% too.
66 = Medium Speed. You should be able to either increase it within HA or by holding up on the switch and see it go to 100 if that’s what you’re looking for?
Yes, I can get it to go to 100, by doing that, but when I turn off then later turn back on, either via switch or HA, it always comes back to displaying 66 (medium), even though the power actually is set full.
Oh I see what you’re saying, it should be going back to the previous value, but instead it looks like turning on the fan entity goes to 50% (turns on and sends a move to level 128), which would show up as 66 or Medium Speed as it’ll get rounded up with those 3 possible speeds.
Compared with using the light entity, I see the off/on behavior respecting the previously set level. That makes me think this appears to be an issue with how that fan portion has been set up. Tagging @EricM_Inovelli for follow up/tracking.
@scottb I’m not sure yet how to fix it, but it looks like ZHA is sending a command with “medium” value when you turn the fan on. It should be sending “on” I believe. I can confirm that this doesn’t happen on Z2M.
2024-05-02 19:50:44.815 DEBUG (MainThread) [zigpy.zcl] [0x0567:2:0x0202] Sending request: Write_Attributes(attributes=[Attribute(attrid=0x0000, value=TypeValue(type=FanMode, value=<FanMode.Medium: 2>))])
If it is in On/Off mode it should only use the high speed even though the level is not showing correctly. So it shouldn’t cause any problems with the fan, but I see that it is confusing an will see if I can figure out what is going on in ZHA.
@chack revisiting this and I don’t think this is a change to be made in the quirk. I am not too familiar with quirks, but I don’t see where you would specify that turning the fan on should send FanMode.On: 4.
Seems like it would be an issue with other fan devices in ZHA.
Looks like @chack has pointed us in the right direction. If the on command is not sent with a percentage, it looks like it will turn the fan on to 50% (medium). Not sure why it would do that as I would think it would send 0x04 (on) if you press “on” in HA.
I know I am kind of talking to myself on this now LOL, but I did some more digging and testing. It actually looks like the vzm35 & vzm36 do not respond to the FanControl: 4 command. The engineer said he would add this in the future and it will respond exactly like if you were to send OnOff: On with the OnOff cluster.
That won’t fix the issue here though since ZHA is not using that command anyway, so it is kind of a side note. The issue here is that if you send the On command in HA without specifying the percentage, ZHA uses 50%. So that is what gets used from the HA GUI. In automations I am assuming if you use the on command and specify the level it will go to the correct speed?
The way Z2M, SmartThings, and Hubitat work is when you press on or off it uses the OnOff cluster (and not the FanControl cluster). That seems pretty practical to me, but I’m not sure if ZHA should do that or not.
Thanks so much for digging into this! This is the exact issue I’m experiencing.
That’s correct. The issue is just with sending the on/off command (to restore the last used speed without explicitly specifying it) in automations or with simply toggling the fan on a dashboard or using voice (like Alexa).
For what it’s worth, I have a fan with native Zigbee support, and it works perfectly with ZHA. Happy to help test whatever I can.