| <?xml version="1.0"?> |
| <!-- |
| Copyright (c) 2021 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="HVAC"/> |
| <cluster> |
| <name>Thermostat</name> |
| <domain>HVAC</domain> |
| <description>An interface for configuring and controlling the functionality of a thermostat.</description> |
| <code>0x0201</code> |
| <define>THERMOSTAT_CLUSTER</define> |
| <client tick="false" init="false">true</client> |
| <server tick="false" init="false">true</server> |
| <globalAttribute side="either" code="0xFFFD" value="5"/> |
| <attribute side="server" code="0x0000" define="LOCAL_TEMPERATURE" type="INT16S" min="0x954D" max="0x7FFF" writable="false" reportable="true" optional="false" isNullable="true">LocalTemperature</attribute> |
| <attribute side="server" code="0x0001" define="OUTDOOR_TEMPERATURE" type="INT16S" min="0x954D" max="0x7FFF" writable="false" optional="true" isNullable="true">OutdoorTemperature</attribute> |
| <attribute side="server" code="0x0002" define="THERMOSTAT_OCCUPANCY" type="BITMAP8" min="0x00" max="0x01" writable="false" default="0x01" optional="true">Occupancy</attribute> |
| <!-- OCCUPANCY --> |
| <attribute side="server" code="0x0003" define="ABS_MIN_HEAT_SETPOINT_LIMIT" type="INT16S" min="0x954D" max="0x7FFF" writable="false" default="700" optional="true">AbsMinHeatSetpointLimit</attribute> |
| <attribute side="server" code="0x0004" define="ABS_MAX_HEAT_SETPOINT_LIMIT" type="INT16S" min="0x954D" max="0x7FFF" writable="false" default="3000" optional="true">AbsMaxHeatSetpointLimit</attribute> |
| <attribute side="server" code="0x0005" define="ABS_MIN_COOL_SETPOINT_LIMIT" type="INT16S" min="0x954D" max="0x7FFF" writable="false" default="1600" optional="true">AbsMinCoolSetpointLimit</attribute> |
| <attribute side="server" code="0x0006" define="ABS_MAX_COOL_SETPOINT_LIMIT" type="INT16S" min="0x954D" max="0x7FFF" writable="false" default="3200" optional="true">AbsMaxCoolSetpointLimit</attribute> |
| <attribute side="server" code="0x0007" define="PI_COOLING_DEMAND" type="INT8U" min="0x00" max="0x64" writable="false" reportable="true" optional="true">PICoolingDemand</attribute> |
| <attribute side="server" code="0x0008" define="PI_HEATING_DEMAND" type="INT8U" min="0x00" max="0x64" writable="false" reportable="true" optional="true">PIHeatingDemand</attribute> |
| <attribute side="server" code="0x0009" define="HVAC_SYSTEM_TYPE_CONFIGURATION" type="BITMAP8" min="0x00" max="0xFF" writable="true" optional="true"> |
| <description>HVACSystemTypeConfiguration</description> |
| <access op="read" privilege="view"/> |
| <access op="write" privilege="manage"/> |
| </attribute> |
| <attribute side="server" code="0x0010" define="LOCAL_TEMPERATURE_CALIBRATION" type="INT8S" min="0xE7" max="0x19" writable="true" default="0x00" optional="true"> |
| <description>LocalTemperatureCalibration</description> |
| <access op="read" privilege="view"/> |
| <access op="write" privilege="manage"/> |
| </attribute> |
| <attribute side="server" code="0x0011" define="OCCUPIED_COOLING_SETPOINT" type="INT16S" min="-27315" max="0x7FFF" writable="true" default="2600" optional="true">OccupiedCoolingSetpoint</attribute> |
| <attribute side="server" code="0x0012" define="OCCUPIED_HEATING_SETPOINT" type="INT16S" min="-27315" max="0x7FFF" writable="true" default="2000" optional="true">OccupiedHeatingSetpoint</attribute> |
| <attribute side="server" code="0x0013" define="UNOCCUPIED_COOLING_SETPOINT" type="INT16S" min="-27315" max="0x7FFF" writable="true" default="2600" optional="true">UnoccupiedCoolingSetpoint</attribute> |
| <attribute side="server" code="0x0014" define="UNOCCUPIED_HEATING_SETPOINT" type="INT16S" min="-27315" max="0x7FFF" writable="true" default="2000" optional="true">UnoccupiedHeatingSetpoint</attribute> |
| <attribute side="server" code="0x0015" define="MIN_HEAT_SETPOINT_LIMIT" type="INT16S" min="-27315" max="0x7FFF" writable="true" default="700" optional="true"> |
| <description>MinHeatSetpointLimit</description> |
| <access op="read" privilege="view"/> |
| <access op="write" privilege="manage"/> |
| </attribute> |
| <attribute side="server" code="0x0016" define="MAX_HEAT_SETPOINT_LIMIT" type="INT16S" min="-27315" max="0x7FFF" writable="true" default="3000" optional="true"> |
| <description>MaxHeatSetpointLimit</description> |
| <access op="read" privilege="view"/> |
| <access op="write" privilege="manage"/> |
| </attribute> |
| <attribute side="server" code="0x0017" define="MIN_COOL_SETPOINT_LIMIT" type="INT16S" min="-27315" max="0x7FFF" writable="true" default="1600" optional="true"> |
| <description>MinCoolSetpointLimit</description> |
| <access op="read" privilege="view"/> |
| <access op="write" privilege="manage"/> |
| </attribute> |
| <attribute side="server" code="0x0018" define="MAX_COOL_SETPOINT_LIMIT" type="INT16S" min="-27315" max="0x7FFF" writable="true" default="3200" optional="true"> |
| <description>MaxCoolSetpointLimit</description> |
| <access op="read" privilege="view"/> |
| <access op="write" privilege="manage"/> |
| </attribute> |
| <attribute side="server" code="0x0019" define="MIN_SETPOINT_DEAD_BAND" type="INT8S" min="0" max="25" writable="true" default="25" optional="true"> |
| <description>MinSetpointDeadBand</description> |
| <access op="read" privilege="view"/> |
| <access op="write" privilege="manage"/> |
| </attribute> |
| <attribute side="server" code="0x001A" define="REMOTE_SENSING" type="BITMAP8" min="0x00" max="0x07" writable="true" default="0x00" optional="true"> |
| <description>RemoteSensing</description> |
| <access op="read" privilege="view"/> |
| <access op="write" privilege="manage"/> |
| </attribute> |
| <attribute side="server" code="0x001B" define="CONTROL_SEQUENCE_OF_OPERATION" type="ThermostatControlSequence" min="0x00" max="0x05" writable="true" default="0x04" optional="false"> |
| <description>ControlSequenceOfOperation</description> |
| <access op="read" privilege="view"/> |
| <access op="write" privilege="manage"/> |
| </attribute> |
| <attribute side="server" code="0x001C" define="SYSTEM_MODE" type="ENUM8" min="0x00" max="0x07" writable="true" default="0x01" optional="false"> |
| <description>SystemMode</description> |
| <access op="read" privilege="view"/> |
| <access op="write" privilege="manage"/> |
| </attribute> |
| <attribute side="server" code="0x001E" define="THERMOSTAT_RUNNING_MODE" type="ENUM8" min="0x00" max="0x04" writable="false" optional="true">ThermostatRunningMode</attribute> |
| <attribute side="server" code="0x0020" define="START_OF_WEEK" type="ENUM8" min="0x00" max="0x06" writable="false" optional="true">StartOfWeek</attribute> |
| <attribute side="server" code="0x0021" define="NUMBER_OF_WEEKLY_TRANSITIONS" type="INT8U" min="0x00" max="0xFF" writable="false" optional="true">NumberOfWeeklyTransitions</attribute> |
| <attribute side="server" code="0x0022" define="NUMBER_OF_DAILY_TRANSITIONS" type="INT8U" min="0x00" max="0xFF" writable="false" optional="true">NumberOfDailyTransitions</attribute> |
| <attribute side="server" code="0x0023" define="TEMPERATURE_SETPOINT_HOLD" type="ENUM8" min="0x00" max="0x01" writable="true" default="0x00" optional="true"> |
| <description>TemperatureSetpointHold</description> |
| <access op="read" privilege="view"/> |
| <access op="write" privilege="manage"/> |
| </attribute> |
| <attribute side="server" code="0x0024" define="TEMPERATURE_SETPOINT_HOLD_DURATION" type="INT16U" min="0" max="1440" writable="true" default="0xFFFF" optional="true" isNullable="true"> |
| <description>TemperatureSetpointHoldDuration</description> |
| <access op="read" privilege="view"/> |
| <access op="write" privilege="manage"/> |
| </attribute> |
| <attribute side="server" code="0x0025" define="THERMOSTAT_PROGRAMMING_OPERATION_MODE" type="BITMAP8" writable="true" default="0x0000" optional="true"> |
| <description>ThermostatProgrammingOperationMode</description> |
| <access op="read" privilege="view"/> |
| <access op="write" privilege="manage"/> |
| </attribute> |
| <attribute side="server" code="0x0029" define="THERMOSTAT_RUNNING_STATE" type="BITMAP16" writable="false" optional="true">ThermostatRunningState</attribute> |
| <attribute side="server" code="0x0030" define="SETPOINT_CHANGE_SOURCE" type="ENUM8" writable="false" optional="true">SetpointChangeSource</attribute> |
| <attribute side="server" code="0x0031" define="SETPOINT_CHANGE_AMOUNT" type="INT16S" writable="false" default="0x8000" optional="true" isNullable="true">SetpointChangeAmount</attribute> |
| <attribute side="server" code="0x0032" define="SETPOINT_CHANGE_SOURCE_TIMESTAMP" type="utc" writable="false" optional="true">SetpointChangeSourceTimestamp</attribute> |
| <attribute side="server" code="0x0034" define="OCCUPIED_SETBACK" type="int8u" writable="true" optional="true" isNullable="true"> |
| <description>OccupiedSetback</description> |
| <access op="read" privilege="view"/> |
| <access op="write" privilege="manage"/> |
| </attribute> |
| <attribute side="server" code="0x0035" define="OCCUPIED_SETBACK_MIN" type="int8u" writable="false" optional="true" isNullable="true">OccupiedSetbackMin</attribute> |
| <attribute side="server" code="0x0036" define="OCCUPIED_SETBACK_MAX" type="int8u" writable="false" optional="true" isNullable="true">OccupiedSetbackMax</attribute> |
| <attribute side="server" code="0x0037" define="UNOCCUPIED_SETBACK" type="int8u" writable="true" optional="true" isNullable="true"> |
| <description>UnoccupiedSetback</description> |
| <access op="read" privilege="view"/> |
| <access op="write" privilege="manage"/> |
| </attribute> |
| <attribute side="server" code="0x0038" define="UNOCCUPIED_SETBACK_MIN" type="int8u" writable="false" optional="true" isNullable="true">UnoccupiedSetbackMin</attribute> |
| <attribute side="server" code="0x0039" define="UNOCCUPIED_SETBACK_MAX" type="int8u" writable="false" optional="true" isNullable="true">UnoccupiedSetbackMax</attribute> |
| <attribute side="server" code="0x003A" define="EMERGENCY_HEAT_DELTA" type="int8u" writable="true" optional="true"> |
| <description>EmergencyHeatDelta</description> |
| <access op="read" privilege="view"/> |
| <access op="write" privilege="manage"/> |
| </attribute> |
| <attribute side="server" code="0x0040" define="AC_TYPE" type="ENUM8" min="0x00" max="0x04" writable="true" default="0x00" optional="true"> |
| <description>ACType</description> |
| <access op="read" privilege="view"/> |
| <access op="write" privilege="manage"/> |
| </attribute> |
| <attribute side="server" code="0x0041" define="AC_CAPACITY" type="INT16U" min="0x0000" max="0xFFFF" writable="true" default="0x0000" optional="true"> |
| <description>ACCapacity</description> |
| <access op="read" privilege="view"/> |
| <access op="write" privilege="manage"/> |
| </attribute> |
| <attribute side="server" code="0x0042" define="AC_REFRIGERANT_TYPE" type="ENUM8" min="0x00" max="0x03" writable="true" default="0x00" optional="true"> |
| <description>ACRefrigerantType</description> |
| <access op="read" privilege="view"/> |
| <access op="write" privilege="manage"/> |
| </attribute> |
| <attribute side="server" code="0x0043" define="AC_COMPRESSOR_TYPE" type="ENUM8" min="0x00" max="0x03" writable="true" default="0x00" optional="true"> |
| <description>ACCompressorType</description> |
| <access op="read" privilege="view"/> |
| <access op="write" privilege="manage"/> |
| </attribute> |
| <attribute side="server" code="0x0044" define="AC_ERROR_CODE" type="BITMAP32" min="0x00000000" max="0xFFFFFFFF" writable="true" default="0x00000000" optional="true"> |
| <description>ACErrorCode</description> |
| <access op="read" privilege="view"/> |
| <access op="write" privilege="manage"/> |
| </attribute> |
| <attribute side="server" code="0x0045" define="AC_LOUVER_POSITION" type="ENUM8" min="0x00" max="0x05" writable="true" default="0x00" optional="true"> |
| <description>ACLouverPosition</description> |
| <access op="read" privilege="view"/> |
| <access op="write" privilege="manage"/> |
| </attribute> |
| <attribute side="server" code="0x0046" define="AC_COIL_TEMPERATURE" type="INT16S" min="-27315" max="0x7FFF" writable="false" default="0x8000" optional="true" isNullable="true">ACCoilTemperature</attribute> |
| <attribute side="server" code="0x0047" define="AC_CAPACITY_FORMAT" type="ENUM8" min="0x00" max="0xFF" writable="true" default="0x00" optional="true"> |
| <description>ACCapacityformat</description> |
| <access op="read" privilege="view"/> |
| <access op="write" privilege="manage"/> |
| </attribute> |
| <command source="client" code="0x00" name="SetpointRaiseLower" optional="false"> |
| <description> |
| Command description for SetpointRaiseLower |
| </description> |
| <arg name="Mode" type="SetpointAdjustMode"/> |
| <arg name="Amount" type="INT8S"/> |
| </command> |
| <command source="client" code="0x01" name="SetWeeklySchedule" optional="true"> |
| <description> |
| Command description for SetWeeklySchedule |
| </description> |
| <arg name="NumberOfTransitionsForSequence" type="INT8U"/> |
| <arg name="DayOfWeekForSequence" type="DayOfWeek"/> |
| <arg name="ModeForSequence" type="ModeForSequence"/> |
| <arg name="Transitions" type="ThermostatScheduleTransition" array="true"/> |
| <access op="invoke" privilege="manage"/> |
| </command> |
| <command source="client" code="0x02" name="GetWeeklySchedule" response="GetWeeklyScheduleResponse" optional="true"> |
| <description> |
| Command description for GetWeeklySchedule |
| </description> |
| <arg name="DaysToReturn" type="DayOfWeek"/> |
| <arg name="ModeToReturn" type="ModeForSequence"/> |
| </command> |
| <command source="client" code="0x03" name="ClearWeeklySchedule" optional="true"> |
| <description> |
| The Clear Weekly Schedule command is used to clear the weekly schedule. |
| </description> |
| <access op="invoke" privilege="manage"/> |
| </command> |
| <command source="server" code="0x00" name="GetWeeklyScheduleResponse" optional="true"> |
| <description> |
| The Current Weekly Schedule Command is sent from the server in response to the Get Weekly Schedule Command. |
| </description> |
| <arg name="NumberOfTransitionsForSequence" type="INT8U"/> |
| <arg name="DayOfWeekForSequence" type="DayOfWeek"/> |
| <arg name="ModeForSequence" type="ModeForSequence"/> |
| <arg name="Transitions" type="ThermostatScheduleTransition" array="true"/> |
| </command> |
| </cluster> |
| |
| <bitmap name="ThermostatFeature" type="BITMAP32"> |
| <cluster code="0x0201"/> |
| <field name="Heating" mask="0x1"/> |
| <field name="Cooling" mask="0x2"/> |
| <field name="Occupancy" mask="0x4"/> |
| <field name="Schedule" mask="0x8"/> |
| <field name="Setback" mask="0x10"/> |
| <field name="Automode" mask="0x20"/> |
| </bitmap> |
| |
| <struct name="ThermostatScheduleTransition"> |
| <cluster code="0x0201"/> |
| <item fieldId="0" name="TransitionTime" type="INT16U"/> |
| <!-- See https://github.com/CHIP-Specifications/connectedhomeip-spec/issues/5238 for HeatSetpoint and CoolSetpoint. For now, going to guess they are in fact meant to be nullable. --> |
| <item fieldId="1" name="HeatSetpoint" type="INT16S" isNullable="true"/> |
| <item fieldId="2" name="CoolSetpoint" type="INT16S" isNullable="true"/> |
| </struct> |
| |
| </configurator> |