[RELEASE] HD+ - Android Dashboard

@jpage4500 I'm sure you have a LOT on your plate with this but, assuming you're keeping a TODO list, please add multisensor support for the Aeotec Multisensor 6, Inovelli 4-in-1, and @iharyadi's environment sensor (Hubitat with Homemade Temperature, Humidity, Pressure and Light sensor).

Thanks

No - it's all cloud or all local from the toggle switch now. I was trying to figure out a way for the app to recognize it's on the local WIFI network. At least for my phone I wanted to make sure it switched back to the local IP when I was home as that's going to be the fastest response (as well as allowing the real-time websocket for pushing updates from the hub)

The best thought I had was to save the WIFI SSID that was used to initially login with. But, with newer Android OS's that requires prompting for location permission.

I used to use logic which would always try the local IP first and then fall back on the cloud connection if that failed. But, I wouldn't always want to do that as it takes some time to try the local connection first, fail and then re-try using the cloud.. and if I kept using the cloud connection how would I detect I'm home again?

Anyway, before I prompted for location permission I figured the more reliable way was a switch for always on or always off. If no one minds the location permission (I feel like a lot of people are turned off by any kind of permissions like that.. then again, maybe that's just my perception..

1 Like

I learned a little more about this. There's a semi-undocumented Maker API call to get all of the system modes and another one to set the mode. There's also an API to get/set the 'hsm' (which I just learned is the Hubitat Safety Monitor status).

Would each of these (mode and hsm) be represented by a single dashboard tile? Maybe a button with the current mode text and when pressed showed a dialog with the other modes you can switch to? I imagine it'd need to be an option since not everyone would use that.

The only other question I have about mode and hsm is how often would i need to refresh the status? I'm assuming that I won't get notified by the hub when it's changed so I'd have to periodically check

I would prefer 2 separate tiles for mode and HSM and yes a button to change Mode

I think you will get notified when mode changes at least that's my experience in Node-red

I don't use HSM, but it should be separate from modes. The mode doesn't need to be refreshed real often - once every minute would be fine - if it doesn't refresh itself.

If you're able to send me a device log from the app (settings->about->feedback) that would have the device details which I've been using to support a device I don't have. Or, you can just send the details without using the app (see this post: Maker API - example responses for lots of various device types)

My first thought about that 6-in-1 or 4-in-1 device is -- how do you display all of those details in a tile?

I can support wider tiles.. I was thinking I might need to do that for a thermostat to be able to have an UP and DOWN button.. or, the weather or a new clock tile. I'm also a little leery about putting too much data on a single tile just because typically not everything is critical to see at a glance. Like the door sensors I have today.. they support open/closed state, battery level and the temp. But, I'm really not that interested in knowing the temp of 3 different door sensors around my house and the battery level isn't important to me at all - until it's getting time to change the battery. That's why I tried to keep these fields smaller.


Anyway, I wonder if these multi-sensor devices also could have some more important data displayed up-front and center but some of the lesser details only shown when needed or in the details popup

I have a few devices that aren't super reliable for me either. But, that's the status I'm getting back from the hub. I also have a few devices that I suspect are at the edge of ZWave or Zigbee range because they mostly work but occasionally will fail to update (either using the app or using Google Voice).

The other thing that's annoying is that the hub doesn't handle the case where a device is off very well. My RGB lights for example can be turned off at the switch for days but the hub still reports the as ON. I feel like the hub should do a better job of polling a device and marking it as offline after so many failed attempts.. Wink did a pretty good job of this. Maybe in a future hub update...

How about a list:

Temp 72,5F
Humidity 33%
Illuninance 383
Battery 90% (this one is a crappy indicator so maybe not)

Some of them have motion as well so use the motion icon in the background? I don't know if that's possible so maybe put it at the top of the list.

That works too :smiley:

Roger...

Devices

[{"name":"Aeotec ZW116","label":"Basement Hall Lights","type":"Aeotec Nano Switch","id":"1","date":"2020-06-20T21:10:05+0000","model":null,"manufacturer":null,"capabilities":["Switch","Configuration","Refresh","EnergyMeter","PowerMeter","Sensor","Actuator","VoltageMeasurement","Outlet"],"attributes":{"current":"0.01","dataType":"NUMBER","values":null,"currentHigh":"0.01","currentLow":"0.01","energy":"0.03","energyDuration":"2.04 Days","energyTime":"1582588659498","power":"0","powerHigh":"18.63","powerLow":"0","switch":"off","voltage":"121.88","voltageHigh":"121.98","voltageLow":"121.88"},"commands":[{"command":"configure"},{"command":"off"},{"command":"off"},{"command":"on"},{"command":"on"},{"command":"refresh"},{"command":"reset"}]},{"name":"Leviton DZPD3","label":"Living Room Floor Lamp","type":"Leviton Decora Z-Wave Plus Dimmer","id":"2","date":"2020-06-20T22:49:09+0000","model":null,"manufacturer":null,"capabilities":["Switch","Polling","Configuration","SwitchLevel","Refresh","Indicator","Sensor","Actuator","HealthCheck","Light"],"attributes":{"checkInterval":"1920","dataType":"ENUM","values":["on","off"],"fadeOffTime":"2","fadeOnTime":"2","firmwareVersion":"null.null","indicatorStatus":"when on","level":"0","levelIndicatorTimeout":"0","loadType":"led","maxLevel":"100","minLevel":"0","presetLevel":"0","switch":"off"},"commands":[{"command":"configure"},{"command":"high"},{"command":"indicatorNever"},{"command":"indicatorWhenOff"},{"command":"indicatorWhenOn"},{"command":"levelDown"},{"command":"levelUp"},{"command":"low"},{"command":"medium"},{"command":"off"},{"command":"off"},{"command":"on"},{"command":"on"},{"command":"ping"},{"command":"poll"},{"command":"refresh"},{"command":"setLevel"}]},{"name":"Aeotec ZW116","label":"Back Deck Light","type":"Aeotec Nano Switch","id":"3","date":"2020-06-20T13:00:02+0000","model":null,"manufacturer":null,"capabilities":["Switch","Configuration","Refresh","EnergyMeter","PowerMeter","Sensor","Actuator","VoltageMeasurement","Outlet"],"attributes":{"current":"0.01","dataType":"NUMBER","values":null,"currentHigh":"0.56","currentLow":"0.01","energy":"0.81","energyDuration":"116.54 Days","energyTime":"1582589140507","power":"0","powerHigh":"67.71","powerLow":"0","switch":"off","voltage":"121.65","voltageHigh":"122.21","voltageLow":"121.65"},"commands":[{"command":"configure"},{"command":"off"},{"command":"off"},{"command":"on"},{"command":"on"},{"command":"refresh"},{"command":"reset"}]},{"name":"Aeotec ZW116","label":"Front Door Light","type":"Aeotec Nano Switch","id":"4","date":"2020-06-20T20:16:44+0000","model":null,"manufacturer":null,"capabilities":["Switch","Configuration","Refresh","EnergyMeter","PowerMeter","Sensor","Actuator","VoltageMeasurement","Outlet"],"attributes":{"current":"0.01","dataType":"NUMBER","values":null,"currentHigh":"0.14","currentLow":"0.01","energy":"2.43","energyDuration":"116.84 Days","energyTime":"1582589578812","power":"0","powerHigh":"17.21","powerLow":"0","switch":"off","voltage":"122.12","voltageHigh":"123.1","voltageLow":"122.12"},"commands":[{"command":"configure"},{"command":"off"},{"command":"off"},{"command":"on"},{"command":"on"},{"command":"refresh"},{"command":"reset"}]},{"name":"Aeotec ZW116","label":"Driveway Lights","type":"Aeotec Nano Switch","id":"5","date":"2020-06-20T20:16:44+0000","model":null,"manufacturer":null,"capabilities":["Switch","Configuration","Refresh","EnergyMeter","PowerMeter","Sensor","Actuator","VoltageMeasurement","Outlet"],"attributes":{"current":"0.01","dataType":"NUMBER","values":null,"currentHigh":"0.29","currentLow":"0.01","energy":"7.58","energyDuration":"116.83 Days","energyTime":"1582589715643","power":"0","powerHigh":"34.66","powerLow":"0","switch":"off","voltage":"122.02","voltageHigh":"122.72","voltageLow":"122.02"},"commands":[{"command":"configure"},{"command":"off"},{"command":"off"},{"command":"on"},{"command":"on"},{"command":"refresh"},{"command":"reset"}]},{"name":"Aeotec ZW116","label":"Back Path Lights","type":"Aeotec Nano Switch","id":"6","date":"2020-06-18T04:01:13+0000","model":null,"manufacturer":null,"capabilities":["Switch","Configuration","Refresh","EnergyMeter","PowerMeter","Sensor","Actuator","VoltageMeasurement","Outlet"],"attributes":{"current":"0.01","dataType":"NUMBER","values":null,"currentHigh":"0.64","currentLow":"0.01","energy":"0.74","energyDuration":"96.73 Days","energyTime":"1582590358497","power":"0","powerHigh":"78.08","powerLow":"0","switch":"off","voltage":"121.98","voltageHigh":"122.02","voltageLow":"121.98"},"commands":[{"command":"configure"},{"command":"off"},{"command":"off"},{"command":"on"},{"command":"on"},{"command":"refresh"},{"command":"reset"}]},{"name":"Aeotec ZW116","label":"Garage Lights","type":"Aeotec Nano Switch","id":"7","date":"2020-06-21T00:08:18+0000","model":null,"manufacturer":null,"capabilities":["Switch","Configuration","Refresh","EnergyMeter","PowerMeter","Sensor","Actuator","VoltageMeasurement","Outlet"],"attributes":{"current":"0.01","dataType":"NUMBER","values":null,"currentHigh":"0.01","currentLow":"0.01","energy":"0.08","energyDuration":"2.02 Days","energyTime":"1582590565185","power":"0","powerHigh":"120.13","powerLow":"0","switch":"off","voltage":"121.84","voltageHigh":"121.93","voltageLow":"121.84"},"commands":[{"command":"configure"},{"command":"off"},{"command":"off"},{"command":"on"},{"command":"on"},{"command":"refresh"},{"command":"reset"}]},{"name":"ST IM6001-OTP01","label":"Living Room Outlet","type":"Generic Zigbee Outlet","id":"11","date":"2020-06-20T22:40:28+0000","model":null,"manufacturer":null,"capabilities":["Switch","Configuration","PowerMeter","Sensor","Actuator","Outlet"],"attributes":{"power":"0","dataType":"ENUM","values":["on","off"],"switch":"off"},"commands":[{"command":"configure"},{"command":"off"},{"command":"off"},{"command":"on"},{"command":"on"},{"command":"refresh"}]},{"name":"Iris 3326-L","label":"Basement Stairs Lower Motion","type":"Generic Zigbee Motion Sensor","id":"13","date":"2020-06-21T00:44:29+0000","model":null,"manufacturer":null,"capabilities":["TemperatureMeasurement","Battery","MotionSensor","Configuration","Refresh","Sensor"],"attributes":{"battery":"87","dataType":"NUMBER","values":null,"motion":"inactive","temperature":"63.93"},"commands":[{"command":"configure"},{"command":"refresh"}]},{"name":"Iris 3326-L","label":"Basement Stairs Upper Motion","type":"Generic Zigbee Motion Sensor","id":"14","date":"2020-06-21T00:02:07+0000","model":null,"manufacturer":null,"capabilities":["TemperatureMeasurement","Battery","MotionSensor","Configuration","Refresh","Sensor"],"attributes":{"battery":"87","dataType":"NUMBER","values":null,"motion":"inactive","temperature":"65.16"},"commands":[{"command":"configure"},{"command":"refresh"}]},{"name":"IM6001-OTP01","label":"Guest Room Outlet","type":"Generic Zigbee Outlet","id":"15","date":"2020-06-20T05:52:48+0000","model":null,"manufacturer":null,"capabilities":["Switch","Configuration","PowerMeter","Sensor","Actuator","Outlet"],"attributes":{"power":"0","dataType":"ENUM","values":["on","off"],"switch":"off"},"commands":[{"command":"configure"},{"command":"off"},{"command":"off"},{"command":"on"},{"command":"on"},{"command":"refresh"}]},{"name":"Hue Outdoor Motion Sensor","label":"Back Deck Motion","type":"Hue Motion Sensor","id":"33","date":"2020-06-21T00:49:12+0000","model":null,"manufacturer":null,"capabilities":["IlluminanceMeasurement","TemperatureMeasurement","Battery","MotionSensor","Configuration","Refresh","Sensor"],"attributes":{"battery":"100","dataType":"NUMBER","values":null,"illuminance":"1741","motion":"inactive","temperature":"77.35"},"commands":[{"command":"configure"},{"command":"refresh"}]},{"name":"Environment Sensor EX","label":"Front Porch Environment","type":"Environment Sensor EX","id":"98","date":"2020-06-21T00:53:03+0000","model":null,"manufacturer":null,"capabilities":["IlluminanceMeasurement","TemperatureMeasurement","RelativeHumidityMeasurement","Switch","Battery","Configuration","Refresh","SmokeDetector","CarbonMonoxideDetector","Sensor","PowerSource","PressureMeasurement"],"attributes":{"AnalogInput":null,"dataType":"NUMBER","values":null,"BinaryInput":null,"BinaryOutput":null,"Children":"0","DecryptFailure":"0","Neighbor":"10","PacketDrop":"0","RSSI":"-63","ResetCount":"18","TXFail":"3310","TXRetry":"3012","battery":"100","carbonMonoxide":null,"humidity":"26.62","illuminance":"772","powerSource":null,"pressure":"25.25","relativePressure":"29.98","smoke":null,"switch":null,"temperature":"77.5"},"commands":[{"command":"configure"},{"command":"off"},{"command":"on"},{"command":"refresh"}]},{"name":"Environment Sensor EX","label":"Garage Shop Environment","type":"Environment Sensor EX","id":"99","date":"2020-06-21T00:52:31+0000","model":null,"manufacturer":null,"capabilities":["IlluminanceMeasurement","TemperatureMeasurement","RelativeHumidityMeasurement","Switch","Battery","Configuration","Refresh","SmokeDetector","CarbonMonoxideDetector","Sensor","PowerSource","PressureMeasurement"],"attributes":{"AnalogInput":null,"dataType":"NUMBER","values":null,"BinaryInput":null,"BinaryOutput":null,"Children":"1","DecryptFailure":"0","Neighbor":"10","PacketDrop":"0","RSSI":"-73","ResetCount":"20","TXFail":"19494","TXRetry":"18467","battery":"100","carbonMonoxide":null,"humidity":"39.01","illuminance":"0","powerSource":null,"pressure":"85.6","relativePressure":null,"smoke":null,"switch":null,"temperature":"66.1"},"commands":[{"command":"configure"},{"command":"off"},{"command":"on"},{"command":"refresh"}]},{"name":"Environment Sensor EX","label":"Woodshop Environment","type":"Environment Sensor EX","id":"100","date":"2020-06-21T00:52:25+0000","model":null,"manufacturer":null,"capabilities":["IlluminanceMeasurement","TemperatureMeasurement","RelativeHumidityMeasurement","Switch","Battery","Configuration","Refresh","SmokeDetector","CarbonMonoxideDetector","Sensor","PowerSource","PressureMeasurement"],"attributes":{"AnalogInput":null,"dataType":"NUMBER","values":null,"BinaryInput":null,"BinaryOutput":null,"Children":"0","DecryptFailure":"3","Neighbor":"10","PacketDrop":"0","RSSI":"-72","ResetCount":"11","TXFail":"25399","TXRetry":"23832","battery":"100","carbonMonoxide":null,"humidity":"39.48","illuminance":"53","powerSource":null,"pressure":"85.5","relativePressure":null,"smoke":null,"switch":null,"temperature":"65.9"},"commands":[{"command":"configure"},{"command":"off"},{"command":"on"},{"command":"refresh"}]},{"name":"Environment Sensor EX","label":"Basement Shop Environment","type":"Environment Sensor EX","id":"101","date":"2020-06-21T00:51:22+0000","model":null,"manufacturer":null,"capabilities":["IlluminanceMeasurement","TemperatureMeasurement","RelativeHumidityMeasurement","Switch","Battery","Configuration","Refresh","SmokeDetector","CarbonMonoxideDetector","Sensor","PowerSource","PressureMeasurement"],"attributes":{"AnalogInput":null,"dataType":"NUMBER","values":null,"BinaryInput":null,"BinaryOutput":null,"Children":"0","DecryptFailure":"1","Neighbor":"10","PacketDrop":"0","RSSI":"-43","ResetCount":"11","TXFail":"2154","TXRetry":"1836","battery":"100","carbonMonoxide":null,"humidity":"29.97","illuminance":"0","powerSource":null,"pressure":"85.5","relativePressure":null,"smoke":null,"switch":null,"temperature":"74.0"},"commands":[{"command":"configure"},{"command":"off"},{"command":"on"},{"command":"refresh"}]},{"name":"Environment Sensor EX","label":"Living Room Environment","type":"Environment Sensor EX","id":"102","date":"2020-06-21T00:52:08+0000","model":null,"manufacturer":null,"capabilities":["IlluminanceMeasurement","TemperatureMeasurement","RelativeHumidityMeasurement","Switch","Battery","Configuration","Refresh","SmokeDetector","CarbonMonoxideDetector","Sensor","PowerSource","PressureMeasurement"],"attributes":{"AnalogInput":null,"dataType":"NUMBER","values":null,"BinaryInput":null,"BinaryOutput":null,"Children":"0","DecryptFailure":"0","Neighbor":"10","PacketDrop":"0","RSSI":"-55","ResetCount":"14","TXFail":"2003","TXRetry":"1955","battery":"100","carbonMonoxide":null,"humidity":"29.93","illuminance":"0","powerSource":null,"pressure":"85.5","relativePressure":null,"smoke":null,"switch":null,"temperature":"74.1"},"commands":[{"command":"configure"},{"command":"off"},{"command":"on"},{"command":"refresh"}]},{"name":"Environment Sensor EX","label":"Trailer Environment","type":"Environment Sensor EX","id":"103","date":"2020-06-21T00:52:46+0000","model":null,"manufacturer":null,"capabilities":["IlluminanceMeasurement","TemperatureMeasurement","RelativeHumidityMeasurement","Switch","Battery","Configuration","Refresh","SmokeDetector","CarbonMonoxideDetector","Sensor","PowerSource","PressureMeasurement"],"attributes":{"AnalogInput":null,"dataType":"NUMBER","values":null,"BinaryInput":null,"BinaryOutput":null,"Children":"0","DecryptFailure":"4","Neighbor":"10","PacketDrop":"0","RSSI":"-46","ResetCount":"10","TXFail":"19664","TXRetry":"17379","battery":"100","carbonMonoxide":null,"humidity":"23.88","illuminance":"235","powerSource":null,"pressure":"85.5","relativePressure":null,"smoke":null,"switch":null,"temperature":"78.3"},"commands":[{"command":"configure"},{"command":"off"},{"command":"on"},{"command":"refresh"}]},{"name":"IM6001-OTP01","label":"Woodshop Outlet","type":"Generic Zigbee Outlet","id":"161","date":"2020-06-20T23:31:33+0000","model":null,"manufacturer":null,"capabilities":["Switch","Configuration","PowerMeter","Sensor","Actuator","Outlet"],"attributes":{"power":"35","dataType":"ENUM","values":["on","off"],"switch":"on"},"commands":[{"command":"configure"},{"command":"off"},{"command":"off"},{"command":"on"},{"command":"on"},{"command":"refresh"}]},{"name":"Aeotec Nano Dimmer","label":"Upstairs Hall Dimmer","type":"Aeotec Nano Dimmer","id":"194","date":"2020-06-21T00:52:59+0000","model":null,"manufacturer":null,"capabilities":["Switch","Configuration","SwitchLevel","Refresh","EnergyMeter","PowerMeter","Sensor","Actuator","VoltageMeasurement","Light","ChangeLevel"],"attributes":{"current":"0","dataType":"NUMBER","values":null,"currentHigh":"1.23","currentLow":"0","energy":"4.5","energyDuration":"49.95 Days","energyTime":"1588385475456","level":"99","power":"0","powerHigh":"126.59","powerLow":"0","switch":"off","voltage":"0","voltageHigh":"119.86","voltageLow":"0"},"commands":[{"command":"configure"},{"command":"off"},{"command":"off"},{"command":"on"},{"command":"on"},{"command":"refresh"},{"command":"reset"},{"command":"setLevel"},{"command":"startLevelChange"},{"command":"stopLevelChange"}]},{"name":"DW - Activity","label":"DW - Activity","type":"Device Watchdog Tile","id":"257","date":"2020-06-20T20:16:42+0000","model":null,"manufacturer":null,"capabilities":["Actuator"],"attributes":{"bpt-watchdogActivity1":"<div style='overflow:auto;height:90%'><table style='width:100%;line-height:1.00;font-size:12px;text-align:left'><tr><td><b>Activity Report</b><td><b>Value</b><tr><td>Dust Collector<td>Jun 6, 2020 - 3:23: PM<tr><td>Woodshop Remote<td>Jun 6, 2020 - 3:23: PM</table></div>","dataType":"STRING","values":null,"bpt-watchdogActivity2":"<div style='font-size:12px'>Activity Report - No Data</div>","bpt-watchdogActivity3":"<div style='font-size:12px'>Activity Report - No Data</div>","bpt-watchdogActivityAtt1":null,"bpt-watchdogActivityAtt2":null,"bpt-watchdogActivityAtt3":null,"bpt-watchdogBattery1":null,"bpt-watchdogBattery2":null,"bpt-watchdogBattery3":null,"bpt-watchdogComboActBat":null,"bpt-watchdogSpecial1":null,"bpt-watchdogSpecial2":null,"bpt-watchdogSpecial3":null,"bpt-watchdogStatus1":null,"bpt-watchdogStatus2":null,"bpt-watchdogStatus3":null,"watchdogActivityAttCount1":null,"watchdogActivityAttCount2":null,"watchdogActivityAttCount3":null,"watchdogActivityCount1":"272","watchdogActivityCount2":"62","watchdogActivityCount3":"62","watchdogBatteryCount1":null,"watchdogBatteryCount2":null,"watchdogBatteryCount3":null,"watchdogComboActBatCount":null,"watchdogSpecialCount1":null,"watchdogSpecialCount2":null,"watchdogSpecialCount3":null,"watchdogStatusCount1":null,"watchdogStatusCount2":null,"watchdogStatusCount3":null},"commands":[{"command":"clearStates"},{"command":"sendWatchdogActivityAttMap"},{"command":"sendWatchdogActivityMap"},{"command":"sendWatchdogBatteryMap"},{"command":"sendWatchdogComboActBatMap"},{"command":"sendWatchdogSpecialMap"},{"command":"sendWatchdogStatusMap"}]},{"name":"Video Motion","label":"Video Motion","type":"Virtual Switch","id":"289","date":"2020-06-20T22:40:36+0000","model":null,"manufacturer":null,"capabilities":["Switch","Refresh"],"attributes":{"switch":"off","dataType":"ENUM","values":["on","off"]},"commands":[{"command":"off"},{"command":"on"},{"command":"refresh"}]},{"name":"Aeon Multisensor 6","label":"Garage Multisensor","type":"Aeon Multisensor 6","id":"354","date":"2020-06-21T00:30:22+0000","model":null,"manufacturer":null,"capabilities":["IlluminanceMeasurement","TemperatureMeasurement","RelativeHumidityMeasurement","Battery","MotionSensor","Configuration","AccelerationSensor","Sensor","UltravioletIndex"],"attributes":{"acceleration":"inactive","dataType":"NUMBER","values":null,"battery":"100","humidity":"47","illuminance":"0","motion":"inactive","temperature":"64.0","ultravioletIndex":"0"},"commands":[{"command":"configure"}]},{"name":"Update Activity Report","label":"Update Activity Report","type":"Virtual Switch","id":"385","date":"2020-06-20T23:26:38+0000","model":null,"manufacturer":null,"capabilities":["Switch","Refresh"],"attributes":{"switch":"off","dataType":"ENUM","values":["on","off"]},"commands":[{"command":"off"},{"command":"on"},{"command":"refresh"}]},{"name":"Generic Zigbee Outlet","label":"Dust Collector","type":"Generic Zigbee Outlet","id":"418","date":"2020-06-06T21:23:53+0000","model":null,"manufacturer":null,"capabilities":["Switch","Configuration","PowerMeter","Sensor","Actuator","Outlet"],"attributes":{"power":"0","dataType":"ENUM","values":["on","off"],"switch":"off"},"commands":[{"command":"configure"},{"command":"off"},{"command":"off"},{"command":"on"},{"command":"on"},{"command":"refresh"}]},{"name":"Aeotec ZWA003","label":"Woodshop Remote","type":"Aeotec NanoMote","id":"419","date":"2020-06-06T21:23:53+0000","model":null,"manufacturer":null,"capabilities":["Battery","Sensor","HoldableButton","PushableButton","ReleasableButton"],"attributes":{"battery":"100","dataType":"NUMBER","values":null,"held":"1","numberOfButtons":"4","pushed":"3","released":"1"},"commands":[{"command":"hold"},{"command":"push"},{"command":"release"}]},{"name":"Hue Motion Sensor","label":"Upstairs Hall Motion","type":"Hue Motion Sensor","id":"452","date":"2020-06-21T00:53:11+0000","model":null,"manufacturer":null,"capabilities":["IlluminanceMeasurement","TemperatureMeasurement","Battery","MotionSensor","Configuration","Refresh","Sensor"],"attributes":{"battery":"100","dataType":"NUMBER","values":null,"illuminance":"0","motion":"active","temperature":"66.85"},"commands":[{"command":"configure"},{"command":"refresh"}]},{"name":"Environment Sensor EX","label":"Bedroom Environment","type":"Environment Sensor EX","id":"485","date":"2020-06-21T00:49:16+0000","model":null,"manufacturer":null,"capabilities":["IlluminanceMeasurement","TemperatureMeasurement","RelativeHumidityMeasurement","Switch","Battery","Configuration","Refresh","SmokeDetector","CarbonMonoxideDetector","Sensor","PowerSource","PressureMeasurement"],"attributes":{"AnalogInput":null,"dataType":"NUMBER","values":null,"BinaryInput":null,"BinaryOutput":null,"Children":"0","DecryptFailure":"0","Neighbor":"10","PacketDrop":"0","RSSI":"-74","ResetCount":"16","TXFail":"323","TXRetry":"292","battery":"100","carbonMonoxide":null,"humidity":"37.71","illuminance":"0","powerSource":null,"pressure":"85.6","relativePressure":null,"smoke":null,"switch":null,"temperature":"71.6"},"commands":[{"command":"configure"},{"command":"off"},{"command":"on"},{"command":"refresh"}]},{"name":"Environment Sensor EX","label":"Environment #8","type":"Environment Sensor EX","id":"486","date":"2020-06-21T00:51:58+0000","model":null,"manufacturer":null,"capabilities":["IlluminanceMeasurement","TemperatureMeasurement","RelativeHumidityMeasurement","Switch","Battery","Configuration","Refresh","SmokeDetector","CarbonMonoxideDetector","Sensor","PowerSource","PressureMeasurement"],"attributes":{"AnalogInput":null,"dataType":"NUMBER","values":null,"BinaryInput":null,"BinaryOutput":null,"Children":"0","DecryptFailure":"0","Neighbor":"10","PacketDrop":"0","RSSI":"-69","ResetCount":"2","TXFail":"18","TXRetry":"15","battery":"100","carbonMonoxide":null,"humidity":"32.2","illuminance":"245","powerSource":null,"pressure":"85.6","relativePressure":null,"smoke":null,"switch":null,"temperature":"65.9"},"commands":[{"command":"configure"},{"command":"off"},{"command":"on"},{"command":"refresh"}]},{"name":"Environment Sensor EX","label":"Environment #9","type":"Environment Sensor EX","id":"487","date":"2020-06-21T00:52:59+0000","model":null,"manufacturer":null,"capabilities":["IlluminanceMeasurement","TemperatureMeasurement","RelativeHumidityMeasurement","Switch","Battery","Configuration","Refresh","SmokeDetector","CarbonMonoxideDetector","Sensor","PowerSource","PressureMeasurement"],"attributes":{"AnalogInput":null,"dataType":"NUMBER","values":null,"BinaryInput":null,"BinaryOutput":null,"Children":"0","DecryptFailure":"0","Neighbor":"10","PacketDrop":"0","RSSI":"-59","ResetCount":"2","TXFail":"3","TXRetry":"3","battery":"100","carbonMonoxide":null,"humidity":"32.63","illuminance":"381","powerSource":null,"pressure":"85.5","relativePressure":null,"smoke":null,"switch":null,"temperature":"66.9"},"commands":[{"command":"configure"},{"command":"off"},{"command":"on"},{"command":"refresh"}]},{"name":"Inovelli Multisensor","label":"Inovelli Multisensor","type":"Inovelli 4-in-1 Sensor","id":"514","date":"2020-06-21T00:52:44+0000","model":null,"manufacturer":null,"capabilities":["IlluminanceMeasurement","TemperatureMeasurement","RelativeHumidityMeasurement","Battery","MotionSensor","Configuration","Refresh","Sensor","Actuator","TamperAlert"],"attributes":{"battery":"100","dataType":"NUMBER","values":null,"humidity":"39","illuminance":"5","motion":"inactive","tamper":null,"temperature":"72.8"},"commands":[{"command":"configure"},{"command":"refresh"}]},{"name":"HEmessage","label":"HEmessage","type":"MQTT Text","id":"545","date":"2020-06-16T02:29:35+0000","model":null,"manufacturer":null,"capabilities":["Battery","Refresh","Sensor","Actuator","Notification","Telnet"],"attributes":{"battery":null,"dataType":"STRING","values":null,"mqtt":"text","prefix":null,"sensor":null,"suffix":null,"text":"Movement detected - Upstairs Hall Motion"},"commands":[{"command":"deviceNotification"},{"command":"forceText"},{"command":"initialize"},{"command":"refresh"},{"command":"setBattery"},{"command":"setPrefix"},{"command":"setSuffix"},{"command":"setText"}]}]

I couldn't find a way to do the JSON formatting like you did in the other post you linked. :frowning_face:

Is it possible to do a quick check of the hub IP just to see if the port responds? No response then try the cloud address. This should be a low faster than trying to connect via the Maker API. If this is efficient enough perhaps it can be done after every command issued in the cloud. I'm not familiar with what networking options are available.

@jpage4500, A "reset" fixed this. It was probably left over stuff from manually selecting a dimmer template in a previous version.

Cool - thanks for the devices; there's several types I haven't seen before. I'm going to try and create a single .json file that contains every device type example I can find. By logging in to server "0.0.0.0" the app will display that file to help show what each one looks like.

I can tell it's going to get tricky when a single device does lots of different things. Only so much room in a tile today. But, maybe this is where a wider tile will have to come in..


unrelated - does anyone have a ceiling fan and would be willing to share the JSON response from the hub? I think this would be an easy device to support

also unrelated but while I'm thinking of it.. while I want to support every common device I know there's more you can do with a device than just on/off, lock/unlock, etc. I also plan to put in a better UI to handle sending any of the supported device commands.. for example, my lock supports the command "setCode". Without the app knowing what that is I'd like to make it possible to send it along with a custom lock code and then see the response back. I imagine there's hundreds of these commands out there so this seems like 1 way to make this work

Huh?

If you login using server IP 0.0.0.0 the app will load a test .json file which contains several test devices. I added it for myself to view sample devices but also need it for Amazon App Store which needs to 'login' to test the app.

It works today by randomly picking from a few different devices files but I'm going to create 1 file with each device type example I can get

You don't say what systems you are using or how you're logging in (ssh, telnet,...) so I don't know why you'd do that. 0.0.0.0 is a reserved address and can mean different things depending on the context. On my Linux systems 0.0.0.0 is another way to say localhost which is more commonly associated with 127.0.0.1.

So I guess you're logging in to whatever box you are currently on and I don't understand why you wouldn't just open the file since it's on the same system.

Anyway, if it works for you... :+1:

Using "0.0.0.0" for the server IP just puts the app into a test mode - that's all. Instead of loading devices from a hub it just uses a built-in JSON file. I only mentioned this because that's how I'm able to test with devices I don't have

Oh, now I see what you're talking about. Since it's your app you can handle addresses any way you like. :smiley:

version 1.0.158 (beta)

  • add new favorite color picker; saves last 10 colors used for quick selection
  • add a way to enter HEX of color for direct entry without any sliders
  • update tile size dialog to match other dialogs

NOTE: I'm still trying to get a good way to set an RGB light to white.. it's a pain because the HSL color range Hubitat supports don't match the same HSL ranges used most everywhere else. Anyway, white is in the new favorite color list and can also be manually entered to (FFFFFF) so this is getting better..

1 Like

quick note.. I added a Version/History section to the first post in this thread ([BETA] Android app for wall mounted tablets)

I wanted to add a quick but very big thank you. I reinstalled the app on one of the FireTVs and it works great. A very nice smooth interface on the big screen and easy to navigate.
With tablets you want a set collection of switches, lights etc. with each tablet getting its own unique collection. In HE you set up a new Maker API and point the Android tablet app to that HE app ID. I would like get a second collection on the Fire TV and I was thinking about bringing the app into Android Studio and changing the App ID so I could install the app a second time.

That's certainly a use case I hadn't thought of before.. I didn't know you could even add more than one instance of the Maker API app.

Just thinking out loud..

  1. the latest beta version of the app just needs the IP address and it goes and finds the Maker API app ID automatically. There's no reason it couldn't detect more than 1 instance of Maker API and just prompt you which one you want to connect to.

  2. The other option would be to add all of your devices to the MakerAPI and 'hide' the ones you don't want to see on a particular device. That would be more work but seems more efficient in that you only need 1 instance of the Maker API app added.

Anyway, I can implement option 1.. not sure if many people have more than 1 instance of MakerAPI but if they do I can prompt which one.

Would either of these work? Or maybe I'm not understanding your question why you'd want to have 2 instances of the same app running on a single device