And so it was that I stumbled on RGraph – or put another way, Christmas for widget-lovers.
If you’ve been following these blog entries you’ll know that Node-Red has TEMPLATES in the UI – and that you can put your own stuff into the templates and that recently the fog has lifted on getting variables in and out of the templates.
In recent blogs I’ve been constantly improving a thermostat control page and that took me off looking for a gauge with two pointers – one to show temperature, the other to show humidity.
And that’s when I stumbled upon RGraph. If you read this – and understand it – you will open the doors to a boatload of gauges, thermometers, charts and graphs so tuck in:
So – then I dropped in a template – made it 6*6 and inside that template I put this lot – code shown below.
Now, if you don’t like my colours – change them. You can change just about anything including the size but you may need to adjust the font size if you do that. Experiment!
To change the two pointers – which I’ve chosen to call temperature and humidity – you might use them for petrol and oil – or whatever….I simply pass MSG as is common in Node-Red – but not msg.template – instead msg.temperature and msg.humidity – you can call them whatever you like.
The point of this is not to demonstrate my crap taste in colours – once you follow what I’ve done here – that entire, massive library of CANVAS-related gauges and charts is yours for the taking! You can make the gauges interactive – but as I had two, not one pointers in this example, I skipped that. Details are in the extensive RGraph documentation. Copy me and drop them an encouraging lines to say MORE IOT PLEASE!!
Oh and if you don’t like animation – where I say “grow” say “draw”.
(As an aside, I got this working today as well – https://www.codeproject.com/Articles/304874/HTML-Canvas-Aqua-Gauge) very pretty but doesn’t scale well.
Prerequisites: Far too often in blogs like this we “assume” that everyone is keeping up – if not – may I suggest a quick look at this page I put up specifically to give a little background – which might help explain this article.
[pcsh lang=”js” tab_size=”4″ message=”” hl_lines=”” provider=”manual”]