This notification project can work as a normal grandfather's clock with famous Westminster Quarters melody. The easiest way is to use this Add-On file called chimeClock.py. You can invoke it regularly adding this line to your crontab (crontab -e):
0,15,30,45 * * * * python /path/to/file/chimeClock.pyAttention! This chimeClock.py works only if the chimeService.py is running, as it is written in the Program Code v0.2.
chimeClock.py
import datetime
import sys, zmq
speed = 0.8
#Mute it during night hours
now=datetime.datetime.now()
if ( ( now.hour > 22 ) and ( now.minute > 10 ) ) or ( now.hour < 9 ):
sys.exit(0)
port = "5555"
#Westminster Quarters
firstQuarter = [1,speed,2,speed,3,speed,4,speed * 2]
secondQuarter = [3,speed,1,speed,2,speed,4,speed * 2, 3,speed,2,speed,1,speed,3,speed * 2]
thirdQuarter = [1,speed,3,speed,2,speed,4,speed * 2, 4,speed,2,speed,1,speed,3,speed * 2, 1,speed,2,speed,3,speed,4,speed * 2]
fourthQuarter = [3,speed,1,speed,2,speed,4,speed * 2, 3,speed,2,speed,1,speed,3,speed * 2, 1,speed,3,speed,2,speed,4,speed * 2, 4,speed,2,speed,1,speed,3,speed * 2]
Hour = [0,speed * 4]
context = zmq.Context()
socket = context.socket(zmq.REQ)
socket.connect ("tcp://localhost:%s" % port)
def preparePattern( array ):
pattern = ""
for i in range(0, len(array), 2):
pattern = pattern + str(array[i]) + ":" + str(array[i+1])
if i < len(array) - 2 :
pattern = pattern + "-"
return pattern
def sound( array ):
pattern = preparePattern(array)
socket.send (pattern)
if now.minute == 15:
sound(firstQuarter)
elif now.minute == 30:
sound(secondQuarter)
elif now.minute == 45:
sound(thirdQuarter)
elif now.minute == 0:
sound(fourthQuarter)
if(now.hour > 12):
hour = now.hour - 11
elif(now.hour == 0 ):
hour = 12
else:
hour = now.hour
for x in xrange(1,hour):
sound(Hour)
pass
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.