Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Zooz ZEN31 RGBW not creating correct entities #31253

Closed
michaelwoods opened this issue Jan 28, 2020 · 32 comments
Closed

Zooz ZEN31 RGBW not creating correct entities #31253

michaelwoods opened this issue Jan 28, 2020 · 32 comments

Comments

@michaelwoods
Copy link

The problem

A new Z-Wave device, Zooz ZEN31 (S2 RGBW Dimmer), is currently unknown by the xml device configs. I've exported an open z-wave xml config from the device database and the name is correctly displayed once excluded and re-included.

However, before and after the XML addition, the device doesn't spawn the correct entities. The command classes are correctly detected in the OZW cfg xml (eg, "COMMAND_CLASS_SWITCH_MULTILEVEL", "COMMAND_CLASS_SENSOR_MULTILEVEL", "COMMAND_CLASS_METER" and notably "COMMAND_CLASS_COLOR").

The only entities that are created seem to be related to the meter class (power, energy, voltage, etc.). There is no light nor switch entity created.

Environment

  • Home Assistant release with the issue: 0.104.3
  • Last working Home Assistant release (if known): n/a
  • Operating environment (Hass.io/Docker/Windows/etc.): docker
  • Integration causing this issue: zwave
  • Link to integration documentation on our website: https://www.home-assistant.io/integrations/zwave/

Problem-relevant configuration.yaml

zwave:
  usb_path: /dev/ttyACM0
  network_key: !secret zwave_key
  config_path: /config/openzwave/config

Traceback/Error logs

n/a

Additional information

I'm not too sure if I need to further tweak the device XML or the integration itself is incorrectly missing entities.

@michaelwoods
Copy link
Author

The exported device XML from https://www.cd-jackson.com/index.php/zwave/zwave-device-database/zwave-device-list/devicesummary/1163

<?xml version="1.0" encoding="utf-8"?>
<Product xmlns="http://code.google.com/p/open-zwave/">

  <!-- Configuration Parameters -->
  <CommandClass id="112">
    <Value genre="config" instance="1" index=1" value=0" label="Status after power failure" units="" size=1" min=0" max=2" type="list">
      <Help>Status after power failure</Help>
      <Item value="0" label="Forced to OFF">
      <Item value="1" label="Restore status">
      <Item value="2" label="Forced to ON">
    </Value>
    <Value genre="config" instance="1" index=20" value=2" label="Switch / Input type for IN1" units="" size=1" min=0" max=4" type="list">
      <Help>Switch / Input type for IN1</Help>
      <Item value="0" label="Analog sensor with no pull-up">
      <Item value="1" label="Analog sensor with pull-up">
      <Item value="2" label="Momentary switch">
      <Item value="3" label="Toggle switch (change on toggle)">
      <Item value="4" label="Toggle switch (Up = ON, Down = OFF)">
    </Value>
    <Value genre="config" instance="1" index=21" value=2" label="Switch / Input type for IN2" units="" size=1" min=0" max=4" type="list">
      <Help>Switch / Input type for IN2</Help>
      <Item value="0" label="Analog sensor with no pull-up">
      <Item value="1" label="Analog sensor with pull-up">
      <Item value="2" label="Momentary switch">
      <Item value="3" label="Toggle switch (change on toggle)">
      <Item value="4" label="Toggle switch (Up = ON, Down = OFF)">
    </Value>
    <Value genre="config" instance="1" index=22" value=2" label="Switch / Input type for IN3" units="" size=1" min=0" max=4" type="list">
      <Help>Switch / Input type for IN3</Help>
      <Item value="0" label="Analog sensor with no pull-up">
      <Item value="1" label="Analog sensor with pull-up">
      <Item value="2" label="Momentary switch">
      <Item value="3" label=" Toggle switch (change on toggle)">
      <Item value="4" label="Toggle switch (Up = ON, Down = OFF)">
    </Value>
    <Value genre="config" instance="1" index=23" value=2" label="Switch / Input type for IN4" units="" size=1" min=0" max=4" type="list">
      <Help>Switch / Input type for IN4</Help>
      <Item value="0" label="Analog sensor with no pull-up">
      <Item value="1" label="Analog sensor with pull-up">
      <Item value="2" label="Momentary switch">
      <Item value="3" label=" Toggle switch (change on toggle)">
      <Item value="4" label="Toggle switch (Up = ON, Down = OFF)">
    </Value>
    <Value genre="config" instance="1" index=40" value=1" label="Click/toggle once to trigger a scene (IN1)" units="" size=1" min=0" max=1" type="list">
      <Help>Assign scene activation trigger for IN1 terminal</Help>
      <Item value="0" label="Disable">
      <Item value="1" label="Enable">
    </Value>
    <Value genre="config" instance="1" index=40" value=1" label="Click/toggle twice to trigger a scene (IN1)" units="" size=1" min=0" max=1" type="list">
      <Help>Assign scene activation trigger for IN1 terminal</Help>
      <Item value="0" label="Disable">
      <Item value="1" label="Enable">
    </Value>
    <Value genre="config" instance="1" index=40" value=1" label="Click/toggle three times  to trigger a scene (IN1)" units="" size=1" min=0" max=1" type="list">
      <Help>Assign scene activation trigger for IN1 terminal</Help>
      <Item value="0" label="Disable">
      <Item value="1" label="Enable">
    </Value>
    <Value genre="config" instance="1" index=40" value=1" label="Hold and release to trigger a scene (IN1)" units="" size=1" min=0" max=1" type="list">
      <Help>Assign scene activation trigger for IN1 terminal</Help>
      <Item value="0" label="Disable">
      <Item value="1" label="Enable">
    </Value>
    <Value genre="config" instance="1" index=41" value=1" label="Click/toggle once to trigger a scene (IN2)" units="" size=1" min=0" max=1" type="list">
      <Help>Assign scene activation trigger for IN2 terminal</Help>
      <Item value="0" label="Disable">
      <Item value="1" label="Enable">
    </Value>
    <Value genre="config" instance="1" index=41" value=1" label="Click/toggle twice to trigger a scene (IN2)" units="" size=1" min=0" max=1" type="list">
      <Help>Assign scene activation trigger for IN2 terminal</Help>
      <Item value="0" label="Disable">
      <Item value="1" label="Enable">
    </Value>
    <Value genre="config" instance="1" index=41" value=1" label="Click/toggle three times to trigger a scene (IN2)" units="" size=1" min=0" max=1" type="list">
      <Help>Assign scene activation trigger for IN2 terminal</Help>
      <Item value="0" label="Disable">
      <Item value="1" label="Enable">
    </Value>
    <Value genre="config" instance="1" index=41" value=1" label="Hold and release to trigger a scene (IN2)" units="" size=1" min=0" max=1" type="list">
      <Help>Assign scene activation trigger for IN2 terminal</Help>
      <Item value="0" label="Disable">
      <Item value="1" label="Enable">
    </Value>
    <Value genre="config" instance="1" index=42" value=1" label="Click/toggle once to trigger a scene (IN3)" units="" size=1" min=0" max=1" type="list">
      <Help>Assign scene activation trigger for IN3 terminal</Help>
      <Item value="0" label="Disable">
      <Item value="1" label="Enable">
    </Value>
    <Value genre="config" instance="1" index=42" value=1" label="Click/toggle twice to trigger a scene (IN3)" units="" size=1" min=0" max=1" type="list">
      <Help>Assign scene activation trigger for IN3 terminal</Help>
      <Item value="0" label="Disable">
      <Item value="1" label="Enable">
    </Value>
    <Value genre="config" instance="1" index=42" value=1" label="Click/toggle three times to trigger a scene (IN3)" units="" size=1" min=0" max=1" type="list">
      <Help>Assign scene activation trigger for IN3 terminal</Help>
      <Item value="0" label="Disable">
      <Item value="1" label="Enable">
    </Value>
    <Value genre="config" instance="1" index=42" value=1" label="Hold and release to trigger a scene (IN3)" units="" size=1" min=0" max=1" type="list">
      <Help>Assign scene activation trigger for IN3 terminal</Help>
      <Item value="0" label="Disable">
      <Item value="1" label="Enable">
    </Value>
    <Value genre="config" instance="1" index=43" value=1" label="Click/toggle once to trigger a scene (IN4)" units="" size=1" min=0" max=1" type="list">
      <Help>Assign scene activation trigger for IN4 terminal</Help>
      <Item value="0" label="Disable">
      <Item value="1" label="Enable">
    </Value>
    <Value genre="config" instance="1" index=43" value=1" label="Click/toggle twice to trigger a scene (IN4)" units="" size=1" min=0" max=1" type="list">
      <Help>Assign scene activation trigger for IN4 terminal</Help>
      <Item value="0" label="Disable">
      <Item value="1" label="Enable">
    </Value>
    <Value genre="config" instance="1" index=43" value=1" label="Click/toggle three times to trigger a scene (IN4)" units="" size=1" min=0" max=1" type="list">
      <Help>Assign scene activation trigger for IN4 terminal</Help>
      <Item value="0" label="Disable">
      <Item value="1" label="Enable">
    </Value>
    <Value genre="config" instance="1" index=43" value=1" label="Hold and release to trigger a scene (IN4)" units="" size=1" min=0" max=1" type="list">
      <Help>Assign scene activation trigger for IN4 terminal</Help>
      <Item value="0" label="Disable">
      <Item value="1" label="Enable">
    </Value>
    <Value genre="config" instance="1" index=62" value=3600" label="Power report frequency" units="seconds" size=2" min=30" max=32400" type="list">
      <Help>Power report frequency</Help>
      <Item value="0" label="Disable">
    </Value>
    <Value genre="config" instance="1" index=63" value=5" label="Voltage Reporting / Trigger Threshold" units="Volts" size=2" min=0" max=100" type="short">
      <Help>Choose how you want your RGBW Dimmer to report voltage changes.</Help>
    </Value>
    <Value genre="config" instance="1" index=64" value=0" label="Analog Sensor Report Frequency" units="seconds" size=2" min=30" max=32400" type="list">
      <Help>Choose how often you want your RGBW Dimmer to report voltage changes.</Help>
      <Item value="0" label="Disable">
    </Value>
    <Value genre="config" instance="1" index=65" value=10" label="Energy report threshold" units="10 Wh" size=2" min=0" max=500" type="short">
      <Help>Energy report threshold</Help>
    </Value>
    <Value genre="config" instance="1" index=66" value=3600" label="Energy report frequency" units="seconds" size=2" min=30" max=32400" type="list">
      <Help>Energy report frequency</Help>
      <Item value="0" label="Disable">
    </Value>
    <Value genre="config" instance="1" index=150" value=0" label="RGBW / HSB Wall Switch Mode" units="" size=1" min=0" max=1" type="list">
      <Help>Choose how switches connected to the input terminals control your LED strip</Help>
      <Item value="0" label="RGBW mode">
      <Item value="1" label="HSB mode">
    </Value>
    <Value genre="config" instance="1" index=151" value=3" label="Ramp Rate" units="" size=2" min=0" max=254" type="short">
      <Help>Adjust the fade-in/fade-out effect for ON/OFF operation</Help>
    </Value>
    <Value genre="config" instance="1" index=152" value=3" label="Ramp Rate (remote)" units="" size=2" min=0" max=254" type="short">
      <Help>Adjust the ramp rate of your RGBW dimmer when operated remotely through openHAB</Help>
    </Value>
    <Value genre="config" instance="1" index=154" value=255" label="Single Click ON Trigger (IN1)" units="" size=4" min=0" max=99" type="list">
      <Help>Single Click ON Trigger (IN1)</Help>
      <Item value="255" label="ON">
    </Value>
    <Value genre="config" instance="1" index=154" value=255" label="Single Click ON Trigger (IN2)" units="" size=4" min=0" max=99" type="int">
      <Help>Single Click ON Trigger (IN2)</Help>
    </Value>
    <Value genre="config" instance="1" index=154" value=255" label="Single Click ON Trigger (IN3)" units="" size=4" min=0" max=99" type="int">
      <Help>Single Click ON Trigger (IN3)</Help>
    </Value>
    <Value genre="config" instance="1" index=154" value=255" label="Single Click ON Trigger (IN4)" units="" size=4" min=0" max=99" type="int">
      <Help>Single Click ON Trigger (IN4)</Help>
    </Value>
    <Value genre="config" instance="1" index=157" value=0" label="Preset Programs" units="" size=1" min=0" max=10" type="list">
      <Help>Enable one of the preset animated color programs to set the mood with a click</Help>
      <Item value="0" label="Preset programs disabled">
      <Item value="6" label="Fireplace">
      <Item value="7" label="Storm">
      <Item value="8" label="Rainbow">
      <Item value="9" label="Polar Lights">
      <Item value="10" label="Police (strobing red, white and blue)">
    </Value>
  </CommandClass>

  <!-- Association Groups -->
  <CommandClass id="133">
    <Associations num_groups="10">
      <Group index="1" label="Lifeline" max_associations="1" auto="true" />
      <Group index="2" label="Group 2" max_associations="5" />
      <Group index="3" label="Group 3" max_associations="5" />
      <Group index="4" label="Group 4" max_associations="5" />
      <Group index="5" label="Group 5" max_associations="5" />
      <Group index="6" label="Group 6" max_associations="5" />
      <Group index="7" label="Group 7" max_associations="5" />
      <Group index="8" label="Group 8" max_associations="5" />
      <Group index="9" label="Group 9" max_associations="5" />
      <Group index="10" label="Group 10" max_associations="5" />
    </Associations>
  </CommandClass>

</Product>

@probot-home-assistant
Copy link

Hey there @home-assistant/z-wave, mind taking a look at this issue as its been labeled with a integration (zwave) you are listed as a codeowner for? Thanks!

@mcondren
Copy link

Checking in on this as I just purchased one. Did you end up finding a workaround @michaelwoods ?

@michaelwoods
Copy link
Author

@mcondren no, after altering my z-wave config and rebooting a couple times my z-wave network practically failed and I'm still missing 10% of devices from it. Anytime I've messed with my z-wave config it ends up failing somehow so now I'm treating it as read only dev-wise.

@michaelwoods
Copy link
Author

Looks like it's supported in 1.6.

https://github.com/OpenZWave/open-zwave/blob/master/config/zooz/zen31.xml

@mcondren
Copy link

mcondren commented Feb 29, 2020

I got mine pairing but still no switch entity. It’s correctly detecting brand and model. Here is my pairing OZW_log limited to only Node36 lines, which is the zen31. Perhaps an unsupported command class?

zen31.log

@homeassistant/z-wave

@michaellee1019
Copy link

michaellee1019 commented Mar 2, 2020

Same issue. It seems like somehow the "Multilevel Tunable Color Light" device type is not working in home assistant in general or for this specific device. Wasn't able to figure out what specifically was wrong within home assistant to figure it out. Our application doesn't require color so we switched to the "Multilevel Power Switch" by switching specific="2" to specific="1" in the Node xml of zwcfg_.xml file

rtimmons/smarthome@dea95ec

@mcondren
Copy link

mcondren commented Mar 2, 2020

Did you import the 1.6 zen31 config files first, or just import with OZW 1.4 and then modify the zwcfg? I have 3 white LED’s one connected to R, G, and B. I’m assuming since I use 3 of the terminals (even though I don’t use color), that I can’t use this workaround?

@michaellee1019
Copy link

We did try to import the import the 1.6 zen31 config files but they don't seem to be working as no entity is created to control the light on/off, brightness, color. We were on older versions of both OZW and home assistant but upgrading didn't seem to help. The configuration settings, like default on/off after power failure, was working. After pairing the device, We edited the zwcfg_.xml file after the device configuration was already imported and written as xml by home assistant into this file. After our change to the specific option an entity with the prefix of "light." was added. Home assistant provided controls for on/off, brightness, and color picker. On/Off and brightness worked but when a color was chosen it reverted back to white. With our setup we have a single white only led strip connected to W, so color isn't needed at all.

mcondren, I'm not entirely positive based on our setup if there is signals going to all RGBW outputs but my guess is that on/off & brightness affects all 4 ports. Do you want to individually control each LED strip? If so you will need the color support to be figured out, but I think it will work if you change the specific setting to 1 if you want to control all of the strips at the same time.

@mcondren
Copy link

mcondren commented Mar 2, 2020

Thanks. I only need them to all go on/off at the same time (under cabinet lighting). I’ll revert the ozw 1.6 config files and give it a try tonight. Thanks.

@michaellee1019
Copy link

Got it, makes sense. If the separate ports don't work, I think you can combine all into the W by screwing in a single "pigtail wire" into the screw terminal and then joining all of the wires together using a wire nut that are currently in the other ports.

@mcondren
Copy link

mcondren commented Mar 6, 2020

So my barrel connectors arrived and I hooked everything up. Zen31 generated a light entity once I made the zwcfg change you mentioned above. However, turning on the light entity in HA doesn’t seem to do anything. I stuck a multimeter on the White and positive (+) dimmer ports while the light entity was on and am getting negligible voltage. (.005v). The manual says that each color terminal is controlled by the matching IN input connector on the dimmer where you can attach a switch. I am not using a switch, I just want to turn On the white, blue, and green terminals by calling light.turn_on in Home Assistant. Does anybody have any insight into this setup?

@mcondren
Copy link

mcondren commented Mar 6, 2020

Actually... I guess I could test this by installing a jumper between IN4 and ground to simulate a closed switch.

@mcondren
Copy link

mcondren commented Mar 6, 2020

Nope, didn’t seem to have any impact. I’m stumped.

@michaellee1019
Copy link

Have you unplugging and plugging back in? I think I had todo that, it forces OpenZWave to re-negotiate with the device and exchange supported/expected command classes.

@mcondren
Copy link

mcondren commented Mar 6, 2020

Yes. I have cycled the power many times during testing.

@mcondren
Copy link

mcondren commented Mar 7, 2020

Unpaired and started again. Made the zwcfg changes in you check-in. Light entity created again. With light entity on I used a multimeter to check the following. I get 12v between + and - terminals on dimmer. So that’s working fine. However, with the light entity on I put the meter between The W (white) terminal and + (pos) and I get 0v. It just seems like HA is not sending whatever command it needs to activate the RGBW terminals...

@michaellee1019
Copy link

Did you try removing the command class COMMAND_CLASS_SECURITY in the xml? I just setup a 2nd zen31 and found that removing this was also required to interact with the light entity.

@mcondren
Copy link

mcondren commented Mar 8, 2020

Yes, I deleted the security command class under the zen31 node. Tempted to give up and just order one that HA supports like the fibaro dimmer.

@mcondren
Copy link

mcondren commented Mar 8, 2020

The only change I didn’t make was the ones in your entity store. Most of it seemed to be changing null values to empty brackets and I wasn’t sure how to get to that file. Are those changes necessary?

@michaellee1019
Copy link

No you don't need the other changes, some are for other devices, caused by persisting the file in github after homeassistant is stopped and it writes to the file.

@mcondren
Copy link

Ok, did some more experimenting. Converted OZW 1.6 zen31 config file to 1.4 format and tried that. No joy. Then I noticed that the device type ‘Multilevel Tunable Color Light’ is not even supported by OZW 1.4. I will add it to the device_classes.xml and try again tonight. That should take care of zwave support, but I’m not sure if any work needs to be done on the HA side to know what entities to create from that device type.

@mcondren
Copy link

Ok! Made some progress. OZW log now shows command class 38 (multilevel switch) as supported and recognized now. I am also now getting proper power readings from the sensors. Last thing left seems to be still no light entity or switch. Looks like while Ozw now detects the command class properly, HA doesn’t know what to do with it entity-wise.

@kpine
Copy link
Contributor

kpine commented Mar 21, 2020

What are the generic and specific values of the node (in zwcfg*.xml)? The entities are only created if the types (plus command classes) match the discovery schemas.

@michaellee1019
Copy link

Ah, thanks for pointing out the discovery schema. It looks like the SPECIFIC_TYPE_COLOR_TUNABLE_MULTILEVEL specific type is not supported in the discovery schema which is likely the problem. When the device is initially added to home assistant it is populated with the values: basic="4" generic="17" specific="2". Currently the discovery schema only supports the specific types of: SPECIFIC_TYPE_POWER_SWITCH_MULTILEVEL (1), SPECIFIC_TYPE_SCENE_SWITCH_MULTILEVEL(4), and SPECIFIC_TYPE_NOT_USED (0). In order to get a light entity to show up we manually edited the zwcfg*.xml to use specific="1". But it seems to me that we should instead add SPECIFIC_TYPE_COLOR_TUNABLE_MULTILEVEL specific to the discovery schema here:

const.SPECIFIC_TYPE_NOT_USED,

@kpine
Copy link
Contributor

kpine commented Mar 24, 2020

That sounds like the correct fix (and an easy one). The discovery schemas loosely match the device types defined by the Z-Wave specs, and are probably not pro-actively updated. The color switch was added as part of the ZWave Plus v2 Device Types Specification.

image

@DaveCo1701
Copy link

I added "SPECIFIC_TYPE_COLOR_TUNABLE_MULTILEVEL" to the discovery schema file as @michaellee1019 suggested. Home assistant did indeed create one light entity. It didn't totally fix the problem. I can now turn on/off the ZEN31 and adjust the brightness, but I'm unable to control the white channel or change colors on the RGB color wheel. I can sent it configuration parameters, so I can change the settings on this. Has anyone else made headway on this?

@xtensa
Copy link

xtensa commented May 17, 2020

I can confirm the same behavior with Fibaro FGRGBW442. After adding "SPECIFIC_TYPE_COLOR_TUNABLE_MULTILEVEL" to the discovery schema "light" entity appears, but unlike with ZEN31 it seems to only control white channel.

@DaveCo1701
Copy link

@xtensa
Copy link

xtensa commented May 18, 2020

Can confirm that this workaround works for Fibaro FGRGBW442 as well.

@michaelwoods
Copy link
Author

This issue is also present with the ozw integration. I can control the LEDs with ozw-admin but within HA only energy entities appear.

@github-actions
Copy link

There hasn't been any activity on this issue recently. Due to the high number of incoming GitHub notifications, we have to clean some of the old issues, as many of them have already been resolved with the latest updates.
Please make sure to update to the latest Home Assistant version and check if that solves the issue. Let us know if that works for you by adding a comment 👍
This issue has now been marked as stale and will be closed if no further activity occurs. Thank you for your contributions.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

7 participants