Groovy IDE Migration questions

Currently migrations, in the sense of on the fly changes from DTH to Edge Driver without a requirement for any user action, are being trialled on a list of users who were registered to receive hub beta firmware. I believe this is a snapshot taken on a certain date and I am quite probably not on it myself because I temporarily had a mismatch between my registered hub and account e-mail. So as far as I am aware there isn’t any action you can take.

That is the only restriction. Switching devices to Edge drivers by removal and reinstallation is available to anyone. Edge drivers take priority over stock DTHs, but custom DTHs still trump them both. For certain devices considered to be in production an Edge driver will be automatically installed. For other drivers you must install the Edge driver manually.

1 Like

Normally the device doesn’t hunt for it. The hub decides based on the presence on that hub of an edge Driver with a matching fingerprint for the new device being added. This only occurs when a new device is being added to that hub.

If you are asking about the automatic migration without doing a device add, which is a special event during this time of transition, I agree that’s not entirely clear. People who are enrolled in the beta are having it happen for them as new production edge drivers are being added to their hubs. But I don’t think it’s any different for them than anybody else if it’s a custom edge driver. :thinking:

I was under the impression that some production edge drivers were being rolled out for everyone Little by little, with the automatic migration due to start happening September 30, but @Automated_House might know more about that.

This is the issue for me. I really don’t want to dive into a beta. I have, so far, had very clean hub (V2) firmware upgrade cycles.

Here’s my specific concern. I have a number of Zooz 500-series switches and dimmers, mostly ZEN26, and ZEN27 with one ZEN21. I have been going along thinking these were very vanilla devices and would automatically migrate to Edge when the time comes.

@JDRoberts did a long post on one of the very long threads here where he mentioned “devices no longer being manufactured” as possibly not getting automatic migration.

At the present moment, I have no custom DTHs on my hub. Everything is running on stock, “built-in” DTHs.

It would do wonders for my peace of mind if I could get one of each device type that I own to migrate to an Edge driver.

I am also unclear on what constitutes a device fingerprint for both Zwave and ZigBee devices. The term is used extensively and all I’ve seen is a vague pointer to multiple different fields visible in the IDE.

I have a Zooz Zen23 switch and it is paired with the stock Z-Wave switch edge driver for months. No issues to date.


It would be nice if the developers could provide a migration button in the app that would allow a one time move for each device from a DTH (stock or custom) to an Edge driver. Then we could migrate at our own schedule and with confidence, instead of waiting for batch conversions that may or may not work hovering over like a dark cloud. I know you can exclude/include devices to end up with the same result but that requires a lot more work.

If a device is still on a DTH, the “Driver” menu appears but you get a conversion button instead of the Edge driver detail… That would help explain DTH vs Edge to people as well instead of the Driver option just being missing.


An authoritative explantion of fingerprints is here.

The “fingerprint” is a combination of manufacturer code (“mfr”), product (“prod”), and “model.” Each is a 16-bit value expressed as 4 hexadecimal digits. For example, the fingerprint for the Zooz ZEN32 is “027A-7000-A008” - “mfr” 027A is Zooz, “prod” is 7000, “model” is A008.

The smartthings CLI reports the complete fingerprint as “deviceManufacturerCode”, and the “prod-model” portion (“7000-A008”) as “deviceModel.”

If an exact match for the fingerprint appears in an enrolled channel’s fingerprints.yml file, then SmartThings will install and assign the driver.


Thank you very much!!

Thanks but not beeing a software/IT person I am really struggling with this entire process. Does the “placeholder” designation as Device Type on all my wifi devices mean they have not yet been migrated over to the the new Edge drivers as well? I am fine with waiting until the ST migration plan automatically (?) switches all my devices (wifi, zigbee, zwave) over and I don’t have to go looking for the correct drivers myself. However is that the way it is planned to work if I don’t want to do anything now? I only have a couple custom (?) DH that I had to copy and then publish when I originally got my Zooz devices in order to get them to work with ST at the time. Will the new Zooz Edge drivers take care of this as well? Thanks so much.

“placeholder” means those devices have been migrated, or that there’s cloud-to-cloud integration already there. You should be fine, but to be sure, what wifi devices do you have?

That is the way it’s suppose to work, but since you have some custom handlers, you will need to get those Zooz drivers so that you can retain the same functionality that you had with the older device handlers, unless you want just the basic features. Here’s where you can find those drivers and get help with them:


In general, wifi devices communicate with ST thru a cloud integration (meross, tplink, etc). There are exceptions where an Edge driver is used for local control of a Wifi device but you’d know if you had set that up already.

Cloud integrations are not effected by the DTH->Edge transition.

Edit: @johnconstantelo types faster than me.


Thanks so much for the link to the Zooz Channel. I have downloaded the needed Edge drivers but they only appear in my ST hub when I click on the three-dots. They are not showing on the specific device. Is this correct or do I need to delete and re-install all my Zooz devices for them to show at the device level?

You have to delete the device from the App; remove any specific DTH from the SmartThings IDE and then re-add the device within the App. You’ll know if this all worked because you’ll the “Driver” option listed when click on the device’s edit settings page! To clarify:

In the App click on the particular device, click on the three dots at the top right of the App screen, this will show a pop-up menu that should contain a list: Cancel, Information, Driver, Settings and Edit. If you see Driver then you’re good to go! (this is on an iPhone), On Android I see Edit, Settings, Driver and Information.


Thanks so much for this information. However, if I deleted all my Zooz custom DH’s (required for them to work with ST), delete the devices from the app and re-add them (with the new Edge drivers) will they still work? In other words, are the Edge drivers now functional and already completed with the ST migration?

Yes, absolutely. Once you’re using an edge driver for a device, consider it migrated.


I found it was easiest to do them one at a time. You can just comment out the fingerprint in your custom DTH (prefix “//” to the fingerprint lines associated with your device, save and publish). The handler will still be used for existing devices, but new devices won’t see it as available anymore. So you can migrate each device one at a time.

Also, if you have WebCoRE integration then that device will no longer show up in WebCoRE. As a consequence of these changes WebCoRE will also be deprecated.

Thanks for the suggestion. However I have no idea how to do this. Can’t I just delete the entire custom DTH and then delete/reinstall my specific Zooz device?

For example here is the first part of the custom DTH for one of the devices. Where would the // be added to the fingerprint lines?

  • Zooz Remote Switch ZEN34 v1.1.1
  • Changelog:
  • 1.1.1 (02/07/2021)
  •  - Added patch workaround to presentation for supportedButtonValues support in Automations.
  • 1.1 (01/10/2021)
  •  - Added new fingerprint
  •  - Changed the way associations are implemented so that it assumes the associations were successfully saved when the device isn't joined with S2 security.
  • 1.0.3 (11/14/2020)
  •  - Fixed wake up interval
  • 1.0.2 (11/11/2020)
  •  - Fixed setting labels
  • 1.0.1 (11/07/2020)
  •  - Fixed issue with SmartThings converting string attributes into dates if they start or end with specific numbers like 34.
  • 1.0 (11/06/2020)
  •  - Initial Release
  • Copyright 2021 Zooz
  • Licensed under the Apache License, Version 2.0 (the “License”);
  • you may not use this file except in compliance with the License.
  • You may obtain a copy of the License at
  • Unless required by applicable law or agreed to in writing, software
  • distributed under the License is distributed on an “AS IS” BASIS,
  • WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  • See the License for the specific language governing permissions and
  • limitations under the License.


import groovy.transform.Field

@Field static Map commandClassVersions = [
0x20: 1, // Basic
0x26: 3, // Switch Multilevel (4)
0x55: 1, // Transport Service
0x59: 1, // AssociationGrpInfo
0x5A: 1, // DeviceResetLocally
0x5B: 1, // CentralScene (3)
0x5E: 2, // ZwaveplusInfo
0x6C: 1, // Supervision
0x70: 2, // Configuration
0x72: 2, // ManufacturerSpecific
0x73: 1, // Powerlevel
0x7A: 2, // Firmware Update Md (3)
0x80: 1, // Battery
0x84: 2, // WakeUp
0x85: 2, // Association
0x86: 1, // Version (2)
0x87: 1, // Indicator
0x8E: 2, // MultiChannelAssociation (3)
0x9F: 1 // Security 2

You can, but if you delete the custom DTH your existing devices that use it no longer work. I was trying to make it easier for you to migrate one at a time. If you only have 1 device OR you don’t mind doing them all at once, go for it.

  • Exclude all devices using the custom driver
  • Delete the custom DTH in the IDE
  • Make sure the new edge driver is installed
  • Include each device, after the first one make sure its using the driver you want it to (in the Driver tab under the hamburger/3 dot menu on the device).

Good luck!

I appreciate your suggestion and would prefer to edit the custom DTH but I don’t understand how to comment out the fingerprint? If I could do this I would do one at a time (5 devices using 3 custom DH).

Thanks so much.

  • In the IDE, go to the My Device Handlers tab
  • Find the device handler, and click the name to go into the editor.
  • Inside the editor, scroll down to the “fingerprint” section. Add two forward slashes (the comment seqence in Groovy) to the front of the line (or lines, depending on how many devices this DTH supports). The IDE should make the line red to indicate that its commented out. Click -Save-. Then click -Publish-, -For Me-. That will save and publish the driver to your cloud. Now your existing devices will continue to work but new devices will no longer find the DTH.

Good luck!