[RELEASE] Weather Dashboard App

Not that I should be avoiding steps, but I was tired of getting up to walk over to my Ambient Weather WS-5000 (or 4000 or 2000) console (or it's Ecowitt HP2561 sibling) to view the current weather outside. So with the help of Gemini and CODEX I put together a dashboard (app, device, and dashboard) that is visually similar, offering all of the same data (and just a little more).

Hubitat Weather Dashboard

My setup was originally an Ambient Weather WS-4000 with both indoor and outdoor air quality sensors, lightning detection, monitoring for all of our refrigerators and freezers along with a pool water temp sensor. I added to that a Ecowitt HP2561 to capture all of the same data and push that into Hubitat via the Ecowitt WiFi Gateway driver.

My Weather Dashboard App collects that ecowitt data, tracks trends, builds a near term forecast and then pushes formatted data to a dedicated Weather Dashboard Driver that is used by a Javascript custom dashboard tile. The Javascript dasbboard tile can be loaded using a Hubitat Dashboard or directly in any local network browser by loading the html file you will find in your File Manager (requires Maker API).

Despite nearly 30 years across commercial product engineering and InfoSec, I used AI to build the project; Gemini at first, but Codex ultimately to rebuild and polish. The goal was to force myself to be only the architect, driving AI to build a high quality product. Plus I wanted my weather data in a network accessible pretty format.

You can install it using HPM, Install -> URL -> https://raw.githubusercontent.com/sonoranwanderer/hubitat_weather_dashboard/main/packageManifest.json

Full setup and configuration instructions are at the GitHub repository Hubitat Weather Dashboard

This dashboard can actually use any weather data source so long as the data is exposed by attributes using 1 or more devices on your Hubitat system. Data mapping instructions are at the link above, the default mapping assumes Ecowitt WiFi Gateway. The dashboard appearance is customizable, order and sizes, including hiding sections you do not have the equipment for (eg Air Quality, lightning).

You can also interact with it, note the inline buttons for conversion of standard to metric units, and pause/resume and quick cycling of the ambient sensors.

Hate it? Love it? Think it could be a lot better in some particular way? Let me know.

Footnote: the forecast feature will report immediately, but requires some time to build the dataset to become useful. The app does the forecasting and keeps a rolling 30 day internal history. It's a simple, common algorithm.

I really like the sun tracker graphic. It would be really cool if it used the actual Diurnal Solar Curve, that is bell-shaped, like you actually get from your Ecowitt lux sensor if you graph it over time on a clear day.

You could maybe just plot lux or solar radiation as it comes in, and show it on the dashboard along with the ideal curve, instead of just using an arc. I graph my Ecowitt sensor against calculated lux, and it gives a clear history of the day for cloudiness.

image

You can get a lot of info about the day, just from looking back at these graphs. I'm not sure if that is anything you would want to add into the app, since lux is part of the weather stations, You are welcome to reuse any code from my illuminance driver that does the calculation of the curve, based on the user's Hubitat location data. AI was handy for me to figure out the calculations to get me solar radiation form the original SunCalc driver's altitude and azimuth calcs based on hub location, to get the expected lux value for any second of the day. That was the starting point for me to write the sky condition determination logic myself, such as it is :grimacing:

This looks really good.

Very nice. Not clear on what the hardware requirements are or whether this would work with some internet based weather source?

Love the look!
Can this use the weather data from the Hubitat integrated OpenWeatherMap driver?
You mentioned pool temp... I'm looking for an inexpensive way to get my pool temp into Hubitat :slight_smile:

The hardware requirements are any personal weather station (PWS) hardware that you can connect to Hubitat and expose the weather data as device attributes.

My hardware setup uses a the Ecowitt HP2561 console and the Ecowitt WiFi Gateway driver which created a (weather) device array in Hubitat for each of my sensors.

Not to create confusion, but I actually have a fully featured Ambient Weather WS-5000 setup with a number of accessory devices. Ambient Weather and Ecowitt share the same equipment manufacturer and wireless protocol. I added the Ecowitt HP2561 to my setup to also listen for all the Ambient Weather sensor devices because it has a local network only mechanism to push data to Hubitat (accepted by the Ecowitt WiFi Gateway driver).

As long as the weather data is exposed as a device attribute, then yes it should work. This Weather Dashboard App by default looks for common attribute names as exposed by the Ecowitt WiFi Gateway driver, however in the weather dashboard app configuration you can reconfigure (remap) all of that.

As for the pool temp, it's a device in my PWS setup. It (pool temp) shows up in the rotation of sensors in the upper right of the dashboard.

I pushed out two layout fixes. If you are using the HPM install method (see top post), simply run HPM updates.

  1. I did not realize the screen shots I posted were done using a custom layout instead of the default layout. So I made my custom layout the new default.
  2. I also added a default mobile layout optimized for portrait mode. Right now it is optimized for an iPhone Pro Max sized screen.

It is worth noting that you can define separate dashboard layouts for desktop, mobile, and tablet using the Weather Dashboard App -> Dashboard Setup page.

Mobile Default layout: