[BETA] Hubitat Package Manager

Question, I have a few apps I installed via HPM without hub security. I'm contemplating adding hub security now. Will that have an impact on those apps already installed? or just going forward?

Nope. It just needs to be set correctly otherwise you can’t install or update stuff. You can change it any time as long as the HPM setting matches the hub’s setting

4 Likes

Question:
I tried to do a completly new install on a new machine.
I coped and pasted the app into apps, and tied to install and got errors:

Something is blocking dns for github. Do you use pihole or anything like that? If you paste the url it shows into a browser does it load?

Is there a way to see how many hubs are using or have installed a particular package in HPM? Would be good to know how popular a package is as well as feedback for the package developers as to how many people they have helped.

1 Like

This has come up before, and the answer is no, there is no tracking.

And I think many users here would be opposed to having their hubs "phone home" to say what apps were in use.

6 Likes

Not looking for how many are currently in use, but how many have downloaded it. Think of a page hit counter on a web page. It doesn't keep track of who has visited, just how many have visited. If a hub downloads a package, increase the download count by 1. Fairly simple, no specific tracking. Just a number associated with each package that is incremented by one every time it is downloaded.

No tracking.

3 Likes

Yeah there is no tracking at all. Even if I wanted to do that, this would mean creating a backend server to collect and store that information which would now cost me money to host. All this said, there is nothing preventing you from keeping track of downloads. At the end of the day, all HPM really does is download and install groovy files. So host those groovy files on your own web server instead of GitHub and keep your own download stats of how many people download the groovy file. There’s nothing that would prevent that from working.

6 Likes

Ah, I assumed that you were storing some info about all of the packages or somewhere when a user asks their repository to be added.

Is there a way to see how many times the file was downloaded in GitHub?

I wish to get my drivers into HPM

I've set things up in github and created my respository.json at https://raw.githubusercontent.com/scruffy-sjb/Hubitat_HPM/main/repository.json

I've unfamiliar with github and I can't create the Pull Request - no matter what I try the "Create Pull Request" button is greyed out..... a better explanation of what to do would be great.

Just installed a couple of test drivers from @JasonJoel and the logs were quite upset.
The drivers did install but it looks like others need to update their format?

app:2232022-01-15 17:12:46.115 warnInvalid category found null for https://raw.githubusercontent.com/michaelvandam/Hubitat/master/Networx-Alarm-System-Bridge/package/networkx-alarm-system-bridge-package.json

app:2232022-01-15 17:12:46.113 warnInvalid tag found Integrations for https://raw.githubusercontent.com/bsileo/hubitat_shinobi/master/packageManifest.json

app:2232022-01-15 17:12:46.106 warnInvalid tag found Integrations for https://raw.githubusercontent.com/KurtSanders/STAmbientWeather/master/hubitat/packageManifest.json

app:2232022-01-15 17:12:46.091 warnInvalid category found null for https://raw.githubusercontent.com/cjcharles0/Hubitat/master/packages/fibaro-fgs-224-package.json

app:2232022-01-15 17:12:46.079 warnInvalid category found null for https://raw.githubusercontent.com/cjcharles0/Hubitat/master/packages/fibaro-fgd-212-package.json

app:2232022-01-15 17:12:46.074 warnInvalid category found null for https://raw.githubusercontent.com/sburke781/hubitat/master/AlbumArtTile/packageManifest.json

app:2232022-01-15 17:12:46.069 warnInvalid tag found HomeKit for https://raw.githubusercontent.com/tonesto7/homebridge-hubitat-tonesto7/master/packageManifest.json

app:2232022-01-15 17:12:46.068 warnInvalid tag found Integrations for https://raw.githubusercontent.com/tonesto7/homebridge-hubitat-tonesto7/master/packageManifest.json

app:2232022-01-15 17:12:46.066 warnInvalid category found Convienence for https://raw.githubusercontent.com/tonesto7/homebridge-hubitat-tonesto7/master/packageManifest.json

app:2232022-01-15 17:12:46.054 errorjava.lang.NullPointerException: Cannot get property 'licenseFile' on null object on line 634 (method prefInstallVerify)

app:2232022-01-15 17:12:46.041 warnInvalid tag found AutoOff for https://raw.githubusercontent.com/jshimota01/hubitat/main/Drivers/virtual_inverse-able_switch/packageManifest.json

app:2232022-01-15 17:12:46.039 warnInvalid tag found Virtual for https://raw.githubusercontent.com/jshimota01/hubitat/main/Drivers/virtual_inverse-able_switch/packageManifest.json

app:2232022-01-15 17:12:46.037 warnInvalid tag found Integrations for https://raw.githubusercontent.com/tonesto7/echo-speaks/master/packageManifest.json

app:2232022-01-15 17:12:46.035 warnInvalid tag found Misc Devices for https://raw.githubusercontent.com/ernie/hubitat/main/apps/companion-cube/packageManifest.json

app:2232022-01-15 17:12:46.030 warnInvalid category found null for https://raw.githubusercontent.com/cjcharles0/Hubitat/master/packages/heatmiser-neostat-package.json

app:2232022-01-15 17:12:46.026 warnInvalid category found null for https://raw.githubusercontent.com/jakelehner/Hubitat/master/WyzeHub/packageManifest.json

app:2232022-01-15 17:12:46.023 warnInvalid category found null for https://raw.githubusercontent.com/augoisms/hubitat/master/weatherflow/packageManifest.json

app:2232022-01-15 17:12:46.021 warnInvalid tag found Integrations for https://raw.githubusercontent.com/tonesto7/echo-speaks/beta/packageManifestBeta.json

app:2232022-01-15 17:12:46.018 errorError downloading null: java.lang.IllegalStateException: Default URI is null, and no 'uri' parameter was given

app:2232022-01-15 17:12:46.018 warnInvalid category found null for https://raw.githubusercontent.com/augoisms/hubitat/master/sun-calc/packageManifest.json

app:2232022-01-15 17:12:46.015 warnInvalid category found Weather for https://raw.githubusercontent.com/imnotbob/Hubitat-4/master/NOAA/packageManifest.json

app:2232022-01-15 17:12:46.012 warnInvalid tag found Integrations for https://raw.githubusercontent.com/sburke781/hubitat/master/SensorPush/packageManifest.json

app:2232022-01-15 17:12:46.011 warnInvalid category found null for https://raw.githubusercontent.com/sburke781/hubitat/master/SensorPush/packageManifest.json

app:2232022-01-15 17:12:46.008 warnInvalid category found null for https://raw.githubusercontent.com/augoisms/hubitat/master/rainforest-eagle/packageManifest.json

app:2232022-01-15 17:12:46.006 warnInvalid category found null for https://raw.githubusercontent.com/augoisms/hubitat/master/somfy-zrtsi/packageManifest.json

app:2232022-01-15 17:12:46.004 warnInvalid category found null for https://raw.githubusercontent.com/cjcharles0/Hubitat/master/packages/fibaro-fgs-222-package.json

app:2232022-01-15 17:12:45.999 warnInvalid tag found Integrations for https://raw.githubusercontent.com/KurtSanders/STBitBarApp-V2/master/packageManifest.json

app:2232022-01-15 17:12:45.997 warnInvalid category found null for https://raw.githubusercontent.com/augoisms/hubitat/master/laundry-manager/packageManifest.json

app:2232022-01-15 17:12:45.993 warnInvalid tag found Integrations for https://raw.githubusercontent.com/sburke781/hubitat/master/TVHE_EPG_Importer/packageManifest.json

app:2232022-01-15 17:12:45.991 warnInvalid category found null for https://raw.githubusercontent.com/sburke781/hubitat/master/TVHE_EPG_Importer/packageManifest.json

app:2232022-01-15 17:12:45.987 warnInvalid category found null for https://raw.githubusercontent.com/cjcharles0/Hubitat/master/packages/alarm-bridge-package.json

app:2232022-01-15 17:12:40.892 warnInvalid category found null for https://raw.githubusercontent.com/michaelvandam/Hubitat/master/Networx-Alarm-System-Bridge/package/networkx-alarm-system-bridge-

Has anyone had any luck moving / renaming a packageManifest.json file? I was adding more packages and decided to put them all in a separate folder with names applicable to their purpose. I have it all published but my HPM installation is hanging onto the old url to the manifest. So when I try to do an update I get an error saying Bad Manifest and lists the old url. If I do a matchup which scans all the repos, it does not get any errors on my repo so the repository.json file is pointing to a good file.

I believe new installations will then point to my new file but old installations are stuck on the old file. Is there any way to force HPM to update this cache besides having people remove and reinstall the package, which would be problematic for people with a lot of devices.

I am thinking maybe if it the manifest is not found using the cached URL during an update or repair it should hit the repo file and get the URL from there, if its different update the cache and try again.

Only way I know of is to have everyone delete and reinstall HPM

1 Like

And then do a Match Up.

1 Like

Or if I have to, I implement my suggestion and do a pull request, then it would fix itself automatically. If the author will take pull requests I have no idea.

I’d happily merge PRs as long as it’s a good working solution. Your idea sounds fine but you’d need to implement this in a way that prevents some other developer from pointing a package to a different location for malicious reasons.

1 Like

Looking at what the app is saving for data, it looks like it might not be that easy to link it back to the original repo file so I see your concern. Maybe something as simple as an un-match would work, then you run a matchup and match it back to the repo, this would also work in an instance where an author stops a project and someone else forks it into another repo to continue it but keeps the same name. I have also had some where where the author stopped working on something and I made my own customizations so I wanted to unlink it from the original to avoid any accidental repair/updates.

I have had other packages where the matching got messed up somehow from authors making changes to things and I had to delete the package and reinstall it (although I never thought to delete HPM and do a match up again as well).

Anyway... I think the unmatch might be the safest way for now, so the user is in control. I would love if it could be automatic though, not all users are going to see the error in the logs and then visit the forum to see whats going on. I will dig into it if I can and try to come up with something.

1 Like

Justinl helped me get started with installing HPM.
Turns out I don't know how.
I copied a json manifest into the new app on HE but get errors.
Most likely I still don't know what I'm doing. Tried several URLs in the HE "new apps" but they didn't work either.

Grab the URL after location, click import, and paste it into the dialog box, click okay, save. Go to the Apps tab, click Add User App and select Hubitat Package Manager...

1 Like