# \[APP\]\[Pro\]Flow Converter

**URL:** <https://community.homey.app/t/app-pro-flow-converter/154906>\
**Category:** Apps\
**Created:** [May 14, 2026, 8:26pm UTC](https://community.homey.app/t/app-pro-flow-converter/154906 "2026-05-14T20:26:26Z")\
**Posts on this page:** 18\
**Page:** 1

<div class="post-metadata">

**Author:** ![late4marshmellow](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/late4marshmellow/32/163476_2.png) [@late4marshmellow](https://community.homey.app/u/late4marshmellow)\
**Post date:** [May 14, 2026, 8:26pm UTC](https://community.homey.app/t/app-pro-flow-converter/154906/1 "2026-05-14T20:26:26Z")

</div>

Hi everyone,  
First.. A special thank to [Martijn Poppen](https://homey.app/en-no/apps/author/5e2daad2e3e0da0ca754b6a8/page/0/)!  
Then to repeat what he said in his [API Playground script](https://community.homey.app/t/how-to-pro-cloud-tool-to-fix-advanced-flows-after-removing-and-re-adding-devices/65018) that made this app possible.

🚨 ⚠ **Use at own risk!** ⚠ 🚨

I built Flow Converter to solve a common Homey headache: after replacing or re-pairing a device, Flows and Advanced Flows can still point to the old device ID and stop working. This app helps you remap old references to the new device safely, directly from the app settings page, so your automations are easier to recover without manual edits.

The app focuses on safe repair with preview before apply, supports broken references from deleted devices, and is made for Homey Pro users who want a quicker way to restore existing automations. If you test it, I would really appreciate feedback, edge cases, or sample scenarios that should be improved

As requested, i am putting up some donation details, thank you for any contribution!

[![image](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/b/d/bdd36aed61d45e259c6fb6f8b2bb0be37dca5a1d.png)](https://www.paypal.com/donate/?hosted_button_id=FGCQ8VUCRZRFG)

> **BTC (Bitcoin network)**
>
> 3KwL5DHBWUWmf9rLjo6hYR1WHMADMY2hum
> 
> ![image](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/d/0/d09ffcb25077a48f02c95b555c6fc8e5b40815d2.png)

> **EVM address (ETH / CRO / ERC20….)**
>
> 0x48Dac30DE0409380005d90233711c8cD42eF3aF6
> 
> ![image](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/f/8/f86c5cd09abe526f1c4c07caf0c393763d33acd5.png)

> **Paystring**
>
> [l4m$paystring.crypto.com](http://l4m$paystring.crypto.com)

---

<div class="post-metadata">

**Author:** ![late4marshmellow](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/late4marshmellow/32/163476_2.png) [@late4marshmellow](https://community.homey.app/u/late4marshmellow)\
**Post date:** [May 14, 2026, 8:26pm UTC](https://community.homey.app/t/app-pro-flow-converter/154906/2 "2026-05-14T20:26:40Z")

</div>

Just submitted the app heres the link to the test version:

> **[Flow Converter | Homey](https://homey.app/en-us/app/app.l4m.flowconverter/Flow-Converter/test/)**
>
> Fixes broken flow references after re-pairing or replacing Homey devices.

---

<div class="post-metadata">

**Author:** ![martijnpoppen](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/martijnpoppen/32/84849_2.png) [@martijnpoppen](https://community.homey.app/u/martijnpoppen)\
**Post date:** [May 14, 2026, 9:01pm UTC](https://community.homey.app/t/app-pro-flow-converter/154906/3 "2026-05-14T21:01:27Z")

</div>

Nice work @late4marshmellow !!

---

<div class="post-metadata">

**Author:** ![late4marshmellow](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/late4marshmellow/32/163476_2.png) [@late4marshmellow](https://community.homey.app/u/late4marshmellow)\
**Post date:** [May 14, 2026, 9:10pm UTC](https://community.homey.app/t/app-pro-flow-converter/154906/4 "2026-05-14T21:10:04Z")

</div>

thank you! 🙂  
You are still my hero though!

---

<div class="post-metadata">

**Author:** ![Sharkys](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/sharkys/32/54029_2.png) [@Sharkys](https://community.homey.app/u/Sharkys)\
**Post date:** [May 15, 2026, 3:09pm UTC](https://community.homey.app/t/app-pro-flow-converter/154906/5 "2026-05-15T15:09:29Z")

</div>

Nice job, well done @late4marshmellow , it even scans for Timers deleted/invalidated devices, really nice !

![broken](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/6/f/6f189c31e0a3f6f2b376bc8f0bb2ba2e8ab33edd.png) vs ![fixed](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/e/2/e226f20bb28e81c4d2fe6d1cbfcfff5f59b70bd0.png)

And even broken Insights trends

 ![broken](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/8/6/86ce70d5e69a571e4c4e96e2773a52c6a7ce0299.png) vs ![fixed](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/9/7/976a0b01c59000ca0c989fb9a87e88174a1d36c7.png)

 ![broken](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/e/a/ea54a7d1f75728597b56a804ddef4009b6659176.png)

---

<div class="post-metadata">

**Author:** ![Sharkys](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/sharkys/32/54029_2.png) [@Sharkys](https://community.homey.app/u/Sharkys)\
**Post date:** [May 15, 2026, 3:11pm UTC](https://community.homey.app/t/app-pro-flow-converter/154906/6 "2026-05-15T15:11:38Z")

</div>

Btw, support for replacing sensor between apps, within flows… have you been thinking on that ? Not sure if it’s possible/API supported thought.

Eg. replace Button from IKEA with Button from SONOFF.

---

<div class="post-metadata">

**Author:** ![late4marshmellow](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/late4marshmellow/32/163476_2.png) [@late4marshmellow](https://community.homey.app/u/late4marshmellow)\
**Post date:** [May 15, 2026, 6:09pm UTC](https://community.homey.app/t/app-pro-flow-converter/154906/7 "2026-05-15T18:09:46Z")

</div>

if i understand you correct, this can be achieved with the advanced targeting, capability targeting and both id in same flow turned on 🙂

 ![image](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/7/1/716fc3c9da8ca93644ed4de4d062c640829de694.png)

---

<div class="post-metadata">

**Author:** ![Sharkys](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/sharkys/32/54029_2.png) [@Sharkys](https://community.homey.app/u/Sharkys)\
**Post date:** [May 15, 2026, 6:20pm UTC](https://community.homey.app/t/app-pro-flow-converter/154906/8 "2026-05-15T18:20:40Z")

</div>

> [@late4marshmellow](#):
>
> capability targeting and both id in same flow turned on 🙂

Well, not really, or I might be not understanding usability of that option 😉  
Imagine a device will die…you will replace it by another device from another manufacturer, which might have similar capabilities or ideally is same class, but naturally device ID and applications are different. It’s not happening often but when it happens, you basically have to fix everything manually. It’s just idea…

---

<div class="post-metadata">

**Author:** ![late4marshmellow](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/late4marshmellow/32/163476_2.png) [@late4marshmellow](https://community.homey.app/u/late4marshmellow)\
**Post date:** [May 16, 2026, 6:22pm UTC](https://community.homey.app/t/app-pro-flow-converter/154906/9 "2026-05-16T18:22:44Z")

</div>

is this what you mean?  
when both devices is actually theres?  
the old device dont need to be dead.

I have a sample I am doing right now actually.  
I have two active devices, and I am going to move all flow references from PIR to Radar sensor.  
Because the PIR one lacking radar 🙂

 ![image](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/7/8/78d15c688d00203b98fbb299515ab54feff7be8e.png)  
Then I just run the old to new as usual.

![image](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/a/2/a2046d11e07e6d858844af6603afb99965e24136.png)

![image](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/8/7/87a4bc6b758514642cf23b86310c5a2ff543f94b.png)

This will also work if the old device is lets say Zigbee and the new is a Z-wave or wifi device  
as long as they have the same capability

But heres some usecases..  
**if those two devices already have flowcards and happens to be in the same flow.**  
You can activate the Allow both old and new ids in same flow.  
This allows all flowcards be converted to the new device.  
I added this safeguard since this can make a headache if they have different purposes or to avoid a mistake (i learned this the hard way).  
\*\*  
If the two devices is of different class\*\*  
Activate the allow class mismatch  
this is useful if one device is thermostat and other is sensor, but they have same capabilities.  
guard because i did once run a convert (learned from another mistake) on wrong device and i ended up with a lot of work do correct this mistake. since the “new device” didn’t have those capabilities.

Then there’s the Advanced targeting

Flows: Here you can do converts only in the defined flows you want  
the flows that shows here is the flows of the old device.

and the capability targeting should allow to select what capability that exist on old and new device so you can convert say only temperature cards.  
but with that said, it seems i discovered a bug 😅

Anyway all the switches works together to minimize the target a level a time if you want.  
so what your are supposed to be able to do and will be when i fix that bug. ..

and here is what i think you mean.  
lets say you have a dying thermostat device.  
now you got a sensor that is going to replace the temperature sensor capability only, and only in flow 1 of the 3 flows the thermostat lives in.

- set the thermostat id as old \> sensor ID as new
- activate allow class mismatch
- enable advanced targeting
- do a flow target and select flow 1
- do a capability target and select the temperature capability.

this way you will only change the cards with temperature in flow 1 from old thermostat device to new sensor device (different class, different manufacturer, maybe even different type (zigbee / wifi).

---

<div class="post-metadata">

**Author:** ![late4marshmellow](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/late4marshmellow/32/163476_2.png) [@late4marshmellow](https://community.homey.app/u/late4marshmellow)\
**Post date:** [May 16, 2026, 6:41pm UTC](https://community.homey.app/t/app-pro-flow-converter/154906/10 "2026-05-16T18:41:16Z")

</div>

and after sending my long explanation and some after thought realized that i think i get you now 🙂  
the button up for ikea and button up for SONOFF is not neccessary the same action?  
one can say button\_up\_pressed and the other say button\_1?  
so a device action mapping of sort?

good idea and i will look into that!

---

<div class="post-metadata">

**Author:** ![Sharkys](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/sharkys/32/54029_2.png) [@Sharkys](https://community.homey.app/u/Sharkys)\
**Post date:** [May 16, 2026, 8:25pm UTC](https://community.homey.app/t/app-pro-flow-converter/154906/11 "2026-05-16T20:25:44Z")

</div>

Well, seems that the majority of cases you have indeed covered, I would need to test that out, if that will happen once… class mismatch, it could be but also simply app (ownerUri) mismatch, or what you actually have described :

> [@late4marshmellow](#):
>
> button\_up\_pressed and the other say button\_1

…that could be also possible edge case, eg. capabilities remapping, I have experienced that case already as well.

But in general I originally really meant replacing one dead / missing device with another one from different app.

Device 1

```auto
 "driverId": "homey:app:com.xiaomi-miio:mi-temperature-humidity-sensor",
  "ownerUri": "homey:app:com.xiaomi-miio",
  "capabilities": [
    "measure_temperature",
    "measure_humidity",
    "measure_battery",
    "alarm_battery"

```

Device 2

```auto
  "driverId": "homey:app:com.xiaomi-mi:weather",
  "ownerUri": "homey:app:com.xiaomi-mi",
  "capabilities": [
    "measure_battery",
    "measure_temperature",
    "measure_pressure",
    "measure_humidity",
    "alarm_battery"

```

---

<div class="post-metadata">

**Author:** ![late4marshmellow](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/late4marshmellow/32/163476_2.png) [@late4marshmellow](https://community.homey.app/u/late4marshmellow)\
**Post date:** [May 16, 2026, 8:35pm UTC](https://community.homey.app/t/app-pro-flow-converter/154906/12 "2026-05-16T20:35:13Z")

</div>

Yeah that one should go through as is. 😉

The only mismatch is pressure if you go from device 2 to 1 . And if you would like to move that variable to a device 3 it can be achieved with capability target

---

<div class="post-metadata">

**Author:** ![Ralf\_Huelsmann](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/ralf_huelsmann/32/159889_2.png) [@Ralf\_Huelsmann](https://community.homey.app/u/Ralf_Huelsmann)\
**Post date:** [May 16, 2026, 9:49pm UTC](https://community.homey.app/t/app-pro-flow-converter/154906/13 "2026-05-16T21:49:09Z")

</div>

What a life saver!

You should put an paypal donation button up.

Cheers,  
Ralf

---

<div class="post-metadata">

**Author:** ![martijnpoppen](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/martijnpoppen/32/84849_2.png) [@martijnpoppen](https://community.homey.app/u/martijnpoppen)\
**Post date:** [May 16, 2026, 10:43pm UTC](https://community.homey.app/t/app-pro-flow-converter/154906/14 "2026-05-16T22:43:51Z")

</div>

@late4marshmellow i agree with @Ralf_Huelsmann  
Add some donation links in the top post !

---

<div class="post-metadata">

**Author:** ![late4marshmellow](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/late4marshmellow/32/163476_2.png) [@late4marshmellow](https://community.homey.app/u/late4marshmellow)\
**Post date:** [May 19, 2026, 3:45pm UTC](https://community.homey.app/t/app-pro-flow-converter/154906/15 "2026-05-19T15:45:54Z")

</div>

hey!  
the capability targeting is fixed and available as test

> **[Flow Converter | Homey](https://homey.app/en-no/app/app.l4m.flowconverter/Flow-Converter/test/)**
>
> Fixes broken flow references after re-pairing or replacing Homey devices.

, working on a mapping feat next 🙂

---

<div class="post-metadata">

**Author:** ![late4marshmellow](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/late4marshmellow/32/163476_2.png) [@late4marshmellow](https://community.homey.app/u/late4marshmellow)\
**Post date:** [May 25, 2026, 7:26pm UTC](https://community.homey.app/t/app-pro-flow-converter/154906/16 "2026-05-25T19:26:55Z")

</div>

Capability mapping is now added in test 1.2.0, if ever you need it 🙂

---

<div class="post-metadata">

**Author:** ![Sharkys](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/sharkys/32/54029_2.png) [@Sharkys](https://community.homey.app/u/Sharkys)\
**Post date:** [May 25, 2026, 7:39pm UTC](https://community.homey.app/t/app-pro-flow-converter/154906/17 "2026-05-25T19:39:04Z")

</div>

And now it’s truly Swiss knife. 😉👍  
Well done and then you @late4marshmellow !

---

<div class="post-metadata">

**Author:** ![late4marshmellow](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/late4marshmellow/32/163476_2.png) [@late4marshmellow](https://community.homey.app/u/late4marshmellow)\
**Post date:** [May 25, 2026, 7:40pm UTC](https://community.homey.app/t/app-pro-flow-converter/154906/18 "2026-05-25T19:40:03Z")

</div>

thank you 🙂
