<?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="CHIP"/>
  <cluster>
    <name>Flow Measurement</name>
    <domain>Measurement &amp; Sensing</domain>
    <description>Attributes and commands for configuring the measurement of flow, and reporting flow measurements.</description>
    <code>0x0404</code>
    <define>FLOW_MEASUREMENT_CLUSTER</define>
    <client tick="false" init="false">true</client>
    <server tick="false" init="false">true</server>
    <attribute side="server" code="0x0000" define="FLOW_MEASURED_VALUE" type="INT16U" writable="false" optional="false" isNullable="true">MeasuredValue</attribute>
    <attribute side="server" code="0x0001" define="FLOW_MIN_MEASURED_VALUE" type="INT16U" writable="false" optional="false" isNullable="true">MinMeasuredValue</attribute>
    <attribute side="server" code="0x0002" define="FLOW_MAX_MEASURED_VALUE" type="INT16U" writable="false" optional="false" isNullable="true">MaxMeasuredValue</attribute>
    <attribute side="server" code="0x0003" define="FLOW_TOLERANCE" type="INT16U" min="0x0000" max="0x0800" writable="false" default="0" optional="true">Tolerance</attribute>
  </cluster>

</configurator>
