IoT Real-time Monitoring for Devices with Presence
Connected devices come in all shapes and sizes. We have remote devices that control temperature, collect sensor readings, open garage doors, and talk to other devices. We have other devices that store and protect all this data and then secure it. All in all, we need to keep tabs on all our connected devices, and know exactly when they’re online and offline.
IoT monitoring example
Say you have a network of IoT products collecting data on weather patterns around a highly sensitive area. If your devices go down, and that area relies on accurate, reliable reporting from your IoT devices, you need up-to-the second device monitoring status. However, mobile device state isn’t only essential for dramatic scenarios like this, but has become a standard for any connected IoT system for whatever reason.
Check out our simulated Presence demo to get a better idea of how Presence can be used for real-time IoT monitoring for connected devices.
The presence feature will output the devices that are online as identified by their UUIDs, along with their timestamp, an action that indicates join/leave/timeout and the occupancy of the channel. This information will be displayed in the console.
But what if you want to consume this information by publishing it to a screen or store it somewhere? The following code lets you do just that.
Here, we define a custom function for presence which basically uses the different actions of an online presence event that could occur, such as join, timeout and leave.
- If a ‘join’ occurs, we append the UUID to the list of devices that are online.
- If a ‘leave or a timeout’ occurs, we remove that UUID from the list of list of devices that are online.
You now have the online user tracking, both in an array called ‘devices’ and also as list printed on a page.
This way, you can now be updated on the different devices joining and leaving your network in real time.
Step 1: Presence and
where “uuids” contains a list of the uuids online and occupancy gives the number of online users.
I will be using the code feature to see ‘who’s there?’. All you need to provide is the channel name, and then check if there is anyone on that channel. The code sample below is basic usage.
This will output the mobile connected devices that are online which are identified by the UUIDs. In order to consume this information, all you need is to modify the callback function a little. The following code shows you how:
This code, modifies the information received by the hereNow function, and stores and prints it in an array called ‘uuidlist’. In this manner, you can now use this information according to your requirements.