ZigBee Fan Switch | Project Zephyr (Blue Series)

That makes complete sense! Yes, testing it, it does appear that at 100%, the fans are running at full speed. The solution I think I came up with is to set the minimum load dimming level to 128.

1 Like

Thanks for the info. I am checking with the engineer to pick his brain. He probably won’t answer until Sunday night though just FYI.

@EricM_Inovelli - correct; it is a DC motor, but the power to it is 120V AC. There are two low-voltage wires for the Panasonic presence sensor which the electrician capped (per instruction) - the voltage at the switch box is 120V, with neutral present.

The weird thing is that the switch is able to start the fan, after I turn the circuit breaker off then on. Once I turn the fan off from the switch, I does not turn the fan back on again. Presently the fans are controlled with plain vanilla light switches, so there’s nothing special about the wiring.

They are definitely different. I placed the diffuser from one of my early blues onto the fan switch and I could no longer see the individual LEDs on the fan switch. When you look at them side by side, the fan switch is more transparent than the Blue diffuser. It could just be manufacturing variations?

Potentially – do you still have access to our Teams? Maybe I can pull you in a convo w/the manufacturer.

@Gazelle and @MasterDevwi a PR was put in to fix the issue with button presses, but in the meantime if you want to run a custom quirk -

VZM35SN.py
"""VZM35-SN Fan Switch."""

from zigpy.profiles import zgp, zha
from zigpy.profiles.zha import DeviceType
from zigpy.quirks import CustomDevice
from zigpy.zcl.clusters.general import (
    Basic,
    GreenPowerProxy,
    Groups,
    Identify,
    LevelControl,
    OnOff,
    Ota,
    Scenes,
)
from zigpy.zcl.clusters.homeautomation import Diagnostic

from zhaquirks.const import (
    DEVICE_TYPE,
    ENDPOINTS,
    INPUT_CLUSTERS,
    MODELS_INFO,
    OUTPUT_CLUSTERS,
    PROFILE_ID,
)
from zhaquirks.inovelli import INOVELLI_AUTOMATION_TRIGGERS, Inovelli_VZM35SN_Cluster

INOVELLI_VZM35SN_CLUSTER_ID = 64561
WWAH_CLUSTER_ID = 64599


class InovelliVZM35SN(CustomDevice):
    """VZM35-SN Fan Switch"""
    signature = {
        MODELS_INFO: [("Inovelli", "VZM35-SN")],
        ENDPOINTS: {
            1: {
                PROFILE_ID: zha.PROFILE_ID,
                DEVICE_TYPE: DeviceType.DIMMABLE_LIGHT,
                INPUT_CLUSTERS: [
                    Basic.cluster_id,
                    Identify.cluster_id,
                    Groups.cluster_id,
                    Scenes.cluster_id,
                    OnOff.cluster_id,
                    LevelControl.cluster_id,
                    Diagnostic.cluster_id,
                    INOVELLI_VZM35SN_CLUSTER_ID,
                    WWAH_CLUSTER_ID,
                ],
                OUTPUT_CLUSTERS: [
                    Ota.cluster_id,
                ],
            },
            2: {
                PROFILE_ID: zha.PROFILE_ID,
                DEVICE_TYPE: DeviceType.DIMMER_SWITCH,
                INPUT_CLUSTERS: [
                    Basic.cluster_id,
                    Identify.cluster_id,
                    Groups.cluster_id,
                    Scenes.cluster_id,
                ],
                OUTPUT_CLUSTERS: [
                    Identify.cluster_id,
                    OnOff.cluster_id,
                    LevelControl.cluster_id,
                ],
            },
            242: {
                PROFILE_ID: zgp.PROFILE_ID,
                DEVICE_TYPE: zgp.DeviceType.PROXY_BASIC,
                INPUT_CLUSTERS: [],
                OUTPUT_CLUSTERS: [GreenPowerProxy.cluster_id],
            },
        },
    }

    replacement = {
        ENDPOINTS: {
            1: {
                PROFILE_ID: zha.PROFILE_ID,
                DEVICE_TYPE: DeviceType.DIMMABLE_LIGHT,
                INPUT_CLUSTERS: [
                    Basic.cluster_id,
                    Identify.cluster_id,
                    Groups.cluster_id,
                    Scenes.cluster_id,
                    OnOff.cluster_id,
                    LevelControl.cluster_id,
                    Diagnostic.cluster_id,
                    Inovelli_VZM35SN_Cluster,
                    WWAH_CLUSTER_ID,
                ],
                OUTPUT_CLUSTERS: [
                    Ota.cluster_id,
                ],
            },
            2: {
                PROFILE_ID: zha.PROFILE_ID,
                DEVICE_TYPE: DeviceType.DIMMER_SWITCH,
                INPUT_CLUSTERS: [
                    Basic.cluster_id,
                    Identify.cluster_id,
                    Groups.cluster_id,
                    Scenes.cluster_id,
                ],
                OUTPUT_CLUSTERS: [
                    Identify.cluster_id,
                    OnOff.cluster_id,
                    LevelControl.cluster_id,
                    Inovelli_VZM35SN_Cluster,
                ],
            },
            242: {
                PROFILE_ID: zgp.PROFILE_ID,
                DEVICE_TYPE: zgp.DeviceType.PROXY_BASIC,
                INPUT_CLUSTERS: [],
                OUTPUT_CLUSTERS: [GreenPowerProxy.cluster_id],
            },
        },
    }

    device_automation_triggers = INOVELLI_AUTOMATION_TRIGGERS

2 Likes

Thanks! I just tried applying the custom quirk, but it doesn’t seem to be working. I’ll reply with more details in the other thread to keep the discussion cleaner here.

Custom quirk has it running great! Thank you. Can I remove it in a few months once a fix is pushed to ZHA?

Absolutely, just a question of when ZHA gets a new release and HA points to that as the new requirement as far as which HA release you’ll be covered in.

2 Likes

Were you able to get an answer on this?

Has anyone else had issues when addressing the LEDs individually? I’m using Z2M and skyconnect but had the same issue in ZHA where when after setting the value of an individual LED its value can only seem to be cleared by sending an individual clear command (or by double tapping config). Sending a clear all to the switch doesn’t actually clear the color.

My specific use is using the LEDs to set up a custom notification to indicate the duration of the timer. I send 7 commands to set the LEDs to the desired color/brightness. Once the fan is turned off I’d like to clear the entire panel by sending one command with the clear effect but doing so doesn’t have an effect. I’d rather not have to send 7 commands, or have my automations set up to serially send a clear all followed by seven clear individual commands to account for multiple potential notification states.

That is the correct/intended behavior.

The nomenclature is a bit confusing. The “all LED” commands refer to effects that apply to the full led bar and not the leds individually. There are 8 separate effect entities, each LED 1-7, and the full LED Bar. Each is set/cleared separately. If you issued a “set all LED” command for the full led bar, then a “clear all LED” would clear that notification without clearing any separate individual leds that may have also been set.

Each individual LED set command will need to have its own individual clear command (or timeout). So yes, in this case you will need to send 7 clear commands. But you do not need to send a “clear all” since you did not do a “set all”. It is a little confusing until you think of it as 8 separate entities, not 7.

Any luck with Hubitat c8 yet?

Any update on Panasonic Whispergreen? I understand it takes a while to develop a reliable fix while avoiding regressions, but I would appreciate at least an acknowledgment that you’re trying to reproduce the problem.

I sent @EricM_Inovelli the zboss logs just waiting to hear back. I still can’t get it to pair.

What’s the difference between the Whispergreen and Whisperchoice? I’m been running the whisperchoice for almost a year on the fan switch. No issues.

1 Like

I do not know, electronically. I have explained the observed behavior in an earlier post. Essentially, I can start the fan only once, after I turn on the circuit breaker. After that, I can turn it off and from then on there’s no activity from the fan whatsoever. The fan has a delayed start even on a plain old switch, but even after waiting for 10 minutes it does not start using the Zephyr switch.

Have you tried the different CFM settings on the motor to see if that makes a difference?

Also, is P258 set to the exhaust fan on/off setting?

The switch was designed and certified for AC motors so you may or may not get it going with a DC motor. It’s interesting though that @harjms is not having any problem with his, so I wonder if it’s a setting that’s causing the issue.

I have tried 80 and 120 CFM settings. I have tried two different fans and two different switches.

I don’t know what P258 is. I am using Home Assistant and ZHA. The switch shows up as a light, and the output mode is set to “On/Off”.

Parameter 258 is the switch mode. It sounds like you have it set to the On/Off as suggested.