HAOZEE Z-Wave Plug is not in the Database (but a related device is)

I recently purchased a Haozee ZWave ON/OFF Plug. In the questions on Amazon, people claimed to have had success with (apparently) earlier versions. The model number on the box is #Z52NAS-WR01Z.

I read the Database Guide at Blog Posts.

I believe that this is a similar device and that it is only necessary to add to the reference of an existing device. But I’m not sure.

The device was discovered by the OpenHAB Z-wave binding 3.0.1 as “Z-Wave Node 004 (0258:0020:0707:2.17)”

There is a device with the same manufacturer 0258 and device type 0020 but with a different device ID (07 vs 0707). (This was a truncation - see below) The device has the label “NAS-WR01ZE”, which is the same as the suffix of the model on my box except for the trailing “E”, which I assume is for the European version. I am in Texas and my plug is the US version. In addition to the ON/OFF functionality, this plug also measures power consumption.

The documentation said to make sure that some of the parameters were the same, but I couldn’t see the parameters. I suspect I would have to register to see those details. But since it said to flag a likely similar device here in the OpenHAB forum rather than creating a new device, that is what I am doing.

If this is not the best way to address this issue, please advise. I wish to be a good citizen.

I wasn’t sure whether to tag it as a hardware issue or a binding issue. I went with hardware because it involves a piece of hardware, but if that is not correct, please advise and I will update it.

Here is the xml file

<?xml version="1.0"?>

-<node>

<homeId>0xfab509df</homeId>

<nodeId>4</nodeId>

<version>4</version>

<manufacturer>0x258</manufacturer>

<deviceId>0x707</deviceId>

<deviceType>0x20</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_ASSOCIATION</commandClass>

<commandClass>COMMAND_CLASS_MULTI_CHANNEL_ASSOCIATION</commandClass>

<commandClass>COMMAND_CLASS_ASSOCIATION_GRP_INFO</commandClass>

<commandClass>COMMAND_CLASS_TRANSPORT_SERVICE</commandClass>

<commandClass>COMMAND_CLASS_VERSION</commandClass>

<commandClass>COMMAND_CLASS_MANUFACTURER_SPECIFIC</commandClass>

<commandClass>COMMAND_CLASS_DEVICE_RESET_LOCALLY</commandClass>

<commandClass>COMMAND_CLASS_SWITCH_BINARY</commandClass>

<commandClass>COMMAND_CLASS_ALARM</commandClass>

<commandClass>COMMAND_CLASS_METER</commandClass>

<commandClass>COMMAND_CLASS_CONFIGURATION</commandClass>

<commandClass>COMMAND_CLASS_INDICATOR</commandClass>

<commandClass>COMMAND_CLASS_POWERLEVEL</commandClass>

<commandClass>COMMAND_CLASS_SECURITY</commandClass>

<commandClass>COMMAND_CLASS_SECURITY_2</commandClass>

<commandClass>COMMAND_CLASS_SUPERVISION</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>0x1</profile2>


-<commands>

<commandClass>COMMAND_CLASS_ALARM</commandClass>

<commandClass>COMMAND_CLASS_METER</commandClass>

<commandClass>COMMAND_CLASS_SWITCH_BINARY</commandClass>

<commandClass>COMMAND_CLASS_DEVICE_RESET_LOCALLY</commandClass>

<commandClass>COMMAND_CLASS_INDICATOR</commandClass>

</commands>


-<associations>


-<associationMember>

<node>1</node>

</associationMember>

</associations>

</associationGroup>

</entry>


-<entry>

<int>2</int>


-<associationGroup>

<index>2</index>

<maxNodes>0</maxNodes>

<name>OCP Alarm</name>

<profile1>0x71</profile1>

<profile2>0x8</profile2>


-<commands>

<commandClass>COMMAND_CLASS_BASIC</commandClass>

</commands>

<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_BINARY</genericDeviceClass>

<specificDeviceClass>SPECIFIC_TYPE_POWER_SWITCH_BINARY</specificDeviceClass>

</deviceClass>

<endpointId>0</endpointId>

<secureCommandClasses/>


-<supportedCommandClasses class="concurrent-hash-map">


-<entry>

<commandClass>COMMAND_CLASS_ALARM</commandClass>


-<COMMAND__CLASS__ALARM>

<version>8</version>

<instances>1</instances>

<control>false</control>

<versionSupported>8</versionSupported>


-<alarms>


-<entry>

<alarmType>POWER_MANAGEMENT</alarmType>


-<alarmState>

<alarmType>POWER_MANAGEMENT</alarmType>

<reportedEvents/>

<outer-class reference="../../../.."/>

</alarmState>

</entry>

</alarms>

<v1Supported>true</v1Supported>

<isGetSupported>true</isGetSupported>

</COMMAND__CLASS__ALARM>

</entry>


-<entry>

<commandClass>COMMAND_CLASS_METER</commandClass>


-<COMMAND__CLASS__METER>

<version>3</version>

<instances>1</instances>

<control>false</control>

<versionSupported>5</versionSupported>

<meterType>ELECTRIC</meterType>


-<meterScales>

<meterScale>E_A</meterScale>

<meterScale>E_KWh</meterScale>

<meterScale>E_W</meterScale>

<meterScale>E_V</meterScale>

</meterScales>

<canReset>true</canReset>

<isGetSupported>true</isGetSupported>

<isSupportRequestSupported>true</isSupportRequestSupported>

</COMMAND__CLASS__METER>

</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_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_BASIC</commandClass>


-<COMMAND__CLASS__BASIC>

<version>1</version>

<instances>1</instances>

<control>false</control>

<versionSupported>2</versionSupported>

<isGetSupported>true</isGetSupported>

</COMMAND__CLASS__BASIC>

</entry>


-<entry>

<commandClass>COMMAND_CLASS_ASSOCIATION</commandClass>


-<COMMAND__CLASS__ASSOCIATION>

<version>2</version>

<instances>1</instances>

<control>false</control>

<versionSupported>2</versionSupported>

<maxGroups>2</maxGroups>

</COMMAND__CLASS__ASSOCIATION>

</entry>


-<entry>

<commandClass>COMMAND_CLASS_MULTI_CHANNEL_ASSOCIATION</commandClass>


-<COMMAND__CLASS__MULTI__CHANNEL__ASSOCIATION>

<version>3</version>

<instances>1</instances>

<control>false</control>

<versionSupported>3</versionSupported>

<maxGroups>2</maxGroups>

</COMMAND__CLASS__MULTI__CHANNEL__ASSOCIATION>

</entry>


-<entry>

<commandClass>COMMAND_CLASS_SWITCH_BINARY</commandClass>


-<COMMAND__CLASS__SWITCH__BINARY>

<version>1</version>

<instances>1</instances>

<control>false</control>

<versionSupported>2</versionSupported>

<isGetSupported>true</isGetSupported>

</COMMAND__CLASS__SWITCH__BINARY>

</entry>


-<entry>

<commandClass>COMMAND_CLASS_CONFIGURATION</commandClass>


-<COMMAND__CLASS__CONFIGURATION>

<version>1</version>

<instances>1</instances>

<control>false</control>

<versionSupported>4</versionSupported>

<configParameters/>

</COMMAND__CLASS__CONFIGURATION>

</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_INDICATOR</commandClass>


-<COMMAND__CLASS__INDICATOR>

<version>3</version>

<instances>1</instances>

<control>false</control>

<versionSupported>3</versionSupported>

<isGetSupported>true</isGetSupported>

<supportedIndicatorsInitialised>true</supportedIndicatorsInitialised>


-<supportedIndicators>


-<ZWaveIndicator>

<type>NODE_IDENTIFY</type>

</ZWaveIndicator>

</supportedIndicators>

</COMMAND__CLASS__INDICATOR>

</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>600</deviceManufacturer>

<deviceType>32</deviceType>

<deviceId>1799</deviceId>

</COMMAND__CLASS__MANUFACTURER__SPECIFIC>

</entry>


-<entry>

<commandClass>COMMAND_CLASS_ZWAVEPLUS_INFO</commandClass>


-<COMMAND__CLASS__ZWAVEPLUS__INFO>

<version>1</version>

<instances>1</instances>

<control>false</control>

<versionSupported>1</versionSupported>

<zwPlusVersion>2</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>5</versionSupported>

</COMMAND__CLASS__FIRMWARE__UPDATE__MD>

</entry>


-<entry>

<commandClass>COMMAND_CLASS_ASSOCIATION_GRP_INFO</commandClass>


-<COMMAND__CLASS__ASSOCIATION__GRP__INFO>

<version>1</version>

<instances>1</instances>

<control>false</control>

<versionSupported>3</versionSupported>


-<autoSubscribeGroups>

<int>1</int>

</autoSubscribeGroups>

</COMMAND__CLASS__ASSOCIATION__GRP__INFO>

</entry>


-<entry>

<commandClass>COMMAND_CLASS_VERSION</commandClass>


-<COMMAND__CLASS__VERSION>

<version>2</version>

<instances>1</instances>

<control>false</control>

<versionSupported>3</versionSupported>

<libraryType>LIB_SLAVE_ENHANCED</libraryType>

<protocolVersion>7.13</protocolVersion>

<applicationVersion>2.17</applicationVersion>

<hardwareVersion>2</hardwareVersion>

</COMMAND__CLASS__VERSION>

</entry>


-<entry>

<commandClass>COMMAND_CLASS_SECURITY</commandClass>


-<COMMAND__CLASS__SECURITY>

<version>1</version>

<instances>1</instances>

<control>false</control>

<versionSupported>1</versionSupported>

</COMMAND__CLASS__SECURITY>

</entry>

</supportedCommandClasses>

</endPoint>

</entry>

</endpoints>

<nodeNeighbors/>

<lastReceived>2021-06-14 23:36:48.955 UTC</lastReceived>

</node>

Thanks,

George

@chris

Flagging you as directed on the database blog. Thanks for your help.

It is a community maintained database. AFAIK there is only 2 blog postings on that sit, One is the Database Guide. and the other is about a Zigbee network sniffer.

If you have created an account there it instructs you to open a ticket on THAT site to get database access. I know of no place he asks to be flagged.

Thanks for the input.

Perhaps I misinterpreted it, but this, at the bottom of the Device Identification section of Blog Posts is what I was relying on:

NOTE: If you find that there is already a device in the database with the same Type and ID as the one you want to add, don’t just change them or add duplicates. Please flag this to me on the openHAB forum and we’ll try and work out how best to handle it - for example, the device might be a newer (or older!) version of a similar device with different firmware.

I’m happy to register with the database and give it a try, but I am new to z-wave and fear I might mess something up.

OK I forgot about that.

I know Chris is quite busy right now but he will get to it. He is settling in to a new house & job after an International move.

No - you should be able to see the configuration parameters without registering. You will need to register and have edit access to view them in the editor which provides more detail, but the list of parameters should be visible to everyone.

I guess the question is - what is “it” that you will try :slight_smile:

At the moment, I’m unsure if this is the same device with a different name, or a totally different device - that’s of course the first question that needs to be answered :slight_smile:

When not logged in all a user can see is the parameter number, name, & description. The other details are not available.I am not sure if this was intended.

Here is an example.

Thanks for the feedback. I realize OpenHAB is a DYI environment and I appreciate any clues that are shared with me.

I have registered with the database and will dig deeper into it.

It may not be the same device, though the device ID is the same. In my earlier comment I said it was different, but that was based on what shows to the right when looking at the device list, which was understandably truncated. When I click on the entry, it showed in reference 0020:0707, which is the same as the binding found for my device.

One difference I have noticed is that to get the device into inclusion mode requires me to press and hold the button for 5 seconds. The light starts flashing and the binding quickly responds. (The manual that came with the device said to push the button 3 times within 1 1/2 second, which is the same as the
NAS-WR01ZE, but that does nothing on the device except toggle it on and off each time it is pressed).

Looking more closely at the deviceId and deviceType that make up the entry in the reference, I wonder if there is something in the conversion from hex to string/number characters that mean the devices are not the same.

Manufacturer in xml is 0x258 which corresponds to the 0258 in the automatically generated OpenHAB Thing Label. The xml deviceId is 0x707 which corresponds to the 0707 in the label. The deviceType is 0x20 which I think corresponds to the 0020 (assuming the far left 0 is from the hex indicator 0x and the send from the left is a padded 0.

So it looks like the manufacturer 0258 , deviceId 0707 and deviceType 0020 match the database entry for the NAS-WR01ZE. But the OpenHAB Thing Type is “Unknown Device”.

My next step is to read through the manual that came with the device and see if it has everything needed to compare the Configuration Parameters, Endpoints and Associations. If they are different, I assume I will need to create a new device in the database. If they aren’t provided, I will need to try and get them from the manufacturer.

Thanks again for the suggestions. I will keep plugging away at it.

Continuing to share my journey of discovery.

The device has 10 parameters, the same as the NAS-WR01ZE. They appear to be the same parameters, but are in a different order, which presumably would make a difference.

The device has 2 associations vs. 3 for the NAS-WR01ZE. I assume this means they are not the same device. So I think a new device may be needed. I am concerned about the warning in the database blog not to create a new device with the same type and ID as an existing device.

At this point in time, the device with your IDs is already in the database (as you have already worked out :slight_smile: ). Probably it’s simply not detected as you are using quite an old binding and probably this was added more recently.

If this really is a newer version, with new parameters, then the best thing is to create a new device entry in the database and remove the 0020:0707 from the existing entry. It’s possible to copy over the configuration from the older device once the new entry is created, so it’s not tooooo much effort to do this, and then just change / add what needs to change.

Chris: I will try a newer binding first. If that doesn’t work, then I will do as you suggested and create a new device entry.

Can you please point me to a newer binding? I have learned how to drop a .jar file in the addons folder to use a new binding, but I haven’t figured out how to find them.

I figured out how to get the milestone binding (or any binding). On the OpenHAB download page Download openHAB | openHAB, follow the instructions for manual installation. On my Windows PC, I downloaded the milestone to the Downloads folder. I then extracted the downloaded file to a folder on my PC. Finally I drilled down to repository/org/openhab/addons/bundles/org.openhab.bindings.zwave/3.1.0M5 and found the binding zwave-3.1.0M5.jar.

I removed the zwave binding in use (3.0.2) using the UI, then copied the milestone binding to the addons folder on my Pi 4 running Openhabian, /usr/share/openhad/addons.

I received an error message that a needed utility wasn’t available. I assume this is a missing dependency from OpenHAB 3.1. I’m planning to upgrade to 3.1 when the stable version is released next week. I will try again then.

The 3.1.0 milestone & snapshot bindings now require 3.1.3M4 or newer due to OSGi upgrade.
There us currently no way of updating the binding in 3.0.x. The official response is to either wait for 3.1.0 release or install one iof the prerelease versions.

Thanks for the explanation, which confirms my assumption. While I’m sure the 3.1.3M5 is pretty close to the 3.1.0 release, since it is scheduled for next week, I think I will wait until it comes out. I will then report back on whether the binding recognizes the device.

With the release of 3.1.0-1 stable, I updated my installation. The update (using OpenHABian on my Pi4B, went very smoothly. The 3.1.0 Z-Waze binding quickly identified the device. When I first created the channels/items, there was an odd behavior where I couldn’t toggle the power on. But when I changed the Semantic Class from Point to Switch and the Semantic Property from blank to Power, everything seems to work as expected. I will continue to check it out and report back, but the basic issue appears to be that I was using the latest stable release and needed the updated database in the newer releases. I may have to reevaluate my decision to stick with the stable release. I got burned by a binding in a Milestone release early in my OpenHAB journey, which has made me cautious about getting too close to the bleeding edge.

Should I do something to note in the database or the Openhab documentation that the device I purchased is supported under the NAS-WR01ZE Wall Plug Switch? Of is it a fools errand to try and capture every Chinese brand name that might be slapped on a device.

Thanks for all of your help. I have learned a lot as I have worked through this issue.

1 Like