Node-red weather services and dashboards

Nice Stephen

I’m not a fan of WU’s weather icons though, they always look a little scrappy around the edges, so I’ve done some development on a set of weather icons which are in a compatible format to Font Awsome, so that they play nicely with node-red, and can be resized, rotated or coloured via css.

Not sure how they would integrate with freeboard though.



how do you load yours in node-red for your weather and I will see of well they I can integrate in freeboard

I’ve described an example in the repo readme -


Also… you may wish to update your api url that retrieves the conditions.

If you use the api url as described in the WU guide (and your flow), you will not get nighttime icons, such as the one shown in my screenshot above.

There is a version 11 of the api available (which isn’t documented) that prefixes nighttime icons with nt_ so that nighttime icons can be displayed.

An example api url would be

I’ve added the corresponding WU nighttime icons to the css in my repo.

Hope this is helpful.


i get the current day and night conditions and the condition for the next 7days – currently my condition is nt_snow but i am not getting any display in dashboard ui I tried just inserting a base condition manually such as just snow or day_sunny but still no luck not sure where i went wrong. but currently it seams not to be working for me in dashboard ui

Here’s an example flow…

Firstly, as per the repo create your NR static directory & git clone the icon files;
cd && cd .node-red mkdir public cd public git clone

Now add your static directory to your NR settings file;

cd && cd .node-red nano settings.js

Then finally copy and import the attached example flow.

example flow.txt (1.5 KB)

NOTE, creating the static directory and loading it via the settings file might seem a bit of a pain just for a few weather icons, but once created, it can be used for many other things too in NR, such as loading other scripts, your own css, or even to hold images to display in your dashboards.


still does not work for me.
I even deleted everything and built fresh still nothing
all I get is this

I drop an image in the folder to see if I can bring it up. does not seam to work either
ie all I get is “can not get” so it does not seam to to be open to port ( maybe it only open internally)
but if I stick in freeboard ie: it displays fine

also within dashboard ui: ( template)
if is use img src="/freeboard/image.png" it works fine
but img src=“image.png” will not

something still seams missing: ( i restarted node-red too)

If I drop an image into the /home/pi/.node-red/public directory and then go to - I see the image in my browser.

Also, if I put <img style="width: 100%" ng-src="/minion.jpg"> then I see;

Just reading the notes on setting up a static directory, it say’s;

httpStatic - a local directory from which to serve static web content from. This content is served from the top level url, /.
When this property is used, httpAdminRoot must also be used to make editor UI available at a path other than /.

So if you edit settings.js
httpAdminRoot: '/admin',
Then after a restart you would access your flows editor at the URL
and leave free for any static content.

(I’d already done this to stop outsiders guessing my node-red URL)

Can you try that Stephen please.


humm still does not work. maybe since I am working from a basic raspberry image on an actual raspberry pi ( not my orangepi so it should be identical to what you are working with) and I think you are working with oem pi image. maybe there are other setting enabled that you were unaware of .
because i see my public folder exist on the pi - as if i enable authentication on the httpstatic and then try to access it . a log in dialogue pops up… it just does not serve anything for some strange reason …
are you willing to send me a copy of your setting.js just so I can compare the differences

I’ve PM’d you with it.

I’m not using the emoncms Pi image, my system was built from scratch with Jessie which has node-red pre-installed, so it’s pretty much a out-of-the-box default installation on a raspberry pi.

Static directories are a standard function in node-red which are used regularly for various things, so I’m at a loss why you are having these problems.

Maybe ask the experts in the node-red slack channel


okay i load node-red into a virtual machine. did the same above and it works fine. but with in this virtual machine i can not seam to install freeboard. all i get is errors for the freeboard

maybe my node.js or node-red is too current on the virtual machine – as the raspberry pi versions are significantly older then the ones on the virtualmachine

but it looks like perhaps freeboard is preventing the install of a static folder-- i will reflash my sd again and install clean with out freeboard and try again - and if it work s then try installing freeboard afterwards and see if it breaks it

You could always ask in the node-red slack board about Freeboard compatibility. I’m sure others there are using it too.

The node-red dashboard project is developing fast and to a high standard, so I’ve decided to use that instead of third party dashboards.
I’ve not yet finished the weather dashboard, but emoncms supplies the power data via MQTT.



Shouldn’t your “Home Usage Today, Power Generated Today” and “Power Diverted Today” units be kWh vice kW?

If you’re going to be like that, Bill, I’ll join in. :grinning:

I was thinking of switching to dashboard ui but i see it has issues to the graphing module, it seams to have a memory leak of some form. as i was building a 15 inch touch screen display from an old laptop screen that is connecting to my orange pi then place it on my wall to display the info continuously - but usually after an hour of displaying info then it starts getting errors and continues to pop script error dialogs . and the system slows right down to a stand still almost. then you restart and it good again for another hour… with freeboard I do not have that issue. i think it related to the 3 inputs into my graph they come different speeds. and the dashboard graph does not tolerate that very well . where as freeboard does not mind it

Ha ha, thanks guys, yes now sorted!

@stephen the memory leak issue has now been sorted as node-red now uses chartjs instead - see

The main current chart gripe is that you are limited to about 1500 points per chart, otherwise it starts to get bogged down.
The timing of the data shouldn’t really be a problem, because the data is stored in a JSON string together with the datapoint epoch.

There are benefits and disadvantages for both systems, and I suppose it comes down to personal choice.


Yep, guilty as charged. I’ve got to stop doin’ things half-way!

humm ???
another strange problem I ran into/ on my virtual machine when I do a git of weather-icons
i get this-
( the index.png was my test image)
but when i do a git on a pi - sorry minimal install so no graphical interface
I only get these folders or should i say this folder

and this was how it was on my other pi flash ( but with was a full install) only this single folder

oh well after a new pi flash from the newest pi image-- everything fully updated node-red ( 0.16.1)and node.js (6.9.4) the same versions as the virtual machine. the public folder still does not work for me- and confirms the newest node.js or node-red breaks freeboard because it no longer install with the newest version on the pi too

as to the memory leak in dashboard graph it still there unless they update in the last couple day again as it stalls out the system.

UPDATE: i got public and freeboard to work on the same system but had to manually install freeboard.
cd into node-red directory
and doing this to installed manually:

git clone
npm install freeboard
git clone
npm install node-red-contrib-freeboard.

no luck with the pi so I give up on that and just work from the virtual machine. then i just port to my orange pi later which install is more simular to virtual machine then the pi

well after 24 hrs or so I went another route - just a script that in freeboard that point to any icon set i want.