def get_target_from_index(device_index): """Return target (If available) based on index from list of devices""" devices = sispm.connect() try: return devices[int(device_index) - 1] except IndexError: return None
def get_target_from_id(device_id): """Return target (If available) based on ID from list of devices""" devices = sispm.connect() for device in devices: if sispm.getid(device) == device_id: return device return None
def __init__(self, device_room): super().__init__() os.chdir('/home/roomuser/Roomware/roomware') config = ConfigParser() config.read('config.ini') self.devices = sispm.connect() self.device_room = device_room self.device_id = config.get('powerstrip', 'device_id') self.powerstrip_length = config.getint('powerstrip', 'powerstrip_length') self.first_socket = config.getint('powerstrip', 'first_socket') self.powerstrips_rooms = {} if len(self.devices) > 1: self.powerstrips_rooms = { "1": self.devices[0], "2": self.devices[1] }
def get_device_status(device_id=None, port=None): """Return dictionary of all device ports and status of each""" if device_id is not None: if len(device_id) == 1: target = get_target_from_index(device_id) if target is None: return jsonify( {"error": f"Index {device_id} not found in devices list"}) else: target = get_target_from_id(device_id) if target is None: return jsonify( {"error": f"Device with ID {device_id} not found"}) if port is None: retval = {"status": {}} for socket in range(sispm.getminport(target), sispm.getmaxport(target) + 1): retval["status"][socket] = sispm.getstatus(target, socket) elif validate_port(target, port): retval = {"status": sispm.getstatus(target, port)} else: return jsonify({ "error": "{} is out of range for device ({} - {})".format( port, sispm.getminport(target), sispm.getmaxport(target)) }) else: retval = {"status": {}} for device in sispm.connect(): device_id = sispm.getid(device) retval["status"][device_id] = {} for socket in range(sispm.getminport(device), sispm.getmaxport(device) + 1): retval["status"][device_id][socket] = sispm.getstatus( device, socket) return jsonify(retval)
while True: c = ser.read(1) if (len(c) == 0): break if (c[0] == 0x0d): print(line) line = '' elif (c[0] >= 32 and c[0] < 128): line += chr(c[0]) if (test and line.find(test) != -1): break print(line) # Find Enermax devices. devices = sispm.connect() # Were they found? if len(devices) == 0: print('No device found') quit() # Find the device with the correct id dev = None for d in devices: if sispm.getid(d) == id: dev = d break if dev is None: print('Device ' + id + ' not found')
def main(): # Find our devices. devices = sispm.connect() # Were they found? if len(devices) == 0: print("No device found") sys.exit(1) # If there is only one device, use it as default. if len(devices) == 1: dev = devices[0] else: dev = None # Define command line options. try: opts, args = getopt.getopt(sys.argv[1:], "D:d:f:ho:t:") except getopt.GetoptError as err: print(str(err)) usage() sys.exit(2) # Handle command line. for o, a in opts: if o == "-D": dev = None for d in devices: if sispm.getid(d) == a: dev = d break if dev == None: print("device with id {} not found".format(a)) break elif o == "-d": d = int(a) if d < 0 or d >= len(devices): print("unknown device {}".format(d)) break dev = devices[d] elif o == "-f": p = int(a) if not checkport(dev, p): break sispm.switchoff(dev, p) elif o == "-h": usage() print() elif o == "-o": p = int(a) if not checkport(dev, p): break sispm.switchon(dev, p) elif o == "-t": p = int(a) if not checkport(dev, p): break if sispm.getstatus(dev, p) == 0: sispm.switchon(dev, p) else: sispm.switchoff(dev, p) else: break # Always output the device status. status(devices) # Workaround for bug in old version of usb library. devices = None
while True: c = ser.read(1) if len(c) == 0: break if c[0] == 0x0D: print(line) line = "" elif c[0] >= 32 and c[0] < 128: line += chr(c[0]) if test and line.find(test) != -1: break print(line) # Find Enermax devices. devices = sispm.connect() # Were they found? if len(devices) == 0: print("No device found") quit() # Find the device with the correct id dev = None for d in devices: if sispm.getid(d) == id: dev = d break if dev is None: print("Device " + id + " not found")
def get_devices(): """Return list of connected devices""" devices = sispm.connect() return jsonify({"devices": [sispm.getid(d) for d in devices]})