The Internet of things (IoT) is the network of devices such as vehicles, and home appliances that contain electronics, software, sensors, actuators, and connectivity which allows these things to connect, interact and exchange data. (Thank you for that definition, Wikipedia!)
Most people are aware, more or less, of the meaning of IoT and its importance. It has become the newest trend and with 5G and other technologies coming in the near future, the number of IoT devices constantly increases. Today we can find more and more “smart” devices (besides our laptops and smartphones) that can connect over the internet, be remotely controlled and monitored making, well most of the times, our lives easier and connected (to practically anything).
While the first word of the acronym IoT is “Internet” (the global network of interconnected computer networks linking devices worldwide), not all IoT devices need to be connected to the Internet, or — at least, not always.
An example from the agricultural area is a (local) network of sensors that measure the temperature and humidity levels and send the collected data, via some protocol i.e. 802.11 (mostly known as WiFi), to a nearby base station. In this example, the system does not need to be connected to the Internet. If we suppose that the base station is the local office of the staff team we could also assume that periodically they gather the data to another facility or even process it there, on site. Of course, the base station could have been connected to the internet, but that doesn’t necessarily take from its functionality.
On the other hand, there are some devices, like IP cameras, that almost demand Internet connectivity to truly benefit from the full potential of IoT devices as such. So let's suppose we want to protect our household by installing an IP camera with motion and sound detection settings, that alerts us when something is detected with a notification and/or an email. What happens if for some reason (technical or malicious) we lose internet connectivity at our home? We would be under the illusion that everything is secure since we wouldn't get an email, and that our IoT device would alert us as soon as someone tried to invade into our house, while our camera would have just stopped working without any warning.
I am not aware of any IoT device (please inform me in the comments below if you know any) that actually notify the user that his IoT device has become just “oT”, meaning that it has lost internet connectivity (something that could be very important in some cases as we discussed earlier).
That is why I am proposing that IoT devices that are connected to the Internet should all include a basic feature. That feature is to notify when internet connectivity is lost from the device. If at the side of the IoT device there is no internet access, of course, there aren’t any means of sending an alert. That is why I am suggesting that at the client side app there should be monitoring (at a rate that will be determined by the severity of the device's task and need to be online) of the connection between device and controller app.
In our previous IP camera example, the i.e. smartphone app would have detected the loss of internet connectivity of the home router, the user would have been sent a notification, thus taking the appropriate measures to resolve the problem (calling the ISP, sending someone to check, etc).
Let’s see some independent solutions now! For those who own a Raspberry Pie (or a Linux machine that you can have running all day), I have some code that you could check out too.
First of all, I have made a smartphone application, Pinger, that monitors the Internet connectivity of your home router, notifying when the connection is down, thus avoiding to leave your IoT devices “I”-less.
Second, I have written a simple BASH script. You can run the shell script in your Raspberry Pie for example (having it connected to an external power supply, e.g. power bank) when you are outside of your LAN and use it once again to check your internet connectivity.
# Pinger: Receive a message/email when your host is down
echo "Enter the IP address or host name."
echo "Enter the refresh rate of ping checking (in minutes)."
minrate=$((rate * 60))
ping -c 1 $ipaddr >/dev/null
while [ $response -eq 0 ]
echo "Your internet connection seems to be UP"
ping -c 1 $ipaddr >/dev/null
echo "Attention! Your internet connection seems to be DOWN"
# send an email alert via ssmtp, see how at https://www.youtube.com/watch?v=QT-6NbjqjDM
So to sum it up, it is important to be aware of when and if our IoT devices are connected to the Internet. Alarming the user that his device has no longer internet connection should be, in my opinion, a basic feature in IoT and smart devices that depend on online connectivity.
Learned something? Hold down the 👏 to support and help others find this article. Thanks for reading!!
Follow me on Twitter @konpap1996