<?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.

Example:

<?xml version="1.0"?>
<homeAutomationPICs version="">
  <implementationIdentification>
    <IUTIdentification>
  	  <description>Implemenation Under Test Identification</description>
  	  <UITName    mandatory="true">Acme Device</UITName>
  	  <UITVersion mandatory="true">1.0</UITVersion>
    </IUTIdentification>
    <SUTIdentification>
  	  <description>System Under Test Identification</description>
  	  <SUTName></SUTName>
  	  <SUTSoftwareVersion mandatory="true">1.0</SUTSoftwareVersion>
  	  <SUTHardwareVersion mandatory="true">1.0</SUTHardwareVersion>
  	  <SUTOperatingSystem mandatory="false">1.0</SUTOperatingSystem>
    </SUTIdentification>
    <productSupplier>
  	  <description>Product Supplier</description>
  	  <name>ACME Device Manufacturer</name>
  	  <address>10 Congress Street</address>
  	  <telephoneNumber>617-447-4444</telephoneNumber>
  	  <faxNumber>617-447-4441</faxNumber>
  	  <emailAddress>acme@acme.com</emailAddress>
  	  <additionalInformation></additionalInformation>
    </productSupplier>
    <client>
  	  <description>Client</description>
  	  <name>John Doe</name>
  	  <address>10 Congress Street</address>
  	  <telephoneNumber>617-447-4444</telephoneNumber>
  	  <faxNumber>617-447-4441</faxNumber>
  	  <emailAddress>acme@acme.com</emailAddress>
  	  <additionalInformation></additionalInformation>
    </client>
    <picsContactPerson>
  	  <description>PICS Contact Person</description>
  	  <name>John Doe</name>
  	  <address>10 Congress Street</address>
  	  <telephoneNumber>617-447-4444</telephoneNumber>
  	  <faxNumber>617-447-4441</faxNumber>
  	  <emailAddress>acme@acme.com</emailAddress>
  	  <additionalInformation></additionalInformation>
    </picsContactPerson>
  </implementationIdentification>
  
  <globalStatementOfConformance>
    <specVersion name="ZigBee Home Automation" version="053520r29" mandatory="true">TRUE</specVersion>
  </globalStatementOfConformance>
  
  <picsProforma>
    <zigBeeDeviceTypes>
      <type>
        <name>coordinator</name>
        <description>Is this device capable of acting as a ZigBee coordinator?</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>Network Form</name>
  	    <description>Does the device support a method for the user to use the device to form a network?</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>Polling Rate</name>
          <description>Does the device adhere to the polling rate specifications given in 053520r29</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>
    </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>TRUE</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>TRUE</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="0x8031" name="Mgmt_Lqi_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="0x10" name="WriteAttributesStructuredResponse"  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-onoff</name>
        <domain>HA</domain>
        <typeName>HA On/Off Switch</typeName>
        <profileId>0x0104</profileId>
        <deviceId>0x0000</deviceId>
        <supported>TRUE</supported>
        <commissioning>
          <type name="ezMode" role="initiator" mandatory="true"  >TRUE</type>
          <type name="ezMode" role="target"    mandatory="false" >TRUE</type>
  	    </commissioning>
        <clusters>
          <include name="Basic"                            source="server" mandatory="true"   >TRUE</include>
          <include name="Identify"                         source="server" mandatory="true"   >TRUE</include>
          <include name="Power Configuration"              source="server" mandatory="false"  >FALSE</include>
          <include name="Device Temperature Configuration" source="server" mandatory="false"  >FALSE</include>
          <include name="Alarms"                           source="server" mandatory="false"  >FALSE</include>
          <include name="Poll Control"                     source="server" mandatory="false"  >FALSE</include>
          <include name="Electrical Measurement"           source="server" mandatory="false"  >FALSE</include>
          <include name="Time"                             source="client" mandatory="false"  >FALSE</include>
          <include name="Over the Air Bootloading Cluster" source="client" mandatory="false"  >FALSE</include>
          <include name="Partition"                        source="client" mandatory="false"  >FALSE</include>
          <include name="Partition"                        source="server" mandatory="false"  >FALSE</include>
          <include name="On/Off"                           source="client" mandatory="true"   >TRUE</include>
          <include name="Identify"                         source="client" mandatory="true"   >TRUE</include>
          <include name="Scenes"                           source="client" mandatory="false"  >FALSE</include>
          <include name="Groups"                           source="client" mandatory="false"  >FALSE</include>
          <include name="On/Off Switch Configuration"      source="server" mandatory="false"  >FALSE</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"    >FALSE</attribute>
        <attribute source="server" code="0x0002" define="STACK_VERSION"        mandatory="false"  name="stack version"          >FALSE</attribute>
        <attribute source="server" code="0x0003" define="HW_VERSION"           mandatory="false"  name="hardware version"       >FALSE</attribute>
        <attribute source="server" code="0x0004" define="MANUFACTURER_NAME"    mandatory="false"  name="manufacturer name"      >FALSE</attribute>
        <attribute source="server" code="0x0005" define="MODEL_IDENTIFIER"     mandatory="false"  name="model identifier"       >FALSE</attribute>
        <attribute source="server" code="0x0006" define="DATE_CODE"            mandatory="false"  name="date code"              >FALSE</attribute>
        <attribute source="server" code="0x0007" define="POWER_SOURCE"         mandatory="true"   name="power source"           >TRUE</attribute>
        <attribute source="server" code="0x0010" define="LOCATION_DESCRIPTION" mandatory="false"  name="location description"   >FALSE</attribute>
        <attribute source="server" code="0x0011" define="PHYSICAL_ENVIRONMENT" mandatory="false"  name="physical environment"   >FALSE</attribute>
        <attribute source="server" code="0x0012" define="DEVICE_ENABLED"       mandatory="false"  name="device enabled"         >FALSE</attribute>
        <attribute source="server" code="0x0013" define="ALARM_MASK"           mandatory="false"  name="alarm mask"             >FALSE</attribute>
        <attribute source="server" code="0x0014" define="DISABLE_LOCAL_CONFIG" mandatory="false"  name="disable local config"   >FALSE</attribute>
        <command receivedBy="server" code="0x00" name="ResetToFactoryDefaults" mandatory="false"></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>
        <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>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>
      
    </HAClusters>
  </picsProforma>
</homeAutomationPICs>


-->
<homeAutomationPICs version="">
  <implementationIdentification>
    <IUTIdentification>
  	  <description>Implemenation Under Test Identification</description>
  	  <UITName    mandatory="true">Smoke Sensor</UITName>
  	  <UITVersion mandatory="true">3.4</UITVersion>
    </IUTIdentification>
    <SUTIdentification>
  	  <description>System Under Test Identification</description>
  	  <SUTName>Smoke Sensor</SUTName>
  	  <SUTSoftwareVersion mandatory="true">3.4</SUTSoftwareVersion>
  	  <SUTHardwareVersion mandatory="true">1.0.1</SUTHardwareVersion>
  	  <SUTOperatingSystem mandatory="false"/>
    </SUTIdentification>
    <productSupplier>
  	  <description>Product Supplier</description>
  	  <name>Develco Products A/S</name>
  	  <address>Olof Palmes Allé 40, DK-8200 Aarhus N</address>
  	  <telephoneNumber>+4587400370</telephoneNumber>
  	  <faxNumber/>
  	  <emailAddress>info@develcoproducts.com</emailAddress>
  	  <additionalInformation/>
    </productSupplier>
    <client>
  	  <description>Client</description>
  	  <name/>
  	  <address/>
  	  <telephoneNumber/>
  	  <faxNumber/>
  	  <emailAddress/>
  	  <additionalInformation/>
    </client>
    <picsContactPerson>
  	  <description>PICS Contact Person</description>
  	  <name>Thomas Ravnborg<name/>
  	  <address/>
  	  <telephoneNumber/>
  	  <faxNumber/>
  	  <emailAddress/>
  	  <additionalInformation/>
    </picsContactPerson>
  </implementationIdentification>
  
  <globalStatementOfConformance>
    <specVersion name="ZigBee Home Automation" version="053520r29" mandatory="true"/>
  </globalStatementOfConformance>
  
  <picsProforma>
    <zigBeeDeviceTypes>
      <type>
        <name>coordinator</name>
        <description>Is this device capable of acting as a ZigBee coordinator?</description>
        <support>FALSE</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/>
  	  </profileItem>
  	  <profileItem>
  	    <name>Network Form</name>
  	    <description>Does the device support a method for the user to use the device to form a network?</description>
  	    <mandatory>true</mandatory>
  	    <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/>
  	  </profileItem>
      </type>
      <type>
        <name>router</name>
        <description>Is this device capable of acting as a ZigBee router?</description>
        <support>FALSE</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/>
  	  </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/>
  	  </profileItem>
      </type>
      <type>
        <name>end device</name>
        <description>Is this a ZigBee end device?</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>Polling Rate</name>
          <description>Does the device adhere to the polling rate specifications given in 053520r29</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>TRUE</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>TRUE</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="0x8031" name="Mgmt_Lqi_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="0x10" name="WriteAttributesStructuredResponse" source="either" mandatory="false">FALSE</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-tempsensor</name>
        <domain>HA</domain>
        <typeName>HA Temperature Sensor</typeName>
        <profileId>0x0104</profileId>
        <deviceId>0x0302</deviceId>
        <supported/>
        <commissioning>
          <type name="ezMode" role="initiator" mandatory="true">TRUE</type>
          <type name="ezMode" role="target" mandatory="false">TRUE</type>
  	  </commissioning>
        <clusters>
          <include name="Basic" source="server" mandatory="true">TRUE</include>
          <include name="Identify" source="server" mandatory="true">TRUE</include>
          <include name="Power Configuration" source="server" mandatory="false">FALSE</include>
          <include name="Device Temperature Configuration" source="server" mandatory="false">FALSE</include>
          <include name="Alarms" source="server" mandatory="false">FALSE</include>
          <include name="Poll Control" source="server" mandatory="false">FALSE</include>
          <include name="Electrical Measurement" source="server" mandatory="false">FALSE</include>
          <include name="Time" source="client" mandatory="false">FALSE</include>
          <include name="Over the Air Bootloading Cluster" source="client" mandatory="false">FALSE</include>
          <include name="Partition" source="client" mandatory="false">FALSE</include>
          <include name="Partition" source="server" mandatory="false">FALSE</include>
          <include name="Temperature Measurement" source="server" mandatory="true">TRUE</include>
          <include name="Identify" source="client" mandatory="true">TRUE</include>
          <include name="Groups" source="client" mandatory="false">FALSE</include>
        </clusters>
      </deviceType>
      <deviceType>
        <name>HA-iaszone</name>
        <domain>HA</domain>
        <typeName>HA IAS Zone</typeName>
        <profileId>0x0104</profileId>
        <deviceId>0x0402</deviceId>
        <supported/>
        <commissioning>
          <type name="ezMode" role="initiator" mandatory="false">FALSE</type>
          <type name="ezMode" role="target" mandatory="false">FALSE</type>
  	  </commissioning>
        <clusters>
          <include name="Basic" source="server" mandatory="true">TRUE</include>
          <include name="Identify" source="server" mandatory="true">TRUE</include>
          <include name="Power Configuration" source="server" mandatory="false">TRUE</include>
          <include name="Device Temperature Configuration" source="server" mandatory="false">FALSE</include>
          <include name="Alarms" source="server" mandatory="false">FALSE</include>
          <include name="Poll Control" source="server" mandatory="false">TRUE</include>
          <include name="Electrical Measurement" source="server" mandatory="false">FALSE</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="Partition" source="client" mandatory="false">FALSE</include>
          <include name="Partition" source="server" mandatory="false">FALSE</include>
          <include name="IAS Zones" source="server" mandatory="true">TRUE</include>

		  <!-- additional optional clusters -->
          <include name="IAS WD" source="server" mandatory="true">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">FALSE</attribute>
        <attribute source="server" code="0x0002" define="STACK_VERSION" mandatory="false" name="stack version">FALSE</attribute>
        <attribute source="server" code="0x0003" define="HW_VERSION" mandatory="false" name="hardware version">FALSE</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="0x0006" define="DATE_CODE" mandatory="false" name="date code">TRUE</attribute>
        <attribute source="server" code="0x0007" define="POWER_SOURCE" mandatory="true" name="power source">TRUE</attribute>
        <attribute source="server" code="0x0008" define="APPLICATION_PROFILE_VERSION" mandatory="false" name="application profile version">FALSE</attribute>
        <attribute source="server" code="0x0010" define="LOCATION_DESCRIPTION" mandatory="false" name="location description">FALSE</attribute>
        <attribute source="server" code="0x0011" define="PHYSICAL_ENVIRONMENT" mandatory="false" name="physical environment">FALSE</attribute>
        <attribute source="server" code="0x0012" define="DEVICE_ENABLED" mandatory="false" name="device enabled">FALSE</attribute>
        <attribute source="server" code="0x0013" define="ALARM_MASK" mandatory="false" name="alarm mask">FALSE</attribute>
        <attribute source="server" code="0x0014" define="DISABLE_LOCAL_CONFIG" mandatory="false" name="disable local config">FALSE</attribute>
        <command receivedBy="server" code="0x00" name="ResetToFactoryDefaults" mandatory="false">FALSE</command>
      </cluster>

      <cluster>
        <name>Power Configuration</name>
        <code>0x0001</code>
        <define>POWER_CONFIG_CLUSTER</define>
        <attribute source="server" code="0x0000" define="MAINS_VOLTAGE" mandatory="false" name="mains voltage">FALSE</attribute>
        <attribute source="server" code="0x0001" define="MAINS_FREQUENCY" mandatory="false" name="mains frequency">FALSE</attribute>
        <attribute source="server" code="0x0010" define="MAINS_ALARM_MASK" mandatory="false" name="mains alarm mask">FALSE</attribute>
        <attribute source="server" code="0x0011" define="MAINS_VOLTAGE_MIN_THRESHOLD" mandatory="false" name="mains voltage min threshold">FALSE</attribute>
        <attribute source="server" code="0x0012" define="MAINS_VOLTAGE_MAX_THRESHOLD" mandatory="false" name="mains voltage max threshold">FALSE</attribute>
        <attribute source="server" code="0x0013" define="MAINS_VOLTAGE_DWELL_TRIP_POINT" mandatory="false" name="mains voltage dwell trip">FALSE</attribute>
        <attribute source="server" code="0x0020" define="BATTERY_VOLTAGE" mandatory="false" name="battery voltage">TRUE</attribute>
        <attribute source="server" code="0x0021" define="BATTERY_PERCENTAGE_REMAINING" mandatory="false" name="battery percentage remaining">FALSE</attribute>
        <attribute source="server" code="0x0030" define="BATTERY_MANUFACTURER" mandatory="false" name="battery manufacturer">FALSE</attribute>
        <attribute source="server" code="0x0031" define="BATTERY_SIZE" mandatory="false" name="battery size">TRUE</attribute>
        <attribute source="server" code="0x0032" define="BATTERY_AHR_RATING" mandatory="false" name="battery ahr rating">FALSE</attribute>
        <attribute source="server" code="0x0033" define="BATTERY_QUANTITY" mandatory="false" name="battery quantity">TRUE</attribute>
        <attribute source="server" code="0x0034" define="BATTERY_RATED_VOLTAGE" mandatory="false" name="battery rated voltage">TRUE</attribute>
        <attribute source="server" code="0x0035" define="BATTERY_ALARM_MASK" mandatory="false" name="battery alarm mask">FALSE</attribute>
        <attribute source="server" code="0x0036" define="BATTERY_VOLTAGE_MIN_THRESHOLD" mandatory="false" name="battery voltage min threshold">FALSE</attribute>
        <attribute source="server" code="0x0037" define="BATTERY_VOLTAGE_THRESHOLD_1" mandatory="false" name="battery voltage threshold 1">FALSE</attribute>
        <attribute source="server" code="0x0038" define="BATTERY_VOLTAGE_THRESHOLD_2" mandatory="false" name="battery voltage threshold 2">FALSE</attribute>
        <attribute source="server" code="0x0039" define="BATTERY_VOLTAGE_THRESHOLD_3" mandatory="false" name="battery voltage threshold 3">FALSE</attribute>
        <attribute source="server" code="0x003a" define="BATTERY_PERCENTAGE_MIN_THRESHOLD" mandatory="false" name="battery percentage min threshold">FALSE</attribute>
        <attribute source="server" code="0x003b" define="BATTERY_PERCENTAGE_THRESHOLD_1" mandatory="false" name="battery percentage threshold 1">FALSE</attribute>
        <attribute source="server" code="0x003c" define="BATTERY_PERCENTAGE_THRESHOLD_2" mandatory="false" name="battery percentage threshold 2">FALSE</attribute>
        <attribute source="server" code="0x003d" define="BATTERY_PERCENTAGE_THRESHOLD_3" mandatory="false" name="battery percentage threshold 3">FALSE</attribute>
        <attribute source="server" code="0x003e" define="BATTERY_ALARM_STATE" mandatory="false" name="battery alarm state">FALSE</attribute>
        <attribute source="server" code="0x0040" define="BATTERY_2_VOLTAGE" mandatory="false" name="battery 2 voltage">FALSE</attribute>
        <attribute source="server" code="0x0041" define="BATTERY_2_PERCENTAGE_REMAINING" mandatory="false" name="battery 2 percentage remaining">FALSE</attribute>
        <attribute source="server" code="0x0050" define="BATTERY_2_MANUFACTURER" mandatory="false" name="battery 2 manufacturer">FALSE</attribute>
        <attribute source="server" code="0x0051" define="BATTERY_2_SIZE" mandatory="false" name="battery 2 size">FALSE</attribute>
        <attribute source="server" code="0x0052" define="BATTERY_2_AHR_RATING" mandatory="false" name="battery 2 ahr rating">FALSE</attribute>
        <attribute source="server" code="0x0053" define="BATTERY_2_QUANTITY" mandatory="false" name="battery 2 quantity">FALSE</attribute>
        <attribute source="server" code="0x0054" define="BATTERY_2_RATED_VOLTAGE" mandatory="false" name="battery 2 rated voltage">FALSE</attribute>
        <attribute source="server" code="0x0055" define="BATTERY_2_ALARM_MASK" mandatory="false" name="battery 2 alarm mask">FALSE</attribute>
        <attribute source="server" code="0x0056" define="BATTERY_2_VOLTAGE_MIN_THRESHOLD" mandatory="false" name="battery 2 voltage min threshold">FALSE</attribute>
        <attribute source="server" code="0x0057" define="BATTERY_2_VOLTAGE_THRESHOLD_1" mandatory="false" name="battery 2 voltage threshold 1">FALSE</attribute>
        <attribute source="server" code="0x0058" define="BATTERY_2_VOLTAGE_THRESHOLD_2" mandatory="false" name="battery 2 voltage threshold 2">FALSE</attribute>
        <attribute source="server" code="0x0059" define="BATTERY_2_VOLTAGE_THRESHOLD_3" mandatory="false" name="battery 2 voltage threshold 3">FALSE</attribute>
        <attribute source="server" code="0x005a" define="BATTERY_2_PERCENTAGE_MIN_THRESHOLD" mandatory="false" name="battery 2 percentage min threshold">FALSE</attribute>
        <attribute source="server" code="0x005b" define="BATTERY_2_PERCENTAGE_THRESHOLD_1" mandatory="false" name="battery 2 percentage threshold 1">FALSE</attribute>
        <attribute source="server" code="0x005c" define="BATTERY_2_PERCENTAGE_THRESHOLD_2" mandatory="false" name="battery 2 percentage threshold 2">FALSE</attribute>
        <attribute source="server" code="0x005d" define="BATTERY_2_PERCENTAGE_THRESHOLD_3" mandatory="false" name="battery 2 percentage threshold 3">FALSE</attribute>
        <attribute source="server" code="0x005e" define="BATTERY_2_ALARM_STATE" mandatory="false" name="battery 2 alarm state">FALSE</attribute>
        <attribute source="server" code="0x0060" define="BATTERY_3_VOLTAGE" mandatory="false" name="battery 3 voltage">FALSE</attribute>
        <attribute source="server" code="0x0061" define="BATTERY_3_PERCENTAGE_REMAINING" mandatory="false" name="battery 3 percentage remaining">FALSE</attribute>
        <attribute source="server" code="0x0070" define="BATTERY_3_MANUFACTURER" mandatory="false" name="battery 3 manufacturer">FALSE</attribute>
        <attribute source="server" code="0x0071" define="BATTERY_3_SIZE" mandatory="false" name="battery 3 size">FALSE</attribute>
        <attribute source="server" code="0x0072" define="BATTERY_3_AHR_RATING" mandatory="false" name="battery 3 ahr rating">FALSE</attribute>
        <attribute source="server" code="0x0073" define="BATTERY_3_QUANTITY" mandatory="false" name="battery 3 quantity">FALSE</attribute>
        <attribute source="server" code="0x0074" define="BATTERY_3_RATED_VOLTAGE" mandatory="false" name="battery 3 rated voltage">FALSE</attribute>
        <attribute source="server" code="0x0075" define="BATTERY_3_ALARM_MASK" mandatory="false" name="battery 3 alarm mask">FALSE</attribute>
        <attribute source="server" code="0x0076" define="BATTERY_3_VOLTAGE_MIN_THRESHOLD" mandatory="false" name="battery 3 voltage min threshold">FALSE</attribute>
        <attribute source="server" code="0x0077" define="BATTERY_3_VOLTAGE_THRESHOLD_1" mandatory="false" name="battery 3 voltage threshold 1">FALSE</attribute>
        <attribute source="server" code="0x0078" define="BATTERY_3_VOLTAGE_THRESHOLD_2" mandatory="false" name="battery 3 voltage threshold 2">FALSE</attribute>
        <attribute source="server" code="0x0079" define="BATTERY_3_VOLTAGE_THRESHOLD_3" mandatory="false" name="battery 3 voltage threshold 3">FALSE</attribute>
        <attribute source="server" code="0x007a" define="BATTERY_3_PERCENTAGE_MIN_THRESHOLD" mandatory="false" name="battery 3 percentage min threshold">FALSE</attribute>
        <attribute source="server" code="0x007b" define="BATTERY_3_PERCENTAGE_THRESHOLD_1" mandatory="false" name="battery 3 percentage threshold 1">FALSE</attribute>
        <attribute source="server" code="0x007c" define="BATTERY_3_PERCENTAGE_THRESHOLD_2" mandatory="false" name="battery 3 percentage threshold 2">FALSE</attribute>
        <attribute source="server" code="0x007d" define="BATTERY_3_PERCENTAGE_THRESHOLD_3" mandatory="false" name="battery 3 percentage threshold 3">FALSE</attribute>
        <attribute source="server" code="0x007e" define="BATTERY_3_ALARM_STATE" mandatory="false" name="battery 3 alarm state">FALSE</attribute>
      </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">FALSE</attribute>
        <command receivedBy="server" code="0x00" name="Identify" mandatory="true">TRUE</attribute>
        <command receivedBy="server" code="0x01" name="IdentifyQuery" mandatory="true">TRUE</attribute>
        <command receivedBy="client" code="0x00" name="IdentifyQueryResponse" mandatory="true">TRUE</attribute>
      </cluster>
      
      <cluster>
        <name>Time</name>
        <domain>General</domain>
        <code>0x000A</code>
        <define>TIME_CLUSTER</define>
        <attribute source="server" code="0x0000" define="TIME" mandatory="true" name="time"/>
        <attribute source="server" code="0x0001" define="TIME_STATUS" mandatory="true" name="time status"/>
        <attribute source="server" code="0x0002" define="TIME_ZONE" mandatory="false" name="time zone"/>
        <attribute source="server" code="0x0003" define="DST_START" mandatory="false" name="dst start"/>
        <attribute source="server" code="0x0004" define="DST_END" mandatory="false" name="dst end"/>
        <attribute source="server" code="0x0005" define="DST_SHIFT" mandatory="false" name="dst shift"/>
        <attribute source="server" code="0x0006" define="STANDARD_TIME" mandatory="false" name="standard time"/>
        <attribute source="server" code="0x0007" define="LOCAL_TIME" mandatory="false" name="local time"/>
        <attribute source="server" code="0x0008" define="LAST_SET_TIME" mandatory="false" name="last set time"/>
        <attribute source="server" code="0x0009" define="VALID_UNTIL_TIME" mandatory="false" name="valid until time"/>
      </cluster>
      
      <cluster>
       <name>Poll Control</name>
       <code>0x0020</code>
       <define>POLL_CONTROL_CLUSTER</define>
       <attribute source="server" code="0x0000" define="CHECK_IN_INTERVAL" mandatory="true" name="check-in interval">TRUE</attribute>
       <attribute source="server" code="0x0001" define="LONG_POLL_INTERVAL" mandatory="true" name="long poll interval">TRUE</attribute>
       <attribute source="server" code="0x0002" define="SHORT_POLL_INTERVAL" mandatory="true" name="short poll interval">TRUE</attribute>
       <attribute source="server" code="0x0003" define="FAST_POLL_TIMEOUT" mandatory="true" name="fast poll timeout">TRUE</attribute>
       <attribute source="server" code="0x0004" define="CHECK_IN_INTERVAL_MIN" mandatory="false" name="check in interval min">FALSE</attribute>
       <attribute source="server" code="0x0005" define="LONG_POLL_INTERVAL_MIN" mandatory="false" name="long poll interval min">FALSE</attribute>
       <attribute source="server" code="0x0006" define="FAST_POLL_TIMEOUT_MAX" mandatory="false" name="fast poll timeout max">FALSE</attribute>
       <command receivedBy="client" code="0x00" name="CheckIn" mandatory="true"/>
       <command receivedBy="server" code="0x00" name="CheckInResponse" mandatory="true">TRUE</command>
       <command receivedBy="server" code="0x01" name="FastPollStop" mandatory="true">TRUE</command>
       <command receivedBy="server" code="0x02" name="SetLongPollInterval" mandatory="false">TRUE</command>
       <command receivedBy="server" code="0x03" name="SetShortPollInterval" mandatory="false">TRUE</command>
     </cluster>
    
      <cluster>
        <name>Temperature Measurement</name>
        <code>0x0402</code>
        <define>TEMP_MEASUREMENT_CLUSTER</define>
        <attribute source="server" code="0x0000" define="TEMP_MEASURED_VALUE" mandatory="true" name="measured value">TRUE</attribute>     
        <attribute source="server" code="0x0001" define="TEMP_MIN_MEASURED_VALUE" mandatory="true" name="min measured value">TRUE</attribute> 
        <attribute source="server" code="0x0002" define="TEMP_MAX_MEASURED_VALUE" mandatory="true" name="max measured value">TRUE</attribute> 
        <attribute source="server" code="0x0003" define="TEMP_TOLERANCE" mandatory="false" name="tolerance">FALSE</attribute>          
      </cluster>
    
      <cluster>
        <name>IAS Zone</name>
        <code>0x0500</code>
        <define>IAS_ZONE_CLUSTER</define>
        <attribute source="server" code="0x0000" define="ZONE_STATE" mandatory="true" name="zone state">TRUE</attribute>
        <attribute source="server" code="0x0001" define="ZONE_TYPE" mandatory="true" name="zone type">TRUE</attribute>
        <attribute source="server" code="0x0002" define="ZONE_STATUS" mandatory="true" name="zone status">TRUE</attribute>
        <attribute source="server" code="0x0010" define="IAS_CIE_ADDRESS" mandatory="true" name="IAS CIE address">TRUE</attribute>
        <attribute source="server" code="0x0011" define="ZONE_ID" mandatory="true" name="Zone ID">TRUE</attribute>
        <attribute source="server" code="0x0012" define="NUMBER_OF_ZONE_SENSITIVITY_LEVELS_SUPPORTED" mandatory="false" name="Number of Zone Sensitivity Levels Supported">FALSE</attribute>
        <attribute source="server" code="0x0013" define="CURRENT_ZONE_SENSITIVITY_LEVEL" mandatory="false" name="Current Zone Sensitivity Level">FALSE</attribute>
        <command receivedBy="server" code="0x00" name="ZoneEnrollResponse" mandatory="true">TRUE</command>
        <command receivedBy="server" code="0x01" name="InitiateNormalOperationMode" mandatory="false">FALSE</command>
        <command receivedby="server" code="0x02" name="InitiateTestMode" mandatory="false">FALSE</command>
        <command receivedBy="client" code="0x00" name="ZoneStatusChangeNotification" mandatory="true"/>
        <command receivedBy="client" code="0x01" name="ZoneEnrollRequest" mandatory="true"/>
      </cluster>
    
      <cluster>
        <name>IAS WD</name>
        <code>0x0502</code>
        <define>IAS_WD_CLUSTER</define>
        <attribute source="server" code="0x0000" define="MAX_DURATION" mandatory="true" name="max duration">TRUE</attribute>
        <command receivedBy="server" code="0x00" name="StartWarning" mandatory="true">TRUE</command>
        <command receivedBy="server" code="0x01" name="Squawk" mandatory="true">TRUE</command>
      </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>
	    <command code="0x0" name="ImageNotify" source="server">TRUE</command>
	    <command code="0x1" name="QueryNextImageRequest" source="client">FALSE</command>
	    <command code="0x2" name="QueryNextImageResponse" source="server">TRUE</command>
	    <command code="0x3" name="ImageBlockRequest" source="client">FALSE</command>
	    <command code="0x4" name="ImagePageRequest" source="client">FALSE</command>
	    <command code="0x5" name="ImageBlockResponse" source="server">TRUE</command>
	    <command code="0x6" name="UpgradeEndRequest" source="client">FALSE</command>
	    <command code="0x7" name="UpgradeEndResponse" source="server">TRUE</command>
	    <command code="0x8" name="QuerySpecificFileRequest" source="client">FALSE</command>
	    <command code="0x9" name="QuerySpecificFileResponse" source="server">FALSE</command>
	  </cluster>

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