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

Funny, I was already working on implementing something like that :joy:. Actually also building in an HTTP Basic Authentication fields because embedding the username and password in a url like: http://username:password@192.168.1.10/snap.jpg does not work in Chrome. Anyway, got a bit complicated, but getting there…

1 Like

Nice!
Other question: Is there a good reason why I should use the image widget instead of the switch/button with visual style Image only? Looks like the button can do all the image widget can, but with some extra options. Or am I missing something?

The image widget also features specific image options like zooming, cropping, or positioning the view to the left, right, top, or bottom. I actually use those settings to position and zoom in on a security camera ā€œfeedā€, when someone presses the doorbell, it displays just the area in front of the door at a larger scale. The image widget also supports svg and svg animations as a textual input. (And in a later update auto update) If you don’t need those specific features, then I guess a button works just fine too. The button is a bit more resource-heavy, but I doubt any modern system would let you actually notice the difference. But if you are creating a Dashboard for something like an 15 year old iPad Air 1 like the user a couple of post above you is doing, I recommend to use ā€œthe right tool for the jobā€ :sweat_smile:

@Satoer Thanks to your solution with a local variable and the ā€œSend value directly on movementā€ option, I have now been able to realize the table below using a SVG generated by Homey script.


Slider setting:

There is one thing I can’t get to work: I have set the slider value to 1630 in the Dashboard, which places the thumbnail at the very top. However, the SVG is displayed as if this value is not set to 1630 but to 0. It seems that the actual value is only passed on when sliding and after at least one slider movement, and that the technical slider value is 0 by default (that’s why the option is called ā€œSend value directly on movementā€ :sweat_smile:).
Otherwise, scrolling works perfectly. What else could I do?

Hoping for the pull-down (menu) option to become available.

Hmmm I understand the problem. You would like to send the slider value also on a page reload However this might result really undesirable side effects. For example if a slider is connected to a thermostat, it would always send the default value when the page reloads. local variables are also not controlled with the cache option from Homey.
You can do this: If you unlink the ā€œmove Yā€ from the image widget (appearance section) and set this to 1630 , then link it back to the slider using a local variable. And save the dashboard, this 1630 should be the default value if it is not changed by the slider.

Still working on it, but bit busy with another (paid) project :sweat_smile:

1 Like

That did the job. Thank you.

Klopt het dat de image url, geen url naar het internet mag zijn, alleen naar homey?

No, it can be any url?

Did you add http:// (or https:// ) in front of the url? Does the device you are watching the dashboard on has access to the open internet?


hi Satoer

Great app. I’m impressed with your work.

My question is: I’d like to see the status of my Tado X radiator thermostats. For example, red when the heating is on, and blue when it’s off. Is that possible?

Also, I’d like to see the status of my Nuki smart door locks. Red when the lock is open, and green when it’s locked.

Best regards,
Christoph

Sure

There are a ton of ways you could pull this off. First, you’ll need to figure out how Homey stores that specific info. Since I don’t own these devices myself, you should check if the devices has boolean (true/false) capabilities to retrieve the data you need. Head over to the Dashboard Studio configuration and look at the device’s capabilities. For example, here is my thermostat:

If you see a ā€œHeatingā€ capability (or something similar), you’re in luck! You can enable it and use it directly in Dashboard Studio to control a value from a widget. An icon widget might be the way to go here. Just go to ā€œDefault State (On/Off),ā€ click the chain icon above it to make it dynamic, and link it to the topic Homey is broadcasting. You can even use the dropdown to select it if the device sent a value while the dashboard was open.

Unfortunately, my setup doesn’t have a ā€œHeatingā€ option, as you can see. In cases like that, we can just create a flow to determine the status ourselves.

If the set temperature is higher than the actual temperature, we can assume the thermostat is heating. You’d then send a true or false value to a topic like ā€œHeaterOnā€ (a name you can just make up yourself) and add that topic to the active state.

But that’s definitely not the only way to do it. You can make almost any setting dynamic. For instance, you could change the widget’s color by making the color setting dynamic and sending an HTML color code to it. If you want the icon to change, just send a string with the icon name to the ā€œIcon classā€ setting. Another trick is using a button with different icons and colors for ā€œonā€ and ā€œoffā€ states, then setting the state to dynamic so everything changes at once. Just set the ā€œvisual styleā€ in the appearance section to ā€œImage only.ā€

It’s incredibly versatile and the possibilities are pretty much endless. I actually have a gauge widget for solar power, and whenever it hits a new yearly record, a blinking sun icon appears on top of the solar panel icon. That’s just an icon layered over the gauge with its visibility set to dynamic and controlled through Homey.


Hi Satoer

Thank you so much for your quick response and your efforts.

Since the app is really quite comprehensive, I’ll probably need some more time to implement everything. But I’ve already made progress in my initial attempts. It’s incredible what’s possible. Complex and not easy, but truly fantastic.

Best regards,

Christoph

A really great and flexibel app to accommodate more complex setups. Did someone find a way to run it as an Android widget so that it doesn’t take up the full monitor screen?

Hi @Satoer A small thing for the bug list: When I create a group that includes an arrow, and that arrow is ā€œnudgedā€ into a few pixels offset, then, duplicating such a group will produce a duplicate with the arrow positioned in the wrong place within that duplicate group.

At its core, it’s really not that complex. It’s just a collection of universal widgets where you can link any setting to a dynamic data source in Homey. I think the real challenge is how overwhelming the sheer number of settings for each widget can be. I’m looking for ways to make the whole experience more user-friendly, like hiding unnecessary settings based on the active configuration, organizing the layout better, or adding a preset selector to configure widgets instantly. I’m also considering a toggle between simple and advanced modes: simple mode would just show the preset selector and the most important values, while advanced mode would reveal every single setting. Anyway, that’s a lot of work for a future version :sweat_smile: For now, the focus is on improving the current widgets adding features, and if everything is a bit settled I shall see how I organise everything a bit better.

Thanks, ill add it to the list :+1:

Could the image list be made a bit more informative, like adding file name, size, date? The images are far apart. Maybe enlarge the preview a little.

When changing a button’s output topic, the search window immediately collapses again after entering a single letter to search for a device/capability, making searching almost impossible.

Yes, already on the list of things to improve :+1:
Wow are you creating a 3D map with actual lights that glow up? :smiley:

Yes, totally annoying and already solved in the next update. :slightly_smiling_face:

Yes, but I am having some problems with images that are all larger than 1 MB, causing the screen to take several seconds to load with high performance tablet. Are all invisible images loaded during the loading of a page/dashboard, or only when they are made visible?

I am going to test if halving both the height and width keeps the image quality good and improves performance. Images are 2800x1580 with max. PNG compression level.

If they are already on the page you are looking at, just hidden, they often still load in the background. However, if they are tucked away on another page, they usually do not load until you actually open that page, so they aren’t all piling on at once during the initial load. Once an image has been shown already, is it snappy and quick? I shall overthink this image loading behavior. Maybe there should be an dashboard option to cache all images on load.

All pages will become separate dashboards with one page.
Depending on the lamp status an image will be visible, which also could be the case during dash/page load. The main page is not ready yet, but I will share my experiences when all components have been defined.

Hi @Satoer ,
perhaps I am making a mistake somewhere or perhaps I try to be a bit to creative, but I am trying to use the radiobutton option to highlight the border of a button.

I try to create a menu bar with button to select pages. It goes to the right page and the highlight of the button is working as well, but the highlight of the border (changing opacity) is not working.
It does work when I select Topic only, but with Page + Topic is fails.
I can work around it by using a Homey flow, but rather avoid it.