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

The simplest path is to open HPM, click Repair, find HPM in the list and click Next.

  • Screen Shot 2022-07-25 at 2.57.31 PM
  • Screen Shot 2022-07-25 at 2.57.50 PM
  • Screen Shot 2022-07-25 at 2.58.26 PM

The latest code is downloaded into the Apps Code area. Since HPM is running at that moment, there's a rare chance that swapping the code out can cause a fault with the display of the "success" message. Imagine the code is at Line XX and then the code gets swapped. Instead of running line XX+1, it's running YY. It doesn't damage anything, it just gives a log message and sometimes, appears to hang. (No "Success" message.)

Click on Apps in the Left Menu and start HPM again.. check the running version shown in the upper left corner:
Screen Shot 2022-07-25 at 2.58.48 PM

An Update from 1.8.3 to 1.8.7 often has another cosmetic issue where two instances are shown. v1.8.7 has a new feature called UnMatch that, along with its other uses, also clears the two instances display.

Thanks - it took 2 tries like you said. The first attempt gave the following error and it never got to the "success" part.

Date/Time: 2022-07-25 19:21:41.116
Message: java.lang.NoClassDefFoundError: user_app_dcm_hpm_Hubitat_Package_Manager_58$_copyInstalledItemsToNewManifest_closure87 on line 3573 (method performRepair)

I then followed @thebearmay 's suggestion earlier on in the thread and did the repair again. It finished and the code is v1.8.7

Would this be in the Apps section? I'm not seeing a duplicate either there or in Apps Code section, so :crossed_fingers:

Thanks for your help

Click View Apps and Drivers at the bottom of HPM's menu. You might see:

Screen Shot 2022-06-12 at 7.46.42 AM

And now you have the method to fix it. :smiley:

2 Likes

Thanks - only seeing one listed!

Strange error, and the first time I'm seeing it. HPM is reporting that there are updates available, but they show as "Null" when listed.

image

any suggestions on how to fix? maybe uninstall the app and reinstall? I'm on Current Version: v1.8.7

Basically, use a more modern Platform release... and then that will probably raise another, answered by:

1 Like

Is there a plan to add in a Package Explorer type feature, or possibly take over the original?

Package explorer has been throwing errors(I assume since his other apps transitioned to Bundle Manager?). Although, maybe I'm just missing something. Is there a better way to search through HPM?

If you select add, it has some built in search features.

My history with HPM is mostly one of practicing the fine art of procrastination. The packages I was involved with at the time didn't fit HPM well. I have to admit even less demand to understand Package Explorer. Even today, I'm not sure what it did... I do know two things, it's mothballed and it was built to solve a problem that doesn't exist any more. @thebearmay points out that HPM gained external search features long ago and I enhanced (fast search) those when I chose to provide support.

I can say that I have no plan for that.

3 Likes

It's back! I've had several requests for this, so I've added it to Bundle Manager. :+1:

I too am a semi high functioning PRO-crastinator, so I fully get it.

I liked it because search was a little faster(at the time?) and I could compare app summaries. I just re-ran a few searches in HPM to see if I was missing something, and my original question seems to have stemmed from the perfect lineup of results with terrible descriptions. It just seemed like there was no info before having to commit to an install.

One thing I do like about the explorer results is that they include the community and github threads. It makes it easy to compare what is available in HPM before opening up the search to the general community.

Nice, good timing (or maybe I should have just waited a couple more days) for my question.

Just transferred it over to Bundle Manager.

Hello @csteele,

From what I have gathered, it appears you took over maintaining HPM, for this I am appreciated. I have also looked (not to deeply) to see if a feature has every been requested before for what I am about to see if it is possible.

TL;DR
So I was on HPM today and wanted to see what packages were available to install. I went with the use of tags to check out different packages. I found one I like about a 3rd down the list, clicked to install it and all went well as usual. But the problem now is, I couldn't go back to the packages I had originally clicked (which was several at a time) without having to re-click all the boxes I did before.

What I am looking to see is if there is a way to either click to download multiple packages at one time (kind of like we do when we update packages) or at the very least, allow for us to go back to the list of packages we were looking over to continue where we left off. Maybe even something like a cart feature, where we can add packages to a "cart" and then go to this "cart" when we are done looking and download all of them in the cart or remove the ones we decided not to use.

On a side note to this as well, wish there was a way to ready the full description and maybe see more in detail what the package does before we download it?

Again, thank you for taking over and thank you for what you have done. Because of this community, I have made my "Smart Home" the way I want it to be and not just what an echo system setup tells me I can do.

Stephen

2 Likes

I'm not sure your feature is possible, given the limits of Hubitat's GUI. (We don't invent our own Interface for Apps...) The Update Package list is limited by not being able to include free format text.

The words under each Package name on the Install screen is fully controlled by the manifest a developer creates.

Screen Shot 2022-08-29 at 9.02.15 AM

I've typed in short and long descriptions along the way, often dictated by how poorly I can describe a package that I otherwise know everything about :smiley:

This 'level' of the manifests contains a Description field (which is what is displayed under the Package name,) while it doesn't exist in the PackageManifest level, yet that is where the URL to any documentation does exist.

One of my main goals in 'taking over' was: do NOT create a breaking change.

Dominic drew a line when he said that the Manifest structure was complete. He received good support for that because it meant that Developers were able to "create once, use forever" manifests. Altering that would be larger than I'm contemplating, since it would also alter 'hpm -- the tool for creating manifests'

A small little tool called Hubitat Package Manager Tools has been provided which assists in the creation of these files. On Windows simply run

hpm.exe --help

and on MacOS and Linux run

./hpm --help

Underlying all of the above is the fact that I like the idea(s) -- mostly due to it being of benefit to new users. HPM does have a 'one-at-a-time' orientation and that comes from its history when discovery of a package was via the Community alone. Then you'd find the package in HPM and install it. The use of HPM as a discovery tool is somewhat new.. and useful too.

4 Likes

Hi @csteele thanks for all of your work on HPM, it is a tool the platform badly needs for discoverability. I listed some driver in HPM a while back and everything worked as expected. Just a few days ago I released my first app and as it's dependent on the use of said drivers I thought I would put it in the same package.

I used the HPM tool to add the App: section and details and everything seemed to go fine and the JSON checked out. However when I go into HPM I never see the newly added app. I've tried an un-match and re-match but no success.

The repository in question is here and the new app is listed at the top.

I did find your documentation and read it but did not get the aha moment. Would you mind taking a look and letting me know what I'm doing wrong.

Thanks.

I’ll second the thanks to @csteele for keeping HPM going after Dominick decided to switch to another home automation platform.

But I would also add that the platform has a pretty simple interface for installing built-in drivers and apps. The ability to add custom code written by community developers is a really great bonus feature.

But based on public statements they’ve made, the staff have concluded they do not intend to get into the business of supporting/featuring/selling/[insert verb here] community-developed code, for a variety of reasons.

So while HPM is really useful for users that choose to install groovy code on their hubs that isn’t baked into the hub firmware, it’s, IMHO, a stretch to say it’s “badly needed.”

1 Like

You're welcome and thanks for that...

Let's not get carried away on the thanks to ME.. it's still almost entirely Dominic's skill and determination. I've added just 'a brush stroke or two'.

I appreciate that it's a relief that someone (anyone) is keeping it going, I suspect that more than a few are still on 1.8.2 (Dominic's last version.) There's roughly 100 unique visitors to the repo and that really does back up your

:smiley:

HPM makes it easy ONCE you cross over into Community offered code...

4 Likes

I'm not detecting anything wrong...

  • Screen Shot 2022-09-10 at 9.21.23 AM

I search for and find the Package.... select it for install...

And get offered a choice of one App and a lot of drivers.

What did I do wrong? :smiley: I might suggest that calling it a package of drivers is now a misnomer but it doesn't change what's in it :smiley:

Sorry to have wasted your time. My severe refrigerator blindness has now spread to the computer. I just kept looking at the wrong place as that was where I was used to looking for all my prior updates.

While I have your attention though this is how HPM looks.


Is there a way to have the driver versions report correctly. I saw your comment about not mixing and matching the version usage but it's very helpful in just mentally tracking what is in a package, even if the versioning (at the component level) is not actually used in any computations for versioning control.

Mine looks different....

Screen Shot 2022-09-10 at 12.44.43 PM
..
..
..
Screen Shot 2022-09-10 at 12.50.09 PM

Even where our packages overlap...

But help me understand.. is MY screen cap what you're asking for or did I focus on the wrong difference?

UPDATE: I added some of your code to my development hub and get these lines:

Screen Shot 2022-09-10 at 2.34.52 PM

That looks right to me. I specifically selected the Eight Relay because it's not v1.0.1