# \[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:** 41

<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:** [April 27, 2026, 10:59pm UTC](https://community.homey.app/t/app-pro-dashboard-studio-a-completely-free-form-dashboard-designer/151169/808 "2026-04-27T22:59:48Z")

</div>

If you need some help to begin with your first Dashboard Studio, feel free to ask. Maybe I or others can help.

The first post in this topic is a good one to start with, and have a look at the demo version and documentation in the latest version of Dashboard Studio.

The first steps will not be very easy, but when you start to understand it better you will proceed quicker and also discover the huge amount of ways to personalize your dashboard. Enjoy setting it up!

---

<div class="post-metadata">

**Author:** ![Bert\_Onraedt](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/bert_onraedt/32/79096_2.png) [@Bert\_Onraedt](https://community.homey.app/u/Bert_Onraedt)\
**Post date:** [April 28, 2026, 5:39am UTC](https://community.homey.app/t/app-pro-dashboard-studio-a-completely-free-form-dashboard-designer/151169/809 "2026-04-28T05:39:55Z")

</div>

Small question:

The Horizontal line you get in the new text-widget (WOW, btw 😉 )when you type - - - , where does it inherit it’s color?

It’s a blue-like shadowed line, but no matter which blue color I change in the overal settings or in the text-widget settings: it stays the same…

---

<div class="post-metadata">

**Author:** ![Georges\_IEGER](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/georges_ieger/32/111781_2.png) [@Georges\_IEGER](https://community.homey.app/u/Georges_IEGER)\
**Post date:** [April 28, 2026, 7:47am UTC](https://community.homey.app/t/app-pro-dashboard-studio-a-completely-free-form-dashboard-designer/151169/810 "2026-04-28T07:47:52Z")

</div>

Separate the command from the status feedback

Donation made in recognition of your outstanding work ! 🙂

I hope I’m posting this in the right place…

I’d like to decouple the command (Homey virtual device) from the status feedback (Homey read-only Boolean variable).

I’d like the ON icon to be in a contrasting color (e.g., dark orange) if the variable is TRUE, and in the inverse color (light orange) if the variable is FALSE.

What’s the easiest way to do this? Sorry if this has already been discussed, but I couldn’t find anything specific.

---

<div class="post-metadata">

**Author:** ![Olivier67](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/olivier67/32/118108_2.png) [@Olivier67](https://community.homey.app/u/Olivier67)\
**Post date:** [April 28, 2026, 8:40am UTC](https://community.homey.app/t/app-pro-dashboard-studio-a-completely-free-form-dashboard-designer/151169/811 "2026-04-28T08:40:49Z")

</div>

Hello

I don’t see any widget that allows you to dynamically control a set of devices. Light style, shutters, fans… did I miss something

---

<div class="post-metadata">

**Author:** ![Georges\_IEGER](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/georges_ieger/32/111781_2.png) [@Georges\_IEGER](https://community.homey.app/u/Georges_IEGER)\
**Post date:** [April 28, 2026, 8:44am UTC](https://community.homey.app/t/app-pro-dashboard-studio-a-completely-free-form-dashboard-designer/151169/812 "2026-04-28T08:44:58Z")

</div>

Sorry, I was trying to figure out something complicated last night when all I had to do was manage the STATE by linking it to my homey variable 🙂

(and handle the icon selection too) 🙂

---

<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:** [April 28, 2026, 9:55am UTC](https://community.homey.app/t/app-pro-dashboard-studio-a-completely-free-form-dashboard-designer/151169/813 "2026-04-28T09:55:27Z")

</div>

> [@Satoer](#):
>
> Added a Custom Column Width mode, the editor detects the number of table columns from Text Content and shows per-column width controls

![image](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/e/0/e0c44ace6e9d1ef0990cc28c36fcf88e5ae21c23.png)  
Nice solution. I do get the impression that the column widths aren’t exactly pixels, but rather ratios between the columns.

What is the meaning of the Vertical spacing and Vertical alignment setting in the Text widget? Without an image in the table, there is no effect visible.

This is my result (I didn’t use an image in the table, because otherwise they would become too small)

 ![image](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/0/8/08f109ed450bab2008e0d5cbfa5f1b2dd54c6e11.jpeg)  
Could the (Source/Bron) link open a new form? Now it opens in the same form as the DS app. When one returns from the linked URL back to the DS app, it opens the default DS page and not the page from which you started the link. Using Fully kiosk browser on Android tablet.

> [@Satoer](#):
>
> In my testing it is even more performant than pre 1.8.0 versions.

Great performance again!

I have noticed something unusual (I don’t know if this is related to this version, or earlier ):  
I have an image with a transparent button on top of it with the same dimensions and a higher Z-value. When I press that button, a flow causes dimensions to change via variables. The image and the button use the same dimension variables. However, the button is now one click behind (and therefore has the previous dimensions).

If I then switch back to developer mode, the button does display the correct dimensions that are equal to the image (I have temporarily given the button a semi-transparent color). App restart did not solve this.

EDIT: the same for a toggle button/switch setting a local variable to hide/show other objects; these objects don’t become visible anymore.

---

<div class="post-metadata">

**Author:** ![Johan\_Huisman](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/johan_huisman/32/56438_2.png) [@Johan\_Huisman](https://community.homey.app/u/Johan_Huisman)\
**Post date:** [April 28, 2026, 10:40am UTC](https://community.homey.app/t/app-pro-dashboard-studio-a-completely-free-form-dashboard-designer/151169/814 "2026-04-28T10:40:44Z")

</div>

Hi Satoer, I am doing some testing with the Markdown option. Now I want to create a weather forecast with 4 columns next to each other. I let a Homey script fetch the data and write it in Markdown format to a Homey variable. I actually want to use the moving icons from Bas Milius. With the example below, they also appear, but they are displayed too large. Can I adjust the size of the icons in another way?

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

---

<div class="post-metadata">

**Author:** ![Georges\_IEGER](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/georges_ieger/32/111781_2.png) [@Georges\_IEGER](https://community.homey.app/u/Georges_IEGER)\
**Post date:** [April 28, 2026, 11:47am UTC](https://community.homey.app/t/app-pro-dashboard-studio-a-completely-free-form-dashboard-designer/151169/815 "2026-04-28T11:47:49Z")

</div>

Sorry @Satoer  
I’m revisiting my post because I’ve noticed that the update for my button icon isn’t working reliably.

Even if I create a variable (ambiance.salon.status), send it to Dash via a flow, and assign it to STATE (ON/OFF), my button doesn’t reflect the variable’s actual state. Do you know why?

Thanks for your help…

---

<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:** [April 28, 2026, 12:00pm UTC](https://community.homey.app/t/app-pro-dashboard-studio-a-completely-free-form-dashboard-designer/151169/816 "2026-04-28T12:00:59Z")

</div>

Something like this? I can use it myself.

 ![image](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/0/8/081f8133548805df356e626ef3fca9e8a2f8c042.jpeg)  
My hints:

- define an extra dummy column at the end (not necessary)
- use this column setting (5th is dummy):  
 ![image](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/4/6/4670e60d751fdcce2c919668bc38fd0590efa625.png)
- use columns style “Column zebra”
- make your text object narrower (in my example 400 px)

---

<div class="post-metadata">

**Author:** ![Johan\_Huisman](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/johan_huisman/32/56438_2.png) [@Johan\_Huisman](https://community.homey.app/u/Johan_Huisman)\
**Post date:** [April 28, 2026, 12:34pm UTC](https://community.homey.app/t/app-pro-dashboard-studio-a-completely-free-form-dashboard-designer/151169/817 "2026-04-28T12:34:33Z")

</div>

@Amersfoort ,  
Thank you for your help, that’s exactly what I meant!

---

<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:** [April 28, 2026, 12:43pm UTC](https://community.homey.app/t/app-pro-dashboard-studio-a-completely-free-form-dashboard-designer/151169/818 "2026-04-28T12:43:42Z")

</div>

> [@Georges\_IEGER](#):
>
> Donation made in recognition of your outstanding work ! 🙂

Thanks ☺ 🍻  
Appreciate it!

> [@Georges\_IEGER](#):
>
> Even if I create a variable (ambiance.salon.status), send it to Dash via a flow, and assign it to STATE (ON/OFF), my button doesn’t reflect the variable’s actual state. Do you know why?

I am trying to figure out what exactly you are trying to do. First let me get some semantics right:  
A variable is a small piece of memory where you write boolean (true / false), numbers or strings to.  
A Topic is the way Dashboard studio communicates with homey. A topic has a name and a value. You can send values over topics with the Send Card:

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

But you can also send capabilities from devices directly in the configuration:

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

You can also send Homey Variables directly from the same location.

> [@Georges\_IEGER](#):
>
> Even if I create a variable (ambiance.salon.status)

How do you create this variable? And what does this “status” contain? Is this a boolean value (true / false) Can you send some screenshots what you are trying to do? (Shift + Win + S if you are on windows)

---

<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:** [April 28, 2026, 12:46pm UTC](https://community.homey.app/t/app-pro-dashboard-studio-a-completely-free-form-dashboard-designer/151169/819 "2026-04-28T12:46:20Z")

</div>

This code has the same result, but shorter:

```auto
| **Din** | **Woe** | **Don** | **Vri** |
| :---: | :---: | :---: | :---: |
| ![icon](https://raw.githubusercontent.com/basmilius/weather-icons/dev/production/fill/svg/overcast.svg) **18°C** <br>12°C<br> 💧 0%<br>💨 25 km/u | ![icon](https://raw.githubusercontent.com/basmilius/weather-icons/dev/production/fill/svg/clear-day.svg) **16°C** <br>6°C<br> 💧 0%<br>💨 24 km/u | ![icon](https://raw.githubusercontent.com/basmilius/weather-icons/dev/production/fill/svg/clear-day.svg) **18°C** <br>6°C<br> 💧 0%<br>💨 22 km/u | ![icon](https://raw.githubusercontent.com/basmilius/weather-icons/dev/production/fill/svg/clear-day.svg) **22°C** <br>7°C<br> 💧 0%<br>💨 16 km/u |

```

 ![image](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/7/9/79c0805b5ec635106e22e120fea860cbf3c0d5d9.jpeg)

Please share other ideas.

---

<div class="post-metadata">

**Author:** ![Johan\_Huisman](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/johan_huisman/32/56438_2.png) [@Johan\_Huisman](https://community.homey.app/u/Johan_Huisman)\
**Post date:** [April 28, 2026, 1:07pm UTC](https://community.homey.app/t/app-pro-dashboard-studio-a-completely-free-form-dashboard-designer/151169/820 "2026-04-28T13:07:10Z")

</div>

I have adjusted my Homey script and now it works like a charm ☀. I will share my ideas with you 😉

---

<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:** [April 28, 2026, 1:35pm UTC](https://community.homey.app/t/app-pro-dashboard-studio-a-completely-free-form-dashboard-designer/151169/821 "2026-04-28T13:35:45Z")

</div>

> [@Olivier67](#):
>
> I don’t see any widget that allows you to dynamically control a set of devices. Light style, shutters, fans… did I miss something

> [@Olivier67](#):
>
> ike this 🙂
> 
> ![Capture d’écran 2026-04-27 à 12.37.04](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/1/6/16c27f222148bc79507b47ea1fbb725a0a507761.jpeg)

Okay, I think you misunderstood the philosophy of Dashboard studio. There are no device specific widgets. Dashboard studio consist out of building blocks so you can easily build your dashboard yourself exactly how you would like it. For example I just build your above example in like 10 minutes by combining a container widget, an icon widget and the new text widget. I created one, grouped it, duplicated it 6 times and changed them:

 ![afbeelding](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/8/0/80e394f304263fa47863dbda4cb624bc86cb6a6d.jpeg)

If you style them using the main default settings, all of the cards style identically.  
In this example I only made the Climate card dynamic, and put a couple of sliders below it to adjust them. These are connected with local topics, but you can control the values just as easy from Homey.

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

You can import the following snippet (make sure you are on the latest 1.8.1 test build) to play with it yourself:

 ![afbeelding](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/e/d/ed9ede7808bbf7e8c710e9c604acee91184f8646.png)

```auto
{
  "snippetHeader": "Dashboard Studio Snippet",
  "snippetType": "widget-snippet",
  "snippetFormatVersion": 1,
  "version": "1.8.1",
  "source": {
    "dashboardName": "Demo-cards",
    "page": 1,
    "createdAt": "2026-04-28T13:34:51.757Z"
  },
  "master": {
    "currentPage": 1
  },
  "widgets": {
    "slider_0326": {
      "type": "slider",
      "overrides": {
        "x": 100,
        "y": 510,
        "width": 270,
        "height": 80,
        "page": 1,
        "value": 23.8,
        "min": -20,
        "max": 40,
        "allowDecimals": true,
        "sendValueMode": "movement",
        "outputTopic": "local/temperature",
        "label": "Régler la température",
        "metaName": "New Slider",
        "bgVisible": true
      },
      "bindings": {}
    },
    "slider_4240603": {
      "type": "slider",
      "overrides": {
        "x": 380,
        "y": 510,
        "width": 270,
        "height": 80,
        "page": 1,
        "value": 30,
        "allowDecimals": false,
        "sendValueMode": "movement",
        "outputTopic": "local/humidity",
        "label": "Régler l'humidité",
        "metaName": "New Slider (Copy)",
        "bgVisible": true
      },
      "bindings": {}
    }
  },
  "groups": {
    "group_moin52e5_546": {
      "id": "group_moin52e5_546",
      "name": "Card",
      "locked": false,
      "visible": true,
      "bindings": {},
      "overridePage": "",
      "dimBackgroundWhenVisible": false,
      "widgets": {
        "empty_6100": {
          "type": "empty",
          "overrides": {
            "x": 100,
            "y": 180,
            "width": 270,
            "height": 70,
            "page": 1,
            "label": "",
            "metaName": "New Container"
          },
          "bindings": {}
        },
        "text_8865": {
          "type": "text",
          "overrides": {
            "x": 150,
            "y": 180,
            "width": 180,
            "height": 70,
            "page": 1,
            "text": "# Lumieres\nTout eteint",
            "typography": {
              "mdParagraph": {
                "fontSize": 17
              },
              "mdH1": {
                "fontSize": 20
              },
              "mdH2": {},
              "mdH3": {},
              "mdTh": {},
              "mdTableText": {}
            },
            "metaName": "New Text",
            "cornerRadius": 0,
            "mdBlockSpacing": -5,
            "bgVisible": false
          },
          "bindings": {}
        },
        "icon_4342": {
          "type": "icon",
          "overrides": {
            "x": 110,
            "y": 180,
            "width": 50,
            "height": 70,
            "page": 1,
            "icon": "ph-lightbulb",
            "metaName": "New Icon",
            "size": 35,
            "colInactive": "@textMuted",
            "colActive": "@warning",
            "bgVisible": false
          },
          "bindings": {}
        }
      }
    },
    "group_moin58jz_ma": {
      "id": "group_moin58jz_ma",
      "name": "Card (Copy)",
      "locked": false,
      "visible": true,
      "bindings": {},
      "overridePage": "",
      "dimBackgroundWhenVisible": false,
      "widgets": {
        "empty_2871800": {
          "type": "empty",
          "overrides": {
            "x": 100,
            "y": 260,
            "width": 270,
            "height": 70,
            "page": 1,
            "label": "",
            "metaName": "New Container (Copy)"
          },
          "bindings": {}
        },
        "text_2873996": {
          "type": "text",
          "overrides": {
            "x": 150,
            "y": 260,
            "width": 200,
            "height": 70,
            "page": 1,
            "text": "# Haut-parleurs\nTout en pause",
            "typography": {
              "mdParagraph": {
                "fontSize": 17
              },
              "mdH1": {
                "fontSize": 20
              },
              "mdH2": {},
              "mdH3": {},
              "mdTh": {},
              "mdTableText": {}
            },
            "metaName": "New Text (Copy)",
            "cornerRadius": 0,
            "mdBlockSpacing": -5,
            "bgVisible": false
          },
          "bindings": {}
        },
        "icon_2877354": {
          "type": "icon",
          "overrides": {
            "x": 110,
            "y": 260,
            "width": 50,
            "height": 70,
            "page": 1,
            "icon": "ph-music-note-simple",
            "metaName": "New Icon (Copy)",
            "size": 35,
            "colInactive": "@textMuted",
            "colActive": "@warning",
            "bgVisible": false
          },
          "bindings": {}
        }
      }
    },
    "group_moin5amv_559": {
      "id": "group_moin5amv_559",
      "name": "Card (Copy) (Copy)",
      "locked": false,
      "visible": true,
      "bindings": {},
      "overridePage": "",
      "dimBackgroundWhenVisible": false,
      "widgets": {
        "empty_5570172": {
          "type": "empty",
          "overrides": {
            "x": 100,
            "y": 340,
            "width": 270,
            "height": 70,
            "page": 1,
            "label": "",
            "metaName": "New Container (Copy) (Copy)"
          },
          "bindings": {}
        },
        "text_557168": {
          "type": "text",
          "overrides": {
            "x": 150,
            "y": 340,
            "width": 180,
            "height": 70,
            "page": 1,
            "text": "# Climate\n{{local/temperature}}° | {{local/humidity}}%",
            "typography": {
              "mdParagraph": {
                "fontSize": 17
              },
              "mdH1": {
                "fontSize": 20
              },
              "mdH2": {},
              "mdH3": {},
              "mdTh": {},
              "mdTableText": {}
            },
            "metaName": "New Text (Copy) (Copy)",
            "cornerRadius": 0,
            "mdBlockSpacing": -5,
            "bgVisible": false
          },
          "bindings": {}
        },
        "icon_5574151": {
          "type": "icon",
          "overrides": {
            "x": 110,
            "y": 340,
            "width": 50,
            "height": 70,
            "page": 1,
            "icon": "ph-thermometer-simple",
            "active": true,
            "metaName": "New Icon (Copy) (Copy)",
            "size": 35,
            "colInactive": "@textMuted",
            "colActive": "@warning",
            "bgVisible": false
          },
          "bindings": {}
        }
      }
    },
    "group_moin5csj_5ue": {
      "id": "group_moin5csj_5ue",
      "name": "Card (Copy) (Copy) (Copy)",
      "locked": false,
      "visible": true,
      "bindings": {},
      "overridePage": "",
      "dimBackgroundWhenVisible": false,
      "widgets": {
        "empty_8366536": {
          "type": "empty",
          "overrides": {
            "x": 380,
            "y": 180,
            "width": 270,
            "height": 70,
            "page": 1,
            "label": "",
            "metaName": "New Container (Copy) (Copy) (Copy)"
          },
          "bindings": {}
        },
        "text_8368796": {
          "type": "text",
          "overrides": {
            "x": 430,
            "y": 180,
            "width": 180,
            "height": 70,
            "page": 1,
            "text": "# Active\nActif",
            "typography": {
              "mdParagraph": {
                "fontSize": 17
              },
              "mdH1": {
                "fontSize": 20
              },
              "mdH2": {},
              "mdH3": {},
              "mdTh": {},
              "mdTableText": {}
            },
            "metaName": "New Text (Copy) (Copy) (Copy)",
            "cornerRadius": 0,
            "mdBlockSpacing": -5,
            "bgVisible": false
          },
          "bindings": {}
        },
        "icon_8370521": {
          "type": "icon",
          "overrides": {
            "x": 390,
            "y": 180,
            "width": 50,
            "height": 70,
            "page": 1,
            "icon": "ph-person-simple-run",
            "active": true,
            "metaName": "New Icon (Copy) (Copy) (Copy)",
            "size": 35,
            "colInactive": "@textMuted",
            "colActive": "@accentSoft",
            "bgVisible": false,
            "blink": false
          },
          "bindings": {}
        }
      }
    },
    "group_moin5fqe_6hz": {
      "id": "group_moin5fqe_6hz",
      "name": "Card (Copy) (Copy) (Copy) (Copy)",
      "locked": false,
      "visible": true,
      "bindings": {},
      "overridePage": "",
      "dimBackgroundWhenVisible": false,
      "widgets": {
        "empty_2177820": {
          "type": "empty",
          "overrides": {
            "x": 380,
            "y": 260,
            "width": 270,
            "height": 70,
            "page": 1,
            "label": "",
            "metaName": "New Container (Copy) (Copy) (Copy) (Copy)"
          },
          "bindings": {}
        },
        "text_2179607": {
          "type": "text",
          "overrides": {
            "x": 430,
            "y": 260,
            "width": 180,
            "height": 70,
            "page": 1,
            "text": "# Lumieres\nTout eteint",
            "typography": {
              "mdParagraph": {
                "fontSize": 17
              },
              "mdH1": {
                "fontSize": 20
              },
              "mdH2": {},
              "mdH3": {},
              "mdTh": {},
              "mdTableText": {}
            },
            "metaName": "New Text (Copy) (Copy) (Copy) (Copy)",
            "cornerRadius": 0,
            "mdBlockSpacing": -5,
            "bgVisible": false
          },
          "bindings": {}
        },
        "icon_2181729": {
          "type": "icon",
          "overrides": {
            "x": 390,
            "y": 260,
            "width": 50,
            "height": 70,
            "page": 1,
            "icon": "ph-leaf",
            "active": true,
            "metaName": "New Icon (Copy) (Copy) (Copy) (Copy)",
            "size": 35,
            "colInactive": "@textMuted",
            "colActive": "#139E06",
            "bgVisible": false
          },
          "bindings": {}
        }
      }
    },
    "group_moin5h1r_ic": {
      "id": "group_moin5h1r_ic",
      "name": "Card (Copy) (Copy) (Copy) (Copy) (Copy)",
      "locked": false,
      "visible": true,
      "bindings": {},
      "overridePage": "",
      "dimBackgroundWhenVisible": false,
      "widgets": {
        "empty_3880521": {
          "type": "empty",
          "overrides": {
            "x": 380,
            "y": 340,
            "width": 270,
            "height": 70,
            "page": 1,
            "label": "",
            "metaName": "New Container (Copy) (Copy) (Copy) (Copy) (Copy)"
          },
          "bindings": {}
        },
        "text_3882174": {
          "type": "text",
          "overrides": {
            "x": 430,
            "y": 340,
            "width": 260,
            "height": 70,
            "page": 1,
            "text": "# Batteries\nTout fonctionne corr...",
            "typography": {
              "mdParagraph": {
                "fontSize": 17
              },
              "mdH1": {
                "fontSize": 20
              },
              "mdH2": {},
              "mdH3": {},
              "mdTh": {},
              "mdTableText": {}
            },
            "metaName": "New Text (Copy) (Copy) (Copy) (Copy) (Copy)",
            "cornerRadius": 0,
            "mdBlockSpacing": -5,
            "bgVisible": false
          },
          "bindings": {}
        },
        "icon_3886580": {
          "type": "icon",
          "overrides": {
            "x": 390,
            "y": 340,
            "width": 50,
            "height": 70,
            "page": 1,
            "icon": "ph-battery-high",
            "active": true,
            "metaName": "New Icon (Copy) (Copy) (Copy) (Copy) (Copy)",
            "size": 35,
            "colInactive": "@textMuted",
            "colActive": "#139E06",
            "bgVisible": false
          },
          "bindings": {}
        }
      }
    }
  }
}

```

---

<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:** [April 28, 2026, 2:03pm UTC](https://community.homey.app/t/app-pro-dashboard-studio-a-completely-free-form-dashboard-designer/151169/822 "2026-04-28T14:03:14Z")

</div>

> [@Bert\_Onraedt](#):
>
> The Horizontal line you get in the new text-widget (WOW, btw 😉 )when you type - - - , where does it inherit it’s color?
> 
> It’s a blue-like shadowed line, but no matter which blue color I change in the overal settings or in the text-widget settings: it stays the same…

Ah yes. It uses the theme border color:

 ![afbeelding](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/1/8/18b93f1c2054aa9a9a4dfae3dd1972e95878bb53.png)

But it does not have a separate custom setting inside the widget itself. I think I shall link it to the “Table Border Color” in a follow up version. Or do you think a real separate “Horizontal rule color” setting for this is preferable?

---

<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:** [April 28, 2026, 2:23pm UTC](https://community.homey.app/t/app-pro-dashboard-studio-a-completely-free-form-dashboard-designer/151169/823 "2026-04-28T14:23:17Z")

</div>

> [@Amersfoort](#):
>
> What is the meaning of the Vertical spacing and Vertical alignment setting in the Text widget? Without an image in the table, there is no effect visible.

Left vertical alignment set to bottom with a “3” vertical spacing . Right vertical alignment set to top with a “21” vertical spacing

 ![afbeelding](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/5/2/5204d1c79bc2f40992718c94b9555a985edacdac.jpeg)

> [@Amersfoort](#):
>
> Nice solution. I do get the impression that the column widths aren’t exactly pixels, but rather ratios between the columns.

It should be pixels though. Text does not get masked of by the borders though, so that spills over.

> [@Amersfoort](#):
>
> Could the (Source/Bron) link open a new form? Now it opens in the same form as the DS app. When one returns from the linked URL back to the DS app

good point. It should open a new tab, just like the button does.

> [@Amersfoort](#):
>
> Great performance again!

🙂

> [@Amersfoort](#):
>
> When I press that button, a flow causes dimensions to change via variables. The image and the button use the same dimension variables. However, the button is now one click behind (and therefore has the previous dimensions).

… and this happens, when Jupiter aligns with Mars and the room temperature is exactly 12 degrees… You always seem to find the weirdest edge cases 🤣 . I shall look into this.

---

<div class="post-metadata">

**Author:** ![Olivier67](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/olivier67/32/118108_2.png) [@Olivier67](https://community.homey.app/u/Olivier67)\
**Post date:** [April 28, 2026, 2:31pm UTC](https://community.homey.app/t/app-pro-dashboard-studio-a-completely-free-form-dashboard-designer/151169/824 "2026-04-28T14:31:24Z")

</div>

No in terms of design that’s not the problem, I see that you have to do everything manually, but the dynamic is to display by clicking on “light” the lights that are on, because otherwise you would have to create 30 lights in terms of design to display only the lights on. it has to be a summary.

---

<div class="post-metadata">

**Author:** ![Georges\_IEGER](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/georges_ieger/32/111781_2.png) [@Georges\_IEGER](https://community.homey.app/u/Georges_IEGER)\
**Post date:** [April 28, 2026, 2:32pm UTC](https://community.homey.app/t/app-pro-dashboard-studio-a-completely-free-form-dashboard-designer/151169/825 "2026-04-28T14:32:56Z")

</div>

Thanks for your answer

 ![HomeyAmbiance](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/5/a/5a44963573bfd73dc03025ed148e44a662afdc18.png)

I think I’ve figured out the problem. My Homey is set to French. I need to force the value to 1 or 0 instead of the value returned by my flow. Then I update the linked variable in the Dash.

And now it works ! But maybe you could make it so that it works regardless of the language?

I hope that makes sense 🙂

---

<div class="post-metadata">

**Author:** ![Bert\_Onraedt](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/bert_onraedt/32/79096_2.png) [@Bert\_Onraedt](https://community.homey.app/u/Bert_Onraedt)\
**Post date:** [April 28, 2026, 3:20pm UTC](https://community.homey.app/t/app-pro-dashboard-studio-a-completely-free-form-dashboard-designer/151169/826 "2026-04-28T15:20:17Z")

</div>

Aha, yes, that’s the one.

I think any (table-related) color you can change IN the widget settings would make sense…

---

<div class="post-metadata">

**Author:** ![Bert\_Onraedt](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/bert_onraedt/32/79096_2.png) [@Bert\_Onraedt](https://community.homey.app/u/Bert_Onraedt)\
**Post date:** [April 28, 2026, 3:23pm UTC](https://community.homey.app/t/app-pro-dashboard-studio-a-completely-free-form-dashboard-designer/151169/827 "2026-04-28T15:23:18Z")

</div>

A new issue has popped up over here when trying out the Calendar-stuff.

One Google Calender : works fine.

2 Google Calendars, however, crashes dashboard Studio at the moment where the ‘Combined Ical Data’ is sent to the Dashboard.

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

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

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

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