Top Description Fields Methods
org.osgi.service.zigbee

public Interface ZigBeeNode

Known Direct Subinterfaces
org.osgi.service.zigbee.ZigBeeHost
Imports
java.math.BigInteger, java.util.Map, org.osgi.service.zigbee.descriptors.ZigBeeComplexDescriptor, .ZigBeeNodeDescriptor, .ZigBeePowerDescriptor, org.osgi.util.promise.Promise

This interface represents a ZigBee node, means a physical device that can communicate using the ZigBee protocol.

Each physical device may contain up 240 logical devices which are represented by the ZigBeeEndpoint class.

Each logical device is identified by an EndPoint address, but shares:

Author
$Id: c2d43f1e070a2b751a705f878098b526cbe2c9e4 $

Field Summary

Modifier and TypeField and Description
public static final short
COORDINATOR

Constant value used as logical type value when the ZigBee device is a Coordinator.

public static final String
EXTENDED_PAN_ID

Key of String containing the device node network extended PAN ID. If the device type is "Coordinator", the extended pan id may be available only after the network is started.

public static final String
IEEE_ADDRESS

Property key for the mandatory node IEEE Address representing node MAC address.

public static final String
LOGICAL_TYPE

Property name for the device logical type.

public static final String
MANUFACTURER_CODE

Property name for a manufacturer code that is allocated by the ZigBee Alliance, relating the manufacturer to the device.

public static final String
PAN_ID

Property containing the ZigBee network PAN ID. The property is of type Integer.

public static final String
POWER_SOURCE

ZigBee power source, that is, 3rd bit of "MAC Capabilities" in Node Descriptor.

public static final String
RECEIVER_ON_WHEN_IDLE

ZigBee receiver on when idle, that is, 4th bit of "MAC Capabilities" in Node Descriptor.

public static final short
ROUTER

Constant value used as logical type value when the ZigBee device is a Router.

public static final short
ZED

Constant value used as logical type value when the ZigBee device is an End Device.

Method Summary

Modifier and TypeMethod and Description
public ZCLCommandResponseStream

Returns:

a response stream instance that collects and allows a client to be asynchronously notified about the ZCLFrame responses sent back by the ZigBee nodes.
broadcast
(int
the cluster ID the broadcast message is directed.
clusterID
,
ZCLFrame
a ZCL Frame that contains the command that have to be broadcast to the specific cluster of all the endpoints running on the node.
frame
)

Broadcasts a given ZCL Frame to cluster clusterID on all the ZigBeeEndpoint that are running on this node (endpoint broadcasting).

public ZCLCommandResponseStream

Returns:

a response stream instance that collects and allows the caller to be asynchronously notified about the ZCLFrame responses sent back by the ZigBee nodes.
broadcast
(int
the cluster ID the broadcast message is directed.
clusterID
,
ZCLFrame
a ZCL Frame that contains the command that have to be broadcast to the specific cluster of all the endpoints running on the node.
frame
,
String
the source endpoint of the command request. In targeted situations, the source endpoint is the valid service PID of an exported endpoint.
exportedServicePID
)

Broadcasts a given ZCL Frame to cluster clusterID on all the ZigBeeEndpoint that are running on this node (endpoint broadcasting).

public Promise<ZigBeeComplexDescriptor>

Returns:

A promise representing the completion of this asynchronous call. It will be used in order to return the complex descriptor ZigBeeComplexDescriptor. If the ZDP Complex_Desc_rsp do not return success, the promise must fail with a ZDPException exception with the correct status code.
getComplexDescriptor
()

Retrieves the ZigBee node Complex Descriptor.

public ZigBeeEndpoint[]

Returns:

the array of the endpoints hosted by this node, returns an empty array if this node does not host any endpoint.
getEndpoints
()

Returns the array of the endpoints hosted by this node.

public BigInteger

Returns:

the network Extended PAN identifier (EPID).
getExtendedPanId
()

Returns the network Extended PAN identifier (EPID).

public String

Returns:

the OSGi service PID of the ZigBee Host that is on the network of this node.
getHostPid
()

Returns the OSGi service PID of the ZigBee Host that is on the network of this node.

public BigInteger

Returns:

the ZigBee device node IEEE Address of this node.
getIEEEAddress
()

Returns the ZigBee device node IEEE Address of this node.

public Promise<Map<String, ZigBeeLinkQuality>>

Returns:

A promise representing the completion of this asynchronous call. It will be resolved with the result of this operation. In case of success the resolved value will be a Map containing the Service.PID as String key of the ZigBeeNode service and the value the ZigBeeLinkQuality for that node. In case of errors the promise must fail with the correct ZDPException.
getLinksQuality
()

Retrieves the link quality information to the neighbor nodes.

public int

Returns:

the current network address of this node.
getNetworkAddress
()

Returns the current network address (alias short-address) of this node.

public Promise<ZigBeeNodeDescriptor>

Returns:

A promise representing the completion of this asynchronous call. It will be used in order to return the node descriptor ZigBeeNodeDescriptor. If the ZDP Node_Desc_rsp do not return success, the promise must fail with a ZDPException exception with the correct status code.
getNodeDescriptor
()

Retrieves the ZigBee node Node Descriptor.

public int

Returns:

the network Personal Area Network identifier (PAN ID).
getPanId
()

Returns the network Personal Area Network identifier (PAN ID).

public Promise<ZigBeePowerDescriptor>

Returns:

A promise representing the completion of this asynchronous call. It will be used in order to return the node power descriptor ZigBeePowerDescriptor. If the ZDP Power_Desc_rsp do not return success, the promise must fail with a ZDPException exception with the correct status code.
getPowerDescriptor
()

Retrieves the ZigBee node Power Descriptor.

public Promise<Map<String, ZigBeeRoute>>

Returns:

A promise representing the completion of this asynchronous call. In case of success, the resolved value will be a Map containing the Service.PID as String key of the ZigBeeNode service and the value the ZigBeeRoute for that node. In case of failure a ZDPException exception with the correct status code must be used to fail the promise.
getRoutingTable
()

Retrieves the routing table information of the node.

public Promise<String>

Returns:

A promise representing the completion of this asynchronous call. It will be used in order to return the node user description (String). In case of errors the promise will fail with a ZDPException exception containing the response status code value.
getUserDescription
()

Returns the user description of this node.

public Promise<ZDPFrame>

Returns:

A promise representing the completion of this asynchronous call. In case of success the promise resolves with the response ZDPFrame.
invoke
(int
the cluster Id of the ZDPFrame that will be sent to the device.
clusterIdReq
,
int
the expected cluster Id of the response to the ZDPFrame sent.
expectedClusterIdRsp
,
ZDPFrame
the ZDPFrame containing the message.
message
)

Sends the ZDPFrame to this ZigBeeNode with the specified cluster id. This method expects a specific cluster in the response to the request.

public Promise<ZDPFrame>

Returns:

A promise representing the completion of this asynchronous call. In case of success the promise resolves with the response ZDPFrame.
invoke
(int
the cluster Id of the ZDPFrame that will be sent to the device.
clusterIdReq
,
ZDPFrame
the ZDPFrame containing the message.
message
)

Sends the ZDPFrame to this ZigBeeNode with the specified cluster id. This method expects a specific cluster in the response to the request.

public Promise<Void>

Returns:

A promise representing the completion of this asynchronous call. In case of success, the promise is resolved with a null value, otherwise with the correct ZDPException exception.
leave
()

Requests this node to leave the ZigBee network.

public Promise<Void>

Returns:

A promise representing the completion of this asynchronous call. In case of success, the ZigBeeNode service must be unregistered, first and then the promise may be resolved with a null value, otherwise with the correct ZDPException exception.
leave
(boolean
true if the device being asked to leave from the current parent is requested to rejoin the network. Otherwise, false.
rejoin
,
boolean
true if the device being asked to leave the network is also being asked to remove its child devices, if any. Otherwise, false.
removeChildren
)

Requests the device to leave the network.

public Promise<Void>

Returns:

A promise representing the completion of this asynchronous call. In case of success the promise returns a null value. In case of errors the promise must fail with a ZDPException exception containing the response status code value.
setUserDescription
(String
the user description.
userDescription
)

Sets the user description of this node.

Field Detail

COORDINATORback to summary
public static final short COORDINATOR

Constant value used as logical type value when the ZigBee device is a Coordinator.

EXTENDED_PAN_IDback to summary
public static final String EXTENDED_PAN_ID

Key of String containing the device node network extended PAN ID. If the device type is "Coordinator", the extended pan id may be available only after the network is started. It means that internally the ZigBeeHost interface must update the service properties.

This property is of type BigInteger

IEEE_ADDRESSback to summary
public static final String IEEE_ADDRESS

Property key for the mandatory node IEEE Address representing node MAC address. MAC Address is a 12-digit(48-bit) or 16-digit(64-bit) hexadecimal numbers.

LOGICAL_TYPEback to summary
public static final String LOGICAL_TYPE

Property name for the device logical type. The property value is of type Short.

MANUFACTURER_CODEback to summary
public static final String MANUFACTURER_CODE

Property name for a manufacturer code that is allocated by the ZigBee Alliance, relating the manufacturer to the device. The property is of type Integer.

PAN_IDback to summary
public static final String PAN_ID

Property containing the ZigBee network PAN ID. The property is of type Integer.

POWER_SOURCEback to summary
public static final String POWER_SOURCE

ZigBee power source, that is, 3rd bit of "MAC Capabilities" in Node Descriptor. Set to true if the current power source is mains power, set to false, otherwise.

This property is of type Boolean.

RECEIVER_ON_WHEN_IDLEback to summary
public static final String RECEIVER_ON_WHEN_IDLE

ZigBee receiver on when idle, that is, 4th bit of "MAC Capabilities" in Node Descriptor. Set to true if the device does not disable its receiver to conserve power during idle periods, set to false otherwise.

This property is of type Boolean.

ROUTERback to summary
public static final short ROUTER

Constant value used as logical type value when the ZigBee device is a Router.

ZEDback to summary
public static final short ZED

Constant value used as logical type value when the ZigBee device is an End Device.

Method Detail

broadcastback to summary
public ZCLCommandResponseStream broadcast(int clusterID, ZCLFrame frame)

Broadcasts a given ZCL Frame to cluster clusterID on all the ZigBeeEndpoint that are running on this node (endpoint broadcasting).

Parameters
clusterID:int

the cluster ID the broadcast message is directed.

frame:ZCLFrame

a ZCL Frame that contains the command that have to be broadcast to the specific cluster of all the endpoints running on the node.

Returns:ZCLCommandResponseStream

a response stream instance that collects and allows a client to be asynchronously notified about the ZCLFrame responses sent back by the ZigBee nodes.

broadcastback to summary
public ZCLCommandResponseStream broadcast(int clusterID, ZCLFrame frame, String exportedServicePID)

Broadcasts a given ZCL Frame to cluster clusterID on all the ZigBeeEndpoint that are running on this node (endpoint broadcasting). The source endpoint of the APS message sent, is set to the endpoint identifier of the exportedServicePID service.

Parameters
clusterID:int

the cluster ID the broadcast message is directed.

frame:ZCLFrame

a ZCL Frame that contains the command that have to be broadcast to the specific cluster of all the endpoints running on the node.

exportedServicePID:String

the source endpoint of the command request. In targeted situations, the source endpoint is the valid service PID of an exported endpoint.

Returns:ZCLCommandResponseStream

a response stream instance that collects and allows the caller to be asynchronously notified about the ZCLFrame responses sent back by the ZigBee nodes.

getComplexDescriptorback to summary
public Promise<ZigBeeComplexDescriptor> getComplexDescriptor()

Retrieves the ZigBee node Complex Descriptor.

As described in Table 2.92 Fields of the Complex_Desc_rsp Command of the ZigBee specification, a Complex_Desc_rsp command can return with the following status codes:

Returns:Promise<ZigBeeComplexDescriptor>

A promise representing the completion of this asynchronous call. It will be used in order to return the complex descriptor ZigBeeComplexDescriptor. If the ZDP Complex_Desc_rsp do not return success, the promise must fail with a ZDPException exception with the correct status code.

getEndpointsback to summary
public ZigBeeEndpoint[] getEndpoints()

Returns the array of the endpoints hosted by this node.

Returns:ZigBeeEndpoint[]

the array of the endpoints hosted by this node, returns an empty array if this node does not host any endpoint.

getExtendedPanIdback to summary
public BigInteger getExtendedPanId()

Returns the network Extended PAN identifier (EPID).

Returns:BigInteger

the network Extended PAN identifier (EPID).

getHostPidback to summary
public String getHostPid()

Returns the OSGi service PID of the ZigBee Host that is on the network of this node.

Returns:String

the OSGi service PID of the ZigBee Host that is on the network of this node.

getIEEEAddressback to summary
public BigInteger getIEEEAddress()

Returns the ZigBee device node IEEE Address of this node.

Returns:BigInteger

the ZigBee device node IEEE Address of this node.

getLinksQualityback to summary
public Promise<Map<String, ZigBeeLinkQuality>> getLinksQuality()

Retrieves the link quality information to the neighbor nodes.

An implementation of this method may use the Mgmt_Lqi_req and Mgmt_Lqi_rsp messages to retrieve the Link Quality table (also known as NeighborTableList in the ZigBee Specification).

The method limit the Link Quality table to the ZigBeeNode service discovered.

In case of failure, the target device may report error code ZDPException#NOT_SUPPORTED.

Returns:Promise<Map<String, ZigBeeLinkQuality>>

A promise representing the completion of this asynchronous call. It will be resolved with the result of this operation. In case of success the resolved value will be a Map containing the Service.PID as String key of the ZigBeeNode service and the value the ZigBeeLinkQuality for that node. In case of errors the promise must fail with the correct ZDPException.

getNetworkAddressback to summary
public int getNetworkAddress()

Returns the current network address (alias short-address) of this node.

Returns:int

the current network address of this node.

getNodeDescriptorback to summary
public Promise<ZigBeeNodeDescriptor> getNodeDescriptor()

Retrieves the ZigBee node Node Descriptor. As described in Table 2.91 Fields of the Node_Desc_rsp Command of the ZigBee specification, a Node_Desc_rsp command can return with the following status codes:

Returns:Promise<ZigBeeNodeDescriptor>

A promise representing the completion of this asynchronous call. It will be used in order to return the node descriptor ZigBeeNodeDescriptor. If the ZDP Node_Desc_rsp do not return success, the promise must fail with a ZDPException exception with the correct status code.

getPanIdback to summary
public int getPanId()

Returns the network Personal Area Network identifier (PAN ID).

Returns:int

the network Personal Area Network identifier (PAN ID).

getPowerDescriptorback to summary
public Promise<ZigBeePowerDescriptor> getPowerDescriptor()

Retrieves the ZigBee node Power Descriptor. As described in Table 2.92 Fields of the Power_Desc_rsp Command of the ZigBee specification, a Power_Desc_rsp command can return with the following status codes:

Returns:Promise<ZigBeePowerDescriptor>

A promise representing the completion of this asynchronous call. It will be used in order to return the node power descriptor ZigBeePowerDescriptor. If the ZDP Power_Desc_rsp do not return success, the promise must fail with a ZDPException exception with the correct status code.

getRoutingTableback to summary
public Promise<Map<String, ZigBeeRoute>> getRoutingTable()

Retrieves the routing table information of the node. This routing table is also known as RoutingTableList in the ZigBee Specification.

An implementation of this method may use the Mgmt_Rtg_req ZDP command to retrieve the Routing Table .

The target device may report a status code ZDPException#NOT_SUPPORTED in case of failure.

Returns:Promise<Map<String, ZigBeeRoute>>

A promise representing the completion of this asynchronous call. In case of success, the resolved value will be a Map containing the Service.PID as String key of the ZigBeeNode service and the value the ZigBeeRoute for that node. In case of failure a ZDPException exception with the correct status code must be used to fail the promise.

getUserDescriptionback to summary
public Promise<String> getUserDescription()

Returns the user description of this node. As described in Table 2.97 Fields of the User_Desc_rsp Command of the ZigBee specification, a User_Desc_rsp may return the following status:

Returns:Promise<String>

A promise representing the completion of this asynchronous call. It will be used in order to return the node user description (String). In case of errors the promise will fail with a ZDPException exception containing the response status code value.

invokeback to summary
public Promise<ZDPFrame> invoke(int clusterIdReq, int expectedClusterIdRsp, ZDPFrame message)

Sends the ZDPFrame to this ZigBeeNode with the specified cluster id. This method expects a specific cluster in the response to the request.

Parameters
clusterIdReq:int

the cluster Id of the ZDPFrame that will be sent to the device.

expectedClusterIdRsp:int

the expected cluster Id of the response to the ZDPFrame sent.

message:ZDPFrame

the ZDPFrame containing the message.

Returns:Promise<ZDPFrame>

A promise representing the completion of this asynchronous call. In case of success the promise resolves with the response ZDPFrame.

invokeback to summary
public Promise<ZDPFrame> invoke(int clusterIdReq, ZDPFrame message)

Sends the ZDPFrame to this ZigBeeNode with the specified cluster id. This method expects a specific cluster in the response to the request. This method considers that the 0x8000 + clusterIdReq is the clusterId expected from messaged received for the message sent by this request.

Parameters
clusterIdReq:int

the cluster Id of the ZDPFrame that will be sent to the device.

message:ZDPFrame

the ZDPFrame containing the message.

Returns:Promise<ZDPFrame>

A promise representing the completion of this asynchronous call. In case of success the promise resolves with the response ZDPFrame.

leaveback to summary
public Promise<Void> leave()

Requests this node to leave the ZigBee network.

As described in Table 2.131 Fields of the Mgmt_Leave_rsp Command of the ZigBee specification, a Mgmt_Leave_rsp ZDP command may return the following status values:

Returns:Promise<Void>

A promise representing the completion of this asynchronous call. In case of success, the promise is resolved with a null value, otherwise with the correct ZDPException exception.

leaveback to summary
public Promise<Void> leave(boolean rejoin, boolean removeChildren)

Requests the device to leave the network.

As described in Table 2.131 Fields of the Mgmt_Leave_rsp Command of the ZigBee specification, a Mgmt_Leave_rsp command could return the following status values:

Parameters
rejoin:boolean

true if the device being asked to leave from the current parent is requested to rejoin the network. Otherwise, false.

removeChildren:boolean

true if the device being asked to leave the network is also being asked to remove its child devices, if any. Otherwise, false.

Returns:Promise<Void>

A promise representing the completion of this asynchronous call. In case of success, the ZigBeeNode service must be unregistered, first and then the promise may be resolved with a null value, otherwise with the correct ZDPException exception.

setUserDescriptionback to summary
public Promise<Void> setUserDescription(String userDescription)

Sets the user description of this node. As described in Table 2.137 ZDP Enumerations Description of the ZigBee specification, a Set_User_Desc_rsp request may return the following status:

Parameters
userDescription:String

the user description.

Returns:Promise<Void>

A promise representing the completion of this asynchronous call. In case of success the promise returns a null value. In case of errors the promise must fail with a ZDPException exception containing the response status code value.