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

If you send the value using a homey flow:

And make (any) color value dynamic by pressing the small chainlink above it:

You can set the color from Homey. Note: I used topic name “ValueColor” as example. This can be any name as long as it is unique.

Yes the text / label widget has basic markup support (you need to put the text between “*”):

Maybe you use the text it in a dynamic way and adding “*” is not feasible? You could just use a container widget with a hidden container. This allows you to style the font directly:

Thank you. That explains a lot

What else can you do with Dashboard Studio? Well.. a signage display. :wink:

Great work @Satoer !

6 Likes

I think I’m still doing something wrong.
The color stays white.
KleurWoonkamer is a variable with a number
This is my Flow:


And this my settig in Studio

What am I missing?

The Dashboard Studio SENT cards sends the data directly on the “KleurWoonkamer” Topic. It does not send the data to the variable. There is no need to send it to a variable. You can delete the variable and just use the topic (“KleurWoonkamer”) directly in Dashboard Studio. Do not forget to delete the variable. The topic and the variable have the same name, and that might give conflicts when using both.

You can also keep an eye on the “Data Stream Explorer” inside Dashboard studio to see what data comes by:

Of course, you could also use the variable way. Then you need to replace the Send Dashboard Studio flow cards with the regular Set variable cards:

But you need to use the “Text Variable” not a “Number Variable” Because the “#” inside “#FA0000” is not a number.
Also remember to enable the variable inside the Homey Dashboard Studio configuration. But I think you have already done this.

Doing it through a Homey variable comes with one small advantage. Dashboard studio caches all values and send them again when a dashboard reloads. But this cache is empty when you restart your Homey or restart Dashboard Studio (which it does with an auto update). If it is empty it it loads the value’s stored in Homey. But it does not know these values from the flow cards. If you store it through a variable it does get stored.

Oh wow Martijn, that seriously looks awesome. I love how you handled the color scheme and typography and how you totally integrate it with the rest of the environment. The layout is great too. It doesn’t feel overly crowded with information like people tend to do with dashboards (I’m guilty of that myself :sweat_smile: ). The whole fitness room looks like a chef’s kiss by the way.

I assume you made everything dynamic. How did you do the Active trainer list? How do you update the timed current lesson and next lesson? Is this connected to some kind of agenda? I guess you also built some kind of backend dashboard. Sorry for all the questions, but seeing use cases like this might spark ideas on how to improve DS even further. Do you mind if I use these pictures in a gallery (when I eventually have the time to create one)?

Anyhow, nice showcase. I imagine you have an education in something technical and more nerdy but transformed your fitness hobby into your work!

I used a Homey variable with text. That did the trick. It is working now. Thanks

Thanks!

Of course you can.

I have made a dashboard for the staff earlier. This is on an iPad. They can control the whole gym from there, see checked-in members, control gates, check the cleaning list, etc. There’s also one page for the Signage display on which they can change the ‘storing’ message and select who is working (for the visible trainers on screen).

Everything is dynamic, with sensors for wellness, shop and temperature. The trainers are made with virtual devices (active / not active), and when a specific device is turned on, a Homey script puts it in one of the four slots (each a variable) and a url is called on the dashboard to show the trainer. The Homey script makes sure the slots are always filled from left to right and changes the visibility variable based on the variable of the name (nothing or a name).

The lessons are a self made connection to Virtuagym (our back-end system). The API gives me information about names, times, available spots for members, etc. The API script runs on Railway, Railway sends Homey all information via a webhook and a Homey script changes the variables based on the webhook input. These variables I put on the dashboard on self selected positions. The Homey script also rotates lessons every 20 seconds when they start at the same time and it makes sure that a live lesson is moved to the large window when it starts (or 60 min before start when there’s no live lesson now), which shows the next lesson below. Also the check-ins are coming from the API script and are used to fill a variable for ‘live drukte’ and live check-ins on the staff dashboard.

The visibility function is used a lot here. All descriptions and some other elements for lessons are already on the dashboard but only one shows, depending on the name of the lesson (in a variable), which triggers the visibility boolean of the description. The name of the lesson also triggers the image url of that lesson.

The green header is also dynamic, with names of members showing up when it’s their birthday or welcoming new members. Next up is a full screen overlay for events / deals, which shows every few minutes or something (also just based on visibility and a boolean). Members love it until now, it just makes the gym a little more premium for them. And yes, if I’d let myself go the dashboard would be full of cool things haha. But I have learned in the last years that less is indeed more. Not everything needs to be automated even if it’s cool, not does it offer anyone else but myself some satisfaction to see it. :wink:

I am in no way a technical person, nor do I have such an education, but I love doing this. :slight_smile: I have been working with Homey for over 8 years now and have a fully automated home, with a dynamic floor plan made with HA (wayyy too much work but cool). It’s just fun and with the help of the community and a little AI, everything is possible. :smiley: And next to the fact that I own a gym, I have also been the owner of FWD.nl for 15 years, on which I wrote many times about home automation and it gives me the opportunity to test a lot of automation products.

3 Likes

Your article on FWD inspired me four years ago to make my first own 3D floor plan with Sweet Homey 3D and Homey!
Now I use Twinmotion for even more realistic 3D images.

1 Like

Thanks for the in-depth explanation. Using it for digital signage definitely gives me some inspirational ideas for extra features. For instance, that textual header, I could improve the list widget so that when it’s sized to display only one item, it automatically animates the next item in the list in at a set interval. Another idea is a carousel widget that rotates through other widgets or groups with smooth transitions.

1 Like

First of all, impressive work Satoer. Thanks a lot for all your work and efforts.

I have some beginner question and very likely overlooked some thing.

I figured out thath when creating a slider for my Hue lights I need to enable fractions and set fraction steps to 0,01 in order to be able to adjust the dim level. The min and max setting needs to be 0 resp. 1. As i understand I could still go with 0 and 100 but then I need to recalculate at Homey using a flow. Is there by any chance an option at Dashboard Studio to recalculate the value in percent? Of course I could simply turn off the value at all, but would like to see % value set.

In addition on an old iPad Air (IOS 12.5.8) the switch / button is not shown on the dasboard at these devices. Looking at the editor at the old iPAD it is not shown in the list of widgets to add.

Thanks in advance

Thanks!

User Amersfoort actually had a similar request.

At the time, I thought a “display multiplier” might overcomplicate things and be confusing. However, a simple checkbox to show the value from 0% to 100% sounds like a great solution. I will add it to the list. :+1:
I’m improving the widgets one by one so it might take a while. But I keep track of all the requests.

1 Like

Found an additional thing. On an old iPad Air (IOS 12.5.8) the switch / button is not shown on the dasboard at these devices. Looking at the editor at the old iPAD it is not shown in the list of widgets to add.

Using the LightGrid widget, the buttons are visible and working, maybe you can look into this issue.

Thanks

Ah, crap. I borrowed that test device on iOS12. Might take a while to get a hold on it again. Can you exactly describe in detail what is missing? The whole button, or parts of the button? What happens if you configure it to something else (like push button / switch etc)? Can you share a screenshot of your device if you go to this page? Is it only the button, or are there other widgets misbehaving? (just browse through the demo page, such a heavy dashboard might be hard on such an old device though :sweat_smile:)

Edit. Oh I thought you were this user:

But apparently there are more users trying ro revive 13 year old relics :rofl:
I made some changes based on his request to make the dashboard viewer compatible with iOS 12. The editor is still a mess, but I did not bother to fix that. The editor is not aimed for touch anyway.

@Jos_Stultjens Didn’t you notice a problem with button / switch widgets?

Displaying/using buttons/switches/sliders on my iPad Air with iOS 12.5.8 is no problem.
However, I do configure/edit the dashboard on a windows system.
I will check how the editor looks w.r.t. buttons on my iPad Air later Today

Two questions:

  • in a horizontal menu there is an option “Allow empty selection” for each menu item. If you change this option for one menu item, all menu items get this value. Could this option be a menu setting instead of a menu-item setting?
  • there is an existing app Enhanced Device Widget for setting all capabilities for one device in the standard Homey dashboard after device selection. Could something similar be available for Dashboard Studio?
    Case: I have an airco or a lamp with several capabilities, and I want to setup one or multiple of these capabilities without the need of a separate screen, but defining a little overlay screen only during setup. In normal cases I only want to switch on/off these devices, but sometimes I also want to set the temperature, direction, speed (airco) or brightness and color (lamp).

This existing app has the possibility to show just the relevant capabilities (unchecking the other ones), or make it read-only just to inform about the values of multiple capabilities.

This setting is tied to the “Selection Group ID” So every item with the same “Selection Group ID” share this setting. If you change the “Selection Group ID” it can have its own “Allow empty selection” setting. So it is not tied on the menu.

But this is already possible right? You can select every capability from a device you want to control, and then create a widget for every capability? And if you want it to look like it is all part of the same device, just disable the background for every widget and put them on top of a container widget.

Defining a 3D platform with quite some on/off buttons for devices in one form. How to activate a container with advanced settings of these devices? I use a tablet for the dashboard, so a tiny extra button for each device to make these setups is not a solution.

I have the plan to add a “visibility” property for groups. So if you group multiple widgets you can turn on and off the whole group. That would solve this right?

I would like to setup advanced settings (not turning on/off device) per device, so I think a group is not appropriate.