diff --git a/nymea-app/images.qrc b/nymea-app/images.qrc
index 9f683383..1e060b4d 100644
--- a/nymea-app/images.qrc
+++ b/nymea-app/images.qrc
@@ -265,5 +265,7 @@
ui/images/system-suspend.svg
ui/images/zigbee-enddevice.svg
ui/images/zigbee-router.svg
+ ui/images/sensors/o2.svg
+ ui/images/sensors/ph.svg
diff --git a/nymea-app/ui/Nymea.qml b/nymea-app/ui/Nymea.qml
index 58386678..38e4a7b1 100644
--- a/nymea-app/ui/Nymea.qml
+++ b/nymea-app/ui/Nymea.qml
@@ -297,6 +297,10 @@ ApplicationWindow {
return Qt.resolvedUrl("images/sensors/windspeed.svg")
case "watersensor":
return Qt.resolvedUrl("images/sensors/water.svg")
+ case "o2sensor":
+ return Qt.resolvedUrl("images/sensors/o2.svg")
+ case "phsensor":
+ return Qt.resolvedUrl("images/sensors/ph.svg")
case "media":
case "mediacontroller":
case "mediaplayer":
diff --git a/nymea-app/ui/StyleBase.qml b/nymea-app/ui/StyleBase.qml
index da596a0c..4abcb79b 100644
--- a/nymea-app/ui/StyleBase.qml
+++ b/nymea-app/ui/StyleBase.qml
@@ -87,7 +87,9 @@ Item {
"irrigation": "lightblue",
"windspeedsensor": "blue",
"ventilation": "lightblue",
- "watersensor": "aqua"
+ "watersensor": "aqua",
+ "phsensor": "green",
+ "o2sensor": "lightblue"
}
property var stateColors: {
diff --git a/nymea-app/ui/devicelistpages/SensorsDeviceListPage.qml b/nymea-app/ui/devicelistpages/SensorsDeviceListPage.qml
index 9cf121f4..60bccb65 100644
--- a/nymea-app/ui/devicelistpages/SensorsDeviceListPage.qml
+++ b/nymea-app/ui/devicelistpages/SensorsDeviceListPage.qml
@@ -86,6 +86,9 @@ ThingsListPageBase {
ListElement { interfaceName: "heating"; stateName: "power" }
ListElement { interfaceName: "thermostat"; stateName: "targetTemperature" }
ListElement { interfaceName: "watersensor"; stateName: "waterDetected" }
+ ListElement { interfaceName: "o2sensor"; stateName: "o2saturation" }
+ ListElement { interfaceName: "phsensor"; stateName: "ph" }
+ ListElement { interfaceName: "orpsensor"; stateName: "orp" }
}
delegate: RowLayout {
@@ -113,7 +116,7 @@ ThingsListPageBase {
case "closablesensor":
return sensorValueDelegate.stateValue && sensorValueDelegate.stateValue.value === true ? Qt.resolvedUrl("../images/lock-closed.svg") : Qt.resolvedUrl("../images/lock-open.svg");
default:
- return app.interfaceToIcon(model.interfaceName)
+ return app.interfacesToIcon([model.interfaceName, "sensor"])
}
}
}
diff --git a/nymea-app/ui/devicepages/SensorDevicePage.qml b/nymea-app/ui/devicepages/SensorDevicePage.qml
index b93bf3da..4106bca7 100644
--- a/nymea-app/ui/devicepages/SensorDevicePage.qml
+++ b/nymea-app/ui/devicepages/SensorDevicePage.qml
@@ -56,7 +56,7 @@ ThingPageBase {
Repeater {
model: ListModel {
Component.onCompleted: {
- var supportedInterfaces = ["temperaturesensor", "humiditysensor", "pressuresensor", "moisturesensor", "lightsensor", "conductivitysensor", "noisesensor", "co2sensor", "presencesensor", "daylightsensor", "closablesensor", "watersensor"]
+ var supportedInterfaces = ["temperaturesensor", "humiditysensor", "pressuresensor", "moisturesensor", "lightsensor", "conductivitysensor", "noisesensor", "co2sensor", "presencesensor", "daylightsensor", "closablesensor", "watersensor", "phsensor", "o2sensor", "orpsensor"]
for (var i = 0; i < supportedInterfaces.length; i++) {
if (root.thingClass.interfaces.indexOf(supportedInterfaces[i]) >= 0) {
append({name: supportedInterfaces[i]});
@@ -89,7 +89,10 @@ ThingPageBase {
"presencesensor": "isPresent",
"daylightsensor": "daylight",
"closablesensor": "closed",
- "watersensor": "waterDetected"
+ "watersensor": "waterDetected",
+ "phsensor": "ph",
+ "o2sensor": "o2saturation",
+ "orpsensor": "orp"
}
}
diff --git a/nymea-app/ui/images/sensors/o2.svg b/nymea-app/ui/images/sensors/o2.svg
new file mode 100644
index 00000000..fac1c066
--- /dev/null
+++ b/nymea-app/ui/images/sensors/o2.svg
@@ -0,0 +1,199 @@
+
+
diff --git a/nymea-app/ui/images/sensors/ph.svg b/nymea-app/ui/images/sensors/ph.svg
new file mode 100644
index 00000000..9e470137
--- /dev/null
+++ b/nymea-app/ui/images/sensors/ph.svg
@@ -0,0 +1,84 @@
+
+