diff --git a/libnymea/interfaces/airquality.json b/libnymea/interfaces/airquality.json
new file mode 100644
index 00000000..9f9ccc4f
--- /dev/null
+++ b/libnymea/interfaces/airquality.json
@@ -0,0 +1,24 @@
+{
+ "description": "Air quality sensors. Describes the current quality of the air. As air quality index the PM2.5 measurment (particles pollution level) will be used.",
+ "extends": "sensor",
+ "states": [
+ {
+ "name": "airQuality",
+ "type": "QString",
+ "logged": true,
+ "possibleValues": [
+ "Good",
+ "Moderate",
+ "Unhealthy for Sensitive Groups",
+ "Unhealthy",
+ "Very unhealthy",
+ "Hazardous"
+ ]
+ },
+ {
+ "name": "airQualityIndex",
+ "type": "uint",
+ "logged": true
+ }
+ ]
+}
diff --git a/libnymea/interfaces/indoorairquality.json b/libnymea/interfaces/indoorairquality.json
new file mode 100644
index 00000000..f5db0514
--- /dev/null
+++ b/libnymea/interfaces/indoorairquality.json
@@ -0,0 +1,24 @@
+{
+ "description": "Indoor air quality sensors. Describes the current quality of the air in a room. As air quality index the Volatile organic compounds (VOC) measurment will be used.",
+ "extends": "sensor",
+ "states": [
+ {
+ "name": "indoorAirQuality",
+ "type": "QString",
+ "logged": true,
+ "possibleValues": [
+ "Excellent",
+ "Good",
+ "Moderate",
+ "Poor",
+ "Unhealthy"
+ ]
+ },
+ {
+ "name": "voc",
+ "type": "uint",
+ "unit": "PartsPerMillion",
+ "logged": true
+ }
+ ]
+}
diff --git a/libnymea/interfaces/interfaces.qrc b/libnymea/interfaces/interfaces.qrc
index 36de0ac4..4af7c172 100644
--- a/libnymea/interfaces/interfaces.qrc
+++ b/libnymea/interfaces/interfaces.qrc
@@ -80,5 +80,7 @@
update.json
watersensor.json
cleaningrobot.json
+ airquality.json
+ indoorairquality.json