[DRIVER] Zooz Relays Advanced (ZEN16, ZEN17, ZEN51, ZEN52)

I'm having problems with a Zen17 input sensors when using "Send Input Status Only" (both 700 and 800 series) and would appreciate any guidance.

In a test setup I have a Zen17 800 series (firmware 2.10) as the only device sitting next to a C8 running 2.3.9.166, community driver v1.2.0 (same behavior seen on a C8-Pro with many devices). Regular/secure zwave pairing. I've unpaired and factory reset the Zen17 and re-paired it multiple times.

  • configVals: [1:0, 2:7, 3:7, 5:0, 6:0, 7:0, 8:0, 9:0, 10:1, 11:0, 15:0, 16:0, 17:0, 18:0, 19:0, 20:0, 24:0, 25:5, 26:5, 27:0]
  • deviceId: 40970
  • deviceModel: ZEN17
  • deviceType: 28672
  • firmwareVersion: 2.10
  • hardwareVersion: 2
  • inClusters: 0x5E,0x9F,0x55,0x6C
  • manufacturer: 634
  • protocolVersion: 7.19
  • S2: 3
  • secureInClusters: 0x25,0x8E,0x59,0x85,0x86,0x73,0x60,0x72,0x87,0x7A,0x5A,0x70
  • zwaveSecurePairingComplete: true
  • zwNodeInfo: D3 9C 03 04 10 00 5E 9F 55 6C 68 23 F1 00 25 8E 59 85 5C 86 73 60 72 87 7A 5A 70

When the Zen17 Input Control S1 is set to "Send Input Status Only" (P10, 0) and Input Type for S1C terminals is set to "Contact Sensor" (P2, 7). If I put a wire between S1 and C, nothing shows in the live logs on S1 or the main device. No live log to provide, it is blank (Past logs show "Installed). Where you would expect to see the state of the sensor on its screen, it has "Current States" as words, but no colon followed by the actual state as I'm used to seeing.

If I change Input Control S1 to "Active Relay and Status" (P10, 1) and place a wire between S1 and C, the relay turns on and off and the physical on/off shows in the Zen17 live logs, but I get nothing from S1 for other logic.
dev:1262024-08-12 05:24:20.009 PMinfoZooz ZEN17 Universal Relay Advanced - Relay 1: switch is turned off (physical)

dev:1252024-08-12 05:24:19.476 PMinfoTestGate: switch is turned off (physical)

dev:1262024-08-12 05:24:17.312 PMinfoZooz ZEN17 Universal Relay Advanced - Relay 1: switch is turned on (physical)

dev:1252024-08-12 05:24:16.776 PMinfoTestGate: switch is turned on (physical)

dev:1262024-08-12 05:22:29.378 PMinfoZooz ZEN17 Universal Relay Advanced - Relay 1: switch is turned off (physical)

dev:1252024-08-12 05:22:28.832 PMinfoTestGate: switch is turned off (physical)

dev:1262024-08-12 05:22:25.393 PMinfoZooz ZEN17 Universal Relay Advanced - Relay 1: switch is turned on (physical)

dev:1252024-08-12 05:22:24.846 PMinfoTestGate: switch is turned on (physical)

dev:1252024-08-12 05:21:44.067 PMwarnTestGate: Cleaning up Sensor Child 1S Current States

dev:1252024-08-12 05:21:43.741 PMwarnTestGate: Cleaning up Sensor Child 2S Current States

dev:1252024-08-12 05:21:39.132 PMinfoTestGate: Logging Level is: Info (2)

I assume you power cycled the device as it states on the settings, after you changed those settings?

Have you ever tried to exclude and re-include the device without factory resetting?

I had the same issue on the first include with a new device I was testing, but I thought it was something with LR mode, so I excluded and re-included as Mesh (did not factory reset) and then it worked fine afterwards.

I had a helluva time getting my contact sensors working on both of my LR-paired 800 Z17s... Those contact sensor were previously wired to Z16s and older Z17s in the past - there was no issues with those CSs.

I can't remember now how I finally got them working -- I think it involved doing several exclusions/inclusions to finally shake them loose. There was absolutely a lot of loud swearing and fist-shaking -- that I remember :sweat_smile:

But since then, both Z17s have been working flawlessly in LR -- I use them in my detached garage for GDO, some lighting-related automations, and one of the CSs tracks my service door status.

I also did not know that Zooz has a 2.10 firmware for these -- I wonder what the changes are and when they are going to release that for OTA.

The 2.10 is on the old Fimware download page, they have not posted in their community about it or updated the changelog. I was told it was just some bugs around the garage door mode setting so nothing critical unless having issues.

Based on the feedback from @hydro311 I am leaning towards my suspicion that you have to include it, change the settings to be contact sensor, then exclude and include again (do not factory reset).

My driver will then set all the settings back to default (I need to fix this so it reads them from the device). But, you can set it back to contact sensor and it should then work (may need to power cycle it after setting). This was my experience, and I think @hydro311 stumbled into the same thing unknowingly after some trial and error.

This exclude/include always been in the instructions from Zooz but in the past just simply power cycling the device would get the same results so I always said it was not needed.

1 Like

Right on -- man, I forgot about that old firmware page! I suppose they'll update the other pages at some point. No point rocking the boat with it now since things are working well.

I think I told you this when we were chatting a while ago, but I'd swear I didn't have to do a exclude/reinclude to get the CSs working when I swapped my older 17 for a 16v2 in this same setup before. So maybe Zooz tweaked something recently that now really does now require that.

Thanks, that got it. In the end this incantation appears to work:

  • Unpaired
  • Factory reset Zen17
  • Power cycled Zen17
  • Shutdown C8, then power cycled
  • Paired Zen17
  • Configured Zen17 (with contacts that way I need them to function)
  • Unpaired Zen17
  • Power cycled Zen17
  • Paired Zen17
  • Configured Zen17 (with contacts that way I need them to function)

I moved it over to the production C8-Pro, and that worked (didn't bother to shutdown the C8-Pro however because it never had the unit on it). And it is now working on that one. If I didn't power cycle between unpair/repair it didn't seem to create the children properly.

I was not able to get it to pair with LR.

1 Like

Was it advertised as LR, or did you just try and see if it would pair as LR?

The ZEN17 v2 is 800LR, as mentioned above @hydro311 has them working in LR mode. I was also able to pair mine just fine but ran into the "first pairing" bug we have now confirmed, and then re-paired it as mesh mode.

1 Like

Got it.
Missed it (below).

At some point, an upgrade of the ZEN16 in my garage might be order, although it's been working fine in the old mesh mode (vs LR), knock on wood.

I haven't revisited the ZEN multirelay scene in a while; I thought the new ZEN16's had the same capabilities as the ZEN17, as far as designating contacts,sensors, dry and voltage, etc. I'll have to read up. :slight_smile:

image

@jtp10181 can the ZEN17 replace this?

https://manuals-backend.z-wave.info/make.php?lang=en&sku=MIMO2+&cert=ZC10-16075155

The device its connected to has a dry contact for open and closed and a ON/OFF state for the relay. It uses the "generic component Contact/switch" as its child device to bring the 2 end points into one device. In this case it drives a window vent.

Yes it should be able to, looks like both devices have 2 relays and 2 inputs, same as the ZEN17.

One the ZEN17 though, you will have a separate child for the relay and the contact input.

Could this not use the build in "generic component Contact/switch" to combine them into one?

Basically it becomes a garage door device with a ON/OFF with switch state and showing if it's open or closed with the contact state.

Probably could but since there are so many different configurations for the ZEN17 it would not be practical. You could just use one of the garage door apps to combine them into a virtual garage door device.

Jeff, not sure if you saw my comment up in the thread, but I'm wondering if there's a straightforward way for me (not a dev) to adapt the ZEN52 driver so that it's a contact and a switch (rather than 2 switches) as would be appropriate for the door jamb use-case described above.

I know I can accomplish the same with a virtual contact sensor -- just trying to avoid adding the overhead, if poss.

I think this will work.
Change the child driver to Generic Component Contact/Switch

Update the sendSwitchEvents function so it also sends a contact event.
This would send it for both endpoints, if you only switch one child driver the other would just get dropped.

You may need to switch the open/closed below if they are opposite. I assume on = closed?

void sendSwitchEvents(rawVal, String type, Integer ep=0) {
	String value = (rawVal ? "on" : "off")
	String desc = "switch is turned ${value}" + (type ? " (${type})" : "")
	sendEventLog(name:"switch", value:value, type:type, desc:desc, ep)

	String contact = (rawVal ? "closed" : "open")
	sendEventLog(name:"contact", value:contact, type:type, ep)
}
2 Likes

No off=closed, when using your driver and the wiring schematics up in this thread. I'll swap open and closed in the code you inserted. Giving it a try now. Thanks.

EDIT: Jeff, looks like this works. Thank you very much. Is there a trick to getting rid of the old attribute (switch) on the device?

Well the code is now sending both attributes, I figured the switch state would not hurt anything? You could try changing the driver to the Generic Component Contact if its a problem, that wont have a switch attribute at all. May need to switch to the "Device" driver temporarily and use the command button to delete current states as well.

You're right--not a big deal. Just OCD on my part.

Hey Jeff, can I ask you.......when you driver shows a syncStatus of "X Pending Changes" where X is a large number that isn't changing for days, what does that mean? Anything to be concerned with?

Have you clicked Save or configure to get it to sync up?

If yes, and its stuck, then the device is either not responding or some of the settings are not valid (debug logs would show which ones are trying to sync up).