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.
smartthings edge:drivers:switch -d
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?
After packaging you need to publish in your channel and then install and that’s it
@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)
- 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:
- id: main
- id: doorControl
- name: GarageDoor
- id: door1
- id: doorControl
- 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
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
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?
Create a new version of the driver you’re working on by changing
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.