[HOW-TO][Pro][Cloud] - Tool to FIX (advanced) flows after removing and re-adding devices

:rotating_light: :warning: Use at own risk! :warning: :rotating_light:

If you have a broken device which you want to replace or you have to fix flows for your device
I made a script which can help with this.

Instructions:

  1. Device ID you would like to update -
- Go to the Homey web app 
- Devices 
- Right click on the device to show context menu
- Hold down Alt / option key on keyboard 
- Select “Copy ID”.
  1. Write down the Device ID
  2. Remove the Device
  3. Re-add the Device
  4. Get the Device ID of the new paired device:
- Go to the Homey web app 
- Devices 
- Right click on the device to show context menu
- Hold down Alt / option key on keyboard 
- Select “Copy ID”.
  1. Run this script in the WebAPI playground: (multiple devices possible)

Contributions
If you appreciate what I do, contribute to future development by making a paypal contribution
or buy me a coffee on Ko-Fi or Bunq.me

image ko-fiimage


:laptop: Apps made by @martijnpoppen

See for more apps link below :backhand_index_pointing_down:t2: or just open the pull down.

Maestro, :pray::pray::pray:

Congrats with your new Home(y).

My P1 dongle did not respond anymore. In short, only option was to remove and re-add it. That’s a PITA when lots of flows are involved.
BUT, your brilliant script saved the day, Martijn.

I saved the dongle’s ID and removed it.
(To me, the device ID is easily / easier found by using the devices search function.)
After re-adding the dongle, I searched for its new ID and I updated old & new ID’s in your script, and ran it.

:white_check_mark::tada: it did the trick! 20 flows got fixed!

Note: The flows with broken variables did not fix themselves, so maybe here’s is a new challenge :grimacing: (Warning: it does not have to be fixed today, or tomorrow :upside_down_face::crazy_face:)

Oh, a suggestion to the topic subject:
[HOW-TO][Pro][Cloud] - Tool to FIX flows after removing and re-adding devices
And it’s not limited to zigbee devices btw.

All the best,
Peter

If this works with remove and re-ad the device this also can work with a compleet new device?
Like a broken Aqara temperature or doorsensor and you change it for the same type of device.
Use this script and you’re ready again.

@Mike1233 yes it does, as long as the devices are using the same flowcards

Hi Martijn,

Is it possible to run it with HomeyScript?
(Well, I tried but nothing changes hehe).
I just don’t understand why the web api playground and HS can’t run the same scripts :grimacing::nerd_face:

Depends on the access roles. Web API has more rights

Added advanced flows support :slight_smile:

This is great! Thanks a lot!

Hi Martijn,
If I want to fix multiple devices at once, is this the correct way to enter the ID’s?

const oldIds = ['e63c7964-2e67-4347-b2e0-d17a9e4df7e9',
'e63c7964-2e67-4347-b2e0-d17a9e4df7e8',
'e63c7964-2e67-4347-b2e0-d17a9e4df7e7'
];

@Peter_Kawa yes that’s correct.

Make sure that the first ID of the old array is the same device as the first ID of the new array :wink:

:call_me_hand:that makes perfectly sense, Martijn. Thanks.

Great Tool!! Thanks a lot !!

Really nice Martijn!
Saved me allot of time today!

Thanks,!!!

Did buy you a beer.
Removed and re-added 2 Shelly devices.
Great app.
Saves a lot of time.

Thanks a lot man!

@martijnpoppen
I have used this script a couple of times now and it works good.
But is it possible with a script to get a output of the devices and the ID?
So you can make a sort of backup of the devices.
Instead of a copy/paste of the device list.
When there is something wrong, remove the device directly without first find
out what ID it is.

Somethink like this:

Device Voordeur
ID llfuflulyf415125luyffl145

Achterdeur
ID 05005o86trygfuoylo68e

Schemerlamp
ID 05efh65ljhljh1654lj6jfdg

Thank you.
I hope i can ask it here.

@Mike1233 thanks!

I think @Peter_Kawa has posted such a script somewhere on the forum here…

@martijnpoppen
Thank you.
I wil have a look at the posts of @Peter_Kawa

Hi Mike,

Here’s a nice one (don’t know if I posted it), and it fits in this topic I think.
With this HomeyScript script you’ll have a nice device ID overview to save somewhere safe😉
(You can remove values you don’t need)
Note: a ` is not equal to ’

const devices = await Homey.devices.getDevices();
console.log(`\nDevices overview`);
// Loop over all devices
for (const device of Object.values(devices)) {  
    // Return some properties. Just remove what you don't need
    console.log(`\nName:\t\t ${device.name} \nID:\t\t ${device.id} \nZone:\t\t ${device.zoneName} \nApp:\t\t ${device.driverUri} \nDriverID:\t ${device.driverId} \nCapabilities:\t ${device.capabilities} \nClass:\t\t ${device.class} \nVirtualClass\t (what's plugged in): ${device.virtualClass}`);
};
return(true);

Output example of 1 device

.
Oh, and, 'VirtualClass is used with smart sockets.
With such devices you can pick class ‘Light’ f.i., so the socket responds to “Turn off all lights” commands