By popular request, we put together some new features on the SharpTools Labs server to make it easier for SmartThings users to check the status of devices in their home, including offline status and battery levels.
Like previous Labs experiences, you can integrate these features into your SharpTools rules using HTTP Actions. To do so, you’ll need a SmartThings Personal Access Token with at least the List and See All Devices access which you’ll use as the token
property in the examples below:
Health Check
The Health Check endpoint returns a list of devices which are reported as ‘offline’ in SmartThings.
https://lab.sharptools.dev/smartthings/healthcheck?token=YOUR-TOKEN
Response Properties:
textSummary
: a human readable list of device names; can be used directly in notificationsitems
: an array of objects which each include adeviceId
andname
property
The
textSummary
property is an easy to read summary that can be used directly in notifications or stored in a variable to be viewed on your dashboard. Theitems
property is useful for advanced use cases where you want to remap the data or have more control over the formatting.
As noted in the HTTP Actions help article linked above, in order to access the response data, you’ll access the relevant Context Variable → Response Data at which point you’ll enter one of the property names mentioned above. The full variable used in your rule might end up looking something like: $context.response.data.textSummary
Battery Check
The Battery Check endpoint returns a list of devices which are below the provided threshold
(30% by default).
https://lab.sharptools.dev/smartthings/batterycheck?token=XXX&threshold=20
As indicated in the example above, you can provide an optional threshold
value to adjust the upper limit for battery values included in the report.
Response Properties:
textSummary
: a human readable list of device names; can be used directly in notificationsitems
: an array of objects which each include adeviceId
,name
, andbatteryLevel
property
The format of the response is very similar to the healthcheck endpoint with the addition of the battery level within the human readable textSummary
property and the inclusion of a batteryLevel
property within each object in items
.
Other Notes
Please note that these endpoints were designed to be used in a report-like nature. In other words, you might schedule a daily rule which would check these endpoints and you could conditionally determine if you want to send a notification summary or not.
There is currently some light caching on the endpoints to prevent abuse, but we will monitor and adjust accordingly as needed.
Please note that this is intended for SharpTools Premium users as an added benefit, but it is not an official ‘production’ feature and thus may not have the same level of stability / support as core features.
Looking for something similar for Hubitat? While there isn’t exactly the same concept of ‘offline’ device status in Hubitat, community developers have put together Device Watchdog and Device Activity Check which accomplish a similar thing by checking for the last time that a device reported an update.