Dashboard app WIP for all you code tinkerers

For those of you like me who like to tinker with code, here’s some you can play with. Installation instructions are for a Raspberry Pi, but it was developed on my Ubuntu desktop and runs fine there with some tweeks, obviously.

I’ve been working on this on my days off and during extended weather holds over the last few weeks, and it’s been a lot of fun (and headaches, as these things always are).

Now that I’ve got installation instructions written and tested, I’m actually sidelining this project in favor of a new tack which will use Weatherflow’s websocket API and run in the cloud rather than locally.

That said, there’s a lot here that you might find interesting or useful if you want to build your own dashboard-style apps. I learned a ton while working on this, so who knows… Maybe something here will save you some headaches!

6 Likes

@doppler This is great! I’ve been meaning to make my own weather dashboard, and this would give me a HUGE head start. Thanks for sharing!

1 Like

Great help thank you Doppler. What source are you using for the winds at altitudes?
cheers Ian :slight_smile:

I pull it from an app I created, https://winds-aloft-json.herokuapp.com/ , which in turn gets the data by scraping it from NOAA’s Aviation Weather Center site, e.g. https://aviationweather.gov/windtemp/data?region=mia

1 Like

In the future, I’d like to get it from NOAA RAP, like Mark Schulze’s app does, but I haven’t figured out how to do that easily yet.

Thanks for taking the time to create and post this application (Dashboard) with great instructions.
There are many new things here that are on my list to learn including Grafana, InfluxDB, Docker all good stuff. This example application is a great way to get started in my journey of learning these tools.

I started with a Pi 4 32 Bit OS and hit a snag the first time around. I might have missed a step.
I started over with Pi OS 64 bit and got things up and running. It seems like 32 bit OS should have worked, but I did not try to figure out where things went wrong.

I have a couple of questions and comments.

In this step below.
Navigate to `http://your-raspberry-pi-ip-address:9000’, e.g., http://192.168.1.109:9000
I used port 9999 to connect to the Influx server. Is 9000 a typo, or did I make a mistake somewhere?

Once completed, the “Sample” dashboard was different than the screen-shot dashboard. I later discovered I have two dashboards running—one at port 3000 and one at port 5000.

Port 5000

Port 3000: This is the Grafana Editor, ok that makes sense.

If I wanted to edit the port 5000 Dashboard how do I access this DashBoard?

I use VNC to connect to the Pi and since the 64 Bit, Pi OS does not include RealVNC I installed TightVNC. I hit an issue when trying to run both the Docker container and the TightVNC on display 1.
When I attempt to connect to the PI on display 1 I get the Dashboard at port 5000. Does that make sense? I punted and configured TightVNC to listen on display 2 and am able to connect to the PI. I spent some time trying to determine why this occurs but I can live with it for now and move on.

Anyway, my next goal is to create a Dashboard using either the REST or Web Socket WF APIs. This process for me is also new and I need to read up on to do this.

Thanks again for getting me started.

2 Likes

Yes, port 9000 was a typo. As you found out, it should’ve been port 9999.

The dashboard running on port 5000 is simply a website whose contents are found in the ./dashboard directory. Start with index.html and you’ll find that it’s pretty simple… just a bit of plain-old javascript and some CSS.

I’ve pretty much given up using VNC to connect to a pi, personally. I use ssh, and since almost all development I do ends up being single-page web applications, I just point a browser at the app.

I’m working on a completely new dashboard application that uses the WebSocket API. There’s no documentation yet and it’s very specifically aimed at people who are interested in what the wind’s been doing and it’s pretty gross yet, code-wise, but you can browse the current code at https://github.com/doppler/weatherflow-dash/tree/main . It requires the Deno ( https://deno.land/ ) because I wanted to try that out, and is meant to be run in the cloud rather than on a local Raspberry Pi.

2 Likes

I see. I did look at ./dashboard contents I thought when I ran docker-compose build, the index.html was being built from a Grafana Generated Dashboard. Makes sense now. So really there are 2 examples here, one for Grafana and the single page website.

I will take a look at the other one as well.

Thanks for all the toys to play with.