for i in data: outputs[str(i['pin'])] = gpio(i['pin'], i['name'], "none", 'out') # Get inputs and set them up cur.execute("SELECT name, pin, type FROM inputs") data = cur.fetchall() for i in data: inputs[int(i['pin'])] = gpio(i['pin'], i['name'], i['type'], 'in') # Get events and set them up cur.execute("SELECT id FROM events") eventsdata = cur.fetchall() for i in eventsdata: events[int(i['id'])] = event(int(i['id']), cur) sensors = sensors() class WebSocket(tornado.websocket.WebSocketHandler): # Handle a new web client def open(self): clients.append(self) gui.console("Websocket Opened") def on_message(self, message): gui.console(message) args = message.split(":") # Create a new output (pin, name) if args[0] == "newoutput": if args[1] in outputs: self.write_message("error:GPIO already setup on pin " + args[1]) else:
globals.inputs[i].stop_input_idle() try: sensors.temp_process.terminate() except AttributeError: pass sensors.run_sensor_refresh = False GPIO.cleanup() if not globals.nogui: gui.end() os.remove('/etc/homeremote/lock.pid') sys.exit(0) if __name__ == "__main__": globals.init_globals() globals.security = security() globals.sensors = sensors() daemonize = False for i in sys.argv: if i == "-nogui": globals.nogui = True if i == "-D": daemonize = True globals.nogui = True if not globals.nogui: gui.start() if daemonize: gui.no_output = True # Check for a user on the database. If there isnt one, create a default admin account