code: public static ZWaveCommandClass getInstance(int i, ZWaveNode node, ZWaveController controller, ZWaveEndpoint endpoint) {
  		logger.debug(String.format("Creating new instance of command class 0x%02X", i));
  		try {
  			CommandClass commandClass = CommandClass.getCommandClass(i);
  			if (commandClass == null) {
  				logger.warn(String.format("Unsupported command class 0x%02x", i));
  				return null;
  			}
  			Class<? extends ZWaveCommandClass> commandClassClass = commandClass.getCommandClassClass();
  			
  			if (commandClassClass == null) {
  				logger.warn(String.format("Unsupported command class %s (0x%02x)", commandClass.getLabel(), i, endpoint));
  				return null;
  			}
  				
  			Constructor<? extends ZWaveCommandClass> constructor = commandClassClass.getConstructor(ZWaveNode.class, ZWaveController.class, ZWaveEndpoint.class);
  			return constructor.newInstance(new Object[] {node, controller, endpoint});
  		} catch (InstantiationException e) {
  		} catch (IllegalAccessException e) {
  		} catch (IllegalArgumentException e) {
  		} catch (InvocationTargetException e) {
  		} catch (NoSuchMethodException e) {
  		} catch (SecurityException e) {
  		}
  		logger.error(String.format("Error instantiating command class 0x%02x", i));
  		return null;
  	}
docs: Gets an instance of the right command class.
  Returns null if the command class is not found.
  @param i the code to instantiate
  @param node the node this instance commands.
  @param controller the controller to send messages to.
  @param endpoint the endpoint this Command class belongs to
  @return the ZWaveCommandClass instance that was instantiated, null otherwise