[ecobee] Add support for Smart Thermostat Premium (#12892)

Signed-off-by: Rob Nielsen <rob.nielsen@yahoo.com>
This commit is contained in:
robnielsen 2022-06-08 01:52:07 -05:00 committed by GitHub
parent e24ca5708b
commit 045de1b589
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 34 additions and 8 deletions

View 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. Some or all of the following Remote Sensor channels will be added dynamically depending on the capabilities of the sensor.
| Channel | Type | ReadWrite | Description | | Channel | Type | ReadWrite | Description |
|--------------|-----------------------|-----------|--------------| |--------------------|-----------------------|-----------|--------------|
| temperature | Number:Temperature | | Temperature reported by the sensor | | temperature | Number:Temperature | | Temperature reported by the sensor |
| humidity | Number:Dimensionless | | Humidity reported by the sensor | | humidity | Number:Dimensionless | | Humidity reported by the sensor |
| occupancy | Switch | | Occupancy status reported by the sensor | | occupancy | Switch | | Occupancy status reported by the sensor |
| co2 | String | | CO2 reported by the sensor | | adc | String | | ADC reported by the sensor |
| dryContact | String | | Dry contact status reported by the sensor | | airPressure | String | | Air Pressure reported by the sensor |
| adc | String | | ADC 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 ## Thing Actions

View File

@ -50,11 +50,16 @@ import org.slf4j.LoggerFactory;
public class EcobeeSensorThingHandler extends BaseThingHandler { public class EcobeeSensorThingHandler extends BaseThingHandler {
public static final String CAPABILITY_ADC = "adc"; 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 = "co2";
public static final String CAPABILITY_CO2_PPM = "co2PPM";
public static final String CAPABILITY_DRY_CONTACT = "dryContact"; public static final String CAPABILITY_DRY_CONTACT = "dryContact";
public static final String CAPABILITY_HUMIDITY = "humidity"; public static final String CAPABILITY_HUMIDITY = "humidity";
public static final String CAPABILITY_OCCUPANCY = "occupancy"; public static final String CAPABILITY_OCCUPANCY = "occupancy";
public static final String CAPABILITY_TEMPERATURE = "temperature"; public static final String CAPABILITY_TEMPERATURE = "temperature";
public static final String CAPABILITY_VOC_PPM = "vocPPM";
public static final String CAPABILITY_UNKNOWN = "unknown"; public static final String CAPABILITY_UNKNOWN = "unknown";
private final Logger logger = LoggerFactory.getLogger(EcobeeSensorThingHandler.class); private final Logger logger = LoggerFactory.getLogger(EcobeeSensorThingHandler.class);
@ -144,9 +149,14 @@ public class EcobeeSensorThingHandler extends BaseThingHandler {
acceptedItemType = "Switch"; acceptedItemType = "Switch";
break; break;
case CAPABILITY_ADC: case CAPABILITY_ADC:
case CAPABILITY_AIR_PRESSURE:
case CAPABILITY_AIR_QUALITY:
case CAPABILITY_AIR_QUALITY_ACCURACY:
case CAPABILITY_CO2: case CAPABILITY_CO2:
case CAPABILITY_CO2_PPM:
case CAPABILITY_DRY_CONTACT: case CAPABILITY_DRY_CONTACT:
case CAPABILITY_UNKNOWN: case CAPABILITY_UNKNOWN:
case CAPABILITY_VOC_PPM:
default: default:
acceptedItemType = "String"; acceptedItemType = "String";
break; break;
@ -167,9 +177,14 @@ public class EcobeeSensorThingHandler extends BaseThingHandler {
channelTypeUID = CHANNELTYPEUID_OCCUPANCY; channelTypeUID = CHANNELTYPEUID_OCCUPANCY;
break; break;
case CAPABILITY_ADC: case CAPABILITY_ADC:
case CAPABILITY_AIR_PRESSURE:
case CAPABILITY_AIR_QUALITY:
case CAPABILITY_AIR_QUALITY_ACCURACY:
case CAPABILITY_CO2: case CAPABILITY_CO2:
case CAPABILITY_CO2_PPM:
case CAPABILITY_DRY_CONTACT: case CAPABILITY_DRY_CONTACT:
case CAPABILITY_UNKNOWN: case CAPABILITY_UNKNOWN:
case CAPABILITY_VOC_PPM:
default: default:
channelTypeUID = CHANNELTYPEUID_GENERIC; channelTypeUID = CHANNELTYPEUID_GENERIC;
break; break;
@ -198,9 +213,14 @@ public class EcobeeSensorThingHandler extends BaseThingHandler {
state = EcobeeUtils.undefOrOnOff("true".equals(value)); state = EcobeeUtils.undefOrOnOff("true".equals(value));
break; break;
case CAPABILITY_ADC: case CAPABILITY_ADC:
case CAPABILITY_AIR_PRESSURE:
case CAPABILITY_AIR_QUALITY:
case CAPABILITY_AIR_QUALITY_ACCURACY:
case CAPABILITY_CO2: case CAPABILITY_CO2:
case CAPABILITY_CO2_PPM:
case CAPABILITY_DRY_CONTACT: case CAPABILITY_DRY_CONTACT:
case CAPABILITY_UNKNOWN: case CAPABILITY_UNKNOWN:
case CAPABILITY_VOC_PPM:
default: default:
state = EcobeeUtils.undefOrString(value); state = EcobeeUtils.undefOrString(value);
break; break;