[RELEASE] HD+ - Android Dashboard

@jpage4500
Today I created a backup and immediately restored it on a different device, with HD+ fresh install. I noticed the following issues:

  1. Custom tile sizes are not restored, they return to 1x1
  2. Custom icons are also lost in the process - I'm using Built-in images, but it probably happens with other sources as well
  3. Device types return to default instead of the selected, ex: I changed some Thermostat to Temperature Sensor, but they were back to Thermostat after restoring
  4. Section dividers are not restored

Edit: Added section dividers after the restore came with wrong background color (apparently #000000), and the background color that is used on all devices does not show up in Favorite Colors when changing it.

Hmm.. would you be willing to send me the backup as well as a screenshot of how it should look?

I just restored a backup on another device and it worked for me.. I restored a 10" tablet backup on a phone. I didn't have any custom icons or section dividers though so it's not the exact same test. I can try again with some more customization

I've just sent them to your email

Hi @jpage4500, so far the new charging stuff is reporting correctly but I'm still noticing that charging events don't update upon a change of state, they only get updated in the next packet from the phone which could be hours. Is there a way of detecting the charging state change as an event and pushing an update then?

I do actually listen for power state changes and will try to get the device location (if you're using presence or location tracking features). I do have some checks to prevent doing too much work -- so if you just keep charging/remove/charging it's not going to send out an event for each one. I also require the location to be fairly accurate (closer than 100 meters).. sometimes the OS will just give HD+ a super vague location and I don't want to relay those.

Anyway, I'll make a note to test it and make sure that's all working. It's always possible that Android skips sending out the power state change events for battery saving efforts. While it's not required in any way - it could be helpful just to ensure Android isn't 'optimizing' anything for the app if you're using location tracking (if you're not already)

Oh yea... it's unrestricted after playing with all the other apps I know that's pretty much the hottest setting to maintain.

Thanks for checking, here's the scenario, if it helps.

  1. We only use wireless charging.
  2. The phone goes on the charger after we've been home awhile so the movement indicator is 'still' for quite some time with only miniscule GPS changes. So maybe since the location doesn't change enough or Android doesn't give you reliable data you skip the update.
    Sometimes it happens to catch it and report pretty quick, other times, I've seen in the logs close to 2 hours before the next update.

If it is true that you do get a charging event, is it possible to send an update using the last known lat/lon just to always send an status report? Or just send a status update with only the charge parameters? The driver skips any missing parameters so it shouldn't break anything to only send those.

Whatever you decide is fine, even if you leave it as is; this app is phenomenal and I certainly don't want to overcomplicate things.

version 1.0.2223 (beta)

  • fix restoring dashboard tile size from backup changing after a reload
  • show system notification when playing TTS (silent notification)
  • support "HD+ Tile" driver
  • fix AA crashes
  • refactor HD+ Device dialog
  • log charging events
  • always check location on charging event
  • support HD+ device button press to running Tasker action

Lots of changes in this one even though for most people they're pretty localized to a couple of niche features so you won't notice.

  • If you've even done a restore from backup, only to notice later on that the tiles automatically resized the next time you start the app - this has a fix for that
  • If you use the "HD+ Device" driver I made a couple of changes to it:
    1. when playing TTS I also show a silent notification.. that way if you miss the TTS you can still see what was just said later on; I can make this an option in the future if it's desired but figured having it was better than not for now.
    2. HD+ Device driver now has the Button capability (requires 1.0.4 - update via HPM). The idea is that you when this virtual button is pressed - an action can be done on your phone. For now I just implemented running a tasker task but if there's other ideas of things that can be done I'll look into them. I'll detail how to use this in a post below and in the support page shortly..
  • Found and fixed a few Android Auto crashes
  • When the charging state changes and if you are using location tracking I'll always check location. This should result in a location update made to the Hub but it'll need more testing to be sure
  • Lastly, I added support for a new Hubitat driver called "HD+ Tile". I know it might get confusing since there's a couple of other Hubitat drivers that work with this app but each one is for a specific use case. I'll explain HD+ Tile in a future post to keep it separate from the rest of this update.
3 Likes

support for a new Hubitat driver called "HD+ Tile"

This one is really simple.. let's say you have a video URL, image URL, calendar URL or any other kind of URL that you want to add to the HD+ app. Today, you have to manually enter those URL's on the phone which can be a pain to do on a phone.

Install HD+ Tile driver

  • The easiest way is to use Hubitat Package Manager -- select install -> keyword search -> "HD+ Tile"
  • Second, create a new virtual device in Hubitat -> Devices page, give it any name and select "HD+ Tile" as the type:
  • Third, in the driver page pick a device type (ie: image/video/calendar/etc) and enter a URL for it. You can also enter a refresh rate (ie: 30 secs)
  • Finally, add this device to MakerAPI so HD+ can see it
  • You can add as many of these devices as you'd like. Each one will show up as an image/video/calendar/etc in HD+

The end result is every device running HD+ will now have a new image/video/etc tile

NOTE: If you've already entered a URL in the app, there's no need to change anything.. this is just meant as an alternative to that.

1 Like

HD+ Device driver now has the Button capability

If you get the latest version of HD+ Device driver (update via HPM) there's a new capability - PushableButton.

You'll see this command in the device page:
image

On the latest version of HD+ (1.0.2223 or greater) there's also a new option called "Button Commands" that will show up. This will let you select a button number (1-10) and pick a Tasker command (requires Tasker app).

For example, I have a Tasker command called "Silence" which will put my phone into Do Not Disturb mode. As you can see in the screenshots above, I assigned that task to Button #1

Now, when I call the Push command on the HD+ Device driver with button 1 -- it'll send a remote command to the device which runs that tasker task and puts my phone into DND
image

4 Likes

This is awesome Joe. I never really liked tasker, I'm too stupid I guess. The logic of it seems to be foreign to my brain. Guess Ill have to take another look. I seem to remember you saying other apps may work with this driver, can you elaborate on what types of apps may work?

I'm not sure what's going on here.

Just today my life360 device tiles went wonky, and for a few days my device presence tiles are wonky. I've poked around the app and HE but not sure what to do. I am on the latest beta. Also seeing some TRIM_MEMORY_ errors in the log.

ETA: I am in the HE beta and just updated to the latest today so the 360 tile issue could possibly be related but the notifications text on my "mobile device" tiles has been wonky for some time now.

2nd ETA: OK, I think we're hitting the google maps API limit and I need to use my own. Thought I had one for something else, will hunt it down... Still need help with the text wrapping (it goes away with a wider tile) and the mobile devices showing (stale) last notification.

OK now I don't think it's the API as the life360 does work if I open the tile. It's just the tile that's broken.

Could you add a option to disable the logging please :pray:


I like to keep my logs clear for when i debug.

also noticed something in the latest, when i added this tile it chopped off the bottom of my screen. I had to add a extra dad joke tile to be able to scroll to the bottom of my phone (pixel 7) . Then removed the extra dad jokes and was fine for a bit.

@jpage4500 i managed to get my google nest doorbell battery stream to appear in the app for a bit with the new tile device set to video and "Exoplayer" in the app. However as its like a gif it keeps refreshing and then must get rate limited. Also as its a variable URl it keeps repeating the old image but it shows it may be possible to work like the original nest hello.

I didn't realize initialize() was called so often. I figured it was a 1-time setup thing. Sure, I'll add a debug option and disable it by default

1 Like

@jpage4500

(I don't think you saw my late night post re: life360 and mobile device tiles above)

My life360 tiles are back to working today...

2/3 mobile device tiles are still showing stale last notification. Changing them to presence makes it go away. Is this by design and was it a change?

The HD+ Device driver basically sets up a way to 'push' a message from the Hub to your phone. It can be used to push a TTS notification or display a system notification. And most recently it can also be used as a button on the Hub and that will run some custom action on your phone. Right now it will just run a Tasker task but if anyone can think of some other custom actions that make sense I will look at implementing.

I'm still trying to figure out a use case for this driver. I already do push notifications and TTS with webcore. So, I guess you could use this driver if you don't use webcore.

I'm not familiar with with webcore but does it have the ability to play TTS on a mobile device/tablet? That's really what the benefit of this driver is here. It's basically like a more advanced version of what you can get with the native Hubitat app. Basically a device driver which can 'push' notifications to a mobile device. While the native Hubitat app pushes just system notifications (text messages), this can also play the text via the built-in Android TTS.

Anyway, I've used TTS notifications before with a Google Home mini. It worked fine for a little while but always stopped working so I removed it and haven't used it since. I also see TTS drivers for Sonos and Alexa and I imagine they work much better. But, I haven't seen anything that will play TTS on your phone.

But, at the moment I'd say the use cases for this driver are still pretty specific and most people won't need it.

I'm more excited for the potential of having push message support. When you're away from home there's no way for the Hub to notify the phone of events. That's why cloud mode polls the server every X seconds (same as the default web dashboard fwiw)

1 Like

Yes, tablet only, that I can tell. I'll test with my phone and report back. But I use the Echo Speaks app along with webcore for notifications and TTS to my pads.

Webcore can definitely do that....send text and/or notifications to my phone when I am away from home. For instance, I have my water leak sensors set up to notify me of a leak if I am away.

WebCoRE cannot send push notifications natively without using a third app like the Hubitat app or Pushover. You can use the command, but without using a specific device driver it's not possible.
For example, installing the hubitat app creates a new device which can be used to send push notifications via webCoRE. For this you need a device driver. Beside the hubitat app or Pushover or Echo Speaks the HD+ Device driver is a way to get the noti to the phone.

This way you don't need to install the hubitat app with all it's possibilities on a kids phone for example.