<?xml version="1.0" encoding="UTF-8"?>
<!--
To evaluate conformance of a particular implementation, it is necessary to have a statement of which capabilities and options have been implemented for a given standard. Such a statement is called a protocol implementation conformance statement (PICS).

Scope
This document provides the protocol implementation conformance statement (PICS) proforma for the ZigBee specifications 080006r05 in compliance with the relevant requirements, and in accordance with the relevant guidance, given in ISO/IEC 9646-7.
This document addresses the ZigBee Home Automation Application Profile.

Purpose
The supplier of a protocol implementation claiming to conform to the ZigBee Home Automation Application Profile shall complete the following PICS proforma and accompany it with the information necessary to identify fully both the supplier and the implementation.

The PICS is in the form of answers to a set of questions in the PICS proforma. The questions in a proforma consist of a systematic list of protocol capabilities and options as well as their implementation requirements. The implementation requirement indicates whether implementation of a capability is mandatory, optional, or conditional depending on options selected. When a protocol implementer answers questions in a PICS proforma, they would indicate whether an item is implemented or not, and provide explanations if an item is not implemented.

Instructions for completion
This document provides a template for the Home Automation PICS. The document should be filled out with document content appropriate to each element. Some document elements contain a "mandatory" attribute. Generally each tag that contains a mandatory attribute should also contain document content of "TRUE" indicating that the item described in the document element is supported.

Clusters contain ZigBee attributes and commands. Entering content of "TRUE" for a ZigBee attribute indicates that the device contains that attribute and the attribute can be read from the device. Entering content of "TRUE" for a command indicates that the device can receive that command. If an attribute is mandatory and the source="server" this indicates that the attribute must be supported by all servers of that cluster. If a command is mandatory and the receivedBy="server" it indicates that the command must be supported as a command received by all servers of that cluster.

A completed PICS document need only contain the portion of the PICS that are supported. Any of the zigBeeDeviceTypes, HADeviceTypes or clusters that are not supported can be removed from the completed document.


-->
<homeAutomationPICs version="">
  <implementationIdentification>
    <IUTIdentification>
  	  <description>Implemenation Under Test Identification</description>
  	  <UITName mandatory="true">Salus Mini Smart Plug</UITName>
  	  <UITVersion mandatory="true"></UITVersion>
    </IUTIdentification>
    <SUTIdentification>
  	  <description>System Under Test Identification</description>
  	  <SUTName>SX885ZB</SUTName>
  	  <SUTSoftwareVersion mandatory="true">17030600</SUTSoftwareVersion>
  	  <SUTHardwareVersion mandatory="true">4</SUTHardwareVersion>
  	  <SUTOperatingSystem mandatory="false"/>
    </SUTIdentification>
    <productSupplier>
      <description>Product Supplier</description>
      <name>Computime, Ltd.</name>
      <address>9/F Tower One, Lippo Centre, 89 Queensway, Hong Kong</address>
      <telephoneNumber>852-2260-0300</telephoneNumber>
      <faxNumber></faxNumber>
      <emailAddress>wlha@computime.com</emailAddress>
      <additionalInformation></additionalInformation>
    </productSupplier>
    <client>
        <description>Client</description>
        <name>Salus Controls, Inc.</name>
        <address>1750 Montgomery Street, 1st Floor, San Franscisco, CA 94111</address>
        <telephoneNumber>(415) 881 7436</telephoneNumber>
        <faxNumber></faxNumber>
        <emailAddress>shen@salusinc.com</emailAddress>
        <additionalInformation></additionalInformation>
    </client>
    <picsContactPerson>
      <description>PICS Contact Person</description>
      <name>WL HA</name>
      <address>9/F Tower One, Lippo Centre, 89 Queensway, Hong Kong</address>
      <telephoneNumber>+852 22600300</telephoneNumber>
      <faxNumber></faxNumber>
      <emailAddress>wlha@computime.com</emailAddress>
      <additionalInformation></additionalInformation>
    </picsContactPerson>
  </implementationIdentification>
  <globalStatementOfConformance>
    <specVersion name="ZigBee Home Automation" version="053520r29" mandatory="true">TRUE</specVersion>
  </globalStatementOfConformance>
  <picsProforma>
    <zigBeeDeviceTypes>
      <type>
        <name>router</name>
        <description>Is this device capable of acting as a ZigBee router?</description>
        <support>TRUE</support>
        <profileItem>
          <name>Join Mode</name>
  	    <description>Does the device support a method for the user to put the device in join mode?</description>
  	    <mandatory>true</mandatory>
  	    <supported>TRUE</supported>
  	  </profileItem>
  	  <profileItem>
  	    <name>Permit Join</name>
  	    <description>Does the device support a method for allowing others to join the network?</description>
  	    <mandatory>true</mandatory>
  	    <supported>TRUE</supported>
  	  </profileItem>
      </type>
    </zigBeeDeviceTypes>

    <stackProfile>
      <profileItem>
        <name>ZigBee Stack Profile</name>
        <mandatory>true</mandatory>
        <description>Is the device built on a ZigBee Compliant Platform certified for ZigBee or ZigBee PRO stack profile 080006r05?</description>
		<mandatory>true</mandatory>
        <supported>TRUE</supported>
      </profileItem>
  	  <profileItem>
          <name>Binding Table Size</name>
          <description>Does the device implement source binding with a binding table whose number of available entries is greater than or equal to the number of supported clusters that may initiate normal operational transactions. It should be noted that operational transactions are not one time transactions or commissioning transactions. Operational transactions are those that are used to perform the device function, such attribute reporting or actuation commands  (e.g. On, Off, Toggle, etc).</description>
          <mandatory>true</mandatory>
          <supported>TRUE</supported>
  	  </profileItem>
  	  <profileItem>
          <name>Link Keys</name>
          <description>Does the device support Trust Center Link Keys including the Default Trust Center Link Key?</description>
          <mandatory>true</mandatory>
          <supported>TRUE</supported>
  	  </profileItem>
  	  <profileItem>
          <name>APS Layer Multicast (CCB 1773)</name>
          <description>Does the device use only APS layer multicast for multicast messages?</description>
          <mandatory>true</mandatory>
          <supported>TRUE</supported>
  	  </profileItem>
  	  <profileItem>
          <name>Network Use Multicast (CCB 1773)</name>
          <description>Does the device have the stack primitive nwkUseMulticast set to FALSE?</description>
          <mandatory>true</mandatory>
         <supported>TRUE</supported>
  	  </profileItem>
    </stackProfile>

    <HAProfile>
      <profileItem>
  	  <name>Cluster Library PICs</name>
  	  <description>Does the device support the ZigBee Cluster Library PICS as defined in 064118r08</description>
  	  <mandatory>true</mandatory>
  	  <supported>TRUE</supported>
  	  </profileItem>
  	  <profileItem>
  	    <name>Reset to Factory Defaults</name>
  	    <description>Does the device support a method for allowing a user to restore factory settings?</description>
  	    <mandatory>true</mandatory>
  	    <supported>TRUE</supported>
  	  </profileItem>
  	  <profileItem>
  	    <name>Reporting generation</name>
  	    <description>Does the device have attributes that are reportable?</description>
  	    <mandatory>false</mandatory>
  	    <supported>TRUE</supported>
  	  </profileItem>
      <profileItem>
  	    <name>Default Reporting Configuration</name>
  	    <description>Does the device have a default reporting configuration for each reportable attribute</description>
  	    <mandatory>false</mandatory>
  	    <supported>FALSE</supported>
  	  </profileItem>
      <profileItem>
  	    <name>Read Reporting Configuration</name>
  	    <description>Does the device support configuring and  reading a report configuration for all reportable attributes?</description>
  	    <mandatory>false</mandatory>
  	    <supported>FALSE</supported>
  	  </profileItem>
    </HAProfile>

    <ZDPCommands>
      <command code="0x8000" name="NWK_addr_rsp" source="either" mandatory="true">TRUE</command>
      <command code="0x8001" name="IEEE_addr_rsp" source="either" mandatory="true">TRUE</command>
      <command code="0x8002" name="Node_Desc_rsp" source="either" mandatory="true">TRUE</command>
      <command code="0x8003" name="Power_Desc_rsp" source="either" mandatory="true">TRUE</command>
      <command code="0x8004" name="Simple_Desc_rsp" source="either" mandatory="true">TRUE</command>
      <command code="0x8005" name="Active_EP_rsp" source="either" mandatory="true">TRUE</command>
      <command code="0x8006" name="Match_Desc_rsp" source="either" mandatory="true">TRUE</command>
      <command code="0x8013" name="Device_annce" source="either" mandatory="true">TRUE</command>
      <command code="0x8021" name="Bind_rsp" source="either" mandatory="true">TRUE</command>
      <command code="0x8022" name="Unbind_rsp" source="either" mandatory="true">TRUE</command>
      <command code="0x8033" name="Mgmt_Bind_rsp" source="either" mandatory="true">TRUE</command>
    </ZDPCommands>

    <ZCLGlobalCommands>
      <command code="0x01" name="ReadAttributesResponse" source="either" mandatory="true">TRUE</command>
      <command code="0x04" name="WriteAttributesResponse" source="either" mandatory="true">TRUE</command>
      <command code="0x07" name="ConfigureReportingResponse" source="either" mandatory="true">TRUE</command>
      <command code="0x09" name="ReadReportingConfigurationResponse" source="either" mandatory="true">TRUE</command>
      <command code="0x0B" name="DefaultResponse" source="either" mandatory="true">TRUE</command>
      <command code="0x0D" name="DiscoverAttributesResponse" source="either" mandatory="true">TRUE</command>
      <command code="0x12" name="DiscoverCommandsReceivedResponse" source="either" mandatory="false">TRUE</command>
      <command code="0x14" name="DiscoverCommandsGeneratedResponse" source="either" mandatory="false">TRUE</command>
      <command code="0x16" name="DiscoverAttributesExtendedResponse" source="either" mandatory="false">TRUE</command>
    </ZCLGlobalCommands>

    <HADeviceTypes>
      <deviceType>
        <name>HA-onofflight</name>
        <domain>HA</domain>
        <typeName>HA On/Off Light</typeName>
        <profileId>0x0104</profileId>
        <deviceId>0x0100</deviceId>
        <supported/>
        <commissioning>
          <type name="ezMode" role="target" mandatory="true">TRUE</type>
        </commissioning>
        <clusters>
          <include name="Basic" source="server" mandatory="true">TRUE</include>
          <include name="Identify" source="server" mandatory="true">TRUE</include>
          <include name="Time" source="client" mandatory="false">TRUE</include>
          <include name="Over the Air Bootloading Cluster" source="client" mandatory="false">TRUE</include>
          <include name="On/Off" source="server" mandatory="true">TRUE</include>
          <include name="Scenes" source="server" mandatory="true">TRUE</include>
          <include name="Groups" source="server" mandatory="true">TRUE</include>
          <include name="SIMPLE_METERING_CLUSTER" source="server" mandatory="false">TRUE</include>
          <include name="Over the Air Bootloading" source="client" mandatory="false">TRUE</include>
        </clusters>
      </deviceType>
    </HADeviceTypes>

    <HAClusters>
      <cluster>
        <name>Basic</name>
        <code>0x0000</code>
        <define>BASIC_CLUSTER</define>
        <attribute source="server" code="0x0000" define="VERSION" mandatory="true" name="ZCL version">TRUE</attribute>
        <attribute source="server" code="0x0001" define="APPLICATION_VERSION" mandatory="false" name="application version">TRUE</attribute>
        <attribute source="server" code="0x0002" define="STACK_VERSION" mandatory="false" name="stack version">TRUE</attribute>
        <attribute source="server" code="0x0003" define="HW_VERSION" mandatory="false" name="hardware version">TRUE</attribute>
        <attribute source="server" code="0x0004" define="MANUFACTURER_NAME" mandatory="false" name="manufacturer name">TRUE</attribute>
        <attribute source="server" code="0x0005" define="MODEL_IDENTIFIER" mandatory="false" name="model identifier">TRUE</attribute>
        <attribute source="server" code="0x0007" define="POWER_SOURCE" mandatory="true" name="power source">TRUE</attribute>
        <command receivedBy="server" code="0x00" name="ResetToFactoryDefaults" mandatory="false">TRUE</command>
      </cluster>

      <cluster>
        <name>Identify</name>
        <code>0x0003</code>
        <define>IDENTIFY_CLUSTER</define>
        <attribute source="server" code="0x0000" define="IDENTIFY_TIME" mandatory="true" name="identify time">TRUE</attribute>
        <attribute source="server" code="0x0001" define="COMMISSION_STATE" mandatory="false" name="commission state">TRUE</attribute>
        <command receivedBy="server" code="0x00" name="Identify" mandatory="true">TRUE</command>
        <command receivedBy="server" code="0x01" name="IdentifyQuery" mandatory="true">TRUE</command>
        <command receivedBy="client" code="0x00" name="IdentifyQueryResponse" mandatory="true">TRUE</command>
      </cluster>

      <cluster>
        <name>Groups</name>
        <code>0x0004</code>
        <define>GROUPS_CLUSTER</define>
        <profileItem>
          <name>Groups Table Size</name>
          <description>Does the device support at least 8 entries in the group table?</description>
          <mandatory>true</mandatory>
     	  <supported>TRUE</supported>
        </profileItem>
        <attribute source="server" code="0x0000" define="GROUP_NAME_SUPPORT" mandatory="true" name="name support">TRUE</attribute>
        <command receivedBy="server" code="0x00" name="AddGroup" mandatory="true">TRUE</command>
        <command receivedBy="server" code="0x01" name="ViewGroup" mandatory="true">TRUE</command>
        <command receivedBy="server" code="0x02" name="GetGroupMembership" mandatory="true">TRUE</command>
        <command receivedBy="server" code="0x03" name="RemoveGroup" mandatory="true">TRUE</command>
        <command receivedBy="server" code="0x04" name="RemoveAllGroups" mandatory="true">TRUE</command>
        <command receivedBy="server" code="0x05" name="AddGroupIfIdentifying" mandatory="true">TRUE</command>
        <command receivedBy="client" code="0x00" name="AddGroupResponse" mandatory="true">TRUE</command>
        <command receivedBy="client" code="0x01" name="ViewGroupResponse" mandatory="true">TRUE</command>
        <command receivedBy="client" code="0x02" name="GetGroupMembershipResponse" mandatory="true">TRUE</command>
        <command receivedBy="client" code="0x03" name="RemoveGroupResponse" mandatory="true">TRUE</command>
      </cluster>

      <cluster>
        <name>Scenes</name>
        <code>0x0005</code>
        <define>SCENES_CLUSTER</define>
        <profileItem>
          <name>Scenes Table Size</name>
          <description>Does the device support at least 16 entries in the scenes table?</description>
          <mandatory>true</mandatory>
    	  <supported>TRUE</supported>
        </profileItem>
        <attribute source="server" code="0x0000" define="SCENE_COUNT" mandatory="true" name="scene count">TRUE</attribute>
        <attribute source="server" code="0x0001" define="CURRENT_SCENE" mandatory="true" name="current scene">TRUE</attribute>
        <attribute source="server" code="0x0002" define="CURRENT_GROUP" mandatory="true" name="current group">TRUE</attribute>
        <attribute source="server" code="0x0003" define="SCENE_VALID" mandatory="true" name="scene valid">TRUE</attribute>
        <attribute source="server" code="0x0004" define="SCENE_NAME_SUPPORT" mandatory="true" name="name support">TRUE</attribute>
        <command receivedBy="server" code="0x00"   name="AddScene"                	 mandatory="true">TRUE</command>
        <command receivedBy="server" code="0x01"   name="ViewScene"               	 mandatory="true">TRUE</command>
        <command receivedBy="server" code="0x02"   name="RemoveScene"             	 mandatory="true">TRUE</command>
        <command receivedBy="server" code="0x03"   name="RemoveAllScenes"         	 mandatory="true">TRUE</command>
        <command receivedBy="server" code="0x04"   name="StoreScene"              	 mandatory="true">TRUE</command>
        <command receivedBy="server" code="0x05"   name="RecallScene"             	 mandatory="true">TRUE</command>
        <command receivedBy="server" code="0x06"   name="GetSceneMembership"      	 mandatory="true">TRUE</command>
        <command receivedBy="client" code="0x00"   name="AddSceneResponse"        	 mandatory="true"/>
        <command receivedBy="client" code="0x01"   name="ViewSceneResponse"       	 mandatory="true"/>
        <command receivedBy="client" code="0x02"   name="RemoveSceneResponse"     	 mandatory="true"/>
        <command receivedBy="client" code="0x03"   name="RemoveAllScenesResponse" 	 mandatory="true"/>
        <command receivedBy="client" code="0x04"   name="StoreSceneResponse"      	 mandatory="true"/>
        <command receivedBy="client" code="0x06"   name="GetSceneMembershipResponse" mandatory="true"/>
      </cluster>

      <cluster>
        <name>On/off</name>
        <code>0x0006</code>
        <define>ON_OFF_CLUSTER</define>
        <attribute source="server" code="0x0000" define="ON_OFF" mandatory="true" name="on/off">TRUE</attribute>
        <command receivedBy="server" code="0x00" name="Off" mandatory="true">TRUE</command>
        <command receivedBy="server" code="0x01" name="On" mandatory="true">TRUE</command>
        <command receivedBy="server" code="0x02" name="Toggle" mandatory="true">TRUE</command>
      </cluster>

      <cluster>
        <name>Diagnostics</name>
        <code>0x0B05</code>
        <define>DIAGNOSTICS_CLUSTER</define>
        <attribute source="server" code="0x011B" define="AVERAGE_MAC_RETRY_PER_APS_MSG_SENT" mandatory="false" name="average mac retry per aps message sent">TRUE</attribute>
        <attribute source="server" code="0x011C" define="LAST_MESSAGE_LQI" mandatory="false" name="last message lqi">TRUE</attribute>
        <attribute source="server" code="0x011D" define="LAST_MESSAGE_RSSI" mandatory="false" name="last message rssi">TRUE</attribute>
      </cluster>

	  <cluster>
	    <name>Simple Metering</name>
	    <code>0x0702</code>
	    <define>SIMPLE_METERING_CLUSTER</define>
	    <attribute side="server" code="0x0000" define="CURRENT_SUMMATION_DELIVERED" mandatory="true" name="current summation delivered">TRUE</attribute>
	    <attribute side="server" code="0x0006" define="POWER_FACTOR" mandatory="false" name="power factor">TRUE</attribute>
	    <attribute side="server" code="0x0007" define="READING_SNAP_SHOT_TIME" mandatory="false" name="reading snapshot time">TRUE</attribute>
	    <attribute side="server" code="0x000A" define="DEFAULT_UPDATE_PERIOD" mandatory="false" name="default update period">TRUE</attribute>
	    <attribute side="server" code="0x000B" define="FAST_POLL_UPDATE_PERIOD" mandatory="false" name="fast poll update period">TRUE</attribute>
	    <attribute side="server" code="0x0200" define="STATUS" mandatory="true" name="status">TRUE</attribute>
	    <attribute side="server" code="0x0300" define="UNIT_OF_MEASURE" mandatory="true" name="unit of measure">TRUE</attribute>
	    <attribute side="server" code="0x0301" define="MULTIPLIER" mandatory="false" name="multiplier">TRUE</attribute>
	    <attribute side="server" code="0x0302" define="DIVISOR" mandatory="false" name="divisor">TRUE</attribute>
	    <attribute side="server" code="0x0303" define="SUMMATION_FORMATTING" mandatory="true" name="summation formatting">TRUE</attribute>
	    <attribute side="server" code="0x0304" define="DEMAND_FORMATTING" mandatory="false" name="demand formatting">TRUE</attribute>
	    <attribute side="server" code="0x0305" define="HISTORICAL_CONSUMPTION_FORMATTING" mandatory="false" name="historical consumption formatting">TRUE</attribute>
	    <attribute side="server" code="0x0306" define="METERING_DEVICE_TYPE" mandatory="true" name="metering device type">TRUE</attribute>
	    <attribute side="server" code="0x0400" define="INSTANTANEOUS_DEMAND" mandatory="false" name="instantaneous demand">TRUE</attribute>
	  </cluster>

	  <cluster>
	    <name>Over the Air Bootloading</name>
	    <code>0x0019</code>
	    <define>OTA_BOOTLOAD_CLUSTER</define>
	    <attribute side="client" type="IEEE_ADDRESS" code="0x0000" define="UPGRADE_SERVER_ID"            name="OTA Upgrade Server ID">TRUE</attribute>
	    <attribute side="client" type="INT32U"       code="0x0001" define="FILE_OFFSET"                  name="Offset (address) into the file">TRUE</attribute>
	    <attribute side="client" type="INT32U" 		 code="0x0002" define="CURRENT_FILE_VERSION"         name="OTA Current File Version">TRUE</attribute>
	    <attribute side="client" type="INT16U" 		 code="0x0003" define="CURRENT_ZIGBEE_STACK_VERSION" name="OTA Current ZigBee Stack Version">TRUE</attribute>
	    <attribute side="client" type="INT32U" 		 code="0x0004" define="DOWNLOADED_FILE_VERSION"      name="OTA Downloaded File Version">TRUE</attribute>
	    <attribute side="client" type="INT16U" 		 code="0x0005" define="DOWNLOADED_ZIGBEE_STACK_VERSION" name="OTA Downloaded ZigBee Stack Version">TRUE</attribute>
	    <attribute side="client" type="ENUM8" 		 code="0x0006" define="IMAGE_UPGRADE_STATUS"         name="OTA Upgrade Status">TRUE</attribute>
	    <attribute side="client" type="INT16U" 		 code="0x0007" define="MANUFACTURER_ID"              name="Manufacturer ID">TRUE</attribute>
	    <attribute side="client" type="INT16U" 		 code="0x0008" define="IMAGE_TYPE_ID"                name="Image Type ID">TRUE</attribute>
	    <attribute side="client" type="INT16U" 		 code="0x0009" define="MINIMUM_BLOCK_REQUEST_PERIOD" name="Minimum Block Request Period">TRUE</attribute>
	    <attribute side="client" type="INT32U" 		 code="0x000a" define="IMAGE_STAMP"                  name="Image Stamp">TRUE</attribute>
	    <command code="0x0" name="ImageNotify" 				source="server"/>
	    <command code="0x1" name="QueryNextImageRequest"    source="client">TRUE</command>
	    <command code="0x2" name="QueryNextImageResponse"   source="server"/>
	    <command code="0x3" name="ImageBlockRequest"        source="client">TRUE</command>
	    <command code="0x4" name="ImagePageRequest"         source="client">TRUE</command>
	    <command code="0x5" name="ImageBlockResponse"       source="server"/>
	    <command code="0x6" name="UpgradeEndRequest"        source="client">TRUE</command>
	    <command code="0x7" name="UpgradeEndResponse"       source="server"/>
	    <command code="0x8" name="QuerySpecificFileRequest" source="client"/>
        <command code="0x9" name="QuerySpecificFileResponse" source="server"/>
	  </cluster>

    </HAClusters>
  </picsProforma>
</homeAutomationPICs>
