For a full example of what rossko57 is talking about see Design Patterns: Generic Is Alive. As he indicated, the Thing status is a poor proxy for the device’s status. For another example, if you have a battery powered Zwave device, it might be completely dead for a very long time (weeks) before the binding will decide to mark it as offline. But many of these devices might have a “hey, I’m still alive” message they publish periodically, maybe a heart beat or a battery level status message, which you can use and timeout the device if you don’t receive this message for too long of a time. This is how I detect when my battery powered zwave smoke alarms go offline.