Enerwave ZWN-RSM2 PLUS and openhab2 zwave binding

Anyone have any luck getting the RSM2 plus from Enerwave recognized correctly with the openhab2.0 zwave binding? Currently mine is being recognized as Wenzhou ZWM-RSM1. I do see that there is a profile for it in the openhab1.0 binding but it doesn’t look like it has the same ID’s as what the one I have is being detected by.

It seems unlikely that the device IDs being detected by the binding are incorrect (quite possible), so either the database is wrong, or your unit is rebadged (which is quite common).

The manufacturer will certainly be correct - the question then is what IDs your unit has?

Hey Chris, I sent an email to you with the xml. Please let me know if you can’t find it and i will send it again or add it here.

Hi Thomas,
I’ve not received it - can you paste it here? (just be careful with formatting - it will need something special to ensure it’s displayed properly).

Cheers
Chris

Hopefully this is what you need.

<node>
  <deviceClass>
    <basicDeviceClass>ROUTING_SLAVE</basicDeviceClass>
    <genericDeviceClass>BINARY_SWITCH</genericDeviceClass>
    <specificDeviceClass>POWER_SWITCH_BINARY</specificDeviceClass>
  </deviceClass>
  <homeId>0xeb5fe9f2</homeId>
  <nodeId>10</nodeId>
  <version>4</version>
  <manufacturer>0x11a</manufacturer>
  <deviceId>0x605</deviceId>
  <deviceType>0x111</deviceType>
  <listening>true</listening>
  <frequentlyListening>false</frequentlyListening>
  <routing>true</routing>
  <security>false</security>
  <beaming>true</beaming>
  <maxBaudRate>40000</maxBaudRate>
  <nodeInformationFrame>
    <commandClass>ZWAVE_PLUS_INFO</commandClass>
    <commandClass>VERSION</commandClass>
    <commandClass>MANUFACTURER_SPECIFIC</commandClass>
    <commandClass>DEVICE_RESET_LOCALLY</commandClass>
    <commandClass>POWERLEVEL</commandClass>
    <commandClass>SWITCH_BINARY</commandClass>
    <commandClass>MULTI_INSTANCE</commandClass>
    <commandClass>MULTI_INSTANCE_ASSOCIATION</commandClass>
    <commandClass>ASSOCIATION</commandClass>
    <commandClass>ASSOCIATION_GROUP_INFO</commandClass>
    <commandClass>SWITCH_ALL</commandClass>
  </nodeInformationFrame>
  <supportedCommandClasses>
    <entry>
      <commandClass>DEVICE_RESET_LOCALLY</commandClass>
      <deviceResetLocallyCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>1</versionSupported>
      </deviceResetLocallyCommandClass>
    </entry>
    <entry>
      <commandClass>ASSOCIATION_GROUP_INFO</commandClass>
      <associationGroupInfoCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>1</versionSupported>
        <autoSubscribeGroups>
          <int>1</int>
        </autoSubscribeGroups>
      </associationGroupInfoCommandClass>
    </entry>
    <entry>
      <commandClass>MULTI_INSTANCE</commandClass>
      <multiInstanceCommandClass>
        <version>2</version>
        <instances>1</instances>
        <versionSupported>3</versionSupported>
        <endpoints>
          <entry>
            <int>1</int>
            <endPoint>
              <deviceClass>
                <basicDeviceClass>ROUTING_SLAVE</basicDeviceClass>
                <genericDeviceClass>BINARY_SWITCH</genericDeviceClass>
                <specificDeviceClass>POWER_SWITCH_BINARY</specificDeviceClass>
              </deviceClass>
              <endpointId>1</endpointId>
              <supportedCommandClasses>
                <entry>
                  <commandClass>SWITCH_BINARY</commandClass>
                  <binarySwitchCommandClass>
                    <endpoint reference="../../../.."/>
                    <version>1</version>
                    <instances>1</instances>
                    <versionSupported>1</versionSupported>
                    <isGetSupported>true</isGetSupported>
                  </binarySwitchCommandClass>
                </entry>
                <entry>
                  <commandClass>BASIC</commandClass>
                  <basicCommandClass>
                    <endpoint reference="../../../.."/>
                    <version>0</version>
                    <instances>0</instances>
                    <versionSupported>0</versionSupported>
                    <isGetSupported>true</isGetSupported>
                  </basicCommandClass>
                </entry>
              </supportedCommandClasses>
            </endPoint>
          </entry>
          <entry>
            <int>2</int>
            <endPoint>
              <deviceClass>
                <basicDeviceClass>ROUTING_SLAVE</basicDeviceClass>
                <genericDeviceClass>BINARY_SWITCH</genericDeviceClass>
                <specificDeviceClass>POWER_SWITCH_BINARY</specificDeviceClass>
              </deviceClass>
              <endpointId>2</endpointId>
              <supportedCommandClasses>
                <entry>
                  <commandClass>SWITCH_BINARY</commandClass>
                  <binarySwitchCommandClass>
                    <endpoint reference="../../../.."/>
                    <version>1</version>
                    <instances>1</instances>
                    <versionSupported>1</versionSupported>
                    <isGetSupported>true</isGetSupported>
                  </binarySwitchCommandClass>
                </entry>
                <entry>
                  <commandClass>BASIC</commandClass>
                  <basicCommandClass>
                    <endpoint reference="../../../.."/>
                    <version>0</version>
                    <instances>0</instances>
                    <versionSupported>0</versionSupported>
                    <isGetSupported>true</isGetSupported>
                  </basicCommandClass>
                </entry>
              </supportedCommandClasses>
            </endPoint>
          </entry>
        </endpoints>
        <useDestEndpointAsSource>false</useDestEndpointAsSource>
        <endpointsAreTheSameDeviceClass>true</endpointsAreTheSameDeviceClass>
      </multiInstanceCommandClass>
    </entry>
    <entry>
      <commandClass>SWITCH_ALL</commandClass>
      <switchAllCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>1</versionSupported>
        <isGetSupported>true</isGetSupported>
        <mode>SWITCH_ALL_INCLUDE_ON_OFF</mode>
      </switchAllCommandClass>
    </entry>
    <entry>
      <commandClass>ASSOCIATION</commandClass>
      <associationCommandClass>
        <version>2</version>
        <instances>1</instances>
        <versionSupported>2</versionSupported>
        <maxGroups>3</maxGroups>
      </associationCommandClass>
    </entry>
    <entry>
      <commandClass>ZWAVE_PLUS_INFO</commandClass>
      <zwavePlusCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>2</versionSupported>
        <zwPlusVersion>1</zwPlusVersion>
        <zwPlusRole>5</zwPlusRole>
        <zwPlusNodeType>0</zwPlusNodeType>
        <zwPlusDeviceType>0x700</zwPlusDeviceType>
        <zwPlusInstallerIcon>0x700</zwPlusInstallerIcon>
        <isGetSupported>true</isGetSupported>
      </zwavePlusCommandClass>
    </entry>
    <entry>
      <commandClass>POWERLEVEL</commandClass>
      <powerLevelCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>1</versionSupported>
        <powerLevel>0</powerLevel>
        <powerTimeout>0</powerTimeout>
      </powerLevelCommandClass>
    </entry>
    <entry>
      <commandClass>NO_OPERATION</commandClass>
      <noOperationCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>1</versionSupported>
      </noOperationCommandClass>
    </entry>
    <entry>
      <commandClass>SWITCH_BINARY</commandClass>
      <binarySwitchCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>1</versionSupported>
        <isGetSupported>true</isGetSupported>
      </binarySwitchCommandClass>
    </entry>
    <entry>
      <commandClass>BASIC</commandClass>
      <basicCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>1</versionSupported>
        <isGetSupported>true</isGetSupported>
      </basicCommandClass>
    </entry>
    <entry>
      <commandClass>MULTI_INSTANCE_ASSOCIATION</commandClass>
      <multiAssociationCommandClass>
        <version>2</version>
        <instances>1</instances>
        <versionSupported>2</versionSupported>
        <maxGroups>3</maxGroups>
      </multiAssociationCommandClass>
    </entry>
    <entry>
      <commandClass>MANUFACTURER_SPECIFIC</commandClass>
      <manufacturerSpecificCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>2</versionSupported>
        <initSerialNumber>false</initSerialNumber>
        <deviceManufacturer>282</deviceManufacturer>
        <deviceType>273</deviceType>
        <deviceId>1541</deviceId>
      </manufacturerSpecificCommandClass>
    </entry>
    <entry>
      <commandClass>VERSION</commandClass>
      <versionCommandClass>
        <version>2</version>
        <instances>1</instances>
        <versionSupported>2</versionSupported>
        <libraryType>LIB_SLAVE_ROUTING</libraryType>
        <protocolVersion>4.24</protocolVersion>
        <applicationVersion>5.10</applicationVersion>
        <hardwareVersion>1</hardwareVersion>
      </versionCommandClass>
    </entry>
  </supportedCommandClasses>
  <securedCommandClasses/>
  <associationGroups>
    <entry>
      <int>1</int>
      <associationGroup>
        <index>1</index>
        <name>Lifeline</name>
        <profile>0x1</profile>
        <commands>
          <commandClass>DEVICE_RESET_LOCALLY</commandClass>
        </commands>
        <associations>
          <associationMember>
            <node>1</node>
            <endpoint>0</endpoint>
          </associationMember>
        </associations>
      </associationGroup>
    </entry>
    <entry>
      <int>2</int>
      <associationGroup>
        <index>2</index>
        <name>StatusReport_EP1</name>
        <profile>0x2001</profile>
        <commands>
          <commandClass>BASIC</commandClass>
        </commands>
        <associations/>
      </associationGroup>
    </entry>
    <entry>
      <int>3</int>
      <associationGroup>
        <index>3</index>
        <name>StatusReport_EP2</name>
        <profile>0x2002</profile>
        <commands>
          <commandClass>BASIC</commandClass>
        </commands>
        <associations/>
      </associationGroup>
    </entry>
  </associationGroups>
  <nodeNeighbors>
    <int>1</int>
    <int>2</int>
    <int>3</int>
    <int>4</int>
    <int>5</int>
    <int>6</int>
    <int>7</int>
    <int>8</int>
  </nodeNeighbors>
  <lastSent>2017-01-02 20:07:50.935 UTC</lastSent>
  <lastReceived>2017-01-01 21:11:54.674 UTC</lastReceived>
</node>

Chris, did the above help any in identifying the product?

Sorry - missed this.

I just double checked, and according to the ZWave Alliance site, you do have an RSM1 - this has the same type/Id as yours.

Given that the information in the database is consistent with the official ZWave data, I’m a little loath to change the database as that will break other installations.

I assume you don’t have any RSM1s that this might have got mixed up with?

No they’re both RSM2 Plus. They are from enerwave so perhaps this is the root cause?

Is there any way to update just my installation to handle the odd device?

But Enerwave don’t make them it seems…

not reliably I fear, but you could try editing the XML file for this node, and changing the type to 0101 and id to 5606. It should (I think) work, but if the binding reinitialises for any reason (shouldn’t happen often) then it will revert…

Oddly enough I just checked the site for the RSN2 plus and it is not listed. Perhaps it just hasn’t been added yet?

Not a problem about it I will try to see if editing it to 0101 and 5606 works and report back as well.

The funny part is it is listed on the enerwave website http://enerwaveautomation.com/products/zwnrsm2/

I did recently look into the openhab1 binding and saw that there was a listing for the RSM2 there.

I did the change in the XML and it’s still only coming up with the single channel and hasn’t changed. Did a restart of the openhab2 service and it’s still reporting as the RSM1.

Chris, I am having this exact issue. I have search for solution for a week and tried all kinds of fixes. Please help. My next step is to rip it out of the wall and put in a straight switch. But this really stinks to not be able to use it.

The system (ie the zwave system) determines a device type based on the manufacturer ID, the device type and the device ID. Two devices can’t have the same values - otherwise it’s impossible to tell them apart. Here, we seem to have this situation where it seems the manufacturer has used the same device data for more than one device - I could change it to solve your problem, but then break it for others.

I’m not sure there’s a solution to this that will keep everone happy - someones device isn’t going to be detected properly.

Maybe we could update the database to add the extra channels for the RSM2 and hope RSM1 users don’t get upset - if it’s just one extra channel then this might work. At the moment I don’t have the time to look at it though but if someone can compare the two devices to see the differences and report back, we can see if this will work.

Perhaps the better solution would be to have the user select the device from a friendly name if there is a conflict where multiple devices are reported as having the same IDs or at least allowing for it. It may also facilitate better testing when multiple devices have very similar properties and channels.

I had tried the XML change and the json DB change and neither worked.

Another solution would be if there was some sort of documentation at to how to manually override the DB / configuration to make these changes on the fly for testing and troubleshooting.

@chris oddly enough I re-added the RSM2 using the beta release (was having an apt issue and found that the older package repo was no longer there) from ‘deb http://dl.bintray.com/openhab/apt-repo2 testing main’ and it picked up the device correctly as the RSM2 with all 3 channels and is being correctly reported as the “Wenzhou” 0101:5606

So if anyone else is having problems and was using the cloudbees repository I would suggest using the updated Repo.

For a real noob - how would you go about using the updated Repo?

I just loaded up the official release of OH2 and am running openhabian on a RP2 with a Aeon Labs ZW090 Z Stick, but only see the ZWN-RSM2 as a ZWN-RSM1.

Any help would be appreciated.

Paul

@pjeran take a look at this documentation http://docs.openhab.org/installation/linux.html#installation that’s the linux documentation but the Rpi documentation shouldn’t be much different.

Thomas - thanks for the link - looks like it was just updating the files. I have updated to the latest version of OH2, reinstalled the z-wave binding, but still the switch reports itself as a RSM1. I can control both lights with the local switches, but with via z-wave, can only control one of the two switches.

Any thoughts on where to go next?

I looked in Chris’s database and saw the non-plus dual switch, but not the plus version. I have the plus version installed.

I changed out the settings in my Json database per above. Perhaps that’s what caused it to finally update? Nothing initially changed when i first installed it. Not really sure at this time.

I did remove the thing, then used habmin to scan again and it did pick it up. Have you tried removing and re-adding it?

Thomas - thanks for the continued help. JSON database, what one is it? I have found where the zwave xml node files are and the directory above that is a jsondb directory, but could not find one that looked like a zwave database.

Thanks - Paul