Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save flashvoid/c887d4413c9cfff776ed6208dc15acaa to your computer and use it in GitHub Desktop.
Save flashvoid/c887d4413c9cfff776ed6208dc15acaa to your computer and use it in GitHub Desktop.
fan control
#!/usr/bin/env python
from BaseHTTPServer import BaseHTTPRequestHandler,HTTPServer
from optparse import OptionParser
from urlparse import urlparse, parse_qs
import os
parser = OptionParser(usage="%prog --port")
parser.add_option('--port', default=8080, dest="port", type="int",
help="Port number to listen for incoming requests")
(options, args) = parser.parse_args()
class AgentHandler(BaseHTTPRequestHandler):
def do_GET(self):
self.send_response(200)
self.send_header('Content-type','text/html')
self.end_headers()
self.route()
return
def route(self):
q = self.path.split("/")
if q[1] == "power" and len(q) > 2:
if q[2] == "up":
self.switch_power("up")
elif q[2] == "temp":
self.switch_power("temp")
elif q[2] == "swing":
self.switch_power("swing")
else:
self.wfile.write("Not found %s\n" % self.path)
else:
self.wfile.write('''<a href="/power/up"> POWER </a> </br>
<a href="/power/temp"> TEMP </a> </br>
<a href="/power/swing"> SWING </a> </br>''' % q)
def switch_power(self,state):
if state == "up":
os.system("echo pwr >> /dev/ttyUSB0")
elif state == "temp":
os.system("echo wtt >> /dev/ttyUSB0")
elif state == "swing":
os.system("echo swg >> /dev/ttyUSB0")
def run_agent():
server = HTTPServer(('', options.port), AgentHandler)
server.serve_forever()
if __name__ == "__main__":
run_agent()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment