[RELEASE] Hubitat App/Device Code Update Manager

One thing I've been frustrated with since moving from SmartThings to Hubitat is how difficult it is to keep my Hubitat Apps and Drivers up-to-date. SmartThings would check GitHub and show if custom code could be updated from GitHub. I miss that ability so I wrote an app that lets me check all my Apps and Drivers for updates and optionally update them. I'm planning to release it at some point, but my motivation to clean it up for release will depend on whether this would be useful to others in the community. The app runs locally and accesses the hub using local APIs.

Latest native app release: https://github.com/richardpeng/hubitat-update-manager/releases/tag/v2.0.0

Project link: https://github.com/richardpeng/hubitat-update-manager

01

You can also update the Import URL directly so you can more easily set up Apps/Devices for update checks!

46

28 Likes

I know a number of people in this forum will find this app useful. There are a few dev's that have implemented their own app version checking etc, but this looks like a more universal solution.

This is certainly something I would be interested in.

Ditto, tia

You have my interest. My drivers cannot use the import because I do not have them on GitHub, but I like the idea and maybe someday the git requirement will change.

As a note, mine DO check for updates, but based on an xml on my website.

This exact project was on my todo list. Thank you for taking your time to get this out there! I'll give it a try soon.

This functionality is one of the things I miss coming from SmartThings too!

I can't tell from your note of "app runs locally" means "this is a Hubitat app" or "this is a standalone app, and talks to the hub using REST".

@scotte This is a standalone app built using Next.js and talks to the hub using REST. I'm working on cleaning things up like making the Hub URL dynamic. Release should be in the next day or two.

2 Likes

This looks VERY interesting!

1 Like

I imagine you have to setup the apps/drivers you want it to check and the address to the raw code to check against? Can you install a new app/driver through it that way?

I use the import feature for most of mine but sometimes it remembers the import path and sometimes it doesn't and it doesn't show me if there is an update so I just go re-import once in a while paying attention to the version and look for a change to see if I want to update, this app seems like it would be awesome if it can be scheduled to run once a month and notify if there is an app that can be updated and which app it is or whatever schedule the user wants and also when you manually go into it.

Thanks.

They don't need to be on Github, but they do have to mimic the header info. I think both @srwhite and @anon61068208 solved it.

I would definitely be interested in this. When you say it’s a stand alone app where is to running? If it’s on another piece of hardware could a docker be created?

@potts.mike The app runs just fine in Docker. It just needs to be able to access Hubitat over the network.

I figured out how to update the Import URL. Super excited about this development!

2 Likes

So I have been told:
It needs to mimic the header, and basically the best way is to run a Git or similar system. Does not NEED to be Github but it basically needs to be running an equivalent. Which is not useful to me. I run my own domain but I have it very simple (on purpose) and use basic html pages and such. Why it cannot import from that I have no idea and I never really saw an explanation for the why...

Either way, if an app could watch over all the drivers and apps a person has and notify them when they need to update that alone is very beneficial I think and I would do some changes (if needed) to allow such an app to check my website (if needed)... as long as it is still simple text (HTML, XML, etc...).

I’m not sure I understand. If you run your own domain, then you run you own web server and you configure it you send “better” headers for a specific sub directory, and therefore the files within.

Sweet. I'd say though that this type of thing should ideally be a part of the platform proper.

@bravenel @chuck.schwer

Feel like buying an app boys?? :stuck_out_tongue:

1 Like

I run my domain, but it is via hosted servers and I have not found a way to modify the headers enough to make it work. It is also not running IIS (it is Apache) so the things I found for that did not help.

Overall, it is annoying but not a show stopper. People can view the .groovy file and copy/paste it into the driver code. Not as convenient as Import, but not terrible.

You need to add a CORS header to the page serving up your code files. For example, in php:

header("Access-Control-Allow-Origin: *");

If you are using .groovy for the extension, make sure it's sending the proper content-type header too.

I do not want to hijack the thread anymore, so I am going to try to pull the Import conversation over to a separate thread. :grin: