-
Notifications
You must be signed in to change notification settings - Fork 53
Example: Display Internet connectivity status
Arvydas Juskevicius edited this page Apr 7, 2016
·
1 revision
This example shows how to use BlinkStick as an Internet connectivity status indicator.
Script works by checking connectivity to Google DNS server. When connection can be established, BlinkStick will light up green. When connection is not available, BlinkStick will start pulsing red and will turn green back again when connection is reestablished.
import socket
import time
from blinkstick import blinkstick
"""
This functions checks connection to Google DNS server
If DNS server is reachable on port 53, then it means that
the internet is up and running
"""
def internet_connected(host="8.8.8.8", port=53):
"""
Host: 8.8.8.8 (google-public-dns-a.google.com)
OpenPort: 53/tcp
Service: domain (DNS/TCP)
"""
try:
socket.setdefaulttimeout(1)
socket.socket(socket.AF_INET, socket.SOCK_STREAM).connect((host, port))
return True
except Exception as ex:
pass
return False
# Find first BlinkStick
led = blinkstick.find_first()
# Can't do anything if BlinkStick is not connected
if led is None:
print "BlinkStick not found...\r\nExiting..."
else:
try:
# Store value of last state in this variable
connected = False
while (True):
if internet_connected():
# If previously internet was disconnected, then print message
# and set BlinkStick to green
if not connected:
print "Internet is up!"
connected = True
led.set_color(name="green")
# Wait for 1 second before checking for internet connectivity
time.sleep(1)
else:
# If previously internet connected, then print message
if connected:
print "Internet is down..."
connected = False
# BlinkStick pulse API call lasts for 1 second so this acts
# as delay before next check for internet is performed
led.pulse(name="red")
except KeyboardInterrupt:
print "Exiting... Bye!"
led.turn_off()