[RELEASE] Hubitat Dashboard - Android dashboard app

[RELEASE] Hubitat Dashboard

What is it?

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

Features

  • Easy to login - your Hub's IP address is all you need
  • Full screen interface - no status bar or navigation arrows in the way
  • Keep the screen on - full brightness during certain hours (ie: 8 AM - 10 PM). Outside of those hours the screen will go off and will turn back on again. Configurable
  • Multiple sort order options plus a user-defined custom sort option (drag and drop)
  • Adjust the tile size between some preset options. The tiles will always fill the space uniformly.
  • Consistent user interface (on/off icons, status, battery, temp, etc)
  • Works on older Android devices - all the way down to 4.3 (Lollipop)
  • 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.
  • Needs to be 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.
  • Free - No Ads - Once things are stable I'd like to make it open source. 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 (I'd recommend enrolling in the beta version as it'll be updated more frequently)
    • It's on the Amazon App Store
    • 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

Device Support / Feedback:

I fully expect issues with devices or device types I haven't tested with before. The best way to request support for your device(s) is to send me the app's device log and include what you're looking to support/change. A screenshot might also be helpful if you can send one since I won't likely be able to reproduce what you're seeing.

Sending a device log is easy:

  • Open the navigation drawer (swipe right from the left edge of the screen) and click on "More Settings..." item

  • Click on "Support" menu item

  • You'll see a standard Android 'share via' dialog appear. Select your email app (ie: Gmail). The email will prefill my email address and have a device log attached. Feel free to send it to yourself instead and later send me this log along with your issue/request to joe.page.software@gmail.com

  • To have the screen automatically turn off and on by itself overnight, make sure there's no device password or PIN set. You will also likely need to remove any 'swipe to unlock' screen if you have that enabled as well

    • NOTE: I'm using 7" Fire Tablets that have been rooted and running Lineage OS, so auto sleep and wake work great! There's no reason you can't use an out-of-the-box Fire Tablet, however, with 1 possible exception -- I don't believe I can turn the screen back on after it's off. This is because the Fire Tablets don't allow you to disable the ad-filled lockscreen. If there's enough demand for this I can try to figure out a way around this.. But for now you might need to keep the display 'Always ON'

See more details at the Google doc below which I'll try to keep up-to-date:

41 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.

2 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

1 Like

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.

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!!

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.

4 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

1 Like

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