I have been slowly developing a new project over the past few months called Dashboards. Dashboards is a group of cross-platform (Mac, Windows, iOS, Android) applications for mobile devices, desktop, and web which builds dashboards for IoT platforms such as Home Assistant. Dashboards handles profiles, server credentials, and provides software needed to delivery your dashboards.
I got the idea for Dashboards because I was recently working on smart hotel project. The hotel wanted hotel guests to control the room climate, lights, and media from a tablet, or in this case a specialized tablet phone. We also installed sensors for temperature, humidity, light, and presence.
For the server we were using Home Assistant. For the tablets we used custom software I build and ran it in kiosk mode, so the tablet was locked down. Some of the challenges we faced were with managing the many types of users in a hotel.
You have rooms, hotspots, guests, cleaning services, front desk, concierge services, and hotel management. We also had to design a system that would work within the hotels own network, and would continue to work without external WiFi.
We ended up creating many different applications with different permissions and access. Each room needed a unique dashboard to control only the components in that room. Front did not need access to the room controls, but instead needed automations to prepare the room for check in or check out, they could see occupancy and which lights, but not interact with them.
Cleaning services needed to see when the room was occupied, when guests are arriving and departing. They also need to update the status of the room if it was being cleaned. Hotel managers had the most insight into the hotel. They could see the sensor data for the rooms, their electrical use, and occupancy.
I realized that using Home Assistant frontend to deliver all these things was just not the best solution. We wanted to present a kind of professional and branded experience, one that would be unique to the hotel and we also wanted to build apps best suited for each use case. We also had the issue of provisioning many different devices and creating a unique dashboard for each.
So we created native application for tablets, a web application for each hotspot that auto logs in users, a web application for the front desk, another application for cleaning, and one for the manger all linked to their group or individual logins.
For example, each front desk person would have unique login in credentials, but would see the same web app. Each hotspot would have different credentials and present a unique dashboard. Each room would have the same credentials, but receive a unique dashboard based on the UID.
Here are the original mocks of the hotel front desk and room applications. This is only the mocks, the real product differed of course. It borrowed a lot from TileBoard and some of the other web apps built for HA.
Security was important, as we never wanted someone to access the HA server and accidentally control another guests room, or take control of the entire hotel (what a mess that would be). So we created our own credential and provisioning system. All of these apps and profiles would be managed by a single desktop, the Dashboard Builder desktop.
Dashboard Builder need to create dashboards, provision hardware devices, create login profiles, and it needed to work remotely or within the same network to communicate with the Home Assistant server. It turned out to be a bigger project than I first imagined but I am really happy with the progress and wanted to share it.
The idea is for the desktop application to manage dashboards for different types devices, desktop PCs, routers, tablets, mobile phones. Part of that is to manage “profiles” which represent either single users, groups of users, or devices. Profiles associate the “user” with the dashboard and with the credentials for accessing the server.
Dashboard Builder would be able to talk with Home Assistant (or possibly other platform) with web sockets, REST API, or MQTT depending on your setup. You can setup access to talk on the same network or remotely using VPN access or Nabu Casa.
Within Dashboard Builder are the tools to build and preview each dashboard. So for building web application, the builder becomes the web application with edit/preview modes. The same for tablets and mobile devices. I really liked the way Home Panel does this and utilized some of the same paradigms for the edit mode.
Dashboard Builder has the concept of pages, groups, and cards and can scale build dashboard for single home or an entire 500 room hotel or office building. Here is the tablet builder, it mimics the tablet itself so you know what it will likely look like when mounted on the wall.
This is the mobile application builder. The unique thing about Dashboards is that we also build mobile software. So you could build a mobile application that connects remotely to your HA server using MQTT or Nabu Casa.
Dashboard Builder also allows for customization, it’s not all dark mode. You can change text color, card color, icon color, background color or on some devices, load a background image.
What I am working on now are the software applications to run Dashboards on generic tablets and mobile devices. I will borrow features from WallPanel and MQTT Alarm Panel applications so the applications can have motion detection, MQTT support for sending commands, screensavers, and kiosk mode.
Here is an alarm application built using Dashboards.
Well, that is the preview of the project I am working. I hope to have more information soon and start some beta testing. Thanks!