Refresh edge driver?


I’m new to edge driver development so this might be a stupid question…

I created a simple driver for my device and uploaded it successfully to the hub.
I see that the device is using my driver in the mobile app.

I then made some changes to the driver profile (originally it had 3 section, and now just 2), but I can’t figure out how to make my device use the latest version of the driver.

I tried:
smartthings edge:drivers:package
smartthings edge:drivers:install
smartthings edge:drivers:switch -d
smartthings edge:channels:assign

But nothing helps. I keep seeing the old profile (3 sections).

BTW, when I call: smartthings edge:drivers:installed
I get an error: “TypeError: Cannot read properties of undefined (reading ‘flags’)”.
Is this expected?

Hi @JoeJoe

After packaging you need to publish in your channel and then install and that’s it

smartthings edge:drivers:package
smartthings edge:drivers:publish
smartthings edge:drivers:install

@Mariano_Colmenarejo is right about how to update the driver.

After you execute the install command (in the logcat), you’ll see an infoChanged event, then, the driver will be restarted and the logs will show that the init lifecycle is received. After this, you should be able to see the changed functionality

Yes, this issue is already reported, it only happens in v14, so, if you want to check the results in the CLI, please, go back to the v12.
Otherwise, you can see the list of installed drivers in the app:
(also channels where it is enrolled)

  1. Check which drivers are installed in your hub and share a screen capture.
    To do so, follow these steps:
    a. In the ST app, go to the Hub and enter its details
    b. Click on the menu (three-dot symbol in the upper-right corner)
    c. Select “driver”.
    You’ll see the list of installed drivers and the channels in which your Hub is enrolled.

Thank you all for the quick response.
Indeed, after package, publish and install, I see the updated version in the mobile app.

However, the profile presentation still shows 3 sections.
My current profile is:
name: mimo2plus

  • id: main
    • id: doorControl
      version: 1
    • name: GarageDoor
  • id: door1
    • id: doorControl
      version: 1
    • name: GarageDoor

But in the mobile app I see “main”, “door1” and “door2”.
“door2” was there when I first published the driver.
Is there a way to force it to use my latest profile?

You need close app and clear app cache if your use android.
Reopen app and new profile Will be shown

1 Like

I’m on iPhone. Is there a way to clear the cache there?

Close app and reopen It, i think

ooh, no, to clear the cache on iOS, you need to reinstall the app.
I suggest you delete the device and reinstall it instead.
If that still doesn’t work, try deleting the driver’s package completely, then change it’s packageKey and name in the config.yml file and reinstall both driver and device.
This is mostly necessary for changes in the device presentation (UI) which can include, add/remove capabilities, change the metadata in the profile, preferences, etc.

Noob ZWave question. Is it possible to delete (and reinstall) the device, without removing it (and rediscovering) from the ZWave network?
The device is located in the garage, so not easy to unpair/pair it every time… (especially if I’m not at home)

BTW, uninstalling the mobile app, and reinstalling it, will I lose something, or is everything recovered when I sign in?

1 Like

Create a new version of the driver you’re working on by changing packageKey (and name to make it easier to find, but not technically necessary) in the config.yml. Package, install, and swap your device to the new driver. The device will (hopefully) reflect the new profile.

Also, save yourself trouble in packaging by using smartthings edge:drivers:package -I, which will also run through the assign and install steps.


Thank you everyone for all the answers and tips!
After switching back and forth between drivers several times, I was able to see a change in the UI.

Thanks again!