Need Help adding support for ZWAVE-RGB-LED-Controller

Hi,

I’m new to this community, at least as a “posting member” :wink:
At this state I’m using a Raspberry Pi3 with openHABianPi.

Most of my things are Fibaro zwave and that’s why I wanted to add this little zwave RGB-LED controller.

It’s a so called LK96 controller from the link below.
https://shop.led-studien.de/de/controller/led-heimautomation/z-wave-led-controller-4-kanal-rgbw

The device can be discovered and gets added to the zwave network as :

SM-PZ701U Z-Wave power plug
Manufacturer ID : 0000
Type : 0003,0002

with 3 channels

“zwave:device:ae2314e7:node13:switch_binary”
“zwave:device:ae2314e7:node13:switch_binary1”
“zwave:device:ae2314e7:node13:switch_binary2”

I’d assume that this is wrong and the “thing” is just not correctly recorded in the database.

Can I change the type of the channels ?
Because I think it should be :

1 switch “on / off”
1 dimmer
1 color selector

Any help would be much appreciated.
If any other information ist needed, let me know and I will deliver it.

Best regards

McBlack

There should be an xml file generated in the zwave folder in userdata. That information, along with a pdf of the manual can be used to add it to the zwave database. It would then get exported and compiled into a snapshot binding. You could then update your binding
Here is the database guide.

https://www.cd-jackson.com/index.php/zwave/zwave-device-database/zwave-device-database-guide

Thanks Bruce, for the quick reply.
I’ll try to follow your directions.

I’m not able to upload the XML or the manual now, since I’m a new user.
From what I can see the XML looks like it has all the needed information.

<node>
  <homeId>0xf7f222f5</homeId>
  <nodeId>13</nodeId>
  <version>4</version>
  <manufacturer>0x0</manufacturer>
  <deviceId>0x2</deviceId>
  <deviceType>0x3</deviceType>
  <listening>true</listening>
  <frequentlyListening>false</frequentlyListening>
  <routing>true</routing>
  <security>false</security>
  <beaming>true</beaming>
  <maxBaudRate>40000</maxBaudRate>
  <sleepDelay>1000</sleepDelay>
  <nodeInformationFrame>
    <commandClass>COMMAND_CLASS_ZWAVEPLUS_INFO</commandClass>
    <commandClass>COMMAND_CLASS_VERSION</commandClass>
    <commandClass>COMMAND_CLASS_MANUFACTURER_SPECIFIC</commandClass>
    <commandClass>COMMAND_CLASS_DEVICE_RESET_LOCALLY</commandClass>
    <commandClass>COMMAND_CLASS_POWERLEVEL</commandClass>
    <commandClass>COMMAND_CLASS_ASSOCIATION</commandClass>
    <commandClass>COMMAND_CLASS_ASSOCIATION_GRP_INFO</commandClass>
    <commandClass>COMMAND_CLASS_BASIC</commandClass>
    <commandClass>COMMAND_CLASS_CENTRAL_SCENE</commandClass>
    <commandClass>COMMAND_CLASS_SWITCH_MULTILEVEL</commandClass>
    <commandClass>COMMAND_CLASS_SWITCH_COLOR</commandClass>
    <commandClass>COMMAND_CLASS_SWITCH_ALL</commandClass>
    <commandClass>COMMAND_CLASS_FIRMWARE_UPDATE_MD</commandClass>
  </nodeInformationFrame>
  <associationGroups class="concurrent-hash-map">
    <entry>
      <int>1</int>
      <associationGroup>
        <index>1</index>
        <maxNodes>0</maxNodes>
        <name>Lifeline</name>
        <profile1>0x0</profile1>
        <profile2>0x0</profile2>
        <commands>
          <commandClass>COMMAND_CLASS_DEVICE_RESET_LOCALLY</commandClass>
        </commands>
        <associations>
          <associationMember>
            <node>1</node>
          </associationMember>
        </associations>
      </associationGroup>
    </entry>
  </associationGroups>
  <endpoints class="concurrent-hash-map">
    <entry>
      <int>0</int>
      <endPoint>
        <deviceClass>
          <basicDeviceClass>BASIC_TYPE_ROUTING_SLAVE</basicDeviceClass>
          <genericDeviceClass>GENERIC_TYPE_SWITCH_MULTILEVEL</genericDeviceClass>
          <specificDeviceClass>SPECIFIC_TYPE_POWER_SWITCH_MULTILEVEL</specificDeviceClass>
        </deviceClass>
        <endpointId>0</endpointId>
        <secureCommandClasses/>
        <supportedCommandClasses class="concurrent-hash-map">
          <entry>
            <commandClass>COMMAND_CLASS_CENTRAL_SCENE</commandClass>
            <COMMAND__CLASS__CENTRAL__SCENE>
              <version>1</version>
              <instances>1</instances>
              <control>false</control>
              <versionSupported>1</versionSupported>
              <sceneCount>6</sceneCount>
            </COMMAND__CLASS__CENTRAL__SCENE>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_ZWAVEPLUS_INFO</commandClass>
            <COMMAND__CLASS__ZWAVEPLUS__INFO>
              <version>1</version>
              <instances>1</instances>
              <control>false</control>
              <versionSupported>2</versionSupported>
              <zwPlusVersion>1</zwPlusVersion>
              <zwPlusRole>ROLE_TYPE_SLAVE_ALWAYS_ON</zwPlusRole>
              <zwPlusNodeType>NODE_TYPE_ZWAVEPLUS_NODE</zwPlusNodeType>
              <isGetSupported>true</isGetSupported>
            </COMMAND__CLASS__ZWAVEPLUS__INFO>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_FIRMWARE_UPDATE_MD</commandClass>
            <COMMAND__CLASS__FIRMWARE__UPDATE__MD>
              <version>1</version>
              <instances>1</instances>
              <control>false</control>
              <versionSupported>2</versionSupported>
            </COMMAND__CLASS__FIRMWARE__UPDATE__MD>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_SWITCH_MULTILEVEL</commandClass>
            <multiLevelSwitchCommandClass>
              <version>3</version>
              <instances>1</instances>
              <control>false</control>
              <versionSupported>3</versionSupported>
              <switchTypePrimary>UNDEFINED</switchTypePrimary>
              <switchTypeSecondary>UNDEFINED</switchTypeSecondary>
              <isGetSupported>true</isGetSupported>
            </multiLevelSwitchCommandClass>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_SWITCH_ALL</commandClass>
            <COMMAND__CLASS__SWITCH__ALL>
              <version>1</version>
              <instances>1</instances>
              <control>false</control>
              <versionSupported>1</versionSupported>
              <isGetSupported>true</isGetSupported>
              <mode>SWITCH_ALL_INCLUDE_ON_OFF</mode>
            </COMMAND__CLASS__SWITCH__ALL>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_POWERLEVEL</commandClass>
            <COMMAND__CLASS__POWERLEVEL>
              <version>1</version>
              <instances>1</instances>
              <control>false</control>
              <versionSupported>1</versionSupported>
              <powerLevel>0</powerLevel>
              <powerTimeout>0</powerTimeout>
            </COMMAND__CLASS__POWERLEVEL>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_SWITCH_COLOR</commandClass>
            <COMMAND__CLASS__SWITCH__COLOR>
              <version>2</version>
              <instances>1</instances>
              <control>false</control>
              <versionSupported>2</versionSupported>
              <supportedColors>
                <colorType>RED</colorType>
                <colorType>INDEX</colorType>
                <colorType>BLUE</colorType>
                <colorType>WARM_WHITE</colorType>
                <colorType>GREEN</colorType>
              </supportedColors>
              <refreshList/>
              <colorMap>
                <entry>
                  <colorType>RED</colorType>
                  <null/>
                </entry>
                <entry>
                  <colorType>INDEX</colorType>
                  <null/>
                </entry>
                <entry>
                  <colorType>BLUE</colorType>
                  <null/>
                </entry>
                <entry>
                  <colorType>WARM_WHITE</colorType>
                  <null/>
                </entry>
                <entry>
                  <colorType>GREEN</colorType>
                  <null/>
                </entry>
              </colorMap>
              <isGetSupported>true</isGetSupported>
            </COMMAND__CLASS__SWITCH__COLOR>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_NO_OPERATION</commandClass>
            <COMMAND__CLASS__NO__OPERATION>
              <version>1</version>
              <instances>1</instances>
              <control>false</control>
              <versionSupported>1</versionSupported>
            </COMMAND__CLASS__NO__OPERATION>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_ASSOCIATION_GRP_INFO</commandClass>
            <COMMAND__CLASS__ASSOCIATION__GRP__INFO>
              <version>1</version>
              <instances>1</instances>
              <control>false</control>
              <versionSupported>1</versionSupported>
              <autoSubscribeGroups>
                <int>1</int>
              </autoSubscribeGroups>
            </COMMAND__CLASS__ASSOCIATION__GRP__INFO>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_DEVICE_RESET_LOCALLY</commandClass>
            <COMMAND__CLASS__DEVICE__RESET__LOCALLY>
              <version>1</version>
              <instances>1</instances>
              <control>false</control>
              <versionSupported>1</versionSupported>
            </COMMAND__CLASS__DEVICE__RESET__LOCALLY>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_BASIC</commandClass>
            <COMMAND__CLASS__BASIC>
              <version>1</version>
              <instances>1</instances>
              <control>false</control>
              <versionSupported>1</versionSupported>
              <isGetSupported>true</isGetSupported>
            </COMMAND__CLASS__BASIC>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_MANUFACTURER_SPECIFIC</commandClass>
            <COMMAND__CLASS__MANUFACTURER__SPECIFIC>
              <version>1</version>
              <instances>1</instances>
              <control>false</control>
              <versionSupported>2</versionSupported>
              <initSerialNumber>false</initSerialNumber>
              <deviceManufacturer>0</deviceManufacturer>
              <deviceType>3</deviceType>
              <deviceId>2</deviceId>
            </COMMAND__CLASS__MANUFACTURER__SPECIFIC>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_ASSOCIATION</commandClass>
            <COMMAND__CLASS__ASSOCIATION>
              <version>2</version>
              <instances>1</instances>
              <control>false</control>
              <versionSupported>2</versionSupported>
              <maxGroups>1</maxGroups>
            </COMMAND__CLASS__ASSOCIATION>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_VERSION</commandClass>
            <COMMAND__CLASS__VERSION>
              <version>2</version>
              <instances>1</instances>
              <control>false</control>
              <versionSupported>2</versionSupported>
              <libraryType>LIB_SLAVE_ENHANCED</libraryType>
              <protocolVersion>4.5</protocolVersion>
              <applicationVersion>1.39</applicationVersion>
              <hardwareVersion>255</hardwareVersion>
            </COMMAND__CLASS__VERSION>
          </entry>
        </supportedCommandClasses>
      </endPoint>
    </entry>
  </endpoints>
  <nodeNeighbors/>
  <lastReceived>2019-11-03 10:45:59.640 UTC</lastReceived>
</node>

No, it is incomplete. For example, the manufacturer is 0000.
You need to exclude and include it again.

Edit: the manufacturer LED-Studien is even not in the current list of manufactures, so it can take a while until it gets added as the maintainer, who is on vacation, needs to add this code.
For that we will need a valid xml file from you.

That is a valid manufacturer number.

image

From https://www.cd-jackson.com/index.php/zwave/zwave-device-database/zwave-manufacturer-list/manufacturers

Ah, interesting. I only searched for the name “LED-Studien” :sunglasses:

1 Like

But that means I’m lost: we already have a device in the database for that manufacturer, type and id:

https://www.cd-jackson.com/index.php/zwave/zwave-device-database/zwave-device-list/devicesummary/602

Either that one is wrong or the xml file posted above is wrong …

Edit: it seems to exist, so we cannot delete the current database entry:

Or they are reusing IDs? I suspect they are just hopping on the Zensys ID I looked for the type & id reversed. :blush:

Looks like. Maybe another example of this misbehaviour.

Are you sure this is from the device in question?
Because according to this post


it even has the same firmware version (1.39).
So it will not be possible to add your device to the database!

1 Like

Weird …

I’ve talked to the shop I’ve bought this controller from and he said, he has this device up and running on “FHEM” home automation software with the same zwave USB stick I’m using.

Is it possible that it really is a “SM-PZ701U” which they interfaced for a LED RGB Controller like application ?

I don’t think so.
Either FHEM does not have the SM-PZ701U configured, so the type and id are available or Bruce is right and they reused the id’s.
At the moment we cannot solve your problem, please ping Chris, the developer beginning mid of November as he is on vacation right now.

Edit: I think Bruce is right as in your xml we can find command classes for an rgbw controller:

    <COMMAND__CLASS__SWITCH__COLOR>
      <version>2</version>
      <instances>1</instances>
      <control>false</control>
      <versionSupported>2</versionSupported>
      <supportedColors>
        <colorType>RED</colorType>
        <colorType>INDEX</colorType>
        <colorType>BLUE</colorType>
        <colorType>WARM_WHITE</colorType>
        <colorType>GREEN</colorType>
      </supportedColors>

ok, so I will contact Chris.

In the meantime, is there a way to create channels and assign them manually or edit the database locally ?

Yes, there is a thread about this, please use the search function.

Very messy & risky I had it work if the device does not exist but could not get changes to work if a device is already defined in the database.

1 Like

Thanks Bruce, I’ve found this post but didn’t succeed yet.
I’m trying to get in touch with the creator of the device and check if he can change the IDs in the firmware.

Maybe that’s a better route.

Thanks for the help guys, really appreciate your invested time.

I will report back, if anything happens on my end.

1 Like

Just as a quick update.
I’ve contacted the seller and he said that the device :

https://www.cd-jackson.com/index.php/zwave/zwave-device-database/zwave-device-list/devicesummary/1012

is just the same device as he is selling.
Seems just to have other IDs.
Interesting thing is, that a FHEM install recognizes th device correctly and can be completely controlled by FHEM.

I will contact Chris to check if this can be somehow managed in the database.

Regards

Marcus

If it is the same device with just a different ID we can add it. You can either post the xml file generated by OH or a screenshot of the attributes fro HABmin.

I don’t think we can add it: device type, id, manufacturer and even the firmware version match this device:

https://www.cd-jackson.com/index.php/zwave/zwave-device-database/zwave-device-list/devicesummary/602

So, we need a pdf of the manual then?
If they reused device IDs we cannot add it because they are supposed to be unique.