[RELEASE] HD+ - Android Dashboard

Correct - that's one of the devices but it won't display controls for me. Post #3341 references an excerpt in the thread where I was trying to get it working in SharpTools.

Hmm.. the test device I'm looking at should have the same attributes/capabilities as your device.. the key is this attribute: "thermostatMode": "economy",

        // thermostatMode - ENUM ["auto", "off", "heat", "emergency heat", "cool"]

There's no 'economy' in the official hubitat driver docs so I'm treating this one like 'auto'. I'm also looking for the presence of heatingSetpoint to display the heating controls and coolingSetpoint to display cooling controls.

What does it say after "Change mode" in the options dialog? It should say "auto"

I might need another JSON snippet if none of this helps!

It says 'off'. The SharpTools equivalent shows 'Away (idle)'. which is the mode it's currently in. The modes on my device I think are 'off', 'auto', 'economy', 'away', 'day off', 'custom' (I appreciate that they don't meet the standard)

Edit: I just read that other post I refer to and think perhaps the device uses 'Thermostat Heating Setpoint' rather than 'Heating Setpoint' but it's explained better here: Honeywell Evohome - #50 by ApriliaEdd

@jpage4500, since you've previously said "I never 'see' these DM's for some reason.." I'd like to point out that you may have missed one from 15 days ago. :wink:

ok - that probably explains it.. my test device has economy and the current value is away -- does that sound right?

In a nutshell, I'm showing the controls (heating and/or cooling) only when the thermostat is 'on'.. If thermostatMode is 'away' on your device it's being treated in the app as 'off' (since it's not one of the listed modes)

Question - will the thermostat accept setpoint up/down commands for all these modes? 'economy', 'away', 'day off', 'custom'? If the desired behavior is to see the controls - I can show them for all of these values.. basically for everything except 'off'

Also, what does your device show when it's actually heating? I imagine you're not going to want to test that one now but if you know the value let me know.. I'm using thermostatOperatingState to show the heating (or cooling) state:

thermostatOperatingState - ENUM ["heating", "pending cool", "pending heat", "vent economizer", "idle", "cooling", "fan only"]

Thanks for the reply!
The video tile isn't the most important thing for me as I use BlueIris as well, but when you get a chance, it would be another great option!
I know the Fire tablets are pretty weak, so maybe a video tile isn't the best thing and just contributes to the crashing issue, so I just won't use it.
I tried a radar tile and that really brought my fire to it's knees! Didn't crash but locked it up big time.
Yet another feature I just won't use... that's ok with me!

One thing I am puzzled over on this fire tablet is when I end the dashboard, or restart the tablet, the layout that I had doesn't return and a "default" layout is loaded.
I have to restore a backup that I created and that returns the fire back to what I want.
Is this typical of the fire tablets, or am I missing something?
Thanks!

@jpage4500 Thanks for your patience with this. On my system:

‘off’ sets the device permanently to 5 deg C (frost protection)

‘auto’ follows my schedule

‘Economy’ follows schedule but sets the temperature 3 degrees C under the set point

‘Away’ sets the zone to 15 deg C

‘Day off’ follows whatever Saturdays schedule regardless of the actual day

At the moment my system is set to ‘away’ and it’ll probably stay in that mode until sometime in September when heating is needed again and I set it back to ‘auto’

Yes. I use it that way all the time. I never use ‘off’. In the other modes I often click the up and down. That would temporarily raise/lower the set point until the next scheduled change.

As the system is heating only I’ll just see it switch between ’heating’ and ‘idle’. ‘Heating’ when the boiler runs to maintain the set point and back to ‘idle’ when the set point is reached and the boiler cuts out.

I have several Fire tablets and this is not a problem on any of mine. Sorry though, I cannot offer a solution.

1 Like

I’ve had issues like that from time to time. Restore your backup, then create a new one and save to your hub. Then repeat that backup but this time select device as the destination.

I always edit the backup name to yymmdd_room so I can differentiate between them. I’ll usually do a new backup after I make any changes so I’ve got a new starting point if anything goes wrong. I’ll also long press on the redundant older backups from the restore screen and delete them.

1 Like

I might have found out why the video tiles were crashing.. I pushed a version last night (1662) - can you try and let me know?

I tried a radar tile and that really brought my fire to it's knees! Didn't crash but locked it up big time.

That radar tile is just basically several images loaded back to back so it shouldn't cause any issues.. if you're seeing a problem it might be a bug and I'll look at it. I do have the radar tile on all of my devices and hadn't noticed it but I'll do some additional testing.

One thing I am puzzled over on this fire tablet is when I end the dashboard, or restart the tablet, the layout that I had doesn't return and a "default" layout is loaded.

The only thing I can think would be the saved layout is getting corrupted somehow or isn't saving. Is it possible your device is running low on storage space?

I pushed a very small change yesterday (1662) which should show the controls for your thermostats. It only shows up when you click on the 1x1 tile or if the tile itself is > 1 col wide

1 Like

I've also got 2 Fire tablets and they've been running great for > 2 years now. I wasn't sure how keeping the screen on ~15 hours a day would affect them (both screen and battery) but they're still going strong.

FWIW I did replace the Fire OS with Lineage which wasn't trivial in any way so I'm not sure I'd recommend it to anyone.. the only real benefit I get with another OS is the app can turn off the tablet at night and back on again in the morning (because you can't disable the Fire OS lockscreen)

It seems like there must be a bug in the app somewhere which you're running into. I should be able to get to the bottom of it if you can send me device logs.

That has put the controls on the tile. I now see the actual room temperature in the centre of the tile and the set point temperature in between the up and down arrows. It doesn't show 'Heating' or 'Idle'. Unfortunately I get an error if I try to use the controls:

'Command "setHeatingSetpoint /17.5" failed for Kitchen Heating Zone (EvoHome)' flashes up on the bottom of the screen

In the logs (I clicked on upload not sure if that sends them) I get two errors after the command message:

MSG: HD_CustomInterceptor: HTTP_ERROR: 189) http:500 161ms http://192.168.0.50/apps/api/1420/devices/71/setHeatingSetpoint/17.5,
RESP: null

and

MSG: HD_HubitatManager onFailure: error:RetrofitErrorEvent(errorCode=500, errorMessage={"error":true,"type":"java.lang.Exception","message":"An unexpected error occurred."})

and a corresponding error event in the Hubitat logs for maker api:

[app:1420](http://192.168.0.50/logs#pastapp1420)2022-08-04 16:21:08.291 [error](http://192.168.0.50/installedapp/configure/1420)java.lang.NullPointerException: Cannot invoke method getAt() on null object on line 465 (method sendDeviceCommandSecondary)

I wonder what would work to change the setpoint? This is from the Hubitat docs:

setHeatingSetpoint(temperature)
temperature required (NUMBER) - Heating setpoint in degrees

So that URL looks right to me: http://192.168.0.50/apps/api/1420/devices/71/setHeatingSetpoint/17.5

Maybe it doesn't accept decimal point values (ie: 17 or 18 instead of 17.5)?

I'm pretty sure my thermostat only uses whole number values.. I vaguely remember adding .5 increments for Celsius as a request but that might not work.

Are you able to go to the Hubitat device page for your thermostat and try running that command with 17.5 and see if it goes though?

It doesn't show 'Heating' or 'Idle'.

The tile should show the status for everything except "idle". It uses the value for thermostatOperatingState

1 Like

I can't alter the temperature from the device preference panel (there's nowhere for me to put a value in there). However it definitely does work with 0.5 degree values on the systems native app (Honeywell), locally at the thermostat and from my SharpTools tile.

weird.. I think the device info page automatically lists out every 'command' that the device driver supports. If there's no commands listed I'm not sure how to send commands from the app

this is my Nest thermostat device info page:

I suppose you could watch the logs while changing the temp from another dashboard and hopefully it would log what command was sent..

The commands are all listed but there's no input box to key a value in. It was an app and driver that a community member ported across from SmartThings.

Here you go. This for a different room and is what appears in the Hubitat logs if I raise the temp by 0.5 deg C from SharpTools:

[dev:70](http://192.168.0.50/logs#dev70)2022-08-04 17:28:50.340 [info](http://192.168.0.50/device/edit/70)Dining Room Heating Zone (Evohome): generateEvent(): New values: [temperature:22.0, heatingSetpoint:15.5, thermostatSetpoint:15.5, thermostatSetpointMode:temporaryOverride, thermostatSetpointUntil:2022-08-04T20:30:00Z, thermostatMode:away, scheduledSetpoint:20.0, nextScheduledSetpoint:17.0, nextScheduledTime:2022-08-04T20:30:00Z]

[dev:70](http://192.168.0.50/logs#dev70)2022-08-04 17:28:46.013 [info](http://192.168.0.50/device/edit/70)Dining Room Heating Zone (Evohome): setHeatingSetpoint(): Setting setpoint to: 15.5 until: Thu Aug 04 21:30:00 BST 2022

Looking at what you've said above. I'm not sure whether this is relevant but I found this comment in the Evohome Connect app code:

* setpoint: Setpoint temperature, e.g.: "21.5". Can be a number or string.

Would that mean a decimal sent as a number is the issue as my app is expecting a string? I'll have a look in the driver code as well to see if anything pops out.

I could be wrong but I'm wondering if MakerAPI isn't able to adjust the setpoint for this device at all. The built-in dashboard and SharpTools both have their own built-in Hubitat apps so they're not using MakerAPI. They have the ability to make direct calls to apps/drivers.

Again, I could be wrong but that log entry doesn't look like a command that is even possible to be sent via MakerAPI:

[dev:70](http://192.168.0.50/logs#dev70)2022-08-04 17:28:50.340 [info](http://192.168.0.50/device/edit/70)Dining Room Heating Zone (Evohome): generateEvent(): New values: [temperature:22.0, heatingSetpoint:15.5, thermostatSetpoint:15.5, thermostatSetpointMode:temporaryOverride, thermostatSetpointUntil:2022-08-04T20:30:00Z, thermostatMode:away, scheduledSetpoint:20.0, nextScheduledSetpoint:17.0, nextScheduledTime:2022-08-04T20:30:00Z]

FWIW - I did make a small change to the UI so on the next update you should see a tile like this one:

I'm basically checking if the thermostat only supports a single mode (heating or cooling) and if so I'll just use the heating or cooling layout.. this is how it looks for my Nest thermostats when in heat/cool mode.

1 Like

Ok.... 'I have a plan, a plan so cunning you could stick a tail on it and call it a fox'

As the heating is scheduled and zoned for every room through these thermostats and the app, I don't need to mess around with the temperatures for every room individually. I have a link on my dash to open the EvoHome android app via its intent if I want to do anything major and I have Virtual switches on the dash to change the modes between auto, economy, day off, away etc. So I mainly want this as a quick way to raise/lower the temperature in the Lounge without opening the app.

So I'll display the thermostat as 'custom' and just have it display only what I want to see (current set point, current temperature, mode). I've added a Virtual Button with 2 buttons which I'll label with up and down. I'll then just write a little RM rule that increases/decreases the set point if pressed and I'll get feedback on the adjacent tile.

Edit: even that's problematic. It looks like there are all sorts of issues with the community app I'm using as it's giving me a missing method exception. Anyway I'll have a play and find a workaround.

Edit 2: got it working via rule machine and virtual buttons

1 Like