|  |  | @@ -3,6 +3,36 @@ import time | 
		
	
		
			
			|  |  |  | import datetime | 
		
	
		
			
			|  |  |  | import pifacedigitalio as p | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | TREE = """ | 
		
	
		
			
			|  |  |  | *             , | 
		
	
		
			
			|  |  |  | _/^\_ | 
		
	
		
			
			|  |  |  | <     > | 
		
	
		
			
			|  |  |  | *                 /.-.\         * | 
		
	
		
			
			|  |  |  | *        `/&\`                   * | 
		
	
		
			
			|  |  |  | ,@.*;@, | 
		
	
		
			
			|  |  |  | /_o.I %_\    * | 
		
	
		
			
			|  |  |  | *           (`'--:o(_@; | 
		
	
		
			
			|  |  |  | /`;--.,__ `')             * | 
		
	
		
			
			|  |  |  | ;@`o % O,*`'`&\  * | 
		
	
		
			
			|  |  |  | *    (`'--)_@ ;o %'()\      * | 
		
	
		
			
			|  |  |  | /`;--._`''--._O'@; | 
		
	
		
			
			|  |  |  | /&*,()~o`;-.,_ `""`) | 
		
	
		
			
			|  |  |  | *          /`,@ ;+& () o*`;-';\    * | 
		
	
		
			
			|  |  |  | (`""--.,_0 +% @' &()\   * | 
		
	
		
			
			|  |  |  | /-.,_    ``''--....-'`)  * | 
		
	
		
			
			|  |  |  | *    /@%;o`:;'--,.__   __.'\ | 
		
	
		
			
			|  |  |  | ;*,&(); @ % &^;~`"`o;@();         * | 
		
	
		
			
			|  |  |  | /(); o^~; & ().o@*&`;&%O\ | 
		
	
		
			
			|  |  |  | jgs   `"="==""==,,,.,="=="==="` | 
		
	
		
			
			|  |  |  | __.----.(\-''#####---...___...-----._ | 
		
	
		
			
			|  |  |  | '`         \)_`'''''` | 
		
	
		
			
			|  |  |  | .--' ') | 
		
	
		
			
			|  |  |  | o(  )_- | 
		
	
		
			
			|  |  |  | `'''` ` | 
		
	
		
			
			|  |  |  | """ | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | START = datetime.time(17, 0, 0) | 
		
	
		
			
			|  |  |  | END = datetime.time(23, 59, 0) | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | def timestamp(): | 
		
	
		
			
			|  |  |  | return datetime.datetime.now() | 
		
	
	
		
			
				|  |  | @@ -22,23 +52,36 @@ def turn_off(): | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | def check_connectivity(): | 
		
	
		
			
			|  |  |  | """ Flick the switch """ | 
		
	
		
			
			|  |  |  | for i in range(10): | 
		
	
		
			
			|  |  |  | print("Checking connectivity:") | 
		
	
		
			
			|  |  |  | for i in range(2): | 
		
	
		
			
			|  |  |  | turn_on() | 
		
	
		
			
			|  |  |  | time.sleep(.3) | 
		
	
		
			
			|  |  |  | time.sleep(2) | 
		
	
		
			
			|  |  |  | turn_off() | 
		
	
		
			
			|  |  |  | time.sleep(.3) | 
		
	
		
			
			|  |  |  | time.sleep(2) | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | # Turn on if we are in the correct interval | 
		
	
		
			
			|  |  |  | now = datetime.datetime.now().time() | 
		
	
		
			
			|  |  |  | if START <= now <= END: | 
		
	
		
			
			|  |  |  | turn_on() | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | if __name__ == "__main__": | 
		
	
		
			
			|  |  |  | # Connect to PiFace | 
		
	
		
			
			|  |  |  | print(TREE) | 
		
	
		
			
			|  |  |  | p.init() | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | # Check connectivity | 
		
	
		
			
			|  |  |  | check_connectivity() | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | # Message | 
		
	
		
			
			|  |  |  | print() | 
		
	
		
			
			|  |  |  | print("Starting scheduler:") | 
		
	
		
			
			|  |  |  | print("Xmas enabled between {} and {}.".format(START.strftime("%H:%M"), END.strftime("%H:%M"))) | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | # Set up the schedule | 
		
	
		
			
			|  |  |  | schedule.every().day.at("17:00").do(turn_on) | 
		
	
		
			
			|  |  |  | schedule.every().day.at("23:59").do(turn_off) | 
		
	
		
			
			|  |  |  | schedule.every().day.at(START.strftime("%H:%M")).do(turn_on) | 
		
	
		
			
			|  |  |  | schedule.every().day.at(END.strftime("%H:%M")).do(turn_off) | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | # Run the event loop | 
		
	
		
			
			|  |  |  | while(True): | 
		
	
	
		
			
				|  |  | 
 |