I’ve got a GE Z-Wave Fan Control (12730). Unfortunately, OpenZWave doesn’t have it in their device list yet. When adding the device to HA, it adds as a light dimmer and the controls are less than ideal. The device is in Z-Wave Alliance.
In addition, I found this awesome application that a member of the Smartthings community created. Unfortunately, I’m not a programmer so I don’t know how to port that information to HA. I’m hoping that it’s fairly easy to accomplish because it looks perfect. Thanks!
Sadly there are som problems to get this into HA properly:
The zwave part reports it as multilevel power switch, which is a dimmer control.
It can be done to make it appear in the fan component, but it will also appear in the light component because of the definition from the switch. From the file you provided, this looks to work like a dimmer too. No specific things related to fan control. Meaning what you have through the light component(which is correctly) is all the controls the switch supports.
On, Off, and dim(speed) Hope this helps.
I’m not sure I understand. My understanding is that the ozwcp is recognizing the device incorrectly as a dimmer instead of a fan control. Wouldn’t a proper configuration in OpenZwave database fix that? If not, how did the custom app in SmartThings get it working so well? App mentioned in first post.
I’ve been pretty frustrated by the GE (Jasco) Fan Control that I purchased. Frustration is mostly due to my feeling of helplessness because I don’t know how to know what I don’t know. I’m, also, frustrated by GE’s lack of documentation regarding the configuration and parameters of the device. I decided to call them (Jasco) to find out if they had any more documentation that could help me or someone else write the config for OpenZwave.
If I was frustrated before, I was even more frustrated when I hung up. The original service rep and then the Customer Service Manager both spoke to me condescendingly. When I explained that the device shows up as a dimmer, he said that was correct because it technically is a dimmer. After admitting that the switch was meant for fan’s with no lights attached, I asked how you could dim a fan. I asked whether the fan control accepted values of 1-99 or just 1-4 since a fan only has 3 speeds and off. He was unsure and he kept blaming the z-wave controller for all the issues. Alas, I received the email below explaining, although barely, the situation.
The fan controller is setup like a Dimmer that accepts speeds 1-99 and 0 is off. If set between 1-33 it will be set to the low speed. Between 34-66 will be set to medium speed and 67-100% will be set to high. Since it’s using the same config as a GE Dimmer, how difficult is it to change the HA config from Brightness to Speed and show 1-33 as 1, 34-66 as 2, and 67+ as 3?
I can clarify a little more:
The device issues a basic, generic and specific device type id, Those classes are defined as multilevel power switch by zwave. (Dimmer) There is nothing we can do about that.
The app you link to utilizes a workaround, by pre defining high medium and low speeds set by the user (refered to level in hass 0-100) So you can choose between high medium and low speed.
However the recognition of the device, there is nothing to identify it as a fan controller other than the name(which is actually unknown). Normally this would have been defined by the specific device class as a motor control(5,6,7) or fan switch(8) but it is defined as a multilevel switch, which unfortunately is just a generic dimmer(1). All these generic and specific is issued by the device, and is not modifyable.
We can allow dimmers into the fan component, but that would let all dimmersto appear in the fan component.
So, by adding the device in manufacturer_specific.xml, I can at least make it show the name I want, even though it shows up under Light. I can also control the speed by adjusting the “Brightness” after clicking on the device (see below).
Is there any kind of workaround in HA that I can use to display/control things differently, or am I as far as I can go?
Just to add a bit to this - I went ahead and submitted my manufacturer_specific.xml update to OpenZWave, but that will only really impact how the Fan Control switch is named. It is still seen as a Dimmer because of the “type” that it presents itself as.
I went ahead and put together an input_select automation, so now I can control the fan like this:
input_select:
fan_speed:
name: Bedroom Fan Speed
options:
- "Off"
- Low
- Medium
- High
- alias: Bedroom Fan - Off
hide_entity: True
trigger:
platform: state
entity_id: input_select.fan_speed
to: "Off"
action:
service: light.turn_off
entity_id: light.ge_12730_fan_control_switch_level_6_0
- alias: Bedroom Fan - High
hide_entity: True
trigger:
platform: state
entity_id: input_select.fan_speed
to: "High"
action:
service: light.turn_on
entity_id: light.ge_12730_fan_control_switch_level_6_0
data:
brightness: 254
etc…
It’s not perfect, and it still shows under “Light”, but this works for now.
I’m in a similar situation, although it’s the Leviton VRF01 in my case, and would love to see a better solution.
I’m brand new to coding but is it possible to create a fan “template” that could create a virtual fan (fan.example) from a dimmer (light.example)?
Another idea I had is creating a Z-wave to MQTT bridge and then create an MQTT fan within Home Assistant. I’m brand new to MQTT so any feedback would be appreciated.
Seems the Identity code is MANF:TYPE:ID, so workaround.py is matching them both on type 4944 (even though that section is commented as Product ID). Any idea how to get workaround to match more specifically?
Thanks for trying this out. It does look like we need to be checking the Product ID as well. I updated workaround.py to fix this. Can you update workaround.py to the latest from my link, and try again?
looks better! stopped matching the dimmers and still matched the fans. I’m away from home for a few hours but I’ll test when I get home and see how the speeds are.
Almost there. Works great from hass, but when setting speed from homebridge it gets a key error for anything that would qualify as “medium”. Low and high are both fine and work. Homekit displays it as a slider, and whether activated by hand or voice to any value 35-64 that would trigger medium, hass throws this key error.
2017-05-24 23:23:03 ERROR (MainThread) [homeassistant.core] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/usr/lib/python3.4/asyncio/tasks.py", line 233, in _step
result = coro.throw(exc)
File "/srv/homeassistant/lib/python3.4/site-packages/homeassistant/core.py", line 1015, in _event_to_service_call
yield from service_handler.func(service_call)
File "/srv/homeassistant/lib/python3.4/site-packages/homeassistant/components/fan/__init__.py", line 213, in async_handle_fan_service
yield from getattr(fan, method['method'])(**params)
File "/usr/lib/python3.4/asyncio/futures.py", line 388, in __iter__
yield self # This tells Task to wait for completion.
File "/usr/lib/python3.4/asyncio/tasks.py", line 286, in _wakeup
value = future.result()
File "/usr/lib/python3.4/asyncio/futures.py", line 277, in result
raise self._exception
File "/usr/lib/python3.4/concurrent/futures/thread.py", line 54, in run
result = self.fn(*self.args, **self.kwargs)
File "/srv/homeassistant/lib/python3.4/site-packages/homeassistant/components/fan/zwave.py", line 60, in set_speed
self.values.primary.value_id, SPEED_TO_VALUE[speed])
KeyError: 'med'
One thing I forgot to mention is that hass shows the toggle control for “oscilation” (which doesnt do anything), even though the z-wave fan isn’t declaring that as a supported feature.
edit to add: Just patched homebridge-homeassistant and can confirm that setting to medium via siri or slider works as expected