[RELEASE] Bundle Manager - The ONLY place to find BPTWorld Bundles! Find, install and update bundles quickly and easily

Introducing 'Bundle Manager'
The place to explore Bundles. Find, install and update bundles quickly and easily.

Bundles are an easier way for Developers to maintain and distribute their work. It also makes it much easier for any user to install the apps/drivers/libraries they are looking for!

  • Requires HE version 2.3.2.130 or above

Features:

  • Simple, streamlined interface
  • Powerful search features. Search by 'All Bundles, New Bundles (last 7 days), tags, developer, contains keywords and does not contain keywords'!
  • No need to 'match' up apps. If an App is compatible with BM, it'll automatically show up in your Installed Bundles
  • Optional automatic bundle updates
  • Optional Push notification when updates are available
  • Option to launch New App Config right after downloading the Bundle

Why create Bundle Manager, when we already have Package Manager?

Bundles make it sooo much easier for developers to create, save and distribute their work. The ability to make bundles has been out since 7/2021. The original HPM author made is very clear that he would not be adding Bundles into HPM. With that said, I started to play around with coding BM. Over the past year, he left several hints that his time with HE was coming to an end. So I picked up the pace trying to make BM work. Now as I'm sure you have noticed, HPM has officially changed hands (5/22). That was it. Time to release BM!

Edit: Well, looks like Bundles are coming to HPM (6/22). Thanks to the open mind of @csteele. That's great news for all HPM users/developers!

So where does Bundle Manager fit in!? I put a lot of time and effort into making this, so I will continue to innovate and stay on the cutting edge of what HE can do. This will be THE ONLY PLACE to find BPTWorld Apps and Drivers! As always, any other Devs that want to join are always welcome.

I look forward to seeing how HPM and BM push each other forward. Making a better experience for all users/devs!


Using BM couldn't be easier!

Download Bundle Manager, add it by clicking 'user apps' just like any other app. Open it up and pick the settings you want and hit 'done', After a little while, you'll see compatible apps start to show up under the 'Show Installed Bundles'. My apps will show there even though you haven't downloaded the actual bundle because I've added the code to 'talk' to BM to most of my apps awhile ago. :wink:

From this point on, you'll be able to track the versions and install updates right from Bundle Manager.

There is NO need to delete any of my apps that you may already have installed. :grin:
Note: Be sure to use the 'unmatch' option within HPM. See post #2.


This App can be found on my GitHub or by using the Hubitat Package Manager.

When reporting problems...

  • Be sure you are on the latest version. I won't troubleshoot an older version.
  • Turn on debug and screenshot the issue happening in the log. One line or just the error doesn't cut it. I need a log.
  • Post the screenshot of the log with an explanation of the problem.

Let me say that again. If you don't post a screenshot of the Debug Log, then I can't help you.

Thanks

10 Likes

General Usage Instructions:

Manual Install

To Manually install Bundle Manager

  • copy this link. https://github.com/bptworld/Hubitat/raw/master/Bundles/BundleManager.zip
  • From the Hubitat Main Menu, go to 'Bundles'
  • Click in the upper right hand corner, 'ImportZIP'
  • Click 'Import from a URL'
  • Paste in the URL
  • Click 'Import' and WAIT for the words 'Bundle Imported' message

Install App like any other custom app.

  • From the Main Menu, click 'Apps'
  • Click on 'Add User App'
  • Select 'Bundle Manager'

Have fun!


1. First Time
  • The First thing anyone should do, is fill out the 'General' section and then scroll down and press 'Done'
  • Now go back into the app and click 'Search'.
  • Since this is the first time Searching, be sure to use the 'Manually update Master Bundle List' switch. The switch will turn off when finished.

Note: Any apps that you have previously installed that are BM compatible will already be 'talking' to BM as each app is opened and/or executed.


2. Search and Install Bundles
  • Use any of the Search options to find the Apps you want or use the 'Show All' or 'Show New' switches to browse.
  • Once you find a bundle you would like to install, simply use the drop down at the top of the page to select the Bundle.
    -- Be sure to take note of any Special Requirements that any App may have listed on its tile.
    -- Always download the required Bundle first. (it will warn you that it's needed, if you don't!)
  • Now use the 'Are you sure' switch. At this point the Bundle is being downloaded and installed. The switch will turn off when finished. Please be patient, it can take a minute or two depending on the App.
  • If this is the first time you install this app, you will most likely be presented with a 'Click Here to configure App'. Go ahead, click it! You will be launched into the new app.

3. Updating Bundles
  • BM will check periodically for updates or you can manually look for updates
  • If an update is found, a new button will pop up. Click it and go to the update page
  • Select the updates that you want to do and then click 'Update Bundles'
  • At this point you should get the 'Successful' message for any bundles that you choose
  • When finished updating, click 'Next'
  • That's it! You're now back to the main screen

Other Notes
  • Over the first couple of days, you'll see previously installed apps populating the 'Installed Bundle Versions'. These are apps that you previously installed that are already BM compatible! No need to do anything and they will now notify you of any updates.
  • If you have an app that was previously installed that isn't showing up in the 'Installed Bundle Versions'. Simply use the 'Search' option and re-download the bundle. No need to remove/setup or otherwise mess with the app. Just download the bundle and it will take care of it.
  • I still have plenty of apps to add, If you don't see an app that you need, let me know and I'll bump that one up the list.

Installing from HPM

Bundle Manager can be installed from HPM

  • Search for 'Bundle Manager HPM'
  • Follow the prompts to install
  • Launch BM and follow the on screen instructions to have the newest full version of BM installed

Once this is done, Bundle Manager HPM is no longer needed and can be uninstalled using HPM.


How to unmatch from HPM

Click 'Package Manager Settings' from the main menu

Scroll to the bottom of the page and click 'Remove a matched package'

Select a package and click 'Next'

Done!


Click the link below to see some screenshots!

Screenshots





Developer Information

Key Features:

  • Apps talk directly to BM, no need for BM to search or match up apps to be included.
  • No more save to hard drive, edit file name (to txt), open file, copy code... Go to Github, find the right directory, find file, open file, paste in code, save, update json file. FOR EACH PARENT, CHILD AND DRIVER!
  • With BM, click the save bundle button... Go to Github, find the right directory, upload file, update json file. done!
  • Only ONE json file required on Github.

1. Make your apps talk to Bundle Manager:

Place the code below into your app. It doesn't have to be exact, as long as the 'sendLocationEvent' has the required information (app name, app version) being sent.

The code needs to be called from a spot that runs often. That way anytime the app runs, it lets Bundle Manager know what version it is.

def setVersion() {
    state.name = "Bundle Manager"
    state.version = "1.0.0"
    sendLocationEvent(name: "updateVersionInfo", value: "${state.name}:${state.version}")
}

That's it! Your app will now tell Bundle Manager what version it is currently on anytime the code is run.


2. Github Setup

The only thing required on Github is your zip files and a single Json file.

  • create a new directory to hold your zip files
  • upload your zip files
  • create a Json file with the following info. List as many bundles as needed. Note: all fields are required. If a certain field is not needed please use "na" for that value.
{
   "info": [
      {  "hubitatName": "BPTWorld",
         "authorName": "Bryan Turcotte",
         "paypal": "https://paypal.me/bptworld",
      }
   ],
   "bundles": [
      {  "name": "Averaging Plus",
         "version": "1.3.0",
         "updated": "2022-05-06",
         "changes": "Added to Bundle Manager",
         "description": "Average just about anything. Get notifications based on Setpoints.",
         "specialInfo": "na",
         "requiredLib": "na",
         "tags": "Utilities",
         "bundleURL": "https://github.com/bptworld/Hubitat/raw/master/Bundles/AveragingPlus.zip",
         "forumURL": "https://community.hubitat.com/t/release-averaging-plus-average-just-about-anything-get-notifications-based-on-set-points/42388"
      }
   ]
}

Name: This is what will show in the Hubitat Bundle Menu

Version: The current version on the bundle (I personally use each child app version to track)

Updated: The date of the latest update (this is what controls the 'new within 7 days' search option)

Changes: Any changes you would like to report

Description: The App description

Special Info: Any special requirements that the app requires. (I use it to let everyone know what Library bundles are needed with this app)

Required Library: Works with the Special Info. Put the name of the library bundle that is required and BM will check to see if the bundle is already installed. If it isn't, BM will display the Special Instructions. If it is installed, then it'll just show a 'line' to save space. This is a library that is NOT included in the Bundle and is available separately.

Tags can be anything you like but it would be best if we keep it to a smaller list. These are the ones I've used so far but anything can be added.

Automation, Dashboards, Library, Lighting, Multimedia, Monitoring, Notifications, Security, Utilities, Voice Assistants

Separate each tag with a ; (semi-colon) and no space.
ie. "tags": "Dashboards;Monitoring;Notifications;Security;Utilities",

Bundle URL: The raw Github URL of the bundle

Forum URL: The HE Forum URL related to the app

Again, don't leave any of these fields blank. If they are not needed, please use 'na'.


3. Get added to the Master List

Send me a private message with the raw link to your Json file

ie. https://raw.githubusercontent.com/bptworld/Hubitat/master/Bundles/myBundles.json


Notes
  • If Bundle only contains a Library, be sure to include 'library' in the name. ie. Normal Stuff Library

That's it!

Feel free to look at my folder/json on Github to use as an example. (link in first post)

3 Likes

First Beta is now available! I'll be adding in my apps slowly, once I know some people are using this and everything is working correctly.

Who wants to try it!? :grin:

@bptworld Looking forward to seeing where this goes. I have been hoping to get better support for bundles for a while now.

A few thoughts:

  1. Consider adding the ability for developers to provide links to accept/direct donations
  2. Consider using JSON lists for tags :wink:
  1. To me, the donation links belong in each individual app. But if enough developers want it added, it's easy enough to add.

  2. Didn't see the need for a more complicated setup. Give the Search function a test drive, it works great! :grin:

1 Like

New version...

1.0.1 - Minor changes

Remember, once you have BM installed, you can update BM from within BM. :wink:

1 Like

How? There is no update button? What am I missing.

Edit found it, turned off auto updates and it appeared.

2 Likes

Version 1.0.4

  • Lots of little cosmetic changes
  • Made some changes to the json file
  • Added Paypal link to each dev ( I know, it's only me, lol ) (@tony.fleisher)

I came across this app while reading up on Device Check Plus.

I got the Bundle Manager installed and working.
Its simple and nice.

I selected Device Check Plus
and than the Install Bundle which is says it will turn off when installed.
It turns off, but the app never installs.

Am I doing something wrong?

After installing the bundle, did you go to the 'Apps' page and click the 'Add User App' button? This has to be done with any user app. Other than that, I would need to see a screenshot of a debug log.

Thanks

Edit: you can now launch the app config right from BM

New version,..

1.0.5 - 05/31/22 - Added Launch New App Config option

Yes Bundle Manager is installed and is in my app list.
I just removed it and installed 1.05.

I have attached a log.

I click on the Choose Bundle to install drop down and choose Device Check Plus.
I click on Install Bunch and the button Turns Blue(on) and than off.

I than Click on "Click Here" and it gives me an Error 500.
I've provided some screen shots..

I got the logs from the main Log file for Hubitat and chose to show only Bundle Manager.





No need to 'remove' apps, just update or re-download them.

I see your doing this on your phone. What happens when you use Chrome?

Same 500 error

I also tried rebooting the hub.

I just uploaded 1.0.6 with some more logging. Please update and take another debug log.

Thanks

Updated to 1.06
Did the install and after it was done the button went from blue to grey and I got this message.

app:8082022-05-31 20:56:39.790 debugIn searchOptions - Getting app ID: null

app:8082022-05-31 20:56:39.535 debugIn getAppsList - Getting installed Apps list

app:8082022-05-31 20:56:39.533 debugIn searchOptions - prevInstalled: false

app:8082022-05-31 20:56:39.525 debugIn installBundleHandler - Finished

app:8082022-05-31 20:56:39.522 debugIn installBundleHandler - Receiving file: https://github.com/bptworld/Hubitat/raw/master/Bundles/DeviceCheckPlus.zip

app:8082022-05-31 20:56:37.368 debugIn installBundleHandler - Getting data ([uri:http://127.0.0.1:8080/bundle/uploadZipFromUrl, headers:[Accept:/, ContentType:text/plain; charset=utf-8, Cookie:null], body:{"url":"https://github.com/bptworld/Hubitat/raw/master/Bundles/DeviceCheckPlus.zip","installer":null,"pwd":""}, timeout:90, ignoreSSLIssues:true])

app:8082022-05-31 20:56:37.365 debugIn searchOptions - Sending to installBundleHandler: https://github.com/bptworld/Hubitat/raw/master/Bundles/DeviceCheckPlus.zip

app:8082022-05-31 20:56:37.362 debug*

app:8082022-05-31 20:56:37.359 debug*************** End findBundles ***************

app:8082022-05-31 20:56:37.353 debug------------------------------ End - Error Monitor ------------------------------

app:8082022-05-31 20:56:37.350 debugIn findBundles - matchedCount: 1 - VS - countToReach: 1

app:8082022-05-31 20:56:37.347 debug*************** Start - PayPal.Me ***************

app:8082022-05-31 20:56:37.345 debug------------------------------ End - Averaging Plus ------------------------------

app:8082022-05-31 20:56:37.342 debugIn findBundles - matchedCount: 1 - VS - countToReach: 1

@dbunch304
Curious, what Platform version are you using and what Hardware?

Thanks

thanks,

I can't reproduce it here, it's working just fine. Anyone else NOT in the beta program try this? Just wondering if this is the difference. (all mine are in the beta)

Anyway please try 1.0.7 and post a screenshot of the debug log. Please please please use a screenshot of the log. :wink:

1 Like

I just downgraded one of my hubs and ... it doesn't work. :hushed:

Will have to look into it tomorrow.

1 Like

Download the Hubitat app