02 December 2015 / Last updated: 27 Jan 2017

Visualising the location of your devices

Execution time:
Difficulty:
Cost:
img
We recently deployed our newly designed dashboard and with it came a slew of new or improved features. One such new feature is the ability to view where your devices are located on a map. Read on to learn how this feature works and how you can use it.

Overview

Your devices may be spread around the world or your country, or reside at your premises. They can also come online and go offline at any time. The dashboard's device list is awesome for giving you an overview of the current state of your devices, but what about their locations?
Imagine there's a network outage in a region where you have deployed a bunch of devices. You quickly notice this in the dashboard by these devices going abruptly offline. But unless you have named them specially, would you be able to make out the fact that they're all related by their location, without much effort?
With the new dashboard map, we wanted to give you a way to get a sense of where your devices are located and whether they're online in an instant. Having visual overview, you can now easily make out which devices belong to the same geographic region in cases like the one described above for example, and act quickly.
Accessible from the sidebar when browsing the application and device pages respectively are maps for two levels of detail: fleet and device-specific. At fleet level, you are able to see an overview of where every device of your fleet is located.
img
You can also get a closer look of a specific device's location and surrounding area.
img
The map automatically zooms in and out in order to fit all devices in its viewport. It also automatically updates itself as devices go online or offline. Online devices are marked by yellow markers and offline by gray. Clicking on any marker takes you to that device's summary page.

Determining your device's location

A requirement we set for the map feature was for it to become available for all devices and not require re-provisioning your devices or any input from your part. So, we decided to simply rely on an existing attribute of a device that can be used to locate it: its IP address.
Your device communicates with our API server whenever its state changes so that you can monitor it via the dashboard. Part of the exchanged information is the device's IP address on the Internet or, more accurately, the public IP address of the network it is in.
The IP address is used to perform Geocoding, which is a method to resolve an address of some kind to a set of coordinates, like latitude and longitude on Earth's projected plane. We then present the coordinates as markers in a familiar, Google Maps based interface.

Device location accuracy

There are a couple of interesting points you'll need to be aware of in order to get a better understanding of what you're seeing on the map.
Geocoding an IP address is inherently a fairly inaccurate process. IP addresses usually resolve only down to regional level and there are administrative, security and privacy related reasons for this.
Also, depending on the network a device is in, you may encounter cases where your device may appear to be located well off its known physical location, or that we can't locate it at all. This applies for example if the network is behind a proxy or is not publicly accessible.

Conclusion

We hope that the map, if approached as merely informative, will prove useful and enjoyable. Please don't use it to watch your drones flying around (yet).
At resin.io, we strive to build the best IoT software deployment platform and your feedback shapes the product in a profound way. So, don't forget to share your thoughts on our community chat, it's always much appreciated!

Share this post