# \[APP\]\[Pro\] Dashboard Studio - A completely free-form dashboard designer

**URL:** <https://community.homey.app/t/app-pro-dashboard-studio-a-completely-free-form-dashboard-designer/151169>\
**Category:** Apps\
**Tags:** dashboard, homey-pro\
**Created:** [February 15, 2026, 7:45pm UTC](https://community.homey.app/t/app-pro-dashboard-studio-a-completely-free-form-dashboard-designer/151169 "2026-02-15T19:45:30Z")\
**Posts on this page:** 20\
**Page:** 10

<div class="post-metadata">

**Author:** ![Satoer](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/satoer/32/38113_2.png) [@Satoer](https://community.homey.app/u/Satoer)\
**Post date:** [March 3, 2026, 10:39pm UTC](https://community.homey.app/t/app-pro-dashboard-studio-a-completely-free-form-dashboard-designer/151169/184 "2026-03-03T22:39:16Z")

</div>

> [@Vierlijner](#):
>
> Is there also a possability to build in a versioning on the dashboad file/ canvas.
> 
> I think I’ve saved a dashboard over another dashboard, and now I can’t go back and I’ve to do it all over. I didn’t make any export

Oh shit. 😟

I don’t have plans for a full versioning system, it feels like overkill. But let this be a lesson to everyone: export and backup your dashboards. 😅  
If you delete the app, your files go with it. If a bug wipes them out, I’d feel terrible knowing you lost all your work because of a fuck-up on my end

> [@Vierlijner](#):
>
> If I search for solar in the icons I can’t find any, but if I change the icon text to ph-solar-panel it will work.

Yes, the icon explorer only searches through their actual filenames. Not related tags. If you want a better search to find the icon, you can use:

> **[Phosphor Icons](https://phosphoricons.com/)**
>
> A flexible icon family for interfaces, diagrams, presentations — whatever, really.

> [@fmb](#):
>
> Using a boolean property of a device created by “Device Capabilities” doesn’t work

I shall investigate this. 👍

---

<div class="post-metadata">

**Author:** ![Satoer](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/satoer/32/38113_2.png) [@Satoer](https://community.homey.app/u/Satoer)\
**Post date:** [March 3, 2026, 10:53pm UTC](https://community.homey.app/t/app-pro-dashboard-studio-a-completely-free-form-dashboard-designer/151169/185 "2026-03-03T22:53:25Z")

</div>

> [@Amersfoort](#):
>
> where can I find the labels for x-axis (centered text horizontal) and y-axis (centered text vertical)? Or do you advise a label/text widget (rotation option needed)

There’s no specific setting for that. Just use a graph with no background, put it in an empty container, and add a label as a separate layer. That’s kind of the philosophy behind Dashboard Studio, it’s more like a drawing program where you can layer everything exactly how you want. Rotating labels is a good idea, though. I’ll add it to the list.

> [@Amersfoort](#):
>
> for my usage the new option ‘Convert UTC to local timezone’ shows disabled my local time (CET) and enabled +1 hour.

I’m not 100% sure what you mean here. Is the time not fixed in your graphs? Normally, data is in UTC and the graph has to correct it to the local time zone. But for the Homey export insight card, I already converted that data to the local zone. I did this so I could create “today” graphs even if future events haven’t happened yet (For this I needed to convert it to local timezone to calculate the right timeframe for this). For any non-Homey graph data with utc time, I’ve added a timezone converter directly in the graph.

---

<div class="post-metadata">

**Author:** ![Benny\_Holmestrand](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/benny_holmestrand/32/79500_2.png) [@Benny\_Holmestrand](https://community.homey.app/u/Benny_Holmestrand)\
**Post date:** [March 4, 2026, 7:39am UTC](https://community.homey.app/t/app-pro-dashboard-studio-a-completely-free-form-dashboard-designer/151169/186 "2026-03-04T07:39:26Z")

</div>

I have been waiting for this type of product for a long time, and after exploring it for a few days, I am very impressed. It seems very stable and virtually bug-free so far, although I still have a lot left to test.

I have a question regarding the “Arrows” feature.

I am visualizing the energy flow in my home, and since I have both batteries and solar panels, I have several bidirectional flows. To make the animated flow change direction, I currently switch the Start and End values via Homey. Functionally this works fine, but there is a significant downside.

Because my energy setup is quite complex with many arrows, I need to keep track of all these Start and End configurations in Homey. If you also have a dynamic layout where components are moved or optimized over time, updating all those Start and End values becomes a considerable amount of work.

Is there a simpler way to solve this? Ideally, I would like a flag such as “Forward” / “Backward” that I can control via Homey without having to swap Start and End.

---

<div class="post-metadata">

**Author:** ![Satoer](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/satoer/32/38113_2.png) [@Satoer](https://community.homey.app/u/Satoer)\
**Post date:** [March 4, 2026, 9:15am UTC](https://community.homey.app/t/app-pro-dashboard-studio-a-completely-free-form-dashboard-designer/151169/187 "2026-03-04T09:15:06Z")

</div>

Well, not entirely bug free if you have read the full topic though 😅 , but most of it where just little widget quirks. But the base software has been rock solid. There are over 200 installations and still 0 crashes 🥳

I have also several bi-directional flow animations:

 ![afbeelding](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/6/6/661e2236d3e1d6a4d5ccf31d0c94f78950ef1b9e.png)

The way I do it is to layer two on each other and hide and show them dynamically with the visibility setting (“Widget info” section):

 ![afbeelding](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/f/b/fbb606bdef1a2784bcac8738503568250365fe2a.png)

This way I can also change remove the flow entirely when there is no flow (like no sunshine) I can also pre-set the color of the flow (good = green, bad = red). Of course you can also change the color dynamic if you want… there are so many ways to achieve something.

But I like the reverse flow direction option idea. Ill add it to the list. 👍

---

<div class="post-metadata">

**Author:** ![Amersfoort](https://avatars.discourse-cdn.com/v4/letter/a/94ad74/32.png) [@Amersfoort](https://community.homey.app/u/Amersfoort)\
**Post date:** [March 4, 2026, 9:34am UTC](https://community.homey.app/t/app-pro-dashboard-studio-a-completely-free-form-dashboard-designer/151169/188 "2026-03-04T09:34:33Z")

</div>

> [@Satoer](#):
>
> Took me way too much time figuring this out but…

This chart looks great! Thanks for all your work and time (donation made).

 ![image](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/f/3/f3a086a1010d00d293677b90f3e226d946a80f7a.jpeg)

> [@Satoer](#):
>
> I’m not 100% sure what you mean here. Is the time not fixed in your graphs?

The time in the graph with a Homey Insight as source now works properly.

> [@Satoer](#):
>
> But for the Homey export insight card, I already converted that data to the local zone.

This confused me: the Insight is already converted to local time, without using the ‘Convert UTC to local timezone’.

EDIT  
Minor remark: a Group/Container has a type “empty” in Selected widget dropdown.

 ![image](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/d/0/d0ac48c18632d80c1188e679953a7fd10e856d98.png)

---

<div class="post-metadata">

**Author:** ![Satoer](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/satoer/32/38113_2.png) [@Satoer](https://community.homey.app/u/Satoer)\
**Post date:** [March 4, 2026, 11:00am UTC](https://community.homey.app/t/app-pro-dashboard-studio-a-completely-free-form-dashboard-designer/151169/189 "2026-03-04T11:00:39Z")

</div>

> [@Amersfoort](#):
>
> This chart looks great! Thanks for all your work and time (donation made).

Thanks! Appreciate it 🍻

> [@Amersfoort](#):
>
> This confused me: the Insight is already converted to local time, without using the ‘Convert UTC to local timezone’.

Raw Homey insight data is in UTC time. The DS Flow card converts this to the local time zone inside Homey and then sends it to the DS dashboard. So the Graph widget already receives local time data and does not have to convert it. (so that why it works when the UTC conversion is off). But if another source sends graph data in UTC format, the graph widget needs to convert it to local time. That’s why there is a convert option.

> [@Amersfoort](#):
>
> Minor remark: a Group/Container has a type “empty” in Selected widget dropdown.

Ah, yes. Real early versions I named this an empty, but forgot to rename it later on. This whole dropdown needs a bit of overhaul. It is a pain to find something. Usually I just click the widget I want to change, but with layered widgets it is hard to click the back one and then I have to scroll through this list.  
With large multi page dashboards there are so many items and makes it hard to find the right one.  
My idea:  
First sort every item per page, then sort by type of widget (I always know the type of widget I want to change, but I always forget to give the widget a proper name) And then sort by name?  
I am also thinking about color coding widgets. So each widget has his own color so it is easier to identify it in the list.  
But I am open for ideas. I’ll probably do what I think is best, but someone might influence that 🤣

---

<div class="post-metadata">

**Author:** ![Amersfoort](https://avatars.discourse-cdn.com/v4/letter/a/94ad74/32.png) [@Amersfoort](https://community.homey.app/u/Amersfoort)\
**Post date:** [March 4, 2026, 12:19pm UTC](https://community.homey.app/t/app-pro-dashboard-studio-a-completely-free-form-dashboard-designer/151169/190 "2026-03-04T12:19:51Z")

</div>

> [@Satoer](#):
>
> First sort every item per page, then sort by type of widget (I always know the type of widget I want to change, but I always forget to give the widget a proper name) And then sort by name?  
> I am also thinking about color coding widgets. So each widget has his own color so it is easier to identify it in the list.

As the number of options increases, improved searchability is important. In general, I would sort lists alphabetically whenever possible in the application.

I agree with your suggestion to sort “Selected widgets”: by page, by type, alphabetically.  
Although you can search by parts of names, further structuring data sources (for the same reason as widgets) and removing duplicates would also be desirable (duplicate: name AND path with name).

Because I plan to create a large number of pages (~30) in the dashboard, I’m defining each page as a separate dashboard. Could the transition between dashboards in the developer mode be made even simpler/more transparent?

Given the already considerable number of options, assigning colors to different types of components seems undesirable (“christmas tree” look). But… you are the graphic designer.

---

<div class="post-metadata">

**Author:** ![Satoer](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/satoer/32/38113_2.png) [@Satoer](https://community.homey.app/u/Satoer)\
**Post date:** [March 4, 2026, 7:59pm UTC](https://community.homey.app/t/app-pro-dashboard-studio-a-completely-free-form-dashboard-designer/151169/191 "2026-03-04T19:59:36Z")

</div>

> [@fmb](#):
>
> Using a boolean property of a device created by “Device Capabilities” doesn’t work

I can not seem to reproduce this problem. I have connected an [ONOFF] capability of a light and a smart plug to the visibility property of a image widget. And the image hides and show just as expected when the light or the smart plug is on or off.

---

<div class="post-metadata">

**Author:** ![fmb](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/fmb/32/27097_2.png) [@fmb](https://community.homey.app/u/fmb)\
**Post date:** [March 4, 2026, 8:31pm UTC](https://community.homey.app/t/app-pro-dashboard-studio-a-completely-free-form-dashboard-designer/151169/192 "2026-03-04T20:31:54Z")

</div>

Ok, thank you for trying. I have a device created with [Device Capabilities | Homey](https://homey.app/nl-nl/app/nl.qluster-it.DeviceCapabilities/Device-Capabilities/) to combine some values and states in one device. Maybe this app deals differently with it. I just don’t know.

But I am more than happy with using the flowcard to sendan event. This works perfect so I will use that!

---

<div class="post-metadata">

**Author:** ![Hans\_Gr](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/hans_gr/32/48091_2.png) [@Hans\_Gr](https://community.homey.app/u/Hans_Gr)\
**Post date:** [March 5, 2026, 12:41pm UTC](https://community.homey.app/t/app-pro-dashboard-studio-a-completely-free-form-dashboard-designer/151169/193 "2026-03-05T12:41:45Z")

</div>

It works, thx!

---

<div class="post-metadata">

**Author:** ![Satoer](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/satoer/32/38113_2.png) [@Satoer](https://community.homey.app/u/Satoer)\
**Post date:** [March 5, 2026, 12:55pm UTC](https://community.homey.app/t/app-pro-dashboard-studio-a-completely-free-form-dashboard-designer/151169/194 "2026-03-05T12:55:39Z")

</div>

[Version 1.2.2 is now available](https://homey.app/nl-nl/app/com.satoer.dashboardstudio/Dashboard-Studio/test/) with several functional updates.

Widget Management:

> [@Amersfoort](#):
>
> Minor remark: a Group/Container has a type “empty” in Selected widget dropdown.

 ![afbeelding](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/4/3/43dc05c63899825f8ca9fb87e4ecf9ab28eaacf8.png)

The widget dropdown menu is now sorted by page, widget type, and name to help you find items faster. Selecting a widget directly on the canvas remains the quickest method, but this sorted list helps when a widget is hidden behind another object.

Editor Improvements:

 ![afbeelding](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/c/2/c2c948e54e70a1dac3cd08a90d737cd94a365750.png)

The dynamic topic search dropdown now uses the full width of the editor. This makes it easier to read and identify long topic names.

Arrow Widget Updates:

> [@Benny\_Holmestrand](#):
>
> Is there a simpler way to solve this? Ideally, I would like a flag such as “Forward” / “Backward” that I can control via Homey without having to swap Start and End.

I have added a Reverse Flow Direction option and a Reverse Flow Color setting.

 ![afbeelding](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/a/f/af94a5055a207b0463beef6f92d458344aaf3ded.png)

The flow animation has also been updated to travel over the arrow head for a better visual effect.

Curved Arrows:

 ![afbeelding](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/5/4/549bc1c43dd4a4b8fc85764618ed996f55efa419.png)

You can now add points to an arrow and drag them on the canvas to create custom curves. Please note that curved arrows require a new animation method that is more demanding on hardware (The device that views the dashboard, not the Homey). If you use many animated curved lines, older devices like early iPads may experience a lower frame rate.

[![afbeelding](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/1/3/13cdc1a95401dd9d1f51230e00613529b9148d66.jpeg)](https://satoer.com/dashboardstudio/demo/?page=9)

_[(Click for animated preview)](https://satoer.com/dashboardstudio/demo/?page=9)_  
Performance Tips  
The high performance load only triggers when you add a curve point to an arrow and have flow animation enabled. To reduce the impact on older devices, you can set the Gradient Width to 0 to use a bit simpler rendering method (but not as simple as the straight lines).

I think I have addressed most user requests and with the latest security features I believe the app is ready for official release. I plan to submit it tonight unless a major bug is discovered before then.

Please note that the certification process typically takes about two weeks. I cannot release any new test versions during this period. There will be no further updates until the app is certified, unless the Homey team requests specific changes.

---

<div class="post-metadata">

**Author:** ![Vierlijner](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/vierlijner/32/81523_2.png) [@Vierlijner](https://community.homey.app/u/Vierlijner)\
**Post date:** [March 5, 2026, 2:26pm UTC](https://community.homey.app/t/app-pro-dashboard-studio-a-completely-free-form-dashboard-designer/151169/195 "2026-03-05T14:26:21Z")

</div>

> [@Satoer](#):
>
> Yes, the icon explorer only searches through their actual filenames. Not related tags.

It’s not a tag, it is the filename. PH-solar-panel. Same counts for washing machine.

---

<div class="post-metadata">

**Author:** ![Satoer](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/satoer/32/38113_2.png) [@Satoer](https://community.homey.app/u/Satoer)\
**Post date:** [March 5, 2026, 2:47pm UTC](https://community.homey.app/t/app-pro-dashboard-studio-a-completely-free-form-dashboard-designer/151169/196 "2026-03-05T14:47:58Z")

</div>

> [@Vierlijner](#):
>
> It’s not a tag, it is the filename. PH-solar-panel. Same counts for washing machine.

You are right. Just checked the database file I use to search through the library, and I it seems like I am using an outdated file. I shall fix this 👍

---

<div class="post-metadata">

**Author:** ![Benny\_Holmestrand](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/benny_holmestrand/32/79500_2.png) [@Benny\_Holmestrand](https://community.homey.app/u/Benny_Holmestrand)\
**Post date:** [March 5, 2026, 2:51pm UTC](https://community.homey.app/t/app-pro-dashboard-studio-a-completely-free-form-dashboard-designer/151169/197 "2026-03-05T14:51:16Z")

</div>

So good and so quick 😀 . I will have a look already tonight!

---

<div class="post-metadata">

**Author:** ![Vierlijner](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/vierlijner/32/81523_2.png) [@Vierlijner](https://community.homey.app/u/Vierlijner)\
**Post date:** [March 5, 2026, 3:05pm UTC](https://community.homey.app/t/app-pro-dashboard-studio-a-completely-free-form-dashboard-designer/151169/198 "2026-03-05T15:05:58Z")

</div>

> [@Satoer](#):
>
> Oh shit. 😟
> 
> I don’t have plans for a full versioning system, it feels like overkill. But let this be a lesson to everyone: export and backup your dashboards. 😅  
> If you delete the app, your files go with it. If a bug wipes them out, I’d feel terrible knowing you lost all your work because of a fuck-up on my end

That was also my point to put this comment here.

But my remark is: I work on dashboard A and then save it, there is no name selected, so I choose dashboard A. Then I load dashboard B. I change something and save it, What I expected is that it default take the filename from dashboard B, but instead it shows/ remembers the last saved name, so dashboard A. I’ll save and do the second press as well, so it’s still **my** fault!!

But is it for everyone oke if not the last saved file is selected, but the file which is loaded??

---

<div class="post-metadata">

**Author:** ![Satoer](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/satoer/32/38113_2.png) [@Satoer](https://community.homey.app/u/Satoer)\
**Post date:** [March 5, 2026, 3:26pm UTC](https://community.homey.app/t/app-pro-dashboard-studio-a-completely-free-form-dashboard-designer/151169/199 "2026-03-05T15:26:20Z")

</div>

@Vierlijner Ah, thanks for the deeper explanation. This is indeed shitty behaviour. I’m going to update it so the save file defaults to the last one loaded or saved. I might look into a versioning system later, though that still feels like a bit much for now.

It is also not a true backup. If you delete the app, you lose all your data. So everyone please, make sure to export your dashboards also to your computer as well

---

<div class="post-metadata">

**Author:** ![Vierlijner](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/vierlijner/32/81523_2.png) [@Vierlijner](https://community.homey.app/u/Vierlijner)\
**Post date:** [March 5, 2026, 7:40pm UTC](https://community.homey.app/t/app-pro-dashboard-studio-a-completely-free-form-dashboard-designer/151169/200 "2026-03-05T19:40:42Z")

</div>

I had to reproduce it also, because I couldn’t explain why.

---

<div class="post-metadata">

**Author:** ![fmb](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/fmb/32/27097_2.png) [@fmb](https://community.homey.app/u/fmb)\
**Post date:** [March 5, 2026, 11:15pm UTC](https://community.homey.app/t/app-pro-dashboard-studio-a-completely-free-form-dashboard-designer/151169/201 "2026-03-05T23:15:13Z")

</div>

Wow, thanks for all the improvements!

I wider dropdown menu helps a lot. Finding widgets by the menu is also a nice feature and love the possibity to add curved lines!

Features that would help me:

1. Ability to rotate a widget, for example to rotate a horizontal slider into a vertical slider. Makes more sense for vertical moving devices like sunscreens and window blinds
2. A gauge that can be used for negative and positive values and has the option to adjust different colours for above an below 0. Example:

 ![17727523587613020345341658229666](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/0/1/0166af120376144999df95a31042983b072a5f44.png)

---

<div class="post-metadata">

**Author:** ![Satoer](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/satoer/32/38113_2.png) [@Satoer](https://community.homey.app/u/Satoer)\
**Post date:** [March 6, 2026, 12:23am UTC](https://community.homey.app/t/app-pro-dashboard-studio-a-completely-free-form-dashboard-designer/151169/202 "2026-03-06T00:23:13Z")

</div>

> [@fmb](#):
>
> Ability to rotate a widget, for example to rotate a horizontal slider into a vertical slider. Makes more sense for vertical moving devices like sunscreens and window blinds

You can configure a slider already as a vertical slider:

 ![afbeelding](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/9/b/9b9be0ff871721b275508c402d49f7cf00813cb2.jpeg)

Or did you mean something else?

> [@fmb](#):
>
> A gauge that can be used for negative and positive values and has the option to adjust different

Ill add it to the list 👍

---

<div class="post-metadata">

**Author:** ![zakraket](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/zakraket/32/17470_2.png) [@zakraket](https://community.homey.app/u/zakraket)\
**Post date:** [March 6, 2026, 7:31am UTC](https://community.homey.app/t/app-pro-dashboard-studio-a-completely-free-form-dashboard-designer/151169/203 "2026-03-06T07:31:03Z")

</div>

Thanks for all the updates! Have not had a chance to put a lot of time in my dashboard, but I see some graph issues are still there

- negative values in the graph;
  - the line gets the fill color instead of the line color
  - A full negative graph still displays the colors wrong (not shown here)

- the whole graph is not placed “centered”; a new graph with x/y axis enabled has the y-axis almost outside the container. Playing with various padding options makes it a bit better, but I think it still feels “off”
- I like the option of the gauge mentioned above; I also use it for powerusage/production, but when my house is producing max power, the current gauge shows no color

 ![image](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/d/3/d3c3b9d079dd5202e56ff138def9e2f3af18fda4.jpeg)

edit: the overall negative/positive graph works better now in this version; currently only negative values in my graph and the color is right

 ![image](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/0/3/03d78e5ca2ef872f1779eba6a7cfae42561c57de.png)

Only the line gets the color of the fill (as mentioned above)

[Previous page](https://community.homey.app/t/app-pro-dashboard-studio-a-completely-free-form-dashboard-designer/151169.md?page=9)

[Next page](https://community.homey.app/t/app-pro-dashboard-studio-a-completely-free-form-dashboard-designer/151169.md?page=11)
