[Release] Hub Information Driver Aggregation App

This application is an addon for the [RELEASE] Hub Information Driver that allows someone to create a custom view of all of their Hub Information Driver Instances and see them in one place, and optionally create a child device (or override the Hub Information Driver html attribute) that contains the resultant HTML attribute for use on the dashboard.

Also permits the establishment of alerts for Temperature, Free Memory, and DB size.

Should be available in HPM, or you can import directly:
Apps Code:
https://raw.githubusercontent.com/thebearmay/hubitat/main/apps/hubInfoAggregation.groovy
Drivers Code:
https://raw.githubusercontent.com/thebearmay/hubitat/main/apps/hubInfoAggDev.groovy

image

11 Likes

@thebearmay In another thread using this driver someone posted with gauges on their dash. How was that done?

There are a couple of ways to do graphs and gauges:

  1. Hubigraphs: Hubigraphs 4.8 (The Final Chapter)
  2. Node-Red Dashboards
  3. InfluxDB with Grafanna
  4. webCoRE graphs

You can also do some awesome graphs using Home Assistant.

5 Likes

0.5.0 Changes:

  • Code cleanup.

  • Added the capability to replace the html attribute in the Hub Information device(s) with the html generated from the app (requires Hub Information Driver 2.6.0+) - turn off the HTML creation in the driver if you use this as they will keep replacing each other.

  • Also added the option to generate notifications based on Free Memory, Temperature, and DB Size.

  • Replaced scheduled polling with subscriptions to the hub(s) being aggregated.

Hello friend, I get this, and I have done everything as you put it

Looks like you need to go into the Hub Information Device and turn on polling for the Load, CPU and database down under Preferences.

and to put it on the dashboard

For the dashboard use the Attribute tile template and select the html attribute from the Hub Information driver.

it does not appear on devices

I don't get the html attribute.

Did you go into the Apps tab and add the device to the dashboard application before going to the dashboard itself?

if everything is correct and working, thank you very much

1 Like

@thebearmay, anyway to install multiple instances of this app/device?

I’m asking because I’d like to aggregate 6-8 metrics for 5-6 hubs. If I do, though, I break the dreaded 1024 dashboard threshold. So I figured I’d break it up into two “aggs”, either by hub or by dividing the metrics into 2 sets. When I try to clone the app or just install it twice, I get DNI conflict errors. Stuck.

Was thinking I could:

  • fork your app code into a second version with a different static DNI
  • run the agg app/device on two separate hubs and then hub-mesh them together to put them on a dashboard side-by-side
    ….or maybe there’s some simple way for you to make the app multi-instance / parent-child? Not sure how hard that is.

Appreciate any ideas….

I just did a similar 1024 break for another app, so I could adapt it similarly; also could allow. you to change the name/app label which would allow multiple instances of the app to be running and use the appID to generate the DNI; or do both :smiley:

1 Like

You’re seriously losing a step — took you nearly nine whole minutes to respond. Sheesh :wink:

Sounds great (either or both). LMK if you want a beta tester!

1 Like

Found a better way v1.0.4 utilizes local file space to allow display of data over 1024 via an iframe. (Also added multiple app instance capability.)

2 Likes

Love your solution, however when I flip the switch in the app setup to create the html device, I keep getting the below error. Feel like I'm making a mistake somewhere. I've tried it a few times and no joy. I did make sure pre-existing instances of the app and device were wiped clean first.

Error: Cannot invoke method sendEvent() on null object

I missed a reference to the child device. Just pushed up a new version that should fix it. After updating remove the child device and recreate it (it has a new DNI format) - should work after that.

1 Like