From 4068aa3ff9db5f40f397b2fedac38cdcb86191e7 Mon Sep 17 00:00:00 2001 From: Michael Zanetti Date: Sat, 10 Jul 2021 01:24:23 +0200 Subject: [PATCH] Added support for O2, ORP and PH sensors --- nymea-app/images.qrc | 2 + nymea-app/ui/Nymea.qml | 4 + nymea-app/ui/StyleBase.qml | 4 +- .../devicelistpages/SensorsDeviceListPage.qml | 5 +- nymea-app/ui/devicepages/SensorDevicePage.qml | 7 +- nymea-app/ui/images/sensors/o2.svg | 199 ++++++++++++++++++ nymea-app/ui/images/sensors/ph.svg | 84 ++++++++ 7 files changed, 301 insertions(+), 4 deletions(-) create mode 100644 nymea-app/ui/images/sensors/o2.svg create mode 100644 nymea-app/ui/images/sensors/ph.svg 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 @@ + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + 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 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + +