blob: 31ae0bba9e7d9905d86682afb2643cb012e5ac55 [file] [log] [blame]
<?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>Measurement &amp; Sensing</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="3" />
<features>
<feature bit="0" code="SMOKE" name="SmokeAlarm" summary="Supports Smoke alarm">
<optionalConform choice="a" more="true"/>
</feature>
<feature bit="1" code="CO" name="CO Alarm" summary="Supports CO alarm">
<optionalConform choice="a" more="true"/>
</feature>
</features>
<!-- 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">
<description>SmokeSensitivityLevel</description>
<access op="write" role="manage"/>
</attribute>
<attribute side="server" code="0x000C" define="EXPIRY_DATE" type="epoch_s" 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="critical" optional="true">
<description>This event SHALL be generated when SmokeState attribute changes to either Warning or Critical state.</description>
<field id="0" name="AlarmSeverityLevel" type="AlarmStateEnum" />
</event>
<event side="server" code="0x01" name="COAlarm" priority="critical" optional="true">
<description>This event SHALL be generated when COState attribute changes to either Warning or Critical state.</description>
<field id="0" name="AlarmSeverityLevel" type="AlarmStateEnum" />
</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>
<field id="0" name="AlarmSeverityLevel" type="AlarmStateEnum" />
</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 Expired.</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 Muted.</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="critical" optional="true">
<description>This event SHALL be generated when the device hosting the server receives a smoke alarm from an interconnected sensor.</description>
<field id="0" name="AlarmSeverityLevel" type="AlarmStateEnum" />
</event>
<event side="server" code="0x09" name="InterconnectCOAlarm" priority="critical" optional="true">
<description>This event SHALL be generated when the device hosting the server receives a smoke alarm from an interconnected sensor.</description>
<field id="0" name="AlarmSeverityLevel" type="AlarmStateEnum" />
</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="Normal" />
<item value="1" name="Expired" />
</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>
</configurator>