Monitoring Your Kids' Online Electronics Usage With SmartThings and a Raspberry Pi

Introduction: Monitoring Your Kids' Online Electronics Usage With SmartThings and a Raspberry Pi

This is an idea that I have about using the Raspberry Pi to act as a constant checker of what electronic devices are registered on the home wifi network, and then update the home automation hub accordingly (in this case SmartThings).

The home automation hub can then action upon the information provided by the Raspberry Pi, be it immediate notifications that the TV or tablet is switched on, or post-reports generated from the hub's event logs, showing when and what device was switched on.

Pardon the rudimentary bash scripting!

Teacher Notes

Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.

Step 1: Write a Fping Bash Script That Would Ping All Ip Addresses in the Network

The following command does a ping of all devices on the network, then pipes the output to a csv file:

/usr/bin/fping -a -r 0 -g -d | grep -v 'ICMP' &> /home/pi/hosts.csv

Step 2: Read the Contents of the Fping to Determine Which Device Is Currently Switched On.

The electronic devices in my house have a static IP address. Eg the TV is always, etc. Hence I'm able to write custom IF statements like below:


for each in "${ARRAY[@]}"


if [ $each == "" ] then echo "TV Found!"

Step 3: Use Curl Commands to Control the on or Off of a SmartThings Virtual Device

For SmartThings, we are able to make virtual devices, then expose the devices as REST endpoints. I won't be going into those areas as they have nothing to do with the Raspberry Pi, but the above screenshot shows a TV virtual device that is switched on. The following command in the bash script is what is used to turn on this device: (where X is the personal authorization and device details)

curl -H "Authorization: Bearer X" ""

Step 4: Schedule the Bash Script in a Cron Job to Run Every Minute.

The last step would be to install Cron on the Raspberry Pi, then schedule the written script to run every minute.

sudo apt-get install gnome-schedule

crontab -e

Step 5: Leave the Raspberry Pi On, and Let It Flag Your Electronice Devices As Up or Down.

So the end result is that the Raspberry Pi will check every minute about which device is on, and update SmartThings accordingly, acting as your very own electronics monitor for your kids!

For more home automation related articles, do take a look at my blog:


Raspberry Pi Contest 2016

Participated in the
Raspberry Pi Contest 2016

Be the First to Share


    • Tiny Speed Challenge

      Tiny Speed Challenge
    • Clocks Contest

      Clocks Contest
    • PCB Design Challenge

      PCB Design Challenge

    2 Discussions


    3 years ago

    Nice !