blob: 97404c86a62a395723a014cbc2c09e25d33fae08 [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>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>