harobinson / SmartThings-VRCS4

Apache License 2.0
0 stars 2 forks source link

VRCS4 fingerprint conflicts with VRCS2 #1

Open gbrossi76 opened 1 year ago

gbrossi76 commented 1 year ago

Hi @harobinson,

I have 1 VRCS4 device and 2 VRCS2 devices in my setup. Your driver works perfectly with the VRCS4.

However recently I had to reset one of my VRCS2 and found that your driver fingerprint conflicts with the VRCS2. When I tried to re-add the VRCS2 device, it was catch by your driver fingerprint.

Problem is with the "Leviton ZRCS4-M0Z" fingerprint using generic supported 0x2D

harobinson commented 1 year ago

Surprising you wrote on GitHub vs Smartthings but no problem.

I added the generic fingerprint to handle the ZRCS4-M0Z model as SmartThings doesn't support the Type field in fingerprint.

If you can give me anything from the ZRCS2, then I can see if I can modify the driver:

1) Do you have its fingerprint: manufacturer id, product type, and product id. 2) Does the device has 0, 1, or 2 embedded loads. 3) Can you send me a copy of the smartthings log when you select the driver. I may be able to discern a solution from the log. 4) Before the VRCS2 was paired with my driver, then what driver was used to control it.

Thanks

Henry

gbrossi76 commented 1 year ago

Without your driver installed in the HUB, when I include the VRCS2, the hub finds one “Z-Wave Remote” device and two “Z-Wave Switch Generic” devices.

Z-Wave Remote Raw Description: zw:L type:0100 mfr:001D prod:1102 model:0243 ver:0.01 zwv:2.67 lib:07 cc:85,2D,7C,77,82,73,86,72,91 ccOut:2B,2C Not used. I remove this device after adding the 2 switches.

Z-Wave Switch Raw Description: zw:L type:1000 mfr:001D prod:1102 model:0243 ver:0.01 zwv:2.67 lib:07 cc:25,85,72,86,77,2B,2C,73,91 ccOut:82 The two Switches match two embedded Loads. For the switches I use the following DTH Device Handler: https://github.com/bdahlem/device-type.VRCS2/blob/master/VRCS2.device-type.groovy

harobinson commented 1 year ago

Thank you for this detail. Based on what you have provided, the VRCS2 and VRCS4 have the same for the generic fingerprint that compares the command codes supported. The only difference is the productID but from I can discern Smartthings only allows use to either use the Z-Wave manufacturer spec (compares manufacturer, product id, product type) or use the generic fingerprint match.

If I use the Z-Wave manufacturer, then this matches the switch side of the ZRCS4-M0Z which is not correct while if I use the generic fingerprint match, then it matches with the ZRCS2 device.

I looked at the driver that you provided and it is very different than how my driver handles the Controller device of the S4 vs the S2. To try to incorporate the S2 into my driver would require lots of debugging which I don't think I can achieve without a physical device. Interesting that the S2 actual creates 3 devices (Controller and 2 switches) when first paired.

Interesting that bdahlem's driver doesn't include any switch configuration preambles or association commands but simply deals with the remote as a switch. I expect that there may be a SmartApp that configures it, etc.

I guess I'm trying to understand what your goal is here:

1) Have an Edge Driver for the Controller part of the switch; or 2) Simply have my S4 driver not be selected when you pair the device to SmartThings.

Note that you can always change the driver associated with the S2 by using the SelectDriver function in the UI. Not great, but ...

I will inquire to the community to see if there is a way to not bind the S4 driver to the S2.

gbrossi76 commented 1 year ago

VRCS2 is a challenge to pair correctly. This post have more information about that: https://community.smartthings.com/t/leviton-vrcs2-mrz-device-type-and-inclusion/51112/2

When your driver pairs and configures the VRCS2 controller, it breaks the association between the controller and the two loads. That is, I'm not able to pair the two loads as switches (they are recognized as remote control). And changing the driver associated with the VRCS2 controller after it has been configured doesn't solve the two loads pairing issue.

I understood that it is not possible to distinguish VRSC4 controller vs VRCS2 controller by fingerprint (both have the same generic fingerprint).

  1. Have an Edge Driver for the Controller part

I may have to use the VRCS2 manufacturer fingerprint and create an empty driver (which does nothing). Imitating Z-Wave Remote Control DHT. That way the VRCS2 will match this empty driver 1st.

  1. Simply have my S4 driver not be selected when you pair the device to SmartThings.

I don't know how to do that. The only way I was able to re-pair the VRCS2 was:

I will inquire to the community to see if there is a way to not bind the S4 driver to the S2.

That will be great. If your driver can ignore the S2 controller, it will solve the switch pairing issue.

harobinson commented 1 year ago

Do you currently have a VRCS4-MRZ or VRCS4-M0Z? This could give us some options.

But your proposed solution may work. Pair the S2 drivers first and then add my driver. I don't know if that would cause your S2 drivers to update. But this is a good question to ask.

Also, if my driver doesn't exist on your hub, then what happens to the Controller device for the VRCS2? I know that the S2 configures 3 devices (1 controller, 2 switches)..

Also, you said that you currently had a DTH. As you know, these are going away.

One thing that I may want to consider is to simply try to discover if its a S2 controller and simply don't configure it further. That way, "I don't break the associations" that may already exist. In the driver today, I remove ALL the old associations and simply have an association with the hub (to get messages). I could see whether removing the "remove all associations" works but I would be surprised if that would fix it. But also worth a try. Of course, that means you have to do the "factory reset" pairing dance again and again ... I have worked with the S4 and S1 variants and they work totally different from each other and it looks like the S2 is yet another implementation.

On Sat, Apr 29, 2023 at 9:05 AM gbrossi76 @.***> wrote:

VRCS2 is challenge to pair correctly. This post have more information about that: https://community.smartthings.com/t/leviton-vrcs2-mrz-device-type-and-inclusion/51112/2

When your driver pairs and configures the VRCS2 controller, it breaks the association between the controller and the two loads. That is, I'm not able to pair the two loads as switches (they are recognized as remote control). And changing the driver associated with the VRCS2 controller after it has been configured doesn't solve the two loads pairing issue.

I understood that it is not possible to distinguish VRSC4 controller vs VRCS2 controller by fingerprint (both have the same generic fingerprint).

  1. Have an Edge Driver for the Controller part

I may have to use the VRCS2 manufacturer fingerprint and create an empty driver (which does nothing). Imitating Z-Wave Remote Control DHT. That way the VRCS2 will match this empty driver 1st.

  1. Simply have my S4 driver not be selected when you pair the device to SmartThings.

I don't know how to do that. The only way I was able to re-pair the VRCS2 was:

  • change my VRCS4 device driver to something else
  • remove your driver from the hub
  • re-pair the VRCS2 device
  • add your driver to the hub
  • change my VRCS4 device driver back to your driver
  • recreate all the VRCS4 automations

I will inquire to the community to see if there is a way to not bind the S4 driver to the S2.

That will be great. If your driver can ignore the S2 controller, it will solve the switch pairing issue.

— Reply to this email directly, view it on GitHub https://github.com/harobinson/SmartThings-VRCS4/issues/1#issuecomment-1528819687, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACJWSACVLUWLJ4OLJJXNARLXDU335ANCNFSM6AAAAAAXPT5P4A . You are receiving this because you were mentioned.Message ID: @.***>

gbrossi76 commented 1 year ago

I have a VRCS4-MRZ deviceManufacturerCode: "001D-0802-0261". Maybe if you split your driver in two (one for VRCS4-MRZ using the manufacturer fingerprint and one for VRCS4-M0Z using the generic fingerprint) and I just subscribe to the MRZ variant.

If your driver doesn't exist in the hub:

One thing that I may want to consider is to simply try to discover if its a S2 controller and simply don't configure it further.

Yeah, that may solve the issue.

harobinson commented 1 year ago

I have just pushed a new driver to the channel. 2 62f063d7-92ad-4fb6-9bd4-927289c65ff5 Z-Wave Leviton 4-Button Scene Controller (test) 2023-04-30T15:33:24.260057585 zwave-leviton-VRCS4-test

This has code that should ignore a VRCS2 and not initialize associations.

If you have issues, then can you send me the log data from the time that you selected this driver.

harobinson commented 1 year ago

Did this work for you? If so, I will update the source code and release this in the production driver.

gbrossi76 commented 1 year ago

unfortunately I haven't tried it yet

From: harobinson @.> Sent: Wednesday, May 10, 2023 12:07 To: harobinson/SmartThings-VRCS4 @.> Cc: gbrossi76 @.>; Author @.> Subject: Re: [harobinson/SmartThings-VRCS4] VRCS4 fingerprint conflicts with VRCS2 (Issue #1)

Did this work for you? If so, I will update the source code and release this in the production driver.

- Reply to this email directly, view it on GitHubhttps://github.com/harobinson/SmartThings-VRCS4/issues/1#issuecomment-1542377778, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ABU5LZS2642V2TSJN2EQJWDXFOVJXANCNFSM6AAAAAAXPT5P4A. You are receiving this because you authored the thread.Message ID: @.**@.>>