GE Fan Switch 14287

Hi,

Is anyone with this device able to test this change? https://github.com/home-assistant/home-assistant/pull/8682/files This may not fix the manufacturer_specific.xml problem, but it should let the device be discovered without changing specific="8".

willing to give this a try, what do I need to do? Can I throw it in the custom_components/zwave folder?

This is working well but control over the LED light is not working. Has anyone figured that out?

This change has been merged into dev, so at this point it’s probably easiest to just wait for 0.51

1 Like

Actually, ‘on when on’ and ‘off when on’ work. ‘Never on’ does not. Anyone seen this? That blue led is annoying at night on my bedroom fan!

I take that back. my 14287 doesn’t seem to update at all while my 12724 has the behavior above

Discovered great with that change. Now to figure out why the LED settings are sticking.

:boom: Thanks for testing and reporting back!

Just wanted to give a second confirmation that it’s fixed! Installed 3rd 14287 today after updating to .50.2 and it showed up as a fan directly after doing add_node_secure.

Thanks for putting this change in!

Are you able to update the LED config setting? @shoeman22

No, I don’t see any config options for it even after the update…I was just referring to the basement functionality working. It bugs my wife too though…not pretty, but I’ll probably just put some white vinyl tape over it and call it a day.

The manufactuer_specific.xml change was merged into openzwave 17 days ago:

Not sure how that translates into python-openzwave releases though, so might still need to patch locally for it to be effective.

Has anyone been able to control the LED on this yet? I can get it to add and operate just fine, but the LED control settings will just not take.LED setting works fine on the 14294 dimmer, this shouldn’t be any different in that regard, I would think…

I have not found a solution, yet.

Just wanted to resurface this to see if anyone has figured out the LED control. I currently have an AppDaemon app compensating for my 12*** version, but the 14*** version doesn’t react to any config changes, still…

Unfortunately no, I’ve been watching this thread and can only confirm the same problems. I own both the 14287 and 12730 fan switches, plus the 14294 dimmer. As already mentioned, the 14294 works flawlessly with all 3 configuration parameters, while the 14287 doesn’t allow any change, and the 12730 allows anything but “always off”.

With the 14287 I can however use the hardware toggle (3 on/1 off) to swap the LED setting, but can’t control it with software. I actually bought this newer one because I thought they might have fixed the problem in the 12730, but seems like they went backwards.

After I originally bought the 12730 and couldn’t turn off the LED, I called Jasco tech support (this was only a few months ago) and asked if turning off the LED was supported in these fan switches specifically, and they said it is, but either phone support is wrong of they’ve got broken products. I’ve considered calling again to see if they’ll take my switches under warranty as defective to see what happens.

Do you mind sharing your AppDaemon solution for the 12730? I assume it just toggles the z-wave config value based on the switch on/off position?

You’re correct. It just uses the service to call zwave.set_config_parameter. Here is the code:

import appdaemon.appapi as appapi

#
# App to turn manage LED notification on GE Switch
#
# EXAMPLE appdaemon.yaml entry below
#
# LED Control:
#   class: GE_switch_led_control
#   module: GE_switch_led_control
#   entities:
#     - entity: fan.master_bedroom_fan_level
#       parameter: '3'
#       off_value: 'LED on when light on'
#       on_value: 'LED on when light off'
#     - entity: fan.living_room_fan_level
#       parameter: '3'
#       off_value: 'LED on when light on'
#       on_value: 'LED on when light off'
#
#
# Arguments
#
# entity: the entity that is being monitored
# parameter: the zwave parameter that you would like to update
# off_value: the value to send when the device is 'off'
# on_value: the value to send when the device is 'on'
#
# Release Notes
#
# Version 1.0:
#   Initial Version
#
#
# ####################################################################
# ####################################################################


class GE_switch_led_control(appapi.AppDaemon):

    def initialize(self):

        if "entities" in self.args:
            for item in self.args["entities"]:
                entity = item["entity"]
                node_id = self.get_state(entity, "node_id")
                parameter = item["parameter"]
                off_value = item["off_value"]
                on_value = item["on_value"]

                msg = "{} setup for LED control using Node ID {}.".format(
                    self.friendly_name(entity), node_id)
                self.log(msg, "INFO")

                # initialize LED

                # wait seconds
                self.run_in(self.initialize_led(entity=entity, node_id=node_id, parameter=parameter,
                                                off_value=off_value, on_value=on_value), 240)

                # Setup Listener
                self.listen_state(self.state_changed, entity=entity,
                                  node_id=node_id, parameter=parameter,
                                  off_value=off_value, on_value=on_value)

        else:
            msg = "GE Switch LED Control enabled but no entities configured."
            self.log(msg, "INFO")

    def state_changed(self, entity, attribute, old, new, kwargs):
        node_id = kwargs["node_id"]
        parameter = kwargs["parameter"]
        off_value = kwargs["off_value"]
        on_value = kwargs["on_value"]

        if new == "on":
            value = on_value
        else:
            value = off_value

        msg = "{} is now {}, setting Zwave value to: {}.".format(
            self.friendly_name(entity), new, value)
        self.log(msg, "INFO")

        self.call_service("zwave/set_config_parameter", node_id=node_id,
                          parameter=parameter, value=value)

    def initialize_led(self, entity, node_id, parameter, off_value, on_value):
        current_state = self.get_state(entity)
        if current_state == "on":
            value = on_value
        else:
            value = off_value

        msg = "Zwave Ready - INITIALIZING: {} is now {}, setting Zwave value to: {}.".format(
            self.friendly_name(entity), current_state, value)
        self.log(msg, "INFO")

        self.call_service("zwave/set_config_parameter", node_id=node_id,
                          parameter=parameter, value=value)

    def log_notify(self, msg, level):
        self.log(msg, level)
        self.call_service("notify/notify", message=msg)


The initialization of the LED is throwing errors and I haven’t spent time to figure out what is causing it. But, that is only firing on App start.

Let me know if you have questions.

1 Like

Anyone figure this out? My 14287 doesn’t have any config options either. Would love to turn off the LED to the switch in my bedroom.

@kylerw I too have the 14287 fan switch. I couldn’t figure out how to turn off the LED by setting the parameter via HASS but I found online that when the fan is off manually press ON ON ON OFF really quickly and it turns off the LED. I just tested it on my own and it worked!! Hopefully it works for you as well.

1 Like

does that toggle through the options?

always off
on when off
on when on