Overview
With the Zigbee Network Simulator you can mimic a fully functional ZigBee network composed of a virtual coordinator device and several simulated end devices. This allows you to test a fully working ZigBee environment without having to deal with all the physical constrains of such setup. Both devices and ZCL are simulated.

Different simulator components are available, each simulating a different ZigBee coordinator driver environment. This means you will be able to simulate ZigBee environments based on your driver choice:
The simulator is not supported for the Freescale coordinator brand.
Installing the Simulator
kitman.install "ZigBee <coordinator_brand> with Simulator"
This installs the simulator and the driver for the corresponding coordinator and establishes the connection between the two. Also several simulated devices are imported to ConfigTree.
The <coordinator_brand> described bellow can be:
kitman.install "ConfigTree Web Console Plugin"
Using the Simulator
You can control simulated devices via the ConfigTree module's user interface, or via the Simulator's API.
Via Text Console
The ZigBee Simulator exports commands that can be used to add, remove or list simulated controllers.
These commands are represented by the zigbeepersim command group.
Type |
Command |
Arguments |
Description |
Shortcut |
|---|---|---|---|---|
Simulator |
add |
name |
Add a simulated ZigBee (peripheral) device. The name should be based on the results you gather from the list command. |
- |
Simulator |
remove |
[-r] |
Removes a simulated ZigBee (peripheral) device. If you use -r, the system will remove all devices associated with a selected sample. The name should be based on the Simulator name that has been added. |
- |
Simulator |
list |
- |
List all vendors/adapters that you can add as a simulated device. |
ls |
Via Web Console
You can access and control your ZigBee Network Simulator via the ConfigTree module from the System menu on your Web Console.

From the ConfigTree Tab you will then be able to access the ZigBeeNetworkSimulator configuration.
Each ZigBee network is represented as a separate configuration node.
Each simulated end device connected to a network is represented as a child node to the respective configuration node.

Several coordinators and end devices are already setup and ready to be used - with these you can test your device and ZCL functionality and simulate a full ZigBee Network environment. From this screen you can execute the following device-actions:
Example Available Actions:
After configuring your simulated environment, you can see it from:

Via Java API
The Network Simulator has a public API, that allows you to create and control simulated networks programmatically.
See Java API.
Simulated Devices' Configuration Format
Some sample simulated devices are present on a bundle named zigbee.protocol.simulator.sample, where protocol is the driver (Cleode, TI, etc.) you want to use. This bundle contains a set of XML files, each representing a device. Bellow are some examples for the contents of such files, representing different ZigBee devices:
Example for a Cleode Coordinator
<config name="CleodeStick">
<property key="IEEEAddress" value="0, 18, 75, 0, 1, 17, -94, -48 " type="byte[]"/>
<property key="networkAddress" value="0, 0 " type="byte[]"/>
<property key="hasRadioConnection" value="true" type="boolean"/>
<config name="nodeDescriptor">
<property key="logicalType" value="0" type="int"/>
<property key="isComplexDescriptorAvailable" value="false" type="boolean"/>
<property key="isUserDescriptorAvailable" value="false" type="boolean"/>
<property key="frequencyBand" value="8" type="int"/>
<property key="isAlternatePANCoordinator" value="true" type="boolean"/>
<property key="isFullFunctionDevice" value="true" type="boolean"/>
<property key="isMainsPower" value="true" type="boolean"/>
<property key="isReceiverOnWhenIdle" value="true" type="boolean"/>
<property key="isSecurityCapable" value="false" type="boolean"/>
<property key="isAddressAllocate" value="false" type="boolean"/>
<property key="manufacturerCode" value="4281" type="int"/>
<property key="maxBufferSize" value="80" type="int"/>
<property key="maxIncomingTransferSize" value="160" type="int"/>
<property key="maxOutgoingTransferSize" value="160" type="int"/>
<property key="serverMask" value="1" type="int"/>
<property key="isExtendedActiveEndpointListAvailable" value="false" type="boolean"/>
<property key="isExtendedSimpleDescriptorListAvailable" value="false" type="boolean"/>
</config>
<config name="powerDescriptor">
<property key="currentPowerMode" value="0" type="int"/>
<property key="isConstantMainsPowerAvailable" value="true" type="boolean"/>
<property key="isRechargableBatteryAvailable" value="false" type="boolean"/>
<property key="isDisposableBatteryAvailable" value="false" type="boolean"/>
<property key="currentPowerSource" value="1" type="int"/>
<property key="currentPowerSourceLevel" value="12" type="int"/>
</config>
<config name="endpointList">
<config name="10">
<property key="applicationProfileID" value="260" type="int"/>
<property key="applicationDeviceID" value="5" type="int"/>
<property key="applicationDeviceVersion" value="0" type="int"/>
<config name="inputClusterList">
<config name="Basic">
<property key="id" value="0" type="int"/>
<config name="attributeList">
<config name="ZCLVersion">
<property key="id" value="0" type="int"/>
<property key="value" value="1" type="int"/>
</config>
<config name="ApplicationVersion">
<property key="id" value="1" type="int"/>
<property key="value" value="12" type="int"/>
</config>
<config name="StackVersion">
<property key="id" value="2" type="int"/>
<property key="value" value="2" type="int"/>
</config>
<config name="HWVersion">
<property key="id" value="3" type="int"/>
<property key="value" value="4" type="int"/>
</config>
<config name="ManufacturerName">
<property key="id" value="4" type="int"/>
<property key="value" value="CLEODE" type="string"/>
</config>
<config name="ModelIdentifier">
<property key="id" value="5" type="int"/>
<property key="value" value="UBEE" type="string"/>
</config>
<config name="DateCode">
<property key="id" value="6" type="int"/>
<property key="value" value="20120910" type="string"/>
</config>
<config name="PowerSource">
<property key="id" value="7" type="int"/>
<property key="value" value="1" type="int"/>
</config>
<config name="LocationDescription">
<property key="id" value="16" type="int"/>
<property key="value" value="" type="string"/>
</config>
<config name="PhysicalEnvironment">
<property key="id" value="17" type="int"/>
<property key="value" value="0" type="int"/>
</config>
<config name="DeviceEnabled">
<property key="id" value="18" type="int"/>
<property key="value" value="true" type="boolean"/>
</config>
<config name="AlarmMask">
<property key="id" value="19" type="int"/>
<property key="value" value="0" type="int"/>
</config>
</config>
</config>
<config name="Identify">
<property key="id" value="3" type="int"/>
<config name="attributeList">
<config name="IdentifyTime">
<property key="id" value="0" type="int"/>
<property key="value" value="0" type="int"/>
</config>
</config>
</config>
</config>
<config name="outputClusterList">
<config name="Basic">
<property key="id" value="0" type="int"/>
</config>
<config name="Power Configuration">
<property key="id" value="1" type="int"/>
</config>
<config name="Device Temperature Configuration">
<property key="id" value="2" type="int"/>
</config>
<config name="Identify">
<property key="id" value="3" type="int"/>
</config>
<config name="On-Off">
<property key="id" value="6" type="int"/>
</config>
<config name="On-Off Switch Configuration">
<property key="id" value="7" type="int"/>
</config>
<config name="Level Control">
<property key="id" value="8" type="int"/>
</config>
<config name="Alarms">
<property key="id" value="9" type="int"/>
</config>
<config name="Time">
<property key="id" value="10" type="int"/>
</config>
<config name="Analog Input">
<property key="id" value="12" type="int"/>
</config>
<config name="Shade Configuration">
<property key="id" value="256" type="int"/>
</config>
<config name="Door Lock">
<property key="id" value="257" type="int"/>
</config>
<config name="Window Covering">
<property key="id" value="258" type="int"/>
</config>
<config name="Thermostat">
<property key="id" value="513" type="int"/>
</config>
<config name="Fan Control">
<property key="id" value="514" type="int"/>
</config>
<config name="Dehumidification Control">
<property key="id" value="515" type="int"/>
</config>
<config name="Thermostat User Interface Configuration">
<property key="id" value="516" type="int"/>
</config>
<config name="Color Control">
<property key="id" value="768" type="int"/>
</config>
<config name="Illuminance Measurement">
<property key="id" value="1024" type="int"/>
</config>
<config name="Illuminance Level Sensing">
<property key="id" value="1025" type="int"/>
</config>
<config name="Temperature Measurement">
<property key="id" value="1026" type="int"/>
</config>
<config name="Pressure Measurement">
<property key="id" value="1027" type="int"/>
</config>
<config name="Flow Measurement">
<property key="id" value="1028" type="int"/>
</config>
<config name="Relative Humidity Measurement">
<property key="id" value="1029" type="int"/>
</config>
<config name="Occupancy Sensing">
<property key="id" value="1030" type="int"/>
</config>
<config name="IAS Zone">
<property key="id" value="1280" type="int"/>
</config>
<config name="Simple Metering">
<property key="id" value="1794" type="int"/>
</config>
</config>
</config>
</config>
<property key="zdoCapabilities" value="489" type="int"/>
</config>
Example of a Netvox Switch
<config name="NetvoxSwitch">
<property key="IEEEAddress" value="0, 19, 122, 0, 0, 0, 82, -121 "
type="byte[]" />
<property key="networkAddress" value="-13, 124 " type="byte[]" />
<property key="hasRadioConnection" value="true" type="boolean" />
<config name="associatedDevices">
<config name="neighbour1">
<property key="ieeeAddress" value="0, 19, -94, 0, 64, 102, 110, 118 " type="byte[]"/>
<property key="networkAddress" value="0, 0 " type="byte[]"/>
<property key="LQI" value="255" type="int"/>
</config>
</config>
<config name="nodeDescriptor">
<property key="logicalType" value="1" type="int" />
<property key="isComplexDescriptorAvailable" value="false"
type="boolean" />
<property key="isUserDescriptorAvailable" value="false" type="boolean" />
<property key="frequencyBand" value="8" type="int" />
<property key="isAlternatePANCoordinator" value="false" type="boolean" />
<property key="isFullFunctionDevice" value="true" type="boolean" />
<property key="isMainsPower" value="true" type="boolean" />
<property key="isReceiverOnWhenIdle" value="true" type="boolean" />
<property key="isSecurityCapable" value="false" type="boolean" />
<property key="isAddressAllocate" value="true" type="boolean" />
<property key="manufacturerCode" value="4255" type="int" />
<property key="maxBufferSize" value="82" type="int" />
<property key="maxIncomingTransferSize" value="128" type="int" />
<property key="maxOutgoingTransferSize" value="128" type="int" />
<property key="serverMask" value="0" type="int" />
<property key="isExtendedActiveEndpointListAvailable" value="false"
type="boolean" />
<property key="isExtendedSimpleDescriptorListAvailable"
value="false" type="boolean" />
</config>
<config name="powerDescriptor">
<property key="currentPowerMode" value="0" type="int" />
<property key="isConstantMainsPowerAvailable" value="true"
type="boolean" />
<property key="isRechargableBatteryAvailable" value="false"
type="boolean" />
<property key="isDisposableBatteryAvailable" value="false"
type="boolean" />
<property key="currentPowerSource" value="1" type="int" />
<property key="currentPowerSourceLevel" value="12" type="int" />
</config>
<config name="endpointList">
<config name="1">
<property key="applicationProfileID" value="260" type="int" />
<property key="applicationDeviceID" value="2" type="int" />
<property key="applicationDeviceVersion" value="0" type="int" />
<config name="inputClusterList">
<config name="Basic">
<property key="id" value="0" type="int" />
<config name="attributeList">
<config name="ZCLVersion">
<property key="id" value="0" type="int" />
<property key="value" value="3" type="int" />
</config>
<config name="ApplicationVersion">
<property key="id" value="1" type="int" />
<property key="value" value="21" type="int" />
</config>
<config name="StackVersion">
<property key="id" value="2" type="int" />
<property key="value" value="42" type="int" />
</config>
<config name="HWVersion">
<property key="id" value="3" type="int" />
<property key="value" value="42" type="int" />
</config>
<config name="ManufacturerName">
<property key="id" value="4" type="int" />
<property key="value" value="netvox" type="string" />
</config>
<config name="ModelIdentifier">
<property key="id" value="5" type="int" />
<property key="value" value="Z801RXE0R" type="string" />
</config>
<config name="DateCode">
<property key="id" value="6" type="int" />
<property key="value" value="20101224" type="string" />
</config>
<config name="PowerSource">
<property key="id" value="7" type="int" />
<property key="value" value="1" type="int" />
</config>
<config name="LocationDescription">
<property key="id" value="16" type="int" />
<property key="value" value="" type="string" />
</config>
<config name="PhysicalEnvironment">
<property key="id" value="17" type="int" />
<property key="value" value="0" type="int" />
</config>
<config name="DeviceEnabled">
<property key="id" value="18" type="int" />
<property key="value" value="true" type="boolean" />
</config>
<config name="AlarmMask">
<property key="id" value="19" type="int" />
</config>
</config>
</config>
<config name="Identify">
<property key="id" value="3" type="int" />
<config name="attributeList">
<config name="IdentifyTime">
<property key="id" value="0" type="int" />
<property key="value" value="0" type="int" />
</config>
</config>
</config>
<config name="Groups">
<property key="id" value="4" type="int" />
<config name="attributeList">
<config name="NameSupport">
<property key="id" value="0" type="int" />
<property key="value" value="128" type="int" />
</config>
</config>
</config>
<config name="Scenes">
<property key="id" value="5" type="int" />
<config name="attributeList">
<config name="SceneCount">
<property key="id" value="0" type="int" />
<property key="value" value="0" type="int" />
</config>
<config name="CurrentScene">
<property key="id" value="1" type="int" />
<property key="value" value="0" type="int" />
</config>
<config name="CurrentGroup">
<property key="id" value="2" type="int" />
<property key="value" value="0" type="int" />
</config>
<config name="SceneValid">
<property key="id" value="3" type="int" />
<property key="value" value="false" type="boolean" />
</config>
<config name="NameSupport">
<property key="id" value="4" type="int" />
<property key="value" value="0" type="int" />
</config>
<config name="LastConfiguredBy">
<property key="id" value="5" type="int" />
</config>
</config>
</config>
<config name="On-Off">
<property key="id" value="6" type="int" />
<config name="attributeList">
<config name="On-Off">
<property key="id" value="0" type="int" />
<property key="value" value="false" type="boolean" />
<config name="reportingConfiguration">
<property key="maxInterval" value="0" type="int"/>
<property key="minInterval" value="0" type="int"/>
</config>
</config>
</config>
</config>
</config>
</config>
</config>
<property key="zdoCapabilities" value="489" type="int" />
</config>