[RELEASE] Hubitat Package Manager (HPM) -- HubitatCommunity

Noticed this today...there's no way back from the Unmatch screen if you decide you don't need to, or don't find the app/driver your're looking to unmatch in the drop-down. Only way to get out is to click on the "Apps" or other left-menu item and start over.

If you try to use your browser Back command you get this, hitting back again takes you out of the app and you have to start again.

The Unmatch screen is missing the "Main Menu" option that is available on the Repair screen:

When there is some spare time...

It will be interesting to get @csteele view on this.

Personally i don't think this belongs in HPM. My reason is a bit broader then HPM. I actually don't think it makes sense for any app to tell you what it isn't doing.

I think i understand why you want it, but i don't think HPM should be the way to get it.

Agreed. As I mentioned, I'd rather it be a separate app. However, there is a lot of code duplication to see what's in HPM and to ignore those. I've generated a pull request so @csteele can take a look. If something comes out of it, integrated or separate, great. If not, I have a tool that's already helped me go through 110+ manually installed apps and drivers, update them, and get rid of some unused ones.

I have very mixed feelings about adding 'what the app isn't doing'...

On the outside layer of the onion: the submitted PR in fact doesn't work... at least for my collection of Apps and Drivers. It offers a list of 'unmanaged apps' that includes code that is also showing in the list of managed apps. So... something about the 'subtraction' isn't correct. I don't care too much about this because it's just programming and can be resolved, I assume.

At the next layer of the onion is platform changes that may affect this in a future release.

On the third layer of the onion is the issue that @mavrrick58 brings up.. the applicability. HPM is, at it's core a Code Management Tool. It does provide, via MatchUp, a glimpse at the code on your hub that CAN be managed by HPM. I'm not convinced that code that cannot be managed by HPM is something that HPM needs to explore. If a developer doesn't want their code managed by HPM, or has left the scene, then knowing that an app/driver isn't available in HPM seems like a difficult leap to make with a goal. Is there a developer that hasn't heard of HPM? Is there a developer, daunted by the HPM Manifest syntax, that hasn't heard that I'm eager to help?

For today, Sunday, April 12, I'm not convinced the PR is usable, and that the concept behind it provides actionable data. I'm a developer and I do know what Packages I have NOT added to HPM. I'm also aware of how to change that (hpmArchitect) and probably won't based on my perceived value of 'yet another xx in HPM'.

On my Development Hub, I have 20 App Code entries. When I run the provided code, I get 7 App Code items as "UnManaged Apps" of which 3 are correct, 4 are not. In my particular case, because I'm still a HubConnect user, the UnManaged Drivers list is dominated by HubConnect stub drivers. (Got added via an HPM Bundle.)

When I saw this possible addition come up, I was interested in running it to figure it what code I have that is not being managed by HPM. Because that code is not being updated by me... And the bigger value is HPM to me is knowing when code needs updating. There are a couple of things I use that didn't come via HPM and need manual updates... And if forget that they are!

If you try to be everything to everyone, you end up being nothing to anyone.

Using only portions of the PR, I added a new button at the bottom of View Apps and Drivers page.

Released: v1.9.11

For me, it's not fully accurate, probably because some of my code (HubConnect) is installed via Bundles. It might be more usable in your environment.

Nice implementation of that feature - I like how you blended that in. And it works great (for me anyway :sweat_smile:).

Hat tip to you and Neerav both!

Agree, very nicely done.

And...I am completely shocked by how many apps and drivers I've installed manually.

It's a dessert topping AND a hair gel, AND a floor wax.

Thank you! I had more manually installed things than I thought I did.

One of them (Device Status Announcer Child 2.x) is left over from when I updated the app with HPM.

Another (Date & Time Parser) seems that HPM got unmatched from it (I updated it via HPM just last month I think). I ran match-up to get it back.

Several apps/drivers show up errantly, such as Sensor Groups.

Output

Manually Installed Apps

  • Activity Viewer
  • Device Status Announcer Child 2.x
  • Device Time Active Tracker
  • Device Time Active Tracker Child
  • Google Sheets Logging
  • Light Usage Table
  • Sensor Groups+_Contacts for House Fan
  • Simple Device Viewer
  • Simple Event Logger
  • Simple State Machine Instance
  • Simple State Machines
  • Target indoor humidity calculator

Manually Installed Drivers

  • Date & Time Parser
  • GE/Jasco Smart Switch
  • Iris Smart Plug
  • Iris Z-Wave Repeater
  • SSM Event
  • SSM State
  • Sensor Groups+_Virtual CO Detector
  • Sensor Groups+_Virtual Contact Sensor
  • Sensor Groups+_Virtual Motion Sensor
  • Sensor Groups+_Virtual Smoke Detector
  • Sensor Groups+_Virtual Water Sensor
  • Tuya Zigbee Switch
  • Utilitech Water Sensor
  • Virtual Power Energy Meter
  • Virtual Power Plug
  • Virtual Switch with Contact - Alexa
  • Virtual Switch with Motion - Alexa
  • Xiaomi Aqara Temperature and Humidity Sensor
  • Xiaomi Aqara Wireless Mini Switch
  • Xiaomi Mijia Smart Light Sensor
  • Z-Wave Binary Firmware Updater
  • Zigbee Reporting Configuration

I am going to have to agree with you on this....... I am disappointed in myself. LOL

gotten myself hosed up -
I created a new device driver and it is not working quite right.

https://raw.githubusercontent.com/jshimota01/hubitat/main/Drivers/astro_meteor_seasons/astroMeteorSeasons.groovy

I hit repair on it and it acts if it finishes, but the version doesn't update. If I do the updates button and select it I get a server 500 error. Can anyone point at my flaw?
Thanks.

I wonder if you know what HPM does?

Install will add code to the hub and update the HPM internal db with the version info.
Update will update code already on the hub and update the HPM internal db with the version info.
Repair will re-add code already on the hub.
Uninstall will remove code from the Hub and update the HPM internal db with the version info.

Notice that a Repair is NOT intended to update the HPM internal db with the version info.

I tried installing your code to my development hub and it worked, as did repair and uninstall. I'm unable to test Update because for me, there's no change to the Manifest from my hub's view.

However, I'd suggest changing "required": "false", because set to false tells HPM there are Multiple Drivers in the package and THIS one is optional, causing the select-a-driver screen:
Screenshot 2026-05-13 at 7.33.55 AM

Which, for one driver is not the ideal user experience. :smiley:

The paths check out. I noticed on your package Manifest hubitat/Drivers/astro_meteor_seasons/packageManifest.json at main · jshimota01/hubitat · GitHub you have the version in two places, I would suggest just using the top level version unless you have individual files in a package that need their own versions. You only need the version in one place, either up top or with each file.

Looks like on this commit you fixed the URL path in the main repo file: fixed typo · jshimota01/hubitat@493eb11 · GitHub However if you added the package in HPM before that fix it will be stuck with the wrong path. When the package is added it stores that manifest location (URL) in HPM and does not ever update it again from the main repo file. You would need to unmatch the package and then match it again so the correct path gets pulled in for the manifest.

this explanation sounds exactly like what got me wedged. I'll correct it on my hub tonite. thanks.

I'm repaired. I completely forgot about the unmatch - it was needed in this case. thank you @jtp10181

I am getting errors for almost all updates I try to complete with HPM.

Here is the log from my most recent attempt to update something:

The message HPM shows me is this:

I cleared the cache in the browser, but it did not help.

Any ideas?

Try running a repair on any that are getting errors, sometimes that will force it through.

That works, but strange that it needs to be done for every package.
I am on version 1.9.11 - is that the latest?