From df7552c92bd30512ba2b2291f5e73cba07d67948 Mon Sep 17 00:00:00 2001 From: Stefan Triller Date: Tue, 21 Dec 2021 08:26:32 +0100 Subject: [PATCH] [ventaair] Add Air quality and service time channels (#11792) * [ventaair] Add Air quality and service time channels - also add value 4 for water level Signed-off-by: Stefan Triller --- .../internal/VentaAirBindingConstants.java | 2 ++ .../ventaair/internal/VentaThingHandler.java | 10 ++++++++++ .../ventaair/internal/message/dto/Info.java | 7 +++++++ .../internal/message/dto/Measurements.java | 4 ++-- .../resources/OH-INF/i18n/ventaair.properties | 5 +++++ .../src/main/resources/OH-INF/thing/channels.xml | 15 +++++++++++++++ .../main/resources/OH-INF/thing/thing-types.xml | 2 ++ 7 files changed, 43 insertions(+), 2 deletions(-) diff --git a/bundles/org.openhab.binding.ventaair/src/main/java/org/openhab/binding/ventaair/internal/VentaAirBindingConstants.java b/bundles/org.openhab.binding.ventaair/src/main/java/org/openhab/binding/ventaair/internal/VentaAirBindingConstants.java index 4e2e797408..4e21edd78d 100644 --- a/bundles/org.openhab.binding.ventaair/src/main/java/org/openhab/binding/ventaair/internal/VentaAirBindingConstants.java +++ b/bundles/org.openhab.binding.ventaair/src/main/java/org/openhab/binding/ventaair/internal/VentaAirBindingConstants.java @@ -41,6 +41,7 @@ public class VentaAirBindingConstants { public static final String CHANNEL_AUTOMATIC = "automatic"; public static final String CHANNEL_TEMPERATURE = "temperature"; public static final String CHANNEL_HUMIDITY = "humidity"; + public static final String CHANNEL_PM25 = "pm25"; public static final String CHANNEL_WATERLEVEL = "waterLevel"; public static final String CHANNEL_FAN_RPM = "fanRPM"; public static final String CHANNEL_CLEAN_MODE = "cleanMode"; @@ -48,6 +49,7 @@ public class VentaAirBindingConstants { public static final String CHANNEL_DISC_REPLACE_TIME = "discReplaceTime"; public static final String CHANNEL_CLEANING_TIME = "cleaningTime"; public static final String CHANNEL_TIMER_TIME_PASSED = "timerTimePassed"; + public static final String CHANNEL_SERVICE_TIME = "serviceTime"; public static final int PORT = 48000; } diff --git a/bundles/org.openhab.binding.ventaair/src/main/java/org/openhab/binding/ventaair/internal/VentaThingHandler.java b/bundles/org.openhab.binding.ventaair/src/main/java/org/openhab/binding/ventaair/internal/VentaThingHandler.java index 396c37c20d..39fd3c3f8a 100644 --- a/bundles/org.openhab.binding.ventaair/src/main/java/org/openhab/binding/ventaair/internal/VentaThingHandler.java +++ b/bundles/org.openhab.binding.ventaair/src/main/java/org/openhab/binding/ventaair/internal/VentaThingHandler.java @@ -38,6 +38,7 @@ import org.openhab.binding.ventaair.internal.message.dto.DeviceInfoMessage; import org.openhab.binding.ventaair.internal.message.dto.Header; import org.openhab.binding.ventaair.internal.message.dto.Info; import org.openhab.binding.ventaair.internal.message.dto.Measurements; +import org.openhab.core.library.dimension.Density; import org.openhab.core.library.types.DecimalType; import org.openhab.core.library.types.OnOffType; import org.openhab.core.library.types.QuantityType; @@ -275,6 +276,11 @@ public class VentaThingHandler extends BaseThingHandler { updateState(VentaAirBindingConstants.CHANNEL_HUMIDITY, humidityState); channelValueCache.put(VentaAirBindingConstants.CHANNEL_HUMIDITY, humidityState); + QuantityType pm25State = new QuantityType<>(measurements.getDust(), + Units.MICROGRAM_PER_CUBICMETRE); + updateState(VentaAirBindingConstants.CHANNEL_PM25, pm25State); + channelValueCache.put(VentaAirBindingConstants.CHANNEL_PM25, pm25State); + DecimalType waterLevelState = new DecimalType(measurements.getWaterLevel()); updateState(VentaAirBindingConstants.CHANNEL_WATERLEVEL, waterLevelState); channelValueCache.put(VentaAirBindingConstants.CHANNEL_WATERLEVEL, waterLevelState); @@ -310,6 +316,10 @@ public class VentaThingHandler extends BaseThingHandler { updateState(VentaAirBindingConstants.CHANNEL_TIMER_TIME_PASSED, timerTimePassedState); channelValueCache.put(VentaAirBindingConstants.CHANNEL_TIMER_TIME_PASSED, timerTimePassedState); + QuantityType