<?xml version="1.0"?>
<!--
Copyright (c) 2023 Project CHIP Authors

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<configurator>
  <domain name="CHIP" />

  <cluster>
    <domain>Closures</domain>
    <name>Smoke CO Alarm</name>
    <code>0x005C</code>
    <define>SMOKE_CO_ALARM_CLUSTER</define>
    <description>This cluster provides an interface for observing and managing the state of smoke and CO alarms.</description>

    <!-- Abbreviations used in descriptions -->
    <tag name="SMOKE" description="Smoke Alarm" />
    <tag name="CO" description="CO Alarm" />

    <client tick="false" init="false">true</client>
    <server tick="false" init="false">true</server>

    <!-- Current cluster version -->
    <globalAttribute side="either" code="0xFFFD" value="1" />
    <!-- Cluster feature map -->
    <globalAttribute side="server" code="0xFFFC" type="Feature" value="1" />

    <!-- Attributes -->
    <attribute side="server" code="0x0000" define="EXPRESSED_STATE" type="ExpressedStateEnum" writable="false" optional="false">ExpressedState</attribute>
    <attribute side="server" code="0x0001" define="SMOKE_STATE" type="AlarmStateEnum" writable="false" optional="true">SmokeState</attribute>
    <attribute side="server" code="0x0002" define="CO_STATE" type="AlarmStateEnum" writable="false" optional="true">COState</attribute>
    <attribute side="server" code="0x0003" define="BATTERY_ALERT" type="AlarmStateEnum" writable="false" optional="false">BatteryAlert</attribute>
    <attribute side="server" code="0x0004" define="DEVICE_MUTED" type="MuteStateEnum" writable="false" optional="true">DeviceMuted</attribute>
    <attribute side="server" code="0x0005" define="TEST_IN_PROGRESS" type="boolean" writable="false" optional="false">TestInProgress</attribute>
    <attribute side="server" code="0x0006" define="HARDWARE_FAULTALERT" type="boolean" writable="false" optional="false">HardwareFaultAlert</attribute>
    <attribute side="server" code="0x0007" define="END_OF_SERVICEALERT" type="EndOfServiceEnum" writable="false" optional="false">EndOfServiceAlert</attribute>
    <attribute side="server" code="0x0008" define="INTERCONNECT_SMOKE_ALARM" type="AlarmStateEnum" writable="false" optional="true">InterconnectSmokeAlarm</attribute>
    <attribute side="server" code="0x0009" define="INTERCONNECT_CO_ALARM" type="AlarmStateEnum" writable="false" optional="true">InterconnectCOAlarm</attribute>
    <attribute side="server" code="0x000A" define="CONTAMINATION_STATE" type="ContaminationStateEnum" writable="false" optional="true">ContaminationState</attribute>
    <attribute side="server" code="0x000B" define="SENSITIVITY_LEVEL" type="SensitivityEnum" min="0" max="2" writable="true" optional="true">SensitivityLevel</attribute>
    <!-- TODO: Date type encoding not defined -->
    <!-- <attribute side="server" code="0x000C" define="EXPIRY_DATE" type="Date" writable="false" optional="true">ExpiryDate</attribute> -->

    <!-- Commands -->
    <command source="client" code="0x00" name="SelfTestRequest" optional="true">
      <description>This command SHALL initiate a device self-test.</description>
    </command>

    <!-- Events -->
    <event side="server" code="0x00" name="SmokeAlarm" priority="info" optional="true">
      <description>This event SHALL be generated when SmokeState attribute changes to either Warning or Critical state.</description>
    </event>
    <event side="server" code="0x01" name="COAlarm" priority="info" optional="true">
      <description>This event SHALL be generated when COState attribute changes to either Warning or Critical state.</description>
    </event>
    <event side="server" code="0x02" name="LowBattery" priority="info" optional="false">
      <description>This event SHALL be generated when BatteryAlert attribute changes to either Warning or Critical state.</description>
    </event>
    <event side="server" code="0x03" name="HardwareFault" priority="info" optional="false">
      <description>This event SHALL be generated when the device detects a hardware fault that leads to setting HardwareFaultAlert to True.</description>
    </event>
    <event side="server" code="0x04" name="EndOfService" priority="info" optional="false">
      <description>This event SHALL be generated when the EndOfServiceAlert is set to True.</description>
    </event>
    <event side="server" code="0x05" name="SelfTestComplete" priority="info" optional="false">
      <description>This event SHALL be generated when the SelfTest completes, and the attribute TestInProgress changes to False.</description>
    </event>
    <event side="server" code="0x06" name="AlarmMuted" priority="info" optional="true">
      <description>This event SHALL be generated when the DeviceMuted attribute changes to True.</description>
    </event>
    <event side="server" code="0x07" name="MuteEnded" priority="info" optional="true">
      <description>This event SHALL be generated when DeviceMuted attribute changes to NotMuted.</description>
    </event>
    <event side="server" code="0x08" name="InterconnectSmokeAlarm" priority="info" optional="true">
      <description>This event SHALL be generated when the device hosting the cluster receives a smoke alarm from an interconnected sensor.</description>
    </event>
    <event side="server" code="0x09" name="InterconnectCOAlarm" priority="info" optional="true">
      <description>This event SHALL be generated when the device hosting the cluster receives a CO alarm from an interconnected sensor.</description>
    </event>
    <event side="server" code="0x0A" name="AllClear" priority="info" optional="false">
      <description>This event SHALL be generated when ExpressedState attribute returns to Normal state.</description>
    </event>
  </cluster>

  <!-- Cluster data types -->
  <enum name="AlarmStateEnum" type="ENUM8">
    <cluster code="0x005C" />
    <item value="0" name="Normal" />
    <item value="1" name="Warning" />
    <item value="2" name="Critical" />
  </enum>

  <enum name="SensitivityEnum" type="ENUM8">
    <cluster code="0x005C" />
    <item value="0" name="High" />
    <item value="1" name="Standard" />
    <item value="2" name="Low" />
  </enum>

  <enum name="ExpressedStateEnum" type="ENUM8">
    <cluster code="0x005C" />
    <item value="0" name="Normal" />
    <item value="1" name="SmokeAlarm" />
    <item value="2" name="COAlarm" />
    <item value="3" name="BatteryAlert" />
    <item value="4" name="Testing" />
    <item value="5" name="HardwareFault" />
    <item value="6" name="EndOfService" />
    <item value="7" name="InterconnectSmoke" />
    <item value="8" name="InterconnectCO" />
  </enum>

  <enum name="MuteStateEnum" type="ENUM8">
    <cluster code="0x005C" />
    <item value="0" name="NotMuted" />
    <item value="1" name="Muted" />
  </enum>

  <enum name="EndOfServiceEnum" type="ENUM8">
    <cluster code="0x005C" />
    <item value="0" name="Expired" />
    <item value="1" name="Normal" />
  </enum>

  <enum name="ContaminationStateEnum" type="ENUM8">
    <cluster code="0x005C" />
    <item value="0" name="Normal" />
    <item value="1" name="Low" />
    <item value="2" name="Warning" />
    <item value="3" name="Critical" />
  </enum>

  <bitmap name="Feature" type="BITMAP32">
    <cluster code="0x005C" />
    <field name="Smoke Alarm" mask="0x01" />
    <field name="CO alarm" mask="0x02" />
  </bitmap>
</configurator>
