[RELEASE] HD+ - Android Dashboard

**[RELEASE] HD+ **

What is it?

A native Android app for viewing and controlling your Hubitat devices.

Features

  • Easy to login - 1-click login will auto discover the Hubitat Hub
  • Full screen - ideal for wall-mounted tablets
  • Keep the screen on during the day and turn it off at night (Configurable)
  • Flexible - fully customize the interface (icons, tile size, text size, colors)
  • All traffic is LOCAL to your network. No 3rd party server is used. There is also a remote access option (uses cloud.hubitat.com) that can be setup for use outside the house.
  • Widget Support - put any tile on your homescreen
  • Presence Support - pick a location and have the app update your presence (home/away) on the Hubitat
  • Drag and Drop sorting
  • Group by Device Type - automatically group device into folders (ie: group by 'Indoor Lights')
  • Supports MANY device types and continually adding support for new devices
  • Custom Device Support like auto-refreshing images, video, HTML tiles, Battery Monitor, Shortcuts, Pollen Count, Dad Jokes, etc!
  • FAST - device updates shouldn't force the entire screen to be refreshed. This is where my ~20 years of mobile development experience can really help.
  • Works on older Android devices - all the way down to 4.3 (Lollipop)
  • Free - No Ads - I won't charge anyone to use this app.

Screenshots:




Installation:

  • Install the app from Google Play here
    • There is a beta version as well
    • It's on the Amazon App Store (FWIW: Amazon's app review process is SLOW so the app is usually quite a ways behind here)
    • You can also get the APK directly from here
  • On your Hubitat hub, make sure you add the Maker API (Apps -> Add built-in app) and enable it for all of the devices you'd like to see in your dashboard. Ensure the "Allow access via Local IP" option is enabled.
    • NOTE: If you'd like to use the app remotely, make sure the 'cloud' option is also enabled.
  • Enter your Hubitat hub's IP address hit Login!
    • NOTE: I'm attempting to get the MakerAPI accessToken for you. This requires that you don't have a username/password set on the hub. If you do have a username/password required to login you have 2 options:
        1. disable username/password security for the app to get the accessToken.. Then, re-enable it
        1. click on the "Help" link in the app and then click on "Show Advanced Login" link in the resulting dialog. This will allow you to manually enter the App ID, Access Token, Cloud Token

For more details, see the official documentation here

Donate

  • I won't ever ask for donations but if you'd like it's always appreciated! PayPal.Me
73 Likes

I'm going to wait for the Play Store version. I look forward to trying this out.

A suggestion - an option to make the app the default launcher.

3 Likes

wait for the Play Store version

sounds good.. I hope they don't take the full 7 days but we'll see.. I'm honestly not sure if they'll care that I have "Hubitat" in the name either :slight_smile:

I was originally just going to release it on S3 but figured Google Play would make updates automatic and seamless - even if I did have a 'check for updates' option in the app. So, the transition from S3 to Google just started yesterday and there's always a few things to figure out.. I'm using circleCI to automatically deploy builds.

Speaking of the current 'beta' version.. I was originally building 2 variants of the app - beta and production. They could be installed side-by-side. But, the way Google Play works is - you put your release candidate version in the beta track and then later on 'promote' it to release. Long-story short is - I'm removing the 'beta' variant here shortly. The URL's above will still work - but because the beta app's package name is changing (no more .beta) you'll just have to uninstall the current version if you have it..

an option to make the app the default launcher

good suggestion! The tablets I'm using just turn on and off by themselves and are always on the dashboard screen (app).. I haven't implemented a default launcher before but could look into it

2 Likes

Very interesting. I downloaded the Beta and I am unable to connect. I thought perhaps that I had made a mistake, but when I wanted to check on my connection settings, it seems I cannot edit the connection ?

I then downloaded the stable version, but that seems to use the same settings ? In any case, tried to uninstall, then re-install and confirmed my settings but no connection. It just says loading.

Any idea what can be wrong ?

I have been chatting with someone else who could login but no devices ever showed up in his list. I asked him to open the MakerAPI main page and click on the "Get All Devices w/Full Details" link.

image

He did and initially said that link timed out on his computer. But, later realized it just took a LONG time for anything to return (as in several minutes). He had 100+ devices and I guess the MakerAPI just takes FOREVER to return details about that many devices. I've got 22 and to be honest it's slow even for my liking.. maybe 3-4 seconds.

If anyone who's having issues can try the same.. that might be the problem. I only use that full refresh endpoint to get the initial list of devices and then again every <10> minutes just to make sure things haven't fallen out of sync from the websocket events.

Anyway, the dashboard app will timeout after maybe 20-30 seconds.. and if it doesn't fetch the initial list it won't open a websocket either.

I'll have to research a better way -- maybe only fetch a few devices at a time. I can use the Get All Details link to get all of the device ID's and then fetch the details in batches. I can also increase the timeout for the connection but that seems kind of hacky IMO

forgot to mention.. he was able to get the app working by reducing the number of devices available in the Maker API. Not a solution - just a way to see devices show up in the app until I get a real fix in

Yes, got it to connect. Going to take a look around. I have also previously tried another app, but I currently have my control currently in Sharptools.

I have also previously tried another app

I haven't heard of that one and am curious how they were able to work with Wink (as a former developer).. probably using the old developer API which I didn't even know still worked..

Anyway, sharptools has a LOT of features.. clearly it's been around for a while and has had a lot of support. I can't compete with that in terms of customizations/icons/colors/etc. My hope is to get to a point where I'm really happy with the UI and hopefully help some others out with another option. As a mobile developer I'm definitely biased to native apps (iOS or Android) over the 'webview'.. but, sharptools does maximize that from what I can see.

Oh - I should also mention I just tried to use the best icons I could find from iconsdb.com. But, they're definitely not my favorite.. I miss having a UI designer like I did at Wink! Anyway, my point is -- if you think you have a better set of icons and don't mind sharing - I'm all for it.

I do want to keep the UI consistent though.. so for any new 'theme' I'd want to get a set of on/off icons for every supported device type. Right now I only have support for the device types I know about too.. so more icons as that list grows..

3 Likes

I just installed your app on a Chromebook and it looks great on a big screen. I thought I would try it on a Fire TV device but it appears I am unable to move around on screen with the remote or the app so no way to set it up. I really think this would be a great addition to Android TV or Amazon TV devices. Being able to check the door locks on the bedroom TV etc. I currently use the browser links on the TVs but they are quite awkward. Your app would be perfect.

2 Likes

While sharptools is nice, it also has it's limitations (like anything). Of course one of them is that they are cloud based. to combat that I have tried a couple of times to create something in the Hubitat dashboard, but I always retreat, mainly due to how clunky it is to move the tiles around.

On my Vera, I used Imperihome, which I found to be a great allround app that also allowed me to have HTML tiles for cams etc. I see they support Wink.

I am looking forward to seeing what might come out of this. I don´t have any icons, nor am I a UI designer, but I feel that I do have some feeling to what looks nice (to me at least).

Getting good quality graphics is always a challenge, especially for the low price of free. I found a site called the Noun project that does have free icons on CC, but there seems to be yearly subscription which seems to give you more features and you can keep the icons even after cancelling the account. https://thenounproject.com/ (https://thenounproject.com/accounts/upgrade/)

1 Like

Working on re-writing how I get the initial list of devices.. bypassing that 'full' list will result in much faster response times (many smaller requests vs 1 large one). However, I'm finding the Maker API to return a different structure in the individual device response vs the full list one.. things like returning completely invalid JSON (not sure how that got overlooked). This isn't valid JSON as far as I can tell..

"capabilities" : 
[
    "Switch",

{
    "attributes" : 
    [
        
        {
            "name" : "switch",
            "dataType" : null
        }
    ]
},
"Polling",

Anyway, dealing with this mess might take a little longer.. but still expect to push an update today or tomorrow.

I thought I would try it on a Fire TV device

I like that idea! I've got a few Fire TV's and a Shield TV so testing won't be a problem. I bet I just need to implement that leanback interface.. anyway, while I can't say I plan to have an always on TV view of my devices -- I'll add that to the list.

1 Like

Awesome project!!

1 Like

I have 2 - 7" Fire Tablets coming from the recent Woot deal. Once I get them in I will definitely try this out.

I just pushed out an update which refactors how the app fetches all of the devices. I used to use the MakerAPI 'all devices' to get everything in a single request but that turns out to take way too long for people who have lots of devices. Now, I'm getting the devices 1 by 1. From a UI perspective it's better because devices will start to populate as they're returned from the hub. I'll attach a video showing this.

Ultimately, this 'fetch all' isn't needed once the dashboard is running.. I use a websocket connection to the hub so it will 'push' any changes instantly to the app.

I also changed the package name of the beta version.. previously both beta and release apps could be installed at the same time. But, due to how Google Play works I'm just sticking with a single package name. What this means is -- if you had the previous beta version you'll just want to uninstall it since this one will install separately.

Anyway, I'd love to get some feedback from anyone with lots of devices! While I realize this dashboard as it stands today isn't ideal for people that many devices (no advanced grouping like other dashboards have) - I will do my best to get there.

5 Likes

version 1.0.73

  • added support for weather (add virtual 'weather' device in hubitat)
  • added refresh option
  • refactored dialogs

I think next on the TODO is a brightness/dimmer control

2 Likes

I also just found out the app is live on Google Play: https://play.google.com/store/apps/details?id=com.jpage4500.hubitat

There's an open beta track as well which will get more frequent updates too.. subscribe for it here: https://play.google.com/apps/testing/com.jpage4500.hubitat

1 Like

version 1.0.76

btw - I never actually mentioned this earlier but tap to toggle things on/off and press and hold to bring up device details screen like this one.

I wanted to make the dimmer control part of the main tile but found it kind of small / hard to control.. anyway, I wanted to get it working and can always tweak it later

2 Likes

Nice job just downloaded it to have a play and seems good so far.

Color scheme looks familiar.

3 Likes