@Test
  public void testSetpoint() {
    assumeNotNull(relayId);
    assumeNotNull(thermostatId);
    Float setpointTemp = Float.valueOf(20);

    NAThermStateBody thermState = api.getthermstate(relayId, thermostatId).getBody();
    NASetpoint setpoint = thermState.getSetpointOrder();
    if (setpoint == null) {
      setpoint = thermState.getSetpoint();
    }

    // If already in manual mode, ensure that the temp will be changed
    if (setpoint.getSetpointMode() == "manual") {
      setpointTemp = setpoint.getSetpointTemp() + Float.valueOf(0.5f);
    }

    // Send order
    api.setthermpoint(
        relayId,
        thermostatId,
        "manual",
        (int) (System.currentTimeMillis() / 1000 + 30),
        setpointTemp);

    // Verify order
    thermState = api.getthermstate(relayId, thermostatId).getBody();
    if (thermState.getSetpointOrder() != null) {
      assertEquals(thermState.getSetpointOrder().getSetpointTemp(), setpointTemp);
    } else {
      assertEquals(thermState.getSetpoint().getSetpointTemp(), setpointTemp);
    }

    // Rollback previous mode
    api.setthermpoint(
        relayId,
        thermostatId,
        setpoint.getSetpointMode(),
        setpoint.getSetpointEndtime(),
        setpoint.getSetpointTemp());
  }