Skip to content

Username & Clientkey

Maxi Zink edited this page Feb 6, 2022 · 4 revisions

Info

You dont need to do that every Time! When you already know you Credentials (IP, Username, Clientkey) you can skip this Step.
When you execute the generateHueBridgeCredentials Method, make sure that you pressed the Link Button on your Bridge a few Seconds ago. Otherwise the Response returns you "LINK_BUTTON_NOT_PRESSED" and throws an error, if you still want to get the Credentials.

Usage

@SneakyThrows
  private void createHueBridgeCredentials() {
    BridgeIpDiscovery bridgeIpDiscovery = ServiceAccessor.accessService(BridgeIpDiscovery.class);
    BridgeCredentialsDiscovery bridgeCredentialsDiscovery = ServiceAccessor.accessService(BridgeCredentialsDiscovery.class);
    String bridgeIp = bridgeIpDiscovery.discoverBridgeIP();

    HueBridgeCredentialsResponse keyGenerateResponse = bridgeCredentialsDiscovery.generateHueBridgeCredentials(bridgeIp);
    if (keyGenerateResponse.getRespone().equals(HueBridgeCredentialsResponse.Respone.LINK_BUTTON_NOT_PRESSED)) {
      //Handle here what should happen if the link button was not pressed
      //INFO: The getCredentials() Method returns null and throws an error!
      log.info("No Credentials generated! Press the Link Button");
    }

    if (keyGenerateResponse.getRespone().equals(HueBridgeCredentialsResponse.Respone.GENERATED)) {
      HueBridgeCredentials hueBridgeCredentials = keyGenerateResponse.getHueBridgeCredentials();
      //Do Stuff here you want if the Credentials were generated!
      log.info("Credentials were generated:");
      log.info("   - UserName  -> " + hueBridgeCredentials.getUserName());
      log.info("   - ClientKey -> " + hueBridgeCredentials.getClientKey());
    }
  }