From 1002327727a0d57507772f97f93e9e29b65fb417 Mon Sep 17 00:00:00 2001
From: Thomas Hartwig <thomas.hartwig2@de.bosch.com>
Date: Tue, 11 Jul 2023 22:49:04 +0200
Subject: [PATCH] Add Air Purifier and Air Quality Sensor Device Types (#27888)

* Use Spaces Instead of Tabs

* Add Air Purifier and Air Quality Sensor Device Types
---
 .../zcl/data-model/chip/matter-devices.xml    | 51 +++++++++++++++++--
 1 file changed, 48 insertions(+), 3 deletions(-)

diff --git a/src/app/zap-templates/zcl/data-model/chip/matter-devices.xml b/src/app/zap-templates/zcl/data-model/chip/matter-devices.xml
index f284a4aecafa90..4b7998671595f6 100644
--- a/src/app/zap-templates/zcl/data-model/chip/matter-devices.xml
+++ b/src/app/zap-templates/zcl/data-model/chip/matter-devices.xml
@@ -1181,8 +1181,8 @@ limitations under the License.
                 <requireAttribute>PARTS_LIST</requireAttribute>
             </include>
             <include cluster="Boolean State" client="false" server="true" clientLocked="true" serverLocked="true">
-	        <requireAttribute>STATE_VALUE</requireAttribute>
-	    </include>
+                <requireAttribute>STATE_VALUE</requireAttribute>
+            </include>
         </clusters>
     </deviceType>
     <deviceType>
@@ -1618,7 +1618,7 @@ limitations under the License.
                 <requireCommand>AddGroupIfIdentifying</requireCommand>
             </include>
             <include cluster="Thermostat" client="false" server="true" clientLocked="true" serverLocked="true"></include>
-	    <include cluster="Time Synchronization" client="false" server="false" clientLocked="false" serverLocked="false"></include>
+            <include cluster="Time Synchronization" client="false" server="false" clientLocked="false" serverLocked="false"></include>
             <include cluster="Thermostat User Interface Configuration" client="false" server="false" clientLocked="true" serverLocked="false"></include>
             <include cluster="Fan Control" client="false" server="false" clientLocked="false" serverLocked="true"></include>
             <include cluster="Temperature Measurement" client="false" server="false" clientLocked="false" serverLocked="true"></include>
@@ -1899,6 +1899,51 @@ limitations under the License.
             <include cluster="Power Source" client="false" server="true" clientLocked="true" serverLocked="true"></include>
         </clusters>
     </deviceType>
+    <deviceType>
+        <name>MA-air-purifier</name>
+        <domain>CHIP</domain>
+        <typeName>Matter Air Purifier</typeName>
+        <profileId editable="false">0x0103</profileId>
+        <deviceId editable="false">0x002D</deviceId>
+        <clusters lockOthers="true">
+            <include cluster="Identify" client="false" server="true" clientLocked="true" serverLocked="true">
+                <requireAttribute>IDENTIFY_TIME</requireAttribute>
+                <requireAttribute>IDENTIFY_TYPE</requireAttribute>
+                <requireCommand>Identify</requireCommand>
+            </include>
+            <include cluster="Groups" client="false" server="false" clientLocked="true" serverLocked="false"></include>
+            <include cluster="Fan Control" client="false" server="true" clientLocked="true" serverLocked="true"></include>
+            <include cluster="HEPA Filter Monitoring" client="false" server="true" clientLocked="true" serverLocked="false"></include>
+            <include cluster="Activated Carbon Filter Monitoring" client="false" server="true" clientLocked="true" serverLocked="false"></include>
+        </clusters>
+    </deviceType>
+    <deviceType>
+        <name>MA-air-quality-sensor</name>
+        <domain>CHIP</domain>
+        <typeName>Matter Air Quality Sensor</typeName>
+        <profileId editable="false">0x0103</profileId>
+        <deviceId editable="false">0x002C</deviceId>
+        <clusters lockOthers="true">
+            <include cluster="Identify" client="false" server="true" clientLocked="true" serverLocked="true">
+                <requireAttribute>IDENTIFY_TIME</requireAttribute>
+                <requireAttribute>IDENTIFY_TYPE</requireAttribute>
+                <requireCommand>Identify</requireCommand>
+            </include>
+            <include cluster="Air Quality" client="false" server="true" clientLocked="true" serverLocked="true"></include>
+            <include cluster="Temperature Measurement" client="false" server="true" clientLocked="true" serverLocked="false"></include>
+            <include cluster="Relative Humidity Measurement" client="false" server="true" clientLocked="true" serverLocked="false"></include>
+            <include cluster="Carbon Monoxide Concentration Measurement" client="false" server="true" clientLocked="true" serverLocked="false"></include>
+            <include cluster="Carbon Dioxide Concentration Measurement" client="false" server="true" clientLocked="true" serverLocked="false"></include>
+            <include cluster="Nitrogen Dioxide Concentration Measurement" client="false" server="true" clientLocked="true" serverLocked="false"></include>
+            <include cluster="Ozone Concentration Measurement" client="false" server="true" clientLocked="true" serverLocked="false"></include>
+            <include cluster="Formaldehyde Concentration Measurement" client="false" server="true" clientLocked="true" serverLocked="false"></include>
+            <include cluster="PM1 Concentration Measurement" client="false" server="true" clientLocked="true" serverLocked="false"></include>
+            <include cluster="PM2.5 Concentration Measurement" client="false" server="true" clientLocked="true" serverLocked="false"></include>
+            <include cluster="PM10 Concentration Measurement" client="false" server="true" clientLocked="true" serverLocked="false"></include>
+            <include cluster="Radon Concentration Measurement" client="false" server="true" clientLocked="true" serverLocked="false"></include>
+            <include cluster="Total Volatile Organic Compounds Concentration Measurement" client="false" server="true" clientLocked="true" serverLocked="false"></include>
+        </clusters>
+    </deviceType>
     <deviceType>
         <name>MA-all-clusters-app</name>
         <domain>CHIP</domain>