We have built a dashboard website to display data collected from PLCs and other field devices. Each user of the site will see different widgets sourcing different data from different devices.

We don't want to have to update the website every time a new user or new device is added. I built a system on AWS using SQS and Java Servlets that will dynamically serve widgets HTML elements to the webpage via Server Sent Events.

It is old tech, rudimentary, probably horrifically inefficient, and currently buggy but does get data through. It only gets one widget to render at the moment, so it needs work.

I am at a crossroads now as to continue working on my system and get it working smoothly or to adopt some dashboarding framework. I've read through introductions to a handful of frameworks, both dashboards and general frontends, but none of them seem to do anything mechanically that I am not already doing and only make things pretty. Also, none of them explicitly spell out how they would solve my different users, different widgets, different devices, different data problem.

The problem is I don't want to hard code instructions on how to render the data received into widgets. I want a separate library of empty widgets the client draws from and applies the received data to. Based on configuration linked to the current user.

Does anyone know of anything that does what I am looking for? Specifically making the backend working easier, dynamically creating widgets and populating them with data from external sources. I can make it pretty later.

  • Sorry, I don't have much time to answer. Sounds like Node Red is what you want .... – Mawg says reinstate Monica Apr 17 '19 at 11:58
  • 1
    I don't think that fits the bill. The incoming MQTT data and device mapping is already handled and working well. We have lots of data in databases. What we are looking at now is getting that data out and making it available to users. – kgoodwin Apr 17 '19 at 12:08
  • 1
    For example, the user selects a device and a date range. The webserver sends a request out to a separate Servlet handles the SQL and forming of the HTML element then sends it back to the webserver. I am looking for a good way to handle and load that returned HTML onto the page. – kgoodwin Apr 17 '19 at 12:11
  • IC IC; probably a good idea to update your question to reflect this, as not everyone will read the comments. In general, the more detailed the requirements you provide, the better quality answers you will get. Help us to help you :-) – Mawg says reinstate Monica Apr 17 '19 at 12:58
  • Are you willing to start again from scratch? I can agree that the server (PHP, i.m.o, but you could use JS as you will have to use JS on the client & may not want to learn 2 new languages) should filter data based on user / devices. That can probably be done with an unchanging MySql query. I don’t agree that it should be serving HTML, though. Let the client poll for data and then render that data; Angulat(Js) or Vue would be fine. Either of them can loop through nested data structures and display each in its own view/div. Or must it be an off the shelf solution? – Mawg says reinstate Monica Apr 17 '19 at 13:35

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.