public class HueBridge
extends Object
Modifier and Type | Class and Description |
---|---|
static interface |
HueBridge.ScheduleCallback
Callback to specify a schedule command.
|
Constructor and Description |
---|
HueBridge(String ip)
Connect with a bridge as a new user.
|
HueBridge(String ip,
String username)
Connect with a bridge as an existing user.
|
Modifier and Type | Method and Description |
---|---|
void |
authenticate(String username)
Authenticate on the bridge as the specified user.
|
Group |
createGroup(List<Light> lights)
Creates a new group and returns it.
|
Group |
createGroup(String name,
List<Light> lights)
Creates a new group and returns it.
|
void |
createSchedule(Date time,
HueBridge.ScheduleCallback callback)
Schedules a new command to be run at the specified time.
|
void |
createSchedule(String name,
Date time,
HueBridge.ScheduleCallback callback)
Schedules a new command to be run at the specified time.
|
void |
createSchedule(String name,
String description,
Date time,
HueBridge.ScheduleCallback callback)
Schedules a new command to be run at the specified time.
|
void |
deleteGroup(Group group)
Delete a group.
|
void |
deleteSchedule(Schedule schedule)
Delete a schedule.
|
Group |
getAllGroup()
Returns a group object representing all lights.
|
Config |
getConfig()
Returns bridge configuration.
|
FullConfig |
getFullConfig()
Returns the entire bridge configuration.
|
FullGroup |
getGroup(Group group)
Returns detailed information for the given group.
|
List<Group> |
getGroups()
Returns the list of groups, including the unmodifiable all lights group.
|
String |
getIPAddress()
Returns the IP address of the bridge.
|
Date |
getLastSearch()
Returns the last time a search for new lights was started.
|
FullLight |
getLight(Light light)
Returns detailed information for the given light.
|
List<Light> |
getLights()
Returns a list of lights known to the bridge.
|
FullSchedule |
getSchedule(Schedule schedule)
Returns detailed information for the given schedule.
|
List<Schedule> |
getSchedules()
Returns a list of schedules on the bridge.
|
String |
getUsername()
Returns the username currently authenticated with or null if there isn't one.
|
boolean |
isAuthenticated()
Returns if authentication was successful on the bridge.
|
String |
link(String devicetype)
Link with bridge using the specified device type.
|
void |
link(String username,
String devicetype)
Link with bridge using the specified username and device type.
|
void |
setConfig(ConfigUpdate update)
Change the configuration of the bridge.
|
String |
setGroupAttributes(Group group,
String name,
List<Light> lights)
Changes the name and the lights of a group and returns the new name.
|
void |
setGroupLights(Group group,
List<Light> lights)
Changes the lights in the group.
|
String |
setGroupName(Group group,
String name)
Changes the name of the group and returns the new name.
|
void |
setGroupState(Group group,
StateUpdate update)
Changes the state of a group.
|
String |
setLightName(Light light,
String name)
Changes the name of the light and returns the new name.
|
void |
setLightState(Light light,
StateUpdate update)
Changes the state of a light.
|
void |
setSchedule(Schedule schedule,
ScheduleUpdate update)
Changes a schedule.
|
void |
setScheduleCommand(Schedule schedule,
HueBridge.ScheduleCallback callback)
Changes the command of a schedule.
|
void |
setTimeout(int timeout)
Set the connect and read timeout for HTTP requests.
|
void |
startSearch()
Start searching for new lights for 1 minute.
|
void |
unlink()
Unlink the current user from the bridge.
|
public HueBridge(String ip)
ip
- ip address of bridgepublic HueBridge(String ip, String username) throws IOException, ApiException
ip
- ip address of bridgeusername
- username to authenticate withIOException
ApiException
public void setTimeout(int timeout)
timeout
- timeout in milliseconds or 0 for indefinitelypublic String getIPAddress()
public String getUsername()
public boolean isAuthenticated()
public List<Light> getLights() throws IOException, ApiException
UnauthorizedException
- thrown if the user no longer existsIOException
ApiException
public Date getLastSearch() throws IOException, ApiException
UnauthorizedException
- thrown if the user no longer existsIOException
ApiException
public void startSearch() throws IOException, ApiException
UnauthorizedException
- thrown if the user no longer existsIOException
ApiException
public FullLight getLight(Light light) throws IOException, ApiException
light
- lightUnauthorizedException
- thrown if the user no longer existsEntityNotAvailableException
- thrown if a light with the given id doesn't existIOException
ApiException
public String setLightName(Light light, String name) throws IOException, ApiException
light
- lightname
- new name [0..32]UnauthorizedException
- thrown if the user no longer existsEntityNotAvailableException
- thrown if the specified light no longer existsIOException
ApiException
public void setLightState(Light light, StateUpdate update) throws IOException, ApiException
light
- lightupdate
- changes to the stateUnauthorizedException
- thrown if the user no longer existsEntityNotAvailableException
- thrown if the specified light no longer existsDeviceOffException
- thrown if the specified light is turned offIOException
ApiException
public Group getAllGroup()
public List<Group> getGroups() throws IOException, ApiException
UnauthorizedException
- thrown if the user no longer existsIOException
ApiException
public Group createGroup(List<Light> lights) throws IOException, ApiException
lights
- lights in groupUnauthorizedException
- thrown if the user no longer existsGroupTableFullException
- thrown if the group limit has been reachedIOException
ApiException
public Group createGroup(String name, List<Light> lights) throws IOException, ApiException
name
- new group namelights
- lights in groupUnauthorizedException
- thrown if the user no longer existsGroupTableFullException
- thrown if the group limit has been reachedIOException
ApiException
public FullGroup getGroup(Group group) throws IOException, ApiException
group
- groupUnauthorizedException
- thrown if the user no longer existsEntityNotAvailableException
- thrown if a group with the given id doesn't existIOException
ApiException
public String setGroupName(Group group, String name) throws IOException, ApiException
group
- groupname
- new name [0..32]UnauthorizedException
- thrown if the user no longer existsEntityNotAvailableException
- thrown if the specified group no longer existsIOException
ApiException
public void setGroupLights(Group group, List<Light> lights) throws IOException, ApiException
group
- grouplights
- new lights [1..16]UnauthorizedException
- thrown if the user no longer existsEntityNotAvailableException
- thrown if the specified group no longer existsIOException
ApiException
public String setGroupAttributes(Group group, String name, List<Light> lights) throws IOException, ApiException
group
- groupname
- new name [0..32]lights
- [1..16]UnauthorizedException
- thrown if the user no longer existsEntityNotAvailableException
- thrown if the specified group no longer existsIOException
ApiException
public void setGroupState(Group group, StateUpdate update) throws IOException, ApiException
group
- groupupdate
- changes to the stateUnauthorizedException
- thrown if the user no longer existsEntityNotAvailableException
- thrown if the specified group no longer existsIOException
ApiException
public void deleteGroup(Group group) throws IOException, ApiException
group
- groupUnauthorizedException
- thrown if the user no longer existsEntityNotAvailableException
- thrown if the specified group no longer existsIOException
ApiException
public List<Schedule> getSchedules() throws IOException, ApiException
UnauthorizedException
- thrown if the user no longer existsIOException
ApiException
public void createSchedule(Date time, HueBridge.ScheduleCallback callback) throws IOException, ApiException
time
- time to run commandcallback
- callback in which the command is specifiedUnauthorizedException
- thrown if the user no longer existsInvalidCommandException
- thrown if the scheduled command is larger than 90 bytes or otherwise invalidIOException
ApiException
public void createSchedule(String name, Date time, HueBridge.ScheduleCallback callback) throws IOException, ApiException
name
- name [0..32]time
- time to run commandcallback
- callback in which the command is specifiedUnauthorizedException
- thrown if the user no longer existsInvalidCommandException
- thrown if the scheduled command is larger than 90 bytes or otherwise invalidIOException
ApiException
public void createSchedule(String name, String description, Date time, HueBridge.ScheduleCallback callback) throws IOException, ApiException
name
- name [0..32]description
- description [0..64]time
- time to run commandcallback
- callback in which the command is specifiedUnauthorizedException
- thrown if the user no longer existsInvalidCommandException
- thrown if the scheduled command is larger than 90 bytes or otherwise invalidIOException
ApiException
public FullSchedule getSchedule(Schedule schedule) throws IOException, ApiException
schedule
- scheduleUnauthorizedException
- thrown if the user no longer existsEntityNotAvailableException
- thrown if the specified schedule no longer existsIOException
ApiException
public void setSchedule(Schedule schedule, ScheduleUpdate update) throws IOException, ApiException
schedule
- scheduleupdate
- changesUnauthorizedException
- thrown if the user no longer existsEntityNotAvailableException
- thrown if the specified schedule no longer existsIOException
ApiException
public void setScheduleCommand(Schedule schedule, HueBridge.ScheduleCallback callback) throws IOException, ApiException
schedule
- schedulecallback
- callback for new commandUnauthorizedException
- thrown if the user no longer existsInvalidCommandException
- thrown if the scheduled command is larger than 90 bytes or otherwise invalidIOException
ApiException
createSchedule
public void deleteSchedule(Schedule schedule) throws IOException, ApiException
schedule
- scheduleUnauthorizedException
- thrown if the user no longer existsEntityNotAvailableException
- thrown if the schedule no longer existsIOException
ApiException
public void authenticate(String username) throws IOException, ApiException
username
- username to authenticateUnauthorizedException
- thrown if authentication failedIOException
ApiException
public void link(String username, String devicetype) throws IOException, ApiException
username
- username for new user [10..40]devicetype
- identifier of application [0..40]LinkButtonException
- thrown if the bridge button has not been pressedIOException
ApiException
public String link(String devicetype) throws IOException, ApiException
devicetype
- identifier of application [0..40]LinkButtonException
- thrown if the bridge button has not been pressedIOException
ApiException
public Config getConfig() throws IOException, ApiException
UnauthorizedException
- thrown if the user no longer existsIOException
ApiException
Config
public void setConfig(ConfigUpdate update) throws IOException, ApiException
update
- changes to the configurationUnauthorizedException
- thrown if the user no longer existsIOException
ApiException
public void unlink() throws IOException, ApiException
UnauthorizedException
- thrown if the user no longer existsIOException
ApiException
public FullConfig getFullConfig() throws IOException, ApiException
UnauthorizedException
- thrown if the user no longer existsIOException
ApiException