From ef1e88d80c1abf679e9a8d9ea03cbbd7b1f6d0a2 Mon Sep 17 00:00:00 2001 From: kiichan Date: Thu, 15 Aug 2019 23:36:00 -0500 Subject: [PATCH] Add 'server.py' --- server.py | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 server.py diff --git a/server.py b/server.py new file mode 100644 index 0000000..cb22696 --- /dev/null +++ b/server.py @@ -0,0 +1,54 @@ +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:")