Plug-In Outdoor Smart Switch

Hello…

This device (generically defined as a binary switch) is detected by my little Z-Wave RPi controller - but I can’t control it at all as it’s listed as an “Unknown Device” and no channels are available. BUT - it knows it’s a generic binary switch - so why can’t I just toggle it? Why is that channel hidden?

Regards,
Mike

Can you provide the manufacturer and model number of the device, as well as the version of openHAB you’re running?

Hi Mark,

Sure - sorta. It’s a GE/JASCO “Plug-In Outdoor EZ Smart Switch” - ZW4201

However, Lowe’s (point of purchase) shows it online as a “GE Z-Wave Black Remote Control Lamp Module”.

Looking at the box, the most notable part number appears to be ZW4201.

I’m running the latest distro - 2.2.

Hmm. From what I can see, it looks like it might be the same as the GE/Jasco 45604. Does it look like this?

If so, I have two of these in my network, and they included just fine.

By any chance is there a nodeNN.xml file in the userdata/zwave directory. If so, can you post the manufacturer, deviceId, and deviceType? Like this:

  <manufacturer>0x63</manufacturer>
  <deviceId>0x3130</deviceId>
  <deviceType>0x5250</deviceType>

Hi Mark,

Yes - that looks like the device. However, it’s a Z-Wave Plus model. The XML is different for deviceId and deviceType:

<manufacturer>0x63</manufacturer>
<deviceId>0x3032</deviceId>
<deviceType>0x4f50</deviceType>

Maybe that’s the catch? I can supply the whole file if you like.

They’re functionally identical. I’m not sure what Z-Wave Plus means but I believe it’s all about extending the pairing range - which shouldn’t matter much to openHab. It’s probably a simple database tweak. Happy to help with that - just not sure where.

Best,
Mike

Here’s what’s in the database for the 45604. As you can see, your device type/id combination is not there. I can add your device type/id to the database; however, it will need to wait for @chris to approve and release an updated zwave binding.

Since you’re on 2.2 stable, you’ll need to install the updated zwave binding. I’m not sure how to do that with a stable release, as I run the snapshot version.

Manufacturer	Jasco Products
Manufacturer ID	0063
Name	45604
Device Description	Outdoor Lighting Control Module
References (Type:Id)	5250:3130,4F50:3031,6363:3130
Firmware Versions	All

Actually, it looks like 4F50:3032 is already in the database, just not sure yet which device.

Ok, here it is.
http://www.cd-jackson.com/index.php/zwave/zwave-device-database/zwave-device-list/devicesummary/643

From what I can see, the device should be working fine.

Hi Mark… if you scroll down on that 643 link, you’ll see other people are having similar problems. OpenHab can see it, but it exposes no channels so you can’t switch it. I’m very new to the environment so I don’t know where that’s falling down, but for sure, others are having trouble with it so some mapping isn’t clear that this is a binary device.

Best,
Mike

Yeah, I see that. :confused:

So, I did an OH2 export of your device, and of the 45604 device, which I know works. There’s nothing in the diff that’s jumping out at me. Your device is showing a scene_number channel, but that shouldn’t be an issue unless the device doesn’t support the SCENE_ACTIVATION command class.

Can you post the full node.xml file?

8,10c8,10
<   <thing-type id="ge_45604_00_000" listed="false">
<     <label>45604 Outdoor Lighting Control Module</label>
<     <description>Outdoor Lighting Control Module</description>
---
>   <thing-type id="ge_outdoorswitch_00_000" listed="false">
>     <label>GE Outdoor Switch Weather Resistant Outdoor Switch</label>
>     <description>Weather Resistant Outdoor Switch</description>
19a20,25
>       <channel id="scene_number" typeId="scene_number">
>         <label>Scene Number</label>
>         <properties>
>           <property name="binding:*:DecimalType">SCENE_ACTIVATION</property>
>         </properties>
>       </channel>
25c31
<       <property name="modelId">45604</property>
---
>       <property name="modelId">GE Outdoor Switch</property>
27,28c33,34
<       <property name="manufacturerRef">4F50:3031,5250:3130,6363:3130</property>
<       <property name="dbReference">47</property>
---
>       <property name="manufacturerRef">4F50:3032</property>
>       <property name="dbReference">643</property>

FWIW, this is what I see in Paper under Things:


Unknown Device

This device has not been fully discovered by the binding. There are a few possible reasons for this -:

  • The device is not in the database. If the device attributes show that this device has a valid manufacturer ID, device ID and type, then this is likely the case (eg. you see a label like “Z-Wave node 1 (0082:6015:020D::2.0)”). Even if the device appears to be in the database, some manufacturers use multiple sets of references for different regions or versions, and your device references may not be in the database. In either case, the database must be updated and you should raise an issue to get this addressed.
  • The device initialisation is not complete. Once the device is included into the network, the binding must interrogate it to find out what type of device it is. One part of this process is to get the manufacturer information required to identify the device, and until this is done, the device will remain unknown. For mains powered devices, this will occur quickly, however for battery devices the device must be woken up a number of times to allow the discovery phase to complete. This must be performed with the device close to the controller.

Absolutely - here it is in all its glory.

<node>
  <deviceClass>
    <basicDeviceClass>ROUTING_SLAVE</basicDeviceClass>
    <genericDeviceClass>BINARY_SWITCH</genericDeviceClass>
    <specificDeviceClass>POWER_SWITCH_BINARY</specificDeviceClass>
  </deviceClass>
  <homeId>0xc0ce6cd5</homeId>
  <nodeId>5</nodeId>
  <version>4</version>
  <manufacturer>0x63</manufacturer>
  <deviceId>0x3032</deviceId>
  <deviceType>0x4f50</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>CRC_16_ENCAP</commandClass>
    <commandClass>VERSION</commandClass>
    <commandClass>MANUFACTURER_SPECIFIC</commandClass>
    <commandClass>DEVICE_RESET_LOCALLY</commandClass>
    <commandClass>ASSOCIATION</commandClass>
    <commandClass>ASSOCIATION_GROUP_INFO</commandClass>
    <commandClass>POWERLEVEL</commandClass>
    <commandClass>SWITCH_BINARY</commandClass>
    <commandClass>SWITCH_ALL</commandClass>
    <commandClass>SCENE_ACTUATOR_CONF</commandClass>
    <commandClass>SCENE_ACTIVATION</commandClass>
    <commandClass>FIRMWARE_UPDATE_MD</commandClass>
  </nodeInformationFrame>
  <supportedCommandClasses>
    <entry>
      <commandClass>BASIC</commandClass>
      <basicCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>1</versionSupported>
        <isGetSupported>true</isGetSupported>
      </basicCommandClass>
    </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>CRC_16_ENCAP</commandClass>
      <crc16EncapsulationCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>1</versionSupported>
      </crc16EncapsulationCommandClass>
    </entry>
    <entry>
      <commandClass>SCENE_ACTIVATION</commandClass>
      <sceneActivationCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>1</versionSupported>
      </sceneActivationCommandClass>
    </entry>
    <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>POWERLEVEL</commandClass>
      <powerLevelCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>1</versionSupported>
        <powerLevel>0</powerLevel>
        <powerTimeout>0</powerTimeout>
      </powerLevelCommandClass>
    </entry>
    <entry>
      <commandClass>VERSION</commandClass>
      <versionCommandClass>
        <version>2</version>
        <instances>1</instances>
        <versionSupported>2</versionSupported>
        <libraryType>LIB_SLAVE_ENHANCED</libraryType>
        <protocolVersion>4.5</protocolVersion>
        <applicationVersion>5.20</applicationVersion>
        <hardwareVersion>255</hardwareVersion>
      </versionCommandClass>
    </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>SWITCH_BINARY</commandClass>
      <binarySwitchCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>1</versionSupported>
        <isGetSupported>true</isGetSupported>
      </binarySwitchCommandClass>
    </entry>
    <entry>
      <commandClass>MANUFACTURER_SPECIFIC</commandClass>
      <manufacturerSpecificCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>2</versionSupported>
        <initSerialNumber>false</initSerialNumber>
        <deviceManufacturer>99</deviceManufacturer>
        <deviceType>20304</deviceType>
        <deviceId>12338</deviceId>
      </manufacturerSpecificCommandClass>
    </entry>
    <entry>
      <commandClass>SCENE_ACTUATOR_CONF</commandClass>
      <sceneActuatorConfigurationCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>1</versionSupported>
      </sceneActuatorConfigurationCommandClass>
    </entry>
    <entry>
      <commandClass>FIRMWARE_UPDATE_MD</commandClass>
      <firmwareUpdateCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>2</versionSupported>
      </firmwareUpdateCommandClass>
    </entry>
    <entry>
      <commandClass>NO_OPERATION</commandClass>
      <noOperationCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>1</versionSupported>
      </noOperationCommandClass>
    </entry>
  </supportedCommandClasses>
  <securedCommandClasses/>
  <associationGroups>
    <entry>
      <int>1</int>
      <associationGroup>
        <index>1</index>
        <name>Lifeline</name>
        <profile1>0x0</profile1>
        <profile2>0x1</profile2>
        <commands>
          <commandClass>SWITCH_BINARY</commandClass>
          <commandClass>DEVICE_RESET_LOCALLY</commandClass>
        </commands>
        <associations/>
      </associationGroup>
    </entry>
    <entry>
      <int>2</int>
      <associationGroup>
        <index>2</index>
        <name>On/Off control</name>
        <profile1>0x20</profile1>
        <profile2>0x1</profile2>
        <commands>
          <commandClass>BASIC</commandClass>
        </commands>
        <associations/>
      </associationGroup>
    </entry>
    <entry>
      <int>3</int>
      <associationGroup>
        <index>3</index>
        <name>On/Off control</name>
        <profile1>0x20</profile1>
        <profile2>0x1</profile2>
        <commands>
          <commandClass>BASIC</commandClass>
        </commands>
        <associations/>
      </associationGroup>
    </entry>
  </associationGroups>
  <nodeNeighbors/>
  <lastSent>2017-12-21 05:41:14.861 UTC</lastSent>
  <lastReceived>2017-12-21 05:41:14.907 UTC</lastReceived>
</node>

Hi Mark,

I posted the XML. Any update on this? I’d love to get this working.

Best,
Mike

I didn’t see anything that jumped out at me. I’m not sure what to suggest as a next step.

I presume you’ve already tried to exclude/include the device?

I don’t know… maybe it’s something to do with the Z-wave plus part? Maybe something isn’t parsing or lining up? I know I’m not the only one with this issue so there’s got to be something going on. I just don’t know how to debug it. I’ll try the whole exclude/include process and see what happens, but I hold little hope.

Yeah… that didn’t work. On top of it, I got a bunch of 405 errors that reported as 500’s.

{"error":{"message":"HTTP 405 Method Not Allowed","http-code":405,"exception":{"class":"javax.ws.rs.NotAllowedException","message":"HTTP 405 Method Not Allowed","localized-message":"HTTP 405 Method Not Allowed"}}}

I think there’s something up with the z-wave binding plug-in. I can’t get it to pair with the Schlage locks either… complains about a SECURITY_ERROR. “Device message contained nonce that is unknown to us, id=115.”

I’m a Microsoft guy - I know C# cold… not up on Java and not sure how to debug. Can I set up a debugging environment right on the RPi, or do people normally set up something on a workstation and remote in?

Unfortunately these also have never worked for me even on the latest OpenHab2.

Running 2.4 I ran into the exact same problem with the GE Zwave plus outdoor plug (ZW4201 / Jasco 14284-2), after removing and rediscovering it came up without a problem… device id: 12338

I just bought two Jasco ZW4201 but it is coming up with slightly different info:

<node>
  <homeId>0xf49dc6c7</homeId>
  <nodeId>51</nodeId>
  <version>4</version>
  <manufacturer>0x63</manufacturer>
  <deviceId>0x3033</deviceId>
  <deviceType>0x4f50</deviceType>

So it’s not being recognized by openHAB 2.5.4-1 (Release Build), it comes up as " Z-Wave Node 051 (0063:4F50:3033:5.20)". is this a matter of updating the zwave database again?

I’ve updated the database so this should be resolved in the coming days (I’ll do a database update in the binding tonight).

Thanks so much Chris!

BTW, I purchased these directly from Jasco. Link below:
https://byjasco.com/catalogsearch/result/?q=+14311

Hi Chris,

Let me know when and what I need to do to test out the smart switch with the updated database :wink:

Thanks!