Giter VIP home page Giter VIP logo

hubitat-packagemanager's People

Contributors

bptworld avatar csteele-pd avatar dcmeglio avatar imnotbob avatar prayerfuldrop avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

hubitat-packagemanager's Issues

Change UI on how apps/drivers are selected

It would be nice to see a list of what is available prior to making a selection. The categories are not intuitive and apps/drivers could be anywhere. A simple list of the repository results broken into categories could be a better UI. Also check boxes next to desired installs would be better than a drop-down selection of only (1) app.

Still creates duplicates!

Are you making separate copies because the current version doesn't match or something?

This is in my test&dev, but it is still painful to recover from - I have to copy the new file content back into the old file content, then delete the new file

image

image

...
app:25942020-04-14 11:51:05.410 am debugprefPkgView
app:25942020-04-14 11:50:58.316 am debugcalled true
app:25942020-04-14 11:50:42.516 am infoMatching up packages
app:25942020-04-14 11:50:42.143 am infoRefreshing RMoRobert (BertABCD1234)
app:25942020-04-14 11:50:41.710 am infoRefreshing storageaanarchy (SANdood)
app:25942020-04-14 11:50:39.052 am infoRefreshing dman2306
app:25942020-04-14 11:50:36.265 am warnFound a bad manifest https://raw.githubusercontent.com/bptworld/Hubitat/master/Apps/Life360%20Tracker/packageManifest.json
app:25942020-04-14 11:50:33.104 am infoRefreshing BPTWorld
app:25942020-04-14 11:50:31.577 am infoRefreshing AaronW
app:25942020-04-14 11:50:29.977 am infoRetrieving list of installed drivers
app:25942020-04-14 11:50:29.456 am infoRetrieving list of installed apps
app:25942020-04-14 11:50:29.344 am debugPerforming Package Matching
app:25942020-04-14 11:50:26.446 am debugprefPkgMatchUp
app:25942020-04-14 11:50:23.337 am debugcalled true
app:25942020-04-14 11:50:20.269 am debugcalled false
app:25942020-04-14 11:50:20.182 am debugfalse
app:25942020-04-14 11:50:18.242 am infoInstalling Ecobee Suite Sensor
app:25942020-04-14 11:50:18.168 am debugtrue
app:25942020-04-14 11:50:16.172 am debugtrue
app:25942020-04-14 11:50:14.481 am debugtrue
app:25942020-04-14 11:50:12.462 am debugtrue
app:25942020-04-14 11:50:10.445 am debugtrue
app:25942020-04-14 11:50:08.605 am debugtrue
app:25942020-04-14 11:50:06.573 am debugtrue
app:25942020-04-14 11:50:04.632 am debugtrue
app:25942020-04-14 11:50:02.641 am debugtrue
app:25942020-04-14 11:50:01.150 am infoInstalling Ecobee Suite Thermostat
app:25942020-04-14 11:50:00.209 am debugtrue
app:25942020-04-14 11:49:58.811 am debugtrue
app:25942020-04-14 11:49:56.273 am debugtrue
app:25942020-04-14 11:49:54.810 am infoInstalling ecobee Suite Working From Home
app:25942020-04-14 11:49:54.183 am debugtrue
app:25942020-04-14 11:49:52.287 am debugtrue
app:25942020-04-14 11:49:50.177 am debugtrue
app:25942020-04-14 11:49:49.285 am infoInstalling ecobee Suite Thermal Comfort
app:25942020-04-14 11:49:48.212 am debugtrue
app:25942020-04-14 11:49:46.549 am debugtrue
app:25942020-04-14 11:49:44.282 am debugtrue
app:25942020-04-14 11:49:42.931 am debugtrue
app:25942020-04-14 11:49:40.879 am infoInstalling ecobee Suite Smart Zones
app:25942020-04-14 11:49:40.172 am debugtrue
app:25942020-04-14 11:49:38.206 am debugtrue
app:25942020-04-14 11:49:37.320 am infoInstalling ecobee Suite Smart Vents
app:25942020-04-14 11:49:36.177 am debugtrue
app:25942020-04-14 11:49:35.523 am infoInstalling ecobee Suite Smart Switches
app:25942020-04-14 11:49:34.400 am debugtrue
app:25942020-04-14 11:49:32.162 am debugtrue
app:25942020-04-14 11:49:31.347 am infoInstalling ecobee Suite Smart Room
app:25942020-04-14 11:49:30.193 am debugtrue
app:25942020-04-14 11:49:28.149 am debugtrue
app:25942020-04-14 11:49:26.606 am infoInstalling ecobee Suite Smart Mode
app:25942020-04-14 11:49:26.146 am debugtrue
app:25942020-04-14 11:49:24.381 am infoInstalling ecobee Suite Smart Humidity
app:25942020-04-14 11:49:24.349 am debugtrue
app:25942020-04-14 11:49:22.265 am debugtrue
app:25942020-04-14 11:49:21.325 am infoInstalling ecobee Suite Smart Circulation
app:25942020-04-14 11:49:20.240 am debugtrue
app:25942020-04-14 11:49:18.288 am infoInstalling ecobee Suite Routines
app:25942020-04-14 11:49:18.192 am debugtrue
app:25942020-04-14 11:49:16.207 am debugtrue
app:25942020-04-14 11:49:15.519 am infoInstalling ecobee Suite Quiet Time
app:25942020-04-14 11:49:14.219 am debugtrue
app:25942020-04-14 11:49:11.322 am debugtrue
app:25942020-04-14 11:49:09.458 am debugtrue
app:25942020-04-14 11:49:09.441 am infoInstalling ecobee Suite Open Contacts
app:25942020-04-14 11:49:07.260 am debugtrue
app:25942020-04-14 11:49:05.305 am debugtrue
app:25942020-04-14 11:49:03.211 am debugtrue
app:25942020-04-14 11:49:01.393 am debugtrue
app:25942020-04-14 11:49:00.236 am debugtrue
app:25942020-04-14 11:48:58.144 am debugtrue
app:25942020-04-14 11:48:56.193 am debugtrue
app:25942020-04-14 11:48:54.171 am debugtrue
app:25942020-04-14 11:48:52.395 am debugtrue
app:25942020-04-14 11:48:50.268 am debugtrue
app:25942020-04-14 11:48:48.166 am debugtrue
app:25942020-04-14 11:48:46.186 am debugtrue
app:25942020-04-14 11:48:44.661 am debugtrue
app:25942020-04-14 11:48:42.185 am debugtrue
app:25942020-04-14 11:48:40.345 am debugtrue
app:25942020-04-14 11:48:38.254 am debugtrue
app:25942020-04-14 11:48:36.259 am debugtrue
app:25942020-04-14 11:48:34.373 am debugtrue
app:25942020-04-14 11:48:32.448 am debugtrue
app:25942020-04-14 11:48:30.571 am debugtrue
app:25942020-04-14 11:48:28.267 am debugtrue
app:25942020-04-14 11:48:26.794 am debugtrue
app:25942020-04-14 11:48:24.773 am debugtrue
app:25942020-04-14 11:48:22.505 am debugtrue
app:25942020-04-14 11:48:20.537 am debugtrue
app:25942020-04-14 11:48:18.230 am debugtrue
app:25942020-04-14 11:48:16.630 am debugtrue
app:25942020-04-14 11:48:14.198 am debugtrue
app:25942020-04-14 11:48:11.269 am debugtrue
app:25942020-04-14 11:48:09.432 am debugtrue
app:25942020-04-14 11:48:07.241 am debugtrue
app:25942020-04-14 11:48:05.211 am debugtrue
app:25942020-04-14 11:48:03.294 am debugtrue
app:25942020-04-14 11:48:01.208 am debugtrue
app:25942020-04-14 11:47:59.208 am debugtrue
app:25942020-04-14 11:47:57.463 am infoInstalling Ecobee Suite Manager
app:25942020-04-14 11:47:57.190 am debugtrue
app:25942020-04-14 11:47:57.083 am infoDownloading Ecobee Suite Sensor
app:25942020-04-14 11:47:56.843 am infoDownloading Ecobee Suite Thermostat
app:25942020-04-14 11:47:56.609 am infoDownloading ecobee Suite Working From Home
app:25942020-04-14 11:47:56.326 am infoDownloading ecobee Suite Thermal Comfort
app:25942020-04-14 11:47:56.108 am infoDownloading ecobee Suite Smart Zones
app:25942020-04-14 11:47:55.885 am infoDownloading ecobee Suite Smart Vents
app:25942020-04-14 11:47:55.466 am infoDownloading ecobee Suite Smart Switches
app:25942020-04-14 11:47:55.237 am infoDownloading ecobee Suite Smart Room
app:25942020-04-14 11:47:55.190 am debugtrue
app:25942020-04-14 11:47:54.996 am infoDownloading ecobee Suite Smart Mode
app:25942020-04-14 11:47:54.778 am infoDownloading ecobee Suite Smart Humidity
app:25942020-04-14 11:47:54.562 am infoDownloading ecobee Suite Smart Circulation
app:25942020-04-14 11:47:54.317 am infoDownloading ecobee Suite Routines
app:25942020-04-14 11:47:53.900 am infoDownloading ecobee Suite Quiet Time
app:25942020-04-14 11:47:53.602 am infoDownloading ecobee Suite Open Contacts
app:25942020-04-14 11:47:53.265 am infoDownloading Ecobee Suite Manager
app:25942020-04-14 11:47:53.081 am debugInstall beginning
app:25942020-04-14 11:47:53.079 am debugprefInstall
app:25942020-04-14 11:47:53.053 am debug
app:25942020-04-14 11:47:44.368 am debugprefInstallVerify
app:25942020-04-14 11:47:42.870 am debugprefInstallChoices
app:25942020-04-14 11:47:37.861 am debugprefPkgInstallUrl
app:25942020-04-14 11:47:33.986 am debugprefPkgInstall
app:25942020-04-14 11:47:28.899 am debugcalled true
app:25942020-04-14 11:47:23.675 am debugprefPkgModify
app:25942020-04-14 11:47:17.729 am debugcalled true
app:25942020-04-14 11:47:01.177 am debugprefPkgView
app:25942020-04-14 11:46:50.365 am debugcalled true
app:25942020-04-14 11:46:50.135 am debugRefreshing repository list
app:25942020-04-14 11:46:35.881 am debugcalled true
app:25942020-04-14 11:46:23.951 am debugprefInstallChoices
app:25942020-04-14 11:46:18.168 am debugprefPkgInstallUrl
app:25942020-04-14 11:46:10.834 am debugprefPkgInstall
app:25942020-04-14 11:45:58.488 am debugcalled true
app:25942020-04-14 11:45:52.207 am debugUpdates available
app:25942020-04-14 11:45:51.158 am debugUpdates found for package https://raw.githubusercontent.com/bptworld/Hubitat/master/Apps/Follow%20Me/packageManifest.json
app:25942020-04-14 11:45:50.965 am infoChecking for updates for Follow Me
app:25942020-04-14 11:45:50.962 am debugUpdates found for driver https://raw.githubusercontent.com/SANdood/Ecobee-Suite/master/devicetypes/sandood/ecobee-suite-sensor.src/ecobee-suite-sensor.groovy -> https://raw.githubusercontent.com/SANdood/Ecobee-Suite/master/packageManifest.json
app:25942020-04-14 11:45:50.959 am debugUpdates found for driver https://raw.githubusercontent.com/SANdood/Ecobee-Suite/master/devicetypes/sandood/ecobee-suite-thermostat.src/ecobee-suite-thermostat.groovy -> https://raw.githubusercontent.com/SANdood/Ecobee-Suite/master/packageManifest.json
app:25942020-04-14 11:45:50.951 am debugUpdates found for app https://raw.githubusercontent.com/SANdood/Ecobee-Suite/master/smartapps/sandood/ecobee-suite-smart-mode.src/ecobee-suite-smart-mode.groovy -> https://raw.githubusercontent.com/SANdood/Ecobee-Suite/master/packageManifest.json
app:25942020-04-14 11:45:50.947 am debugUpdates found for app https://raw.githubusercontent.com/SANdood/Ecobee-Suite/master/smartapps/sandood/ecobee-suite-smart-circulation.src/ecobee-suite-smart-circulation.groovy -> https://raw.githubusercontent.com/SANdood/Ecobee-Suite/master/packageManifest.json
app:25942020-04-14 11:45:50.943 am debugUpdates found for app https://raw.githubusercontent.com/SANdood/Ecobee-Suite/master/smartapps/sandood/ecobee-suite-routines.src/ecobee-suite-routines.groovy -> https://raw.githubusercontent.com/SANdood/Ecobee-Suite/master/packageManifest.json
app:25942020-04-14 11:45:50.939 am debugUpdates found for app https://raw.githubusercontent.com/SANdood/Ecobee-Suite/master/smartapps/sandood/ecobee-suite-open-contacts.src/ecobee-suite-open-contacts.groovy -> https://raw.githubusercontent.com/SANdood/Ecobee-Suite/master/packageManifest.json
app:25942020-04-14 11:45:50.749 am infoChecking for updates for Ecobee Suite
app:25942020-04-14 11:45:50.579 am infoChecking for updates for PurpleAir Air Quality Station
app:25942020-04-14 11:45:50.576 am debugUpdates found for package https://raw.githubusercontent.com/dcmeglio/hubitat-packagemanager/master/packageManifest.json
app:25942020-04-14 11:45:50.414 am infoChecking for updates for Hubitat Package Manager
app:25942020-04-14 11:45:50.262 am infoChecking for updates for MeteoBridge Weather Station
app:25942020-04-14 11:45:50.011 am infoChecking for updates for Hub Watchdog
app:25942020-04-14 11:45:49.915 am debugUpdate chosen
app:25942020-04-14 11:45:42.415 am debugcalled true
app:25942020-04-14 10:28:18.991 am debugcalled false
app:25942020-04-14 10:28:18.760 am debugcalled false
app:25942020-04-14 10:28:18.520 am debugcalled false
app:25942020-04-14 10:28:18.257 am debugcalled false
app:25942020-04-14 10:28:17.936 am debugcalled false
app:25942020-04-14 10:27:59.217 am infoUpgrading Hubitat Package Manager
app:25942020-04-14 10:27:58.972 am infoDownloading Hubitat Package Manager
app:25942020-04-14 10:27:58.625 am debugPerforming update
app:25942020-04-14 10:27:16.588 am infoUpgrading Hubitat Package Manager
app:25942020-04-14 10:27:16.245 am infoDownloading Hubitat Package Manager
app:25942020-04-14 10:27:15.814 am debugPerforming update
app:25942020-04-14 10:27:12.714 am debugprefPkgVerifyUpdates
app:25942020-04-14 10:27:02.295 am debugUpdates available
app:25942020-04-14 10:27:01.688 am debugUpdates found for package https://raw.githubusercontent.com/bptworld/Hubitat/master/Apps/Follow%20Me/packageManifest.json
app:25942020-04-14 10:27:01.435 am infoChecking for updates for Follow Me
app:25942020-04-14 10:27:01.423 am debugUpdates found for driver https://raw.githubusercontent.com/SANdood/Ecobee-Suite/master/devicetypes/sandood/ecobee-suite-sensor.src/ecobee-suite-sensor.groovy -> https://raw.githubusercontent.com/SANdood/Ecobee-Suite/master/packageManifest.json
app:25942020-04-14 10:27:01.420 am debugUpdates found for driver https://raw.githubusercontent.com/SANdood/Ecobee-Suite/master/devicetypes/sandood/ecobee-suite-thermostat.src/ecobee-suite-thermostat.groovy -> https://raw.githubusercontent.com/SANdood/Ecobee-Suite/master/packageManifest.json
app:25942020-04-14 10:27:01.417 am debugUpdates found for app https://raw.githubusercontent.com/SANdood/Ecobee-Suite/master/smartapps/sandood/ecobee-suite-smart-mode.src/ecobee-suite-smart-mode.groovy -> https://raw.githubusercontent.com/SANdood/Ecobee-Suite/master/packageManifest.json
app:25942020-04-14 10:27:01.413 am debugUpdates found for app https://raw.githubusercontent.com/SANdood/Ecobee-Suite/master/smartapps/sandood/ecobee-suite-smart-circulation.src/ecobee-suite-smart-circulation.groovy -> https://raw.githubusercontent.com/SANdood/Ecobee-Suite/master/packageManifest.json
app:25942020-04-14 10:27:01.399 am debugUpdates found for app https://raw.githubusercontent.com/SANdood/Ecobee-Suite/master/smartapps/sandood/ecobee-suite-routines.src/ecobee-suite-routines.groovy -> https://raw.githubusercontent.com/SANdood/Ecobee-Suite/master/packageManifest.json
app:25942020-04-14 10:27:01.395 am debugUpdates found for app https://raw.githubusercontent.com/SANdood/Ecobee-Suite/master/smartapps/sandood/ecobee-suite-open-contacts.src/ecobee-suite-open-contacts.groovy -> https://raw.githubusercontent.com/SANdood/Ecobee-Suite/master/packageManifest.json
app:25942020-04-14 10:27:01.164 am infoChecking for updates for Ecobee Suite
app:25942020-04-14 10:27:00.961 am infoChecking for updates for PurpleAir Air Quality Station
app:25942020-04-14 10:27:00.951 am debugUpdates found for package https://raw.githubusercontent.com/dcmeglio/hubitat-packagemanager/master/packageManifest.json
app:25942020-04-14 10:27:00.737 am infoChecking for updates for Hubitat Package Manager
app:25942020-04-14 10:27:00.442 am infoChecking for updates for MeteoBridge Weather Station
app:25942020-04-14 10:27:00.210 am infoChecking for updates for Hub Watchdog
app:25942020-04-14 10:27:00.042 am debugUpdate chosen
app:25942020-04-14 10:26:57.742 am debugFound new repository https://raw.githubusercontent.com/RMoRobert/Hubitat/master/repository.json
app:25942020-04-14 10:26:57.488 am debugRefreshing repository list

...

Categories

Thinking we will need more categories... existing will get busy quickly.

Of the top of my head...

Control = Lighting/Motion/presence/Locks
Convenience = catch all
Integrations =- devices/applications/services
Notifications = speakers/TTS/music
Security = presence/camera/sensors
Utility = Data/Button controllers/IR control

What's missing.... ?

Make some calls asynchronous

As more developers come on board all the HTTP traffic to load repositories will become a bottleneck. Some of these calls can be made asynchronous to allow multiple to occur at once.

Logging Switch

Reminder to setup debug and Info on/off switches

Thanks

Add more logging

Also actually implement the logDebug method setting so it can be used

Fatal error on nulldevice

I added 6 new optional (required: false) drivers to the Ecobee package.

This causes your version-matching code to fail when you try to run an Update:
errorjava.lang.NullPointerException: Cannot get property 'version' on null object on line 936 (performUpdateCheck)

The reason is (obviously) because the existing install doesn't have that file installed, so it can't compare versions. I was able to get around the error by changing the code to:
[code]
for (driver in manifest.drivers) {
def installedDriver = getDriverById(state.manifests[pkg.key], driver.id)
if (driver?.version != null && installedDriver?.version != null) {
if (newVersionAvailable(driver?.version, installedDriver?.version)) {
[/code]
The ?.version won't fail if the target is null. That said, I think you want to be more direct - make it install the new/added item (if required: true), don't flag an error/upgrade if not.

Note that to make this "add a few more optional files" actually work, the user has to re-match the package. I think you need a way that the added items just get melded in, without the user having to do anything.

Abitily to Unmatch?

There are a bunch of apps and drivers floating around the hubitat forums. As I poke around trying to find if any of the apps I have installed are hpm providers, I find none. However, I'd still like to take advantage of hpm! If I create a repository, and a manifest file for each of my apps, hpm will (hopefully) happily assume control and all I have to do is tick the version when one of the apps updates.

However......what needs to happen if the author then starts providing an hpm manifest and repository?

Package Documentation Link and other useful direct links

It would be great to be able to add a link to documentation for a package and that this link is displayed in the App when installing. This would make it easier for users to find relevant documentation.
Other links that I'd say would be useful would be to the community release thread and a link to a version history page. These three links would make it much easier to know how to proceed for the user.

notify app/driver owner of bad manifest

I see that BPTWorld has a bad manifest for one of his apps. Wonder how a notification could occur to the developer to notify them of the error. Maybe use a free SMTP relay?

Option for automatic updates on each app

Instead of user intervention each time an update is available it would be good to provide in the daily update process to automatically update those apps a user selects. Ideally, this would be granular so larger apps may wish to be a N-1 manually updated whereas a weather app a user may want updated automatically.

Suggestion: Make version checking more flexible

If you updated newVersionAvailable with the below it will strip everything except digits and periods from the version number, that makes it more compatible with existing versioning, like mine: "v1.0.1.0420Tb", with the below addition it would become "1.0.1.0420".

def newVersionAvailable(versionStr, installedVersionStr) {
	if (versionStr == null)
		return false
    
    versionStr = versionStr.replaceAll("[^\\d.]", "")
    installedVersionStr = installedVersionStr.replaceAll("[^\\d.]", "")
	def installedVersionParts = installedVersionStr.split(/\./)
	def newVersionParts = versionStr.split(/\./)```

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.