Zwave2mqtt: Honeywell Fan Switch Detects as a light dimmer

Created on 7 May 2020  Â·  7Comments  Â·  Source: OpenZWave/Zwave2Mqtt

I have several Honeywell Z-Wave In-Wall Fan Controller's (39358) that I want to move over from Smartthings to Zwave2Mqtt --> Home Assistant. When I add the node, it shows up as:

Fan Switch Unknown: type=4944, id=3131 (Unknown: id=0039)

The device JSON for Home Assistant shows this:

{
"type": "light",
"object_id": "dimmer",
"discovery_payload": {
"schema": "template",
"brightness_template": "{{ (value_json.value / 99 * 255) | round(0) }}",
"state_topic": "homeassistant/OfficeFan/38/1/0",
"state_template": "{{ \"off\" if value_json.value == 0 else \"on\" }}",
"command_topic": "homeassistant/OfficeFan/38/1/0/set",
"command_on_template": "{{ ((brightness / 255 * 99) | round(0)) if brightness is defined else 255 }}",
"command_off_template": "0",
"device": {
"identifiers": [
"zwave2mqtt_0xe0a10345_node4"
],
"manufacturer": "Unknown: id=0039",
"model": "Unknown: type=4944, id=3131 (0x3131)",
"name": "OfficeFan",
"sw_version": "Unknown"
},
"name": "OfficeFan_dimmer",
"unique_id": "zwave2mqtt_0xe0a10345_4-38-1-0"
},
"discoveryTopic": "light/OfficeFan/dimmer/config",
"values": [
"38-1-0"
],
"persistent": false,
"id": "light_dimmer"
}

I turned on the debug and determined that level 29 is low, 60 is medium, and 99 is high. Any idea how I modify this from a light dimmer to a fan with 3 modes in home assistant? Sorry if this is a newbie question...just used to Smartthings doing all the dirty work for me and decided it's time to move on. Thanks!

question

All 7 comments

Hi @jasonsinclair5, unfortunally your value has command class 38 that is SWITCH_MULTILEVEL and that could be many things like a cover position a light dimmer and so on but I have no way on my side to distinguish them. In order to fix this kind of things I have made this file where all users submit pr to fix devices like yours. There is a section in readme that explains how it works: https://github.com/OpenZWave/Zwave2Mqtt#custom-components

There is already a fan configuration so you could simply try to add your device id reusing that configuration

'99-12340-18756': [FAN_DIMMER], // GE 1724 Dimmer
<yourdeviceid>: [FAN_DIMMER], // Honeywell Fan Switch

Thanks for the explanation. I did see that and was trying to get it working. Based on my device info
Fan Switch Unknown: type=4944, id=3131 (Unknown: id=0039)
And here:
https://products.z-wavealliance.org/products/2725?selectedFrequencyId=2

Would the config look like this?
'39-4944-1108': [FAN_DIMMER], // Honeywell 39358 Fan Controller

I added that to the devices.js and ran a rediscover. However, do I need to remove the node and re-add it for it to pickup the custom config?

Edit: Copied from the wrong config, this is what I have in the devices.js:
'39-3131-4944': [FAN_DIMMER], // Honeywell 39358 Fan Controller

You should just re-run the application and it should discover it


Daniel - Software Engineer

Support me at:
Github sponsors

On 8 May 2020, at 14:12, jasonsinclair5 notifications@github.com wrote:


Thanks for the explanation. I did see that and was trying to get it working. Based on my device info
Fan Switch Unknown: type=4944, id=3131 (Unknown: id=0039)
And here:
https://products.z-wavealliance.org/products/2725?selectedFrequencyId=2

Would the config look like this?
'39-4944-1108': [FAN_DIMMER], // Honeywell 39358 Fan Controller

I added that to the devices.js and ran a rediscover. However, do I need to remove the node and re-add it for it to pickup the custom config?

—
You are receiving this because you were assigned.
Reply to this email directly, view it on GitHub, or unsubscribe.

Ok...tried that and it still comes up as a light dimmer. I'm running in docker so I just restarted the container.

Haven't been able to get the template to apply, but I did modify it and have it working within home assistant. Here's the JSON I used:

{
"type": "fan",
"object_id": "dimmer",
"discovery_payload": {
"command_topic": "homeassistant/OfficeFan/38/1/0/set",
"state_topic": "homeassistant/OfficeFan/38/1/0",
"speed_command_topic": "homeassistant/OfficeFan/38/1/0/set",
"speed_state_topic": "homeassistant/OfficeFan/38/1/0",
"speeds": [
"off",
"low",
"medium",
"high"
],
"payload_low_speed": "24",
"payload_medium_speed": "50",
"payload_high_speed": "99",
"payload_off": "0",
"payload_on": "255",
"speed_value_template": "{% if (value_json.value | int) == 0 %} 0 {% elif (value_json.value | int) <= 32 %} 24 {% elif (value_json.value | int) <= 66 %} 50 {% elif (value_json.value | int) <= 99 %} 99 {% endif %}",
"state_value_template": "{% if (value_json.value | int) == 0 %} 0 {% else %} 255 {% endif %}",
"device": {
"identifiers": [
"zwave2mqtt_0xe0a10345_node5"
],
"manufacturer": "Honeywell",
"model": "39358 Smart Fan Controller (0x3131)",
"name": "Office Fan",
"sw_version": "Unknown"
},
"name": "Office Fan",
"unique_id": "zwave2mqtt_0xe0a10345_5-38-1-0"
},
"discoveryTopic": "fan/OfficeFan/dimmer/config",
"values": [
"38-1-0"
],
"persistent": true,
"id": "light_dimmer"
}

I watched through MQTT Explorer, and it looks like everything is going in the right place. I also tested manually changing speeds/turning on/off and the values updated immediately in homeassistant. I'll keep messing with the template as I have 5 more of these controllers to import.

@jasonsinclair5 Could you send a PR with that added to hass/devices.js?

The Zwave DB now detects this fan properly as it is now listed in the manufacturer_specific.xml file located here: https://raw.githubusercontent.com/OpenZWave/open-zwave/master/config/manufacturer_specific.xml

I also had the incorrect format on devices.js, as it should have been:

57-12593-18756: [FAN_DIMMER], // Honeywell Fan Switch

<Manufacturer id="0039" name="Honeywell">
    <Product config="honeywell/39358-ZW4002.xml" id="3131" name="39358 / ZW4002 In-Wall Fan Control" type="4944"/>    
  </Manufacturer>
Was this page helpful?
0 / 5 - 0 ratings