Dashboard for Raspberry Pi with Node-Red

2017-01-16

It has been a while I wanted to have a simple dashboard to control some basic functions of my raspberry pi(s). Ideally, I would write a lot of code, bake a beautiful UI for mobile phones, etc… But this will never be finished of course! Since I wanted to give a try to Node-Red, I spent some time on it and realize that it has what I would need for my RPi without adding (almost) a line of code and it can even give me a very decent user interface.
Let’s look at it!

Recently I discovered Cayenne MyDevices and I was pretty impressed by the service. I am not sure though I will use it for a few simple reasons: 1) it is not open source, 2) the business model is not very clear (no pricing announced yet…) and finally 3) if the company goes bankrupt, you end up with useless and expensive devices that are not “smart” anymore :-(. Anyway, I am sure there is a business for them.
Cayenne My Devices
I then looked at Blynk, it is mobile only (no webbapp) but really well done too. I played with it but came very quickly to the need to buy “credits” to do more stuff. At least their business model is identified here. I am probably going to use it for one of my programming class for creative students since it is very straight forward. The library is open source but it uses their servers and again, I am not sure I was fully comfortable with that (again, it is also a good solution, no bashing here).

Blynk

Of course, the solution was not to re-invent the wheel (too lazy for that and not enough time anyway). But I soon realized that Node-Red could fit my need easily (and after all it is javascript based…). I gave it a try and started to see that I could use it for a lot of (Io)Things! Here is a screenshot of the node-red flow (you can get it here):

Node-Red Flow for Raspberry Pi

…and here is what you got (http://pi-ip:1880/ui by default):

Node-Red Dashboard for Raspberry Pi

It is only a beginning and I hope I (or someone else) will add more features in the coming future. I could see a few things to add:

  • search and install package on the Pi (sudo apt-get…),
  • if you run a database, probably some info about your db,
  • take/view a photo when there is a camera available,
  • add auth to the app, etc…

On my side, I am going to use one of my Pi as an MQTT server and another one as a development machine. I am pretty sure I will use this flow on node-red to help me on their management sometime.
I must emphasize again that it is my first real test of Node-red and everything might not be perfect, I am open to any feedback.