Time to glue the interfaces together


Posted on

Time to glue the interfaces together image

One of the main goals with this project is to create a coherent user interface on clients so that the control of the devices, plugins and other components are exactly the same. It should not matter if you use a desktop, Raspberry Pi or mobile device. The dashboard, listings and all the components should look all the same and especially, work exactly the same. Now that the server finally has introduced customize-able dashboards, it is time.

Customize-able dashboard

In the early days, from the beginning of the server development until recently, the dashboard only showed favorite items with a minimum of graphical design. With these favorite items controls where shown which have been marked as shortcut controls(1). Users started to create shortcut controls to “design” a dashboard. These controls are not meant to be used for designing stuff, but give a quick control option in listings.


I got a lot of requests to make it possible to mark controls to be shown on the dashboard. This means a single control would then have two options which are almost the same: Is a shortcut control (shown on dashboard) and show control on dashboard. This would result in having all these controls been shown. And this on the server’s dashboard and on all the clients and possibly just give too much options on just a dashboard.
Next to the custom controls to be shown on dashboard requests to create multiple dashboards where also starting to rise. It became time something happened

Let’s provide users what they ask for

A couple of weeks ago i started with creating customize-able dashboards where i wanted to include as much as possible where users are requesting for:

  1. We want graphs,
  2. We want gauges,
  3. We want to select only the controls we think should be on a dashboard,
  4. We want to arrange these our self,
  5. We want different dashboards for different users,
  6. We want multiple dashboards per user.

So we  have put everything aside to make the above possible and have been focusing primarily on this (yes, so many requests where made).

The first version of the custom dashboards has been released a couple of weeks ago and made a lot of users really happy. It included gauges, graphs, control selection and users were able to place them their self.
This version had to be running for a while of course to make sure it does what users want before we can continue with it.

The second version, which is available now, provides the possibility to create dashboards per user. This means that every user has his/her own dashboard with only the controls they seem fit. Also we added spacing controls (so users can put  controls floating somewhere) and the possibility to re-size controls as they where fixed in size.

What remains for us to do is create multiple dashboards per user where it then is possible for an user to have a dashboard which supplies categories. And with pressing a category it shows the dashboard belonging to that category.

Coherent user interfaces


The current version of the dashboard does not only allow to create a custom dashboard for an user, but also for dedicated clients (you would put these on a wall or something) and mobile (phone) devices. But we won’t stop here. We also have added a feature to make it possible to create a personalized dashboard on fixed clients. This means that a fixed client can have a default dashboard with the possibility to adapt the dashboard to the user who is operating the client. An usage example would be to have an interactive mirror with a default dashboard and when someone stands in front of it who has a customized dashboard, his or her’s dashboard will appear.

With these preparations done we can go to the next step.

Glue it together

This is where the post is about. One of the main goals is to create coherent user interfaces. All the clients must provide the exact same graphical representation of all visible items. With this an user experience can be created without an user contentiously have to figure out how it all works.

With the custom dashboards it now is possible to create user interfaces completely as an user wants them to be on every client an user uses.

As we are creating Java client libraries so others can also create a client of their self we can only guarantee interface consistency for clients we release.

As of today (July 20th, 2015) we have started to create the base of these clients. And will get the primary focus. This will take up the up following weeks. We will try to get them ready as soon as possible. This does not mean the server and/or support of it will be pushed aside, but will be put on a second priority. Any bugs or other urgent things will be prioritized though.

All these changes mean the following: Show a customized dashboard and pick the strongest points from each client and put them together. As for the desktop client we will be keeping the 3D map with a 2D version added for devices not capable to show it or if the user want’s to. The Desktop client will be created in such a way it is also usable on Tablets.

In the end we then have two clients to maintain. A dedicated phone client, and a client for larger displays. All our current clients have different libraries and different build techniques. Not efficient.

What happens with current clients?

The “old” Android client will be phased out in a couple of weeks. The new Android client will be made compatible with the custom dashboards and pushed to be the Android client. The Desktop client will be phased out, but, will come back stronger.

Keep an eye on our Twitter/Facebook account as quick progress messages will be posted there. Large updates will be posted on the blog as usual.

(1) Shortcut controls are controls used to provide quick access to specific controls in device listings so you do not need to open a device details page to be able to control a device.

Latest news/blog

Friends of PiDome

Affordable 433Mhz RF transceivers
Home-automation hardware manufacturer
Products for teams, from startup to enterprise

Latest added technology

  • SMS
  • Z-Wave
  • PushBullet
  • PlugWise
  • MQTT

Some project stats

Open Hub project report for PiDome Platform


Official NLJUG Member