...
Code Block |
---|
Device Event: ADD Device ID: 00244600000f1472_1 |
Getting Properties
getProperties()
You can use the Device API to request properties of the connected device.
...
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
if (event.getStatus() == DeviceEventStatus.ADD) { final Collection<Property> properties = event.getDevice().getProperties(); for (Property p : properties) { System.out.println("name: " + p.getName() + ", value: " + p.getValue() + ", type: " + p.getType()); } } |
getProperty()
You can also get specific properties using the getProperty() method. For example, to get the "OnOff" property from a LightDevice, you could do something like the following:
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
final Property p = device.getProperty("OnOff").getFuture().get(5, TimeUnit.SECONDS);
System.out.println("name: " + p.getName() + ", value: " + p.getValue()); |
Updating Properties
You can update a Device Property by providing the name and value.
...
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
Property property = new Property("OnOff, "boolean", "true"); gw.getDevice(id).updateProperty(property); |
LightDevice
The Gateway API will return a specific type of class for certain devices. Specific device classes, such as LightDevice, will have their own convenience methods that allow you to skip using the getProperty/updateProperty API's.
For example, for a LightDevice, you could interact with it as follows:
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
final Device d = gw.getDevice(id);
if (d instanceof LightDevice) {
final LightDevice light = (LightDevice) d;
light.off();
light.on();
light.readLevel();
light.moveToLevel(50);
} else {
System.out.println("device is not a light");
} |
See the LightDevice API for more info.
ThermostatDevice
The Gateway API will return a specific type of class for certain devices. Specific device classes, such as ThermostatDevice, will have their own convenience methods that allow you to skip using the getProperty/updateProperty API's.
Code Block |
---|
final Device d = gw.getDevice(id);
if (d instanceof ThermostatDevice) {
final ThermostatDevice device = (ThermostatDevice) d;
device.readMode();
device.changeMode(SystemMode.AUTO);
} else {
System.out.println("device is not a thermostat");
} |
See the ThermostatDevice API for more info.
Conclusion
This programming guide has shown how to initialize a GatewayClient, join devices, get their properties, and interact with them in a simple way.
...