def main() -> None: """Run main code entrypoint.""" sys.path.insert( 0, os.path.join(os.path.dirname(os.path.realpath(__file__)), "..")) parser = argparse.ArgumentParser(description="list-devices") parser.add_argument("-u", "--url", help="Vera URL, e.g. http://192.168.1.161:3480", required=True) args = parser.parse_args() # Start the controller controller = VeraController(args.url) controller.start() try: # Get a list of all the devices on the vera controller all_devices = controller.get_devices() # Print the devices out for device in all_devices: print("{} {} ({})".format( type(device).__name__, device.name, device.device_id)) dv = controller.get_device_by_id(39) print("device") print(dv) dv.set_switch_state(1) finally: # Stop the subscription listening thread so we can quit controller.stop()
def main() -> None: """Run main code entrypoint.""" sys.path.insert( 0, os.path.join(os.path.dirname(os.path.realpath(__file__)), "..")) parser = argparse.ArgumentParser(description="device-listener") parser.add_argument("-u", "--url", help="Vera URL, e.g. http://192.168.1.161:3480", required=True) group = parser.add_mutually_exclusive_group(required=True) # Pass in either the vera id of the device or the name group.add_argument("-i", "--id", type=int, help="The Vera Device ID for subscription") group.add_argument("-n", "--name", help="The Vera Device name string for subscription") args = parser.parse_args() # Start the controller controller = VeraController(args.url) controller.start() try: # Get the requested device on the vera controller found_device = None if args.name is not None: found_device = controller.get_device_by_name(args.name) elif args.id is not None: found_device = controller.get_device_by_id(args.id) if found_device is None: raise Exception("Did not find device with {} or {}".format( args.name, args.id)) print("Listening for changes to {}: {}_{}".format( type(found_device).__name__, found_device.name, found_device.device_id)) # Register a callback that runs when the info for that device is updated controller.register(found_device, device_info_callback) print("Initial values: {}".format(found_device.get_all_values())) print("Initial alerts: {}".format(found_device.get_alerts())) # Loop until someone hits Ctrl-C to interrupt the listener try: while True: time.sleep(1) except KeyboardInterrupt: print("Got interrupted by user") # Unregister our callback controller.unregister(found_device, device_info_callback) finally: # Stop the subscription listening thread so we can quit controller.stop()
def main() -> None: """Run main code entrypoint.""" sys.path.insert( 0, os.path.join(os.path.dirname(os.path.realpath(__file__)), "..")) parser = argparse.ArgumentParser(description="set-and-delete-door-code") parser.add_argument("-u", "--url", help="Vera URL, e.g. http://192.168.1.161:3480;", required=True) parser.add_argument("-n", "--name", help='Name eg: "John Doe"', required=True) parser.add_argument("-i", "--id", help='Device ID: "123"', required=True) args = parser.parse_args() # Start the controller controller = VeraController(args.url) controller.start() try: device = controller.get_device_by_id(int(args.id)) if isinstance(device, VeraLock): pins = device.get_pin_codes() found_slot = None for slot, name, _ in pins: if name == args.name: found_slot = slot if found_slot is None: print("No matching slot found\n") return result = device.clear_slot_pin(slot=int(found_slot)) if result.status_code == 200: print("\nCommand succesfully sent to Lock \ \nWait for the lock to process the request") else: print("\nLock command " + result.text) finally: # Stop the subscription listening thread so we can quit controller.stop()
def main() -> None: """Run main code entrypoint.""" sys.path.insert( 0, os.path.join(os.path.dirname(os.path.realpath(__file__)), "..")) parser = argparse.ArgumentParser(description="set-and-delete-door-code") parser.add_argument("-u", "--url", help="Vera URL, e.g. http://192.168.1.161:3480;", required=True) parser.add_argument("-n", "--name", help='Name eg: "John Doe"', required=True) parser.add_argument("-p", "--pin", help='Pin eg: "5678"', required=True) parser.add_argument("-i", "--id", help='Device ID: "123"', required=True) args = parser.parse_args() # Start the controller controller = VeraController(args.url) controller.start() try: device = controller.get_device_by_id(int(args.id)) if isinstance(device, VeraLock): # show exisiting door codes print("Existing door codes:\n {}".format(device.get_pin_codes())) # set a new door code result = device.set_new_pin(name=args.name, pin=args.pin) # printing the status code and error if any for debug logs # print("status:"+str(result.status_code), result.text) if result.status_code == 200: print("\nCommand succesfully sent to Lock \ \nWait for the lock to process the request") else: print("\nLock command " + result.text) finally: # Stop the subscription listening thread so we can quit controller.stop()