[APP][Pro] NEW: Dashboard Studio - A completely free-form dashboard designer

Bedankt! :clinking_beer_mugs:

Sure. This is an English topic though, is this a problem?
Do you have installed the “power by the hour” app? If not first install that and configure it for Tibber. After that create this flow:

This flow is retrieving the energy prices of the day. It is a json formatted list, but the graph widget inside dashboard studio understands that format.
After retrieving it sends the data to a “topic” called “EnergyPrices” (case sensitive) You can make up any name for this, as long as it is unique.

Now go to Dashboard studio open the editor and drop a graph widget on the canvas.

Then open up the data source and go to the “Data” configuration:

You have to make this data source dynamic by pressing the link icon (1). After this you can fill in the “topic” (2) With the topics you link up data sources (note: in Dashboard Studio you can make almost any value dynamic). Here you fill in the unique name you just invented.

Now go back to homey and execute the card (test from here):

This will send the energy prices to the topic, and it should show in the graph:

This is the default graph. But you can change the graph however you want. Create a bar graph, add labels, lines
 :

Dashboard Studio snippet of this graph (you can import this in the editor tools in the top):

{
  "snippetHeader": "Dashboard Studio Snippet",
  "snippetType": "widget-snippet",
  "snippetFormatVersion": 1,
  "version": "1.6.0",
  "source": {
    "dashboardName": "Example",
    "page": 1,
    "createdAt": "2026-03-31T18:08:58.502Z"
  },
  "master": {
    "currentPage": 1
  },
  "widgets": {
    "graph_9390": {
      "type": "graph",
      "overrides": {
        "x": 280,
        "y": 200,
        "width": 480,
        "height": 240,
        "zIndex": 10,
        "page": 1,
        "data": "15,20,10,100,94,12.5,23,97,30,10",
        "min": 0,
        "max": 100,
        "autoMin": true,
        "autoMax": true,
        "label": "Energy Prices",
        "metaName": "Energy Prices Graph",
        "type": "bar",
        "showAxisX": true,
        "showAxisY": true,
        "axisResX": 2,
        "decimals": 2,
        "labelBold": false,
        "axisFontBold": true,
        "gridHTopShow": true,
        "gridHBotShow": true,
        "gridHBotCol": "#ffffff",
        "gridHTopCol": "#ffffff",
        "gridHInnerShow": true,
        "gridHInnerCol": "#ffffff",
        "gridHInnerOp": 20,
        "roundingMode": "exact",
        "axisResY": 5
      },
      "bindings": {
        "data": "EnergyPrices"
      }
    }
  }
}

Hello @Satoer,
English is no problem for me. Could you explain how to properly configure the Power by the Hour app for Tibber? The rest is clear and should work fine.

Hi @Satoer ,

is there a way to determine on which page you are?
I want to check/set some defaults when accessing a page.
In Homey Flow I can find the dashboard tag, but something like page loaded/refreshed.

I actually ran into this issue because of another issue.
When you replace the value of a topic like opacity with a variable, it does still keep the old value as default.
I can work around it by removing the variable, change the value and replace it with the variable again, but it would be nicer if I can do this programmatically.

There are 3 places where you can see the page:

  • On top of the page in the status
  • Under the universal actions (easiest way to manouvre between pages
  • In the Dashboard Environment. This the actual setting of the page. This value can be made dynamic for example if you want Homey to control the page. Note: With buttons and the new menu (Test version) you can go to pages directly

There is a WHEN flow card that activates when a dashboard is loaded (including a tag with the dashboard) and a WHEN flow card that activates when a dashboard is saved (easy to remoteky reload dashboards). But there is no WHEN flow card that activates when a certain page is activated.
But, this can be passed through with a button or a menu item. How exactly are you going to jump to another page in your dashboard? If you use a button for that, just configure it like this:

Set the “On click” to “Go to page”
If you create a “toggle switch”, it automatically gets pressed when it is on the “Target Page”
Fill in an output topic with any topic (unique name).

and use that topic inside homey and do whatever you want with that trigger

If you enable state caching inside the Homey Dashboard Studio settings, it automatically send the latest known values to the dashboard when it reloads. This is a default ON setting though. But it does looses the cache if you restart the app. And this might happen when a new version is automatically installed:

I don’t use Tibber, but I believe they use 15m prices (every 15 minutes) So you need to add that device. Configure NL_Netherlands and I believe you can configure the rest in the setting. I don’t know anymore :sweat_smile:
Anyway the power by the hour is not app from me, better to ask those kind of questions in the PBTH thread

Yeah, sorry. Perhaps I needed to be a bit more clear. :wink:
I knew about those options.
It is more that I would like to know identify the page when I access it via a url or just a do a refresh with (CTRL) F5. At that moment I would like to load some defaults by triggering a Homey flow. But I don’t see a way to do that without a manual trigger like pushing a button. So I am actually looking for an on page load trigger.

Not sure if this is what I meant.
You can reproduce it like this:

  • set opacity to 10
  • change opacity to a variable called x
  • Now I can change the opacity with a Homey flow to for example 100
    Now refresh the dashboard studio page (first save)
    The opacity is now back to 10.
    I can use the caching, but if I loose the cache, then 10 is the default value again.
    So I assume that on the background the values still exist and are just overwritten by the variable.
    This is fine by me, but it would be nice to be able to see those defaults.
    OR
    Be able to set load the values via a Homey flow on page load.
    I can load defaults via a flow for all variables when the dashboard is refreshed, but I would be more ideal to be able to do this per page.

I could update the “Dashboard Loaded/refreshed” WHEN card to include an extra “Page Number” tag alongside the “Dashboard Name.” This way, if a dashboard reloads directly on a specific page, that page number becomes available for you to use. You could then filter the flow to continue only if the page equals X.

However, this would only trigger if you reload the dashboard directly on that page. It won’t trigger if the dashboard is already loaded and you navigate to a different page using a button or another UI element. Is that how you typically use the dashboard, by navigating directly to specific pages via the URL like ip:5050?page=X?

Alternatively, maybe I should just create a dedicated “Page loaded” WHEN card that includes both the dashboard name and a page tag.

Your other question, this would be the situation:

  1. Check if state caching is on (if not set it to on)
  2. set opacity to 10
  3. change opacity to a variable called x
  4. Now I can change the opacity with a Homey flow to for example 100
  5. Now refresh the dashboard studio page (first save)
  6. The opacity last value is send from the Homey Cache to the dashboard and is 100
  7. Restart Dashboard studio or install (automatic) a new version
  8. Now refresh the dashboard studio page
  9. The opacity last value is unknown, cache is empty, opacity value is 10

At least that should happen, and as far as I know this works perfectly.

[edit] I read your text again, And now I think I misunderstood. You just want to be able to set the and see the default values in case the cache did not work, without disabling the dynamic topic? (And yes, the value before setting the dynamic topic is indeed saved in the file)

Think that would be most desirable.
In that case you are not bound to using the url

Yes, it is. My suggestion/mention is more that you cannot see this default, unless you remove the variable. So it would be nice if we could still see or even set that default without removing the variable

Sorry, you lost me again :sweat_smile:
The color in the Switch wizard? RGB codes? What do you see when you want to change colors? Not just the OS default color picker? (If not, screenshot please)

I did a full check:
Within Homey everything goes well. Variables are correctly set for all dashboards and triggers are send. I do have two questions about variables.

The widgets in which Homey variables are used are updated correctly on an open dashboard. The last value is shown. What happens when a variable changes during the night when the dashboard is not live (iPad is off)? Does the widget show the new values of the night or the cache from when the iPad was on?

The widgets for which I use ‘send event with value to dashboard’ are only updated when the dashoard is online. Is this correct? They are send while the iPad display is off and (I guess) the browser doesn’t update then. So, these values are not visible in the morning and not set into a cache or something.

Just to understand and find out where I’m missing something. :slight_smile:

Input “R” part code 255 of RGB color code in “Icon on” of a Switch on Windows 11 device:
Animatie2

Thanks, totally clear. I will solve that :+1:

The widget will show the latest values. Dashboard on or off does not make a difference. Unless the Homey reboots, the or the Dashboard Studio app reboots (which happens with an automatic update).

This should not be correct. Are you experiencing that? The cache option should also cache the latest values from the flow cards. :thinking:

Edit: Thought about this
 I think this is the problem: When the iPad is off it the dashboard is not updating the widgets with the latest information. Well
 because it is off. But when you turn it on again, it comes out of hibernation and it just shows the dashboard like it was because it does not reload the page. The server only sends a full replay of cached values when a client opens a new Socket.IO connection, like when you do a page reload.

Yeah, I kind of experience that, sometimes.. (to make it more difficult), especially with the values from the flow cards.

That makes sense, but then again; why do the normal variables en devices update during hibernation but the flow triggers not? I can see the state of lights, alarm, doors, etc correctly immediately when opening up the iPad.

Ah, yes of course. Thanks.

That is more or less also why I want to have a on pageload solution :wink:
During the night I sometimes restart apps or Homey. And the tablet switches on and off based on human presence

It is on the list.

If you switch the iPad on using Homey, you can also force a reload using this THEN card:

But, if you restarted your homey the cache is probably empty. :sweat_smile:

Side question, How do you actually turn on and off the iPad using Homey? I created a solution myself by emulating a bluetooth keyboard 7 years ago (ouch, shocked myself seeing it was that long time ago haha). This solution still works fine for me, but it requires an ESP32 microcontroller. Maybe there are already better solutions to accomplish this.

Thought a bit more about this situation. The cache is empty after a restart of Homey. If Dashboard studio detects this, it retrieves the latest values from the devices where the capabilities are enabled in the settings. (Forgot about this :sweat_smile: ) A flow card is not a device, so data what has been send from a flow card, is only in the cache. It can not retrieve this information again when the cache is empty. If you really reboot your Homey every night, a better solution might be to send (important) data inside a Homey variable instead of sending it directly to the dashboard. You can enable Homey Variables inside the configuration to make them directly readable (they are not writable) inside Dashboard Studio.
I do not think it is necessary to force a restart I mentioned in the message above.

Could this be the reason of lights going on and stay on at night (not any flow does this), and they were for sure off in the evening? I reboot my Homey every night and have activated automatic updates of all Homey apps. Updates happen quite often at night after a reboot.

I actually have a Lenovo tab M10 in combination with the Fully kiosk app.
There is also an Homey app for it. With that I can controle the whole tablet.
And Fully also has options like motion sense to switch on the screen.