[RELEASE] HD+ - Android Dashboard

Version 1.0.155 (beta)

I just checked in the fix for RGB and dimmer light switches (not requiring the "Light" attribute). I don't have one of these to test with but I think it should work.

I also added a 'cloud login' toggle switch in settings. Once enabled this will force all network traffic through cloud.hubitat.com. The switch only shows up if we can get the cloud API token on login (which requires the Maker API 'cloud enabled' option to be checked). This mode allows for a manual pull-to-refresh to be done anytime as well as some different logic after sending commands. I'll continue to improve it but this should be an improvement over the previous version.

make it much easier to match colors

Yeah, the more I start to think about how I'll actually use my RGB lights the more this makes sense.. not just for background tile colors but actually matching 4 outside lights so they're not all different shades or red or whatever. I'm open to any ideas.. RGB entry doesn't seem like the most user-friendly way IMO but as an 'advanced' option it certainly would be easy to add in.

the earlier version had an option to change the template for the tile

I used to let you change any device type to any other device type but realized that's probably not the right idea.. I was more trying to give a way to change between devices that shared the same common attributes.. for example a "ContactSensor" could be on a door or a window or some other place. A "Switch" could be on a light switch or it could be a fireplace. I'm still learning all of the actual uses for these things! Anyway, you can still change a ContactSensor or Switch - but I didn't think there would ever be a reason to change between a "GarageDoorControl" and a "Weather" device type or things like that..

Speaking of - I want to add Fan support.. also am looking at adding the Mode support (not as trivial though)

1 Like

just download the APk 1.0155 my Lutron cassetta wall switch is not allowing dimming just on and off and my magic light RGB bulb is only showing on and off....

also some of the devices are not showing correct status at start up...Need to do more debugging on that one

Your latest update fixed this. Thanks

Does this still use local when it can?

@jpage4500, this is a great idea and thanks so much for taking it up! :+1: :+1:

@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