]> git.basschouten.com Git - openhab-addons.git/commitdiff
[ecobee] Add support for Smart Thermostat Premium (#12892)
authorrobnielsen <rob.nielsen@yahoo.com>
Wed, 8 Jun 2022 06:52:07 +0000 (01:52 -0500)
committerGitHub <noreply@github.com>
Wed, 8 Jun 2022 06:52:07 +0000 (08:52 +0200)
Signed-off-by: Rob Nielsen <rob.nielsen@yahoo.com>
bundles/org.openhab.binding.ecobee/README.md
bundles/org.openhab.binding.ecobee/src/main/java/org/openhab/binding/ecobee/internal/handler/EcobeeSensorThingHandler.java

index 1ba91fa6b9543e8108940cd2120db41ad18202c0..1e478bc93c3eca848bec0ffae2bd9c603b0f278a 100644 (file)
@@ -407,14 +407,20 @@ The following channels are available on the Ecobee Remote Sensor.
 
 Some or all of the following Remote Sensor channels will be added dynamically depending on the capabilities of the sensor.
 
-| Channel      | Type                  | ReadWrite | Description  |
-|--------------|-----------------------|-----------|--------------|
-| temperature  | Number:Temperature    |           | Temperature reported by the sensor  |
-| humidity     | Number:Dimensionless  |           | Humidity reported by the sensor  |
-| occupancy    | Switch                |           | Occupancy status reported by the sensor  |
-| co2          | String                |           | CO2 reported by the sensor  |
-| dryContact   | String                |           | Dry contact status reported by the sensor  |
-| adc          | String                |           | ADC reported by the sensor  |
+| Channel            | Type                  | ReadWrite | Description  |
+|--------------------|-----------------------|-----------|--------------|
+| temperature        | Number:Temperature    |           | Temperature reported by the sensor  |
+| humidity           | Number:Dimensionless  |           | Humidity reported by the sensor  |
+| occupancy          | Switch                |           | Occupancy status reported by the sensor  |
+| adc                | String                |           | ADC reported by the sensor  |
+| airPressure        | String                |           | Air Pressure reported by the sensor  |
+| airQuality         | String                |           | Air Quality reported by the sensor (clean-poor)  |
+| airQualityAccuracy | String                |           | Air Quality Accuracy reported by the sensor  |
+| co2                | String                |           | CO2 reported by the sensor  |
+| co2PPM             | String                |           | CO2 level reported by the sensor (low-high)  |
+| dryContact         | String                |           | Dry contact status reported by the sensor  |
+| vocPPM             | String                |           | Volatile organic compounds (VOC) reported by the sensor (low-high)  |
+
 
 ## Thing Actions
 
index 8822587f9bd78f2bcb42261bde53c10350563821..b31ec14a99166779caf096ecdabb9442cbb8470b 100644 (file)
@@ -50,11 +50,16 @@ import org.slf4j.LoggerFactory;
 public class EcobeeSensorThingHandler extends BaseThingHandler {
 
     public static final String CAPABILITY_ADC = "adc";
+    public static final String CAPABILITY_AIR_PRESSURE = "airPressure";
+    public static final String CAPABILITY_AIR_QUALITY = "airQuality";
+    public static final String CAPABILITY_AIR_QUALITY_ACCURACY = "airQualityAccuracy";
     public static final String CAPABILITY_CO2 = "co2";
+    public static final String CAPABILITY_CO2_PPM = "co2PPM";
     public static final String CAPABILITY_DRY_CONTACT = "dryContact";
     public static final String CAPABILITY_HUMIDITY = "humidity";
     public static final String CAPABILITY_OCCUPANCY = "occupancy";
     public static final String CAPABILITY_TEMPERATURE = "temperature";
+    public static final String CAPABILITY_VOC_PPM = "vocPPM";
     public static final String CAPABILITY_UNKNOWN = "unknown";
 
     private final Logger logger = LoggerFactory.getLogger(EcobeeSensorThingHandler.class);
@@ -144,9 +149,14 @@ public class EcobeeSensorThingHandler extends BaseThingHandler {
                 acceptedItemType = "Switch";
                 break;
             case CAPABILITY_ADC:
+            case CAPABILITY_AIR_PRESSURE:
+            case CAPABILITY_AIR_QUALITY:
+            case CAPABILITY_AIR_QUALITY_ACCURACY:
             case CAPABILITY_CO2:
+            case CAPABILITY_CO2_PPM:
             case CAPABILITY_DRY_CONTACT:
             case CAPABILITY_UNKNOWN:
+            case CAPABILITY_VOC_PPM:
             default:
                 acceptedItemType = "String";
                 break;
@@ -167,9 +177,14 @@ public class EcobeeSensorThingHandler extends BaseThingHandler {
                 channelTypeUID = CHANNELTYPEUID_OCCUPANCY;
                 break;
             case CAPABILITY_ADC:
+            case CAPABILITY_AIR_PRESSURE:
+            case CAPABILITY_AIR_QUALITY:
+            case CAPABILITY_AIR_QUALITY_ACCURACY:
             case CAPABILITY_CO2:
+            case CAPABILITY_CO2_PPM:
             case CAPABILITY_DRY_CONTACT:
             case CAPABILITY_UNKNOWN:
+            case CAPABILITY_VOC_PPM:
             default:
                 channelTypeUID = CHANNELTYPEUID_GENERIC;
                 break;
@@ -198,9 +213,14 @@ public class EcobeeSensorThingHandler extends BaseThingHandler {
                 state = EcobeeUtils.undefOrOnOff("true".equals(value));
                 break;
             case CAPABILITY_ADC:
+            case CAPABILITY_AIR_PRESSURE:
+            case CAPABILITY_AIR_QUALITY:
+            case CAPABILITY_AIR_QUALITY_ACCURACY:
             case CAPABILITY_CO2:
+            case CAPABILITY_CO2_PPM:
             case CAPABILITY_DRY_CONTACT:
             case CAPABILITY_UNKNOWN:
+            case CAPABILITY_VOC_PPM:
             default:
                 state = EcobeeUtils.undefOrString(value);
                 break;