vacation_mode = True DEBUG = False def dbg_set(): if DEBUG: return print def nop(*args, **kwargs): return None return nop dbg = dbg_set() import socketserver import threading from gpiozero import LED class ThreadedTCPRequestHandler(socketserver.BaseRequestHandler): def handle(self): tx = self.request.recv(1024) power = eval(str(tx, 'utf-8')) dbg(tx,power) dbg(power) if (power <= 30 and not vacation_mode) or (power >= 80 and vacation_mode): # Brings power to the "normally off" outlets onoff("on") elif (power >= 80 and not vacation_mode) or (power <= 30 and vacation_mode): # Brings power to the "normally on" outlets onoff("off") class ThreadedTCPServer(socketserver.ThreadingMixIn, socketserver.TCPServer): pass def onoff(O): if O == "on": dbg("going on!!!") led.on() else: dbg("Off time") led.off() if __name__ == "__main__": HOST, PORT = "", 12894 server = ThreadedTCPServer((HOST, PORT), ThreadedTCPRequestHandler) led = LED(16) # Pin #36 (with USB facing down, two above bottom right - ground directly above) server_thread = threading.Thread(target=server.serve_forever) try: server_thread.start() except Exception as e: server.shutdown() server.server_close() dbg("Exiting with error:")