Zoos Zen52 LR Double Relay Page Widget does not respond to relay switch change

Working with OpenHab 4.1.3 on Windows 11.

System has been operating well for over a year already and I’m installing a Zooz Zen52 LR double relay to control loads manually controlled with toggle switches.

Toggling each switch at the relay toggles the 2 internal relays as expected.

Clicking the widget on the display page toggles the relays on or off, and the widget updates to the on or off state.

The issue is that the widget_Toggle I’m using on the display page is not being updated when I flip one of the manual toggle switches attached to the relay.

It took a while to find the right thing configuration so that the relays would operate independently. In this configuration, I have noticed that flipping a toggle switch does not trigger an event in the log which may be why the page widgets don’t update. However, the events are generated when clicking the widgets.

Does anyone have any idea on how to get this working as I expected it would? I can supply any screenshots or code which would be helpful for a diagnosis.

Thank You.

The typical situation is that the device sends a basic set back to the controller when triggered manually. I noticed in the ZW DB that endpoints are not linked to the basic, so this might be why. Possibly putting the controller in Groups 2 and 3 might solve the problem without a Db fix.

The controller was already in groups 2 and 3 so that did not make a difference. Are you able to try the Db fix? Or have any further things that can be tried?

Thank you.

I did modify the ZW DB entry with the Basic linkage for the future (OH5.1 release (maybe)). However, I marked up the new xml here

zen52_0_0.xml (17.2 KB);

I wrote a guide here to overwrite the entry in your current binding OH4.1.3 or use a compressed file editor (much easier) to replace. Also @Nadahar has a community application that might work (I have not tested as it just was released).

I can’t completely guarantee this will solve the problem, but it is likely from my experience.

1 Like

While my add-on should work down to 4.1.0 (hopefully, I haven’t tested it lower than 4.2.3), it’s not suitable to overwrite configurations that already exist in the database. The reason is that OH doesn’t have a “priority system” if several providers provide the same ThingTypeUID, so there’s no way to tell which one will be used. It could be the one from my add-on, or it could be the one from the ZWave binding. I don’t even know if it would pick the same one each time OH is started. So, it’s probably better to modify the JAR if you want to override an existing configuration.

Used BreeZip to update the .jar file.

Found the .jar file for zwave, opened it and found the the zooz zen52 .xml file, substituted the new .xml file.

deleted the relay thing, then scanned and added it back.

I believe I followed the directions but behavior is same as before.

I’m not sure what was meant by update bundle.

Don’t know if I missed a step or ?. Is there something I can verify?

Can I send anything for you to check?

At a loss at the moment.

Most of the file management instructions are in the first post. The Breezip update just saves the need for the trickier jar -update. An outline

  1. find the current jar (step4).

  2. make a copy to a safe location for modification(step5)

  3. Update with jar uf or breezip (step7) (Done)

  4. log into karaf (step8) and (a) find running ZW bundle number (b) bundle:update xxx file:your file location.

The docs on bundle management are here. As an alternative you could uninstall ZW from the UI and drop your modified jar in the addons folder. (nothing good will happen if two bindings are running :grimacing: ) Most likely you will then need to run (from the console) feature:install openhab-transport-serial

It is a dependency that is normally installed when add ZW via the UI, but not when you place a ZW jar in addons.

Hopefully this will help.

EDIT: you can also remove the controller from GRP 2 & 3 since this isn’t helping and leads to extra ZW traffic.

Followed directions again after doing a restore just in case.

Everything went smoothly, however, the channels are now gone from the ZEN52 LR thing. Got the message when I clicked on Channels: This thing has no channels. Either the thing type doesn’t define channels, or they may be detected and appear later.

Any ideas? Check the .xml file?

Check the xml. Also I’d try uninstalling zw from the ui. Then check the karaf for a zwave binding. Make sure it isn’t there. Then reinstall zw from the ui

Edit: it would helpful to know how you updated the binding. There are two options in the steps. Which one?

Also it would ease my mind that you did save the original jar, so you can at least get back to where you were, since something in your zw binding seems corrupt.

Saw your other post.

Which topic should we continue to post on?

I started again after another restore.

Downloaded the new Zen52_0_0.xml file.

Found the org.openhab.binding.zwave-4.1.3.jar file in C:\openhab-4.1.1\userdata\tmp\mvn\org\openhab\addons\bundles\org.openhab.binding.zwave\4.1.3

copied to desktop, opened with Breezip, deleted Zen52_0_0.xml then added the new one back.

Ran this:

openhab> bundle:update 261 file:///C:/Users/Neil/Desktop/org.openhab.binding.zwave-4.1.3.jar

Copied the updated jar file back to original location to replace old one.

Deleted the Zen52 thing, hit +, picked the zwave binding and scan which found the Zen52.

Now full information back with channels.

Still does not create an event when I flip the relay local toggle switches (just like before)

Restarted Karaf multiple times. No change.

Is there anything else I can do to get the page widget to update when the local relay toggle switch is toggled? Might I have a wrong setting in the Relay thing regarding this behavior?

I’m happy that you are back to before. I’ll take a look at the zooz site, but linking the basic class is normally the fix.

Edit:

  1. I wouldn’t have copied the modified file back (keep for backup). After the bundle:update the new file should be in operation.

  2. As to the problem, I see parameters on switch types are those all set correctly? Also are you using scene control?

  3. On channels I assume you are using the ones for endpoint 1 and 2. The root endpoint (without a number) is typically a mirror of EP 1 but possibly is getting the basic message when manually operated. You could try also linking your item on switch 1 to the root.

Was wondering about whether copying the modified file back was ok, thought it might be needed in its original location.

Not using scene control but tried with and without. No apparent difference in behavior.

Yes, used the channels for endpoints 1 & 2. Tried using the root endpoint, it just triggered both relays together. Other behaviors the same, no response from local switches.

Really appreciate your time on helping me solve this, still hope to get this working.

Here is the ZEN52 thing code:


1
UID: zwave:device:18364cd37a:node26
2
label: "ZW N26: ZEN52LR Backyard Lights and Fountain Dual Relay"
3
thingTypeUID: zwave:zooz_zen52_00_000
4
configuration:
5
  group_5: []
6
  group_4: []
7
  group_1:
8
    - controller
9
  group_3:
10
    - controller
11
  group_2:
12
    - controller
13
  config_16_1: 1
14
  config_17_1: 1
15
  config_18_1: 1
16
  config_14_0: 2
17
  config_15_1: 2
18
  config_20_1: 0
19
  config_21_1: 0
20
  config_22_1: 10
21
  config_2_1: 1
22
  config_6_2: 0
23
  config_7_1: 2
24
  config_8_1: 2
25
  config_23_1: 10
26
  config_24_1: 0
27
  config_3_2: 0
28
  config_25_1: 0
29
  config_4_2: 0
30
  config_26_1: 0
31
  config_5_2: 0
32
  node_id: 26
33
bridgeUID: zwave:serial_zstick:18364cd37a
34
channels:
35
  - id: switch_binary
36
    channelTypeUID: zwave:switch_binary
37
    label: Switch
38
    description: Switch the power on and off
39
    configuration: {}
40
  - id: scene_number
41
    channelTypeUID: zwave:scene_number
42
    label: Scene Number
43
    description: Triggers when a scene button is pressed
44
    configuration: {}
45
  - id: switch_binary1
46
    channelTypeUID: zwave:switch_binary
47
    label: Switch 1
48
    description: Switch the power on and off
49
    configuration: {}
50
  - id: switch_binary2
51
    channelTypeUID: zwave:switch_binary
52
    label: Switch 2
53
    description: Switch the power on and off
54
    configuration: {}
55

What do the blue circle “1”s mean on the Channels?

By review the parameters I meant for you to make sure they match the type of switch, etc.:wink:

The blue 1 means 1 item is linked.

What firmware are you on. On the zooz site. You would need Simplicity studio to upgrade.

Also on advanced parameters it clearly says device should report On/OFF to controller.

One workaround might be use the scene control and a rule to change the light from OH. Link a number item to the scene and flick the switches to see what you get. I’m thinking a rule IF scene = x, then send command to device EPx.

Edit: I think parameter 24 should be 1.

The device has the latest firmware version 1.80.

I changed parameter 24 to 1. Also parameters 20, 21 to 2.

Now I’m seeing an entry in the events log, but it is not the same as when I press the widget.

toggle the local switch for switch_1:

2025-12-18 12:44:51.420 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item ‘ZW_N26_ZEN52LR_Backyard_Lights_and_Fountain_Dual_Relay_Switch’ changed from OFF to ON
2025-12-18 12:44:54.112 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item ‘ZW_N26_ZEN52LR_Backyard_Lights_and_Fountain_Dual_Relay_Switch’ changed from ON to OFF

Toggle the widget for switch_1:

2025-12-18 12:47:47.365 [INFO ] [openhab.event.ItemCommandEvent ] - Item ‘ZW_N26_ZEN52LR_Backyard_Lights_and_Fountain_Dual_Relay_Switch_1’ received command ON
2025-12-18 12:47:47.366 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item ‘ZW_N26_ZEN52LR_Backyard_Lights_and_Fountain_Dual_Relay_Switch_1’ predicted to become ON
2025-12-18 12:47:47.367 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item ‘ZW_N26_ZEN52LR_Backyard_Lights_and_Fountain_Dual_Relay_Switch_1’ changed from OFF to ON
2025-12-18 12:47:47.693 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item ‘ZW_N26_ZEN52LR_Backyard_Lights_and_Fountain_Dual_Relay_Switch’ changed from OFF to ON
2025-12-18 12:47:50.486 [INFO ] [openhab.event.ItemCommandEvent ] - Item ‘ZW_N26_ZEN52LR_Backyard_Lights_and_Fountain_Dual_Relay_Switch_1’ received command OFF
2025-12-18 12:47:50.488 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item ‘ZW_N26_ZEN52LR_Backyard_Lights_and_Fountain_Dual_Relay_Switch_1’ predicted to become OFF
2025-12-18 12:47:50.488 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item ‘ZW_N26_ZEN52LR_Backyard_Lights_and_Fountain_Dual_Relay_Switch_1’ changed from ON to OFF
2025-12-18 12:47:50.801 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item ‘ZW_N26_ZEN52LR_Backyard_Lights_and_Fountain_Dual_Relay_Switch’ changed from ON to OFF

Will look into the rule.

Manual looks okay to me. Does OH reflect those states? The issue with OH is that there is the autoupdate with OH that does predictions. You could turn that off. Also looks like the root is there

Does OH reflect those states?

If you mean does the widget change states from OFF to ON then back to OFF with the toggle switch?

It does not. Since the only event I get when I toggle a switch is a root response, how do I tell which switch was toggled?

How do you turn off predictions?

Do you have a suggestion for a rule that might work?

I think there is something wrong with the widget since your event logs show communication. Also you are getting both endpoint 1 and root events. Edit:Nevermind I see you are only getting root from manual.

Let’s start with this; On the UI item page are you getting the status update from a manual on/off

Edit: as to the rule, I have been around too long and am lazy, so still have the unpreferred DSL rules (that work-that is where the lazy part comes in). Once you get the scene numbers coming from the manual switch operation open a separate topic or try copilot (since you are on windows) for a java script suggestion

That does not change when I toggle either manual switch

Did I need to select something from the metadata menu?

Also, do not see “Semantic Model” on my page.

It appear you are getting communication on the root, so the individual switches are not getting reflected. The issue probably is the device is set up that way, so the scene idea might be the only solution. (see my above for rule) The only thing that seems odd is the root is not linked to an item.

The autoupdate is in the metadata like the picture above.

Still trying to figure out what the Rule would test.

Here are entries from the events log and the OpenHab log. Any clues?

Action performed: local switch 1 toggled on then off. local switch 2 toggled on then off.

Events.log:
2025-12-19 11:42:07.496 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item ‘ZW_N26_ZEN52LR_Backyard_Lights_and_Fountain_Dual_Relay_Switch’ changed from OFF to ON
2025-12-19 11:42:15.285 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item ‘ZW_N26_ZEN52LR_Backyard_Lights_and_Fountain_Dual_Relay_Switch’ changed from ON to OFF
2025-12-19 11:42:21.777 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item ‘ZW_N26_ZEN52LR_Backyard_Lights_and_Fountain_Dual_Relay_Switch’ changed from OFF to ON
2025-12-19 11:42:25.287 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item ‘ZW_N26_ZEN52LR_Backyard_Lights_and_Fountain_Dual_Relay_Switch’ changed from ON to OFF

openHab log filtered for “value=”

2025-12-19 11:42:07.383 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 26: Got a value event from Z-Wave network, endpoint=1, command class=COMMAND_CLASS_SWITCH_BINARY, value=255
2025-12-19 11:42:07.493 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 26: Got a value event from Z-Wave network, endpoint=0, command class=COMMAND_CLASS_SWITCH_BINARY, value=255
2025-12-19 11:42:07.591 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 26: Got a value event from Z-Wave network, endpoint=0, command class=COMMAND_CLASS_CENTRAL_SCENE, value=1.0
2025-12-19 11:42:15.172 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 26: Got a value event from Z-Wave network, endpoint=1, command class=COMMAND_CLASS_SWITCH_BINARY, value=0
2025-12-19 11:42:15.283 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 26: Got a value event from Z-Wave network, endpoint=0, command class=COMMAND_CLASS_SWITCH_BINARY, value=0
2025-12-19 11:42:15.392 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 26: Got a value event from Z-Wave network, endpoint=0, command class=COMMAND_CLASS_CENTRAL_SCENE, value=1.0
2025-12-19 11:42:21.662 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 26: Got a value event from Z-Wave network, endpoint=2, command class=COMMAND_CLASS_SWITCH_BINARY, value=255
2025-12-19 11:42:21.775 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 26: Got a value event from Z-Wave network, endpoint=0, command class=COMMAND_CLASS_SWITCH_BINARY, value=255
2025-12-19 11:42:21.872 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 26: Got a value event from Z-Wave network, endpoint=0, command class=COMMAND_CLASS_CENTRAL_SCENE, value=2.0
2025-12-19 11:42:25.169 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 26: Got a value event from Z-Wave network, endpoint=2, command class=COMMAND_CLASS_SWITCH_BINARY, value=0
2025-12-19 11:42:25.281 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 26: Got a value event from Z-Wave network, endpoint=0, command class=COMMAND_CLASS_SWITCH_BINARY, value=0
2025-12-19 11:42:25.375 [DEBUG] [ding.zwave.handler.ZWaveThingHandler] - NODE 26: Got a value event from Z-Wave network, endpoint=0, command class=COMMAND_CLASS_CENTRAL_SCENE, value=2.0