diff --git a/libnymea/interfaces/airquality.json b/libnymea/interfaces/airquality.json
deleted file mode 100644
index 9f9ccc4f..00000000
--- a/libnymea/interfaces/airquality.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
- "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/cosensor.json b/libnymea/interfaces/cosensor.json
index e758b1cd..a5218972 100644
--- a/libnymea/interfaces/cosensor.json
+++ b/libnymea/interfaces/cosensor.json
@@ -6,6 +6,8 @@
"name": "co",
"type": "double",
"unit": "PartsPerMillion",
+ "minValue": 0,
+ "maxValue": 255,
"logged": true
}
]
diff --git a/libnymea/interfaces/indoorairquality.json b/libnymea/interfaces/indoorairquality.json
deleted file mode 100644
index f5db0514..00000000
--- a/libnymea/interfaces/indoorairquality.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
- "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 0d30b72d..dc4c2bbe 100644
--- a/libnymea/interfaces/interfaces.qrc
+++ b/libnymea/interfaces/interfaces.qrc
@@ -45,6 +45,10 @@
cosensor.json
co2sensor.json
o2sensor.json
+ no2sensor.json
+ o3sensor.json
+ pm25sensor.json
+ pm10sensor.json
gassensor.json
orpsensor.json
conductivitysensor.json
@@ -87,8 +91,7 @@
venetianblind.json
update.json
cleaningrobot.json
- airquality.json
- indoorairquality.json
+ vocsensor.json
energystorage.json
heatpump.json
smartgridheatpump.json
diff --git a/libnymea/interfaces/no2sensor.json b/libnymea/interfaces/no2sensor.json
new file mode 100644
index 00000000..5903ea8e
--- /dev/null
+++ b/libnymea/interfaces/no2sensor.json
@@ -0,0 +1,14 @@
+{
+ "description": "Interface for nitrogen dioxide sensors. NO2 is measured in µg/m3.",
+ "extends": "sensor",
+ "states": [
+ {
+ "name": "no2",
+ "type": "double",
+ "unit": "MicroGrammPerCubicalMeter",
+ "minValue": 0,
+ "maxValue": 800,
+ "logged": true
+ }
+ ]
+}
diff --git a/libnymea/interfaces/o3sensor.json b/libnymea/interfaces/o3sensor.json
new file mode 100644
index 00000000..fe7183c1
--- /dev/null
+++ b/libnymea/interfaces/o3sensor.json
@@ -0,0 +1,14 @@
+{
+ "extends": "sensor",
+ "description": "O3 (ozone) sensors. Measures o3 in parts per million.",
+ "states": [
+ {
+ "name": "o3",
+ "type": "double",
+ "unit": "MicroGrammPerCubicalMeter",
+ "minValue": 0,
+ "maxValue": 500,
+ "logged": true
+ }
+ ]
+}
diff --git a/libnymea/interfaces/pm10sensor.json b/libnymea/interfaces/pm10sensor.json
new file mode 100644
index 00000000..2d9c1678
--- /dev/null
+++ b/libnymea/interfaces/pm10sensor.json
@@ -0,0 +1,14 @@
+{
+ "extends": "sensor",
+ "description": "PM10 (Coarse particles) sensors. Measures PM10 particles in µg/m3.",
+ "states": [
+ {
+ "name": "pm10",
+ "type": "double",
+ "unit": "MicroGrammPerCubicalMeter",
+ "minValue": 0,
+ "maxValue": 500,
+ "logged": true
+ }
+ ]
+}
diff --git a/libnymea/interfaces/pm25sensor.json b/libnymea/interfaces/pm25sensor.json
new file mode 100644
index 00000000..e5ba889d
--- /dev/null
+++ b/libnymea/interfaces/pm25sensor.json
@@ -0,0 +1,14 @@
+{
+ "extends": "sensor",
+ "description": "PM2.5 (Fine particles) sensors. Measures PM2.5 particles in µg/m3.",
+ "states": [
+ {
+ "name": "pm25",
+ "type": "double",
+ "unit": "MicroGrammPerCubicalMeter",
+ "minValue": 0,
+ "maxValue": 500,
+ "logged": true
+ }
+ ]
+}
diff --git a/libnymea/interfaces/vocsensor.json b/libnymea/interfaces/vocsensor.json
new file mode 100644
index 00000000..505f9c8c
--- /dev/null
+++ b/libnymea/interfaces/vocsensor.json
@@ -0,0 +1,14 @@
+{
+ "description": "Sensor for volatile organic compounds (VOC).",
+ "extends": "sensor",
+ "states": [
+ {
+ "name": "voc",
+ "type": "uint",
+ "unit": "PartsPerBillion",
+ "minValue": 0,
+ "maxValue": 65353,
+ "logged": true
+ }
+ ]
+}
diff --git a/libnymea/typeutils.h b/libnymea/typeutils.h
index 282e53a2..1615869e 100644
--- a/libnymea/typeutils.h
+++ b/libnymea/typeutils.h
@@ -126,6 +126,7 @@ public:
UnitEuroCentPerKiloWattHour,
UnitPercentage,
UnitPartsPerMillion,
+ UnitPartsPerBillion,
UnitEuro,
UnitDollar,
UnitHertz,
@@ -144,6 +145,7 @@ public:
UnitRpm,
UnitMilligramPerLiter,
UnitLiter,
+ UnitMicroGrammPerCubicalMeter,
};
Q_ENUM(Unit)
diff --git a/nymea.pro b/nymea.pro
index 9fec9c53..99042487 100644
--- a/nymea.pro
+++ b/nymea.pro
@@ -5,7 +5,7 @@ NYMEA_VERSION_STRING=$$system('dpkg-parsechangelog | sed -n -e "s/^Version: //p"
# define protocol versions
JSON_PROTOCOL_VERSION_MAJOR=6
-JSON_PROTOCOL_VERSION_MINOR=1
+JSON_PROTOCOL_VERSION_MINOR=2
JSON_PROTOCOL_VERSION="$${JSON_PROTOCOL_VERSION_MAJOR}.$${JSON_PROTOCOL_VERSION_MINOR}"
LIBNYMEA_API_VERSION_MAJOR=7
LIBNYMEA_API_VERSION_MINOR=3
diff --git a/tests/auto/api.json b/tests/auto/api.json
index dffb76d2..e278ea70 100644
--- a/tests/auto/api.json
+++ b/tests/auto/api.json
@@ -1,4 +1,4 @@
-6.1
+6.2
{
"enums": {
"BasicType": [
@@ -154,7 +154,8 @@
"NetworkManagerErrorWirelessNetworkingDisabled",
"NetworkManagerErrorWirelessConnectionFailed",
"NetworkManagerErrorNetworkingDisabled",
- "NetworkManagerErrorNetworkManagerNotAvailable"
+ "NetworkManagerErrorNetworkManagerNotAvailable",
+ "NetworkManagerErrorInvalidConfiguration"
],
"NetworkManagerState": [
"NetworkManagerStateUnknown",
@@ -339,6 +340,7 @@
"UnitEuroCentPerKiloWattHour",
"UnitPercentage",
"UnitPartsPerMillion",
+ "UnitPartsPerBillion",
"UnitEuro",
"UnitDollar",
"UnitHertz",
@@ -356,7 +358,8 @@
"UnitNewtonMeter",
"UnitRpm",
"UnitMilligramPerLiter",
- "UnitLiter"
+ "UnitLiter",
+ "UnitMicroGrammPerCubicalMeter"
],
"UserError": [
"UserErrorNoError",