Z-Wave Fan Control

Good to know. The fan component just doesn’t get much love. Can you open an issue in home-assistant-polymer for the oscillation problem? https://github.com/home-assistant/home-assistant-polymer/issues

done https://github.com/home-assistant/home-assistant-polymer/issues/293

So, the new fan support in 0.46.0 messed with my automation above and I had to update it to work with the new options.

Here’s what is working for me:

#input_select for Bedroom Fan
input_select:
  fan_speed:
    name: Bedroom Fan Speed
    options:
     - "Off"
     - Low
     - Medium
     - High
    initial: Medium
    icon: mdi:fan


- alias: Bedroom Fan - High
  hide_entity: True
  trigger:
    platform: state
    entity_id: input_select.fan_speed
    to: "High"
  action:
    service: fan.set_speed
    entity_id: fan.ge_12730_fan_control_switch_level_6_0
    data:
      speed: high

- alias: Bedroom Fan - Medium
  hide_entity: True
  trigger:
    platform: state
    entity_id: input_select.fan_speed
    to: "Medium"
  action:
    service: fan.set_speed
    entity_id: fan.ge_12730_fan_control_switch_level_6_0
    data:
      speed: medium

- alias: Bedroom Fan - Low
  hide_entity: True
  trigger:
    platform: state
    entity_id: input_select.fan_speed
    to: "Low"
  action:
    service: fan.set_speed
    entity_id: fan.ge_12730_fan_control_switch_level_6_0
    data:
      speed: low
1 Like

Thanks for this! It’s interesting as the fan device has the select list populated already but by default doesn’t expose it. I wonder if that will come which would eliminate need for what you’ve done.

I also see a “oscillate” setting which I assume is to cycle speeds.

It’s similar to how you can set the brightness on the dimmer switch by clicking on the name first, but it’s not exposed to the card directly. Weird, I know.

Oscillate is if the fan is capable of moving back and forth.

Why would is expose oscillate if it’s a GE fan switch then? I could see with the fancy Dyson desktop fan this being exposed.

That’s a good question :slight_smile:

What needs to be done to get the 14287 to show up as a light or switch entity? Mine only shows up like this:

zwave.ge_unknown_type4944_id3131_28

I’m aware this is the newer zwave plus switch and I see mention of it in the code but I sure can’t get it to show up as an entity.

I’d send Armills a message on here as he wrote the support package for the other GE Fan switch. He might be able to help get it going or point you in the right direct…

If it’s not showing up as an entity at all it’s not related to this change. You should first try excluding it and including it again with your controller. You’ll need to check the open zwave log files to see what’s happening.

Here’s my log for that node (30). Still doesn’t show as an entity.

    2017-06-10 17:30:58.270 Detail,
    2017-06-10 17:30:58.270 Info, Node030, Sending (Query) message (Callback ID=0x48, Expected Reply=0x04) - SwitchAllCmd_Get (Node=30): 0x01, 0x09, 0x00, 0x13, 0x1e, 0x02, 0x27, 0x02, 0x25, 0x48, 0xb1
    2017-06-10 17:30:58.278 Detail, Node030,   Received: 0x01, 0x04, 0x01, 0x13, 0x01, 0xe8
    2017-06-10 17:30:58.279 Detail, Node030,   ZW_SEND_DATA delivered to Z-Wave stack
    2017-06-10 17:30:58.342 Detail, Node030,   Received: 0x01, 0x07, 0x00, 0x13, 0x48, 0x00, 0x00, 0x07, 0xa4
    2017-06-10 17:30:58.343 Detail, Node030,   ZW_SEND_DATA Request with callback ID 0x48 received (expected 0x48)
    2017-06-10 17:30:58.343 Info, Node030, Request RTT 72 Average Request RTT 52
    2017-06-10 17:30:58.343 Detail,   Expected callbackId was received
    2017-06-10 17:30:58.354 Detail, Node030,   Received: 0x01, 0x09, 0x00, 0x04, 0x00, 0x1e, 0x03, 0x27, 0x03, 0xff, 0x34
    2017-06-10 17:30:58.354 Detail,
    2017-06-10 17:30:58.354 Info, Node030, Response RTT 83 Average Response RTT 67
    2017-06-10 17:30:58.354 Detail, Node030, Initial read of value
    2017-06-10 17:30:58.355 Info, Node030, Received SwitchAll report from node 30: On and Off Enabled
    2017-06-10 17:30:58.355 Detail, Node030,   Expected reply and command class was received
    2017-06-10 17:30:58.355 Detail, Node030,   Message transaction complete
    2017-06-10 17:30:58.355 Detail,
    2017-06-10 17:30:58.355 Detail, Node030, Removing current message
    2017-06-10 17:30:58.355 Detail, Node030, Notification: ValueChanged
    2017-06-10 17:30:58.366 Detail,
    2017-06-10 17:30:58.366 Info, Node030, Sending (Query) message (Callback ID=0x49, Expected Reply=0x04) - PowerlevelCmd_Get (Node=30): 0x01, 0x09, 0x00, 0x13, 0x1e, 0x02, 0x73, 0x02, 0x25, 0x49, 0xe4
    2017-06-10 17:30:58.375 Detail, Node030,   Received: 0x01, 0x04, 0x01, 0x13, 0x01, 0xe8
    2017-06-10 17:30:58.375 Detail, Node030,   ZW_SEND_DATA delivered to Z-Wave stack
    2017-06-10 17:30:58.391 Detail, Node030,   Received: 0x01, 0x07, 0x00, 0x13, 0x49, 0x00, 0x00, 0x02, 0xa0
    2017-06-10 17:30:58.392 Detail, Node030,   ZW_SEND_DATA Request with callback ID 0x49 received (expected 0x49)
    2017-06-10 17:30:58.392 Info, Node030, Request RTT 25 Average Request RTT 38
    2017-06-10 17:30:58.392 Detail,   Expected callbackId was received
    2017-06-10 17:30:58.404 Detail, Node030,   Received: 0x01, 0x0a, 0x00, 0x04, 0x00, 0x1e, 0x04, 0x73, 0x03, 0x00, 0x00, 0x9b
    2017-06-10 17:30:58.404 Detail,
    2017-06-10 17:30:58.404 Info, Node030, Response RTT 37 Average Response RTT 52
    2017-06-10 17:30:58.404 Info, Node030, Received a PowerLevel report: PowerLevel=Normal, Timeout=0
    2017-06-10 17:30:58.404 Detail, Node030, Initial read of value
    2017-06-10 17:30:58.404 Detail, Node030, Initial read of value
    2017-06-10 17:30:58.404 Detail, Node030,   Expected reply and command class was received
    2017-06-10 17:30:58.404 Detail, Node030,   Message transaction complete
    2017-06-10 17:30:58.405 Detail,
    2017-06-10 17:30:58.405 Detail, Node030, Removing current message
    2017-06-10 17:30:58.405 Detail, Node030, Notification: ValueChanged
    2017-06-10 17:30:58.416 Detail, Node030, Notification: ValueChanged
    2017-06-10 17:30:58.426 Detail, Node030, Query Stage Complete (Session)
    2017-06-10 17:30:58.426 Detail, Node030, AdvanceQueries queryPending=0 queryRetries=0 queryStage=Dynamic live=1
    2017-06-10 17:30:58.426 Detail, Node030, QueryStage_Dynamic
    2017-06-10 17:30:58.426 Detail, Node030, Queuing (Send) SwitchMultilevelCmd_Get (Node=30): 0x01, 0x09, 0x00, 0x13, 0x1e, 0x02, 0x26, 0x02, 0x25, 0x4c, 0xb4
    2017-06-10 17:30:58.426 Detail, Node030, Queuing (Query) Query Stage Complete (Dynamic)
    2017-06-10 17:30:58.427 Detail,
    2017-06-10 17:30:58.427 Info, Node030, Sending (Send) message (Callback ID=0x4c, Expected Reply=0x04) - SwitchMultilevelCmd_Get (Node=30): 0x01, 0x09, 0x00, 0x13, 0x1e, 0x02, 0x26, 0x02, 0x25, 0x4c, 0xb4
    2017-06-10 17:30:58.435 Detail, Node030,   Received: 0x01, 0x04, 0x01, 0x13, 0x01, 0xe8
    2017-06-10 17:30:58.435 Detail, Node030,   ZW_SEND_DATA delivered to Z-Wave stack
    2017-06-10 17:30:58.452 Detail, Node030,   Received: 0x01, 0x07, 0x00, 0x13, 0x4c, 0x00, 0x00, 0x02, 0xa5
    2017-06-10 17:30:58.452 Detail, Node030,   ZW_SEND_DATA Request with callback ID 0x4c received (expected 0x4c)
    2017-06-10 17:30:58.452 Info, Node030, Request RTT 25 Average Request RTT 31
    2017-06-10 17:30:58.453 Detail,   Expected callbackId was received
    2017-06-10 17:30:58.460 Detail, Node030,   Received: 0x01, 0x09, 0x00, 0x04, 0x00, 0x1e, 0x03, 0x26, 0x03, 0x19, 0xd3
    2017-06-10 17:30:58.460 Detail,
    2017-06-10 17:30:58.460 Info, Node030, Response RTT 33 Average Response RTT 42
    2017-06-10 17:30:58.460 Info, Node030, Received SwitchMultiLevel report: level=25
    2017-06-10 17:30:58.460 Detail, Node030, Initial read of value
    2017-06-10 17:30:58.460 Detail, Node030,   Expected reply and command class was received
    2017-06-10 17:30:58.461 Detail, Node030,   Message transaction complete
    2017-06-10 17:30:58.461 Detail,
    2017-06-10 17:30:58.461 Detail, Node030, Removing current message
    2017-06-10 17:30:58.461 Detail, Node030, Notification: ValueChanged

No entity under drop down

Here’s a little more. This is cut and paste from openzwave github in the manufacturer_specific.xml.

It isn’t in there. I’ve tried a few variations on adding it with no luck at all so far. In my mind it just isn’t supported yet it looks like.

<Manufacturer id="0063" name="GE">
	<Product type="4450" id="3030" name="45602 Lamp Dimmer Module" config="ge/dimmer_module.xml"/>
	<Product type="4457" id="3230" name="45606 2-Way Dimmer Switch" config="ge/dimmer.xml"/>
	<Product type="4944" id="3031" name="12724 3-Way Dimmer Switch" config="ge/12724-dimmer.xml"/>
	<Product type="4944" id="3033" name="12729 3-Way Dimmer Switch" config="ge/12724-dimmer.xml"/>
	<Product type="4944" id="3034" name="12730 Fan Control Switch" config="ge/12724-dimmer.xml"/>
	<Product type="4944" id="3038" name="14294 In-Wall Smart Dimmer" config="ge/14294-dimmer.xml"/>
	<Product type="494d" id="3034" name="26933 Smart Motion Dimmer" config="ge/26933-motion-dimmer.xml"/>
	<Product type="4952" id="3036" name="14291 In-Wall Smart Switch" config="ge/14291-switch.xml"/>
	<Product type="5250" id="3030" name="45603 Plugin Appliance Module"/>
	<Product type="5250" id="3130" name="45604 Outdoor Module"/>
	<Product type="4f50" id="3031" name="12720 Outdoor Smart Switch"/>
	<Product type="5252" id="3530" name="45605 Duplex Receptacle"/>
	<Product type="5257" id="3533" name="45609 On/Off Relay Switch" config="ge/relay.xml"/>
	<Product type="4457" id="3033" name="45613 3-Way Dimmer Switch" config="ge/dimmer.xml"/>
	<Product type="4952" id="3031" name="12721 Lighting Control Duplex Receptacle" config="ge/receptacle.xml"/>
	<Product type="4952" id="3032" name="12722 On/Off Relay Switch" config="ge/relay.xml"/>
	<Product type="4952" id="3033" name="12727 In-Wall Smart Switch (Toggle)"/>
	<Product type="4953" id="3032" name="32563 Hinge Pin Smart Door Sensor" config="ge/hinge-pin.xml"/>

In my limited experience with this I have found just editing the “Manufacturer_specific.xml” to add the line

'<Product type="4944" id="3131" name="Fan Control Switch" config="ge/12724-dimmer.xml"/>'

Should get you the basic function. I just copied the line for the other fan entry which should be good enough till they come out with the updated profile if anything has changed.

Thanks…I had already tried that and a couple other variants of that and the problem persists that no entity is created. Other than that the switch shows up under zwave like it’s ready to roll . Just no entity ever gets created.

Editing that file won’t make the device show up as an entity - it will just give it a better name than “unknown” and maybe some extra functions/labels.

The device should show up under http://hass_ip:port/dev-state if it’s paired; usually after a restart of HASS or two.

What I have found is adding to the manufacture xml and then stopping HA and deleting the z-wave config file in the .homeassistant folder. Then restart HA and it adds from the new xml. You do need to go back and rename the nodes if you did any customizing but it has worked for me twice now to do it this way. If you have a better way I’m all ears.

Yep, deleting zwcfg*xml would be my next suggestion.

Just deleted and rebooted twice. No entity ever gets created. The zwave device gets named and looks ready, looks like every other GE switch I have but never an entity.

It should look like a dimmer not a switch. Once that is the case just follow the workaround created with .46 of HA