//Create a class for thermostat device package Thermostat import SmartThing.SmartThings class Thermostats extends SmartThings { List thermostats = new ArrayList() Thermostats(Closure sendEvent, boolean init) { // Only initialize one time since we only have one device for each capability thermostats = smartThings // Initialization String id = "thermostatID0" String label = "thermostat" String displayName = "thermostat" String climateName = "climateName" String thermostatOperatingState String thermostatFanMode String thermostatMode Integer temperature Integer coolingSetpoint Integer heatingSetpoint Integer thermostatSetpoint if (init) { temperature = 60 coolingSetpoint = 70 heatingSetpoint = 35 thermostatSetpoint = 50 thermostatOperatingState = "off" thermostatFanMode = "off" thermostatMode = "off" } else { temperature = 66 coolingSetpoint = 80 heatingSetpoint = 50 thermostatSetpoint = 60 thermostatOperatingState = "heating" thermostatFanMode = "circulate" thermostatMode = "auto" } thermostats.add(new Thermostat(sendEvent, id, label, displayName, temperature, coolingSetpoint, heatingSetpoint, thermostatSetpoint, thermostatOperatingState, thermostatFanMode, thermostatMode, climateName)) } // Methods to set values def setThermostatSetpoint(int thermostatSetpoint) { thermostats[0].setThermostatSetpoint(thermostatSetpoint) } def setCoolingSetpoint(int coolingSetpoint) { thermostats[0].setCoolingSetpoint(coolingSetpoint) } def setCoolingSetpoint(String coolingSetpoint) { setCoolingSetpoint(coolingSetpoint.toInteger()) } def setHeatingSetpoint(int heatingSetpoint) { thermostats[0].setHeatingSetpoint(heatingSetpoint) } def setHeatingSetpoint(String heatingSetpoint) { setHeatingSetpoint(heatingSetpoint.toInteger()) } def setThermostatFanMode(String thermostatFanMode) { thermostats[0].setThermostatFanMode(thermostatFanMode) } def setThermostatMode(String thermostatMode) { thermostats[0].setThermostatMode(thermostatMode) } def setThermostatOperatingState(String thermostatOperatingState) { thermostats[0].setThermostatOperatingState(thermostatOperatingState) } def setClimate(String info, String givenClimateName) { thermostats[0].setClimate(info, givenClimateName) } def setHold(String info1, int coolingSetpoint, int heatingSetpoint, String info2, String info3) { setCoolingSetpoint(coolingSetpoint) setHeatingSetpoint(heatingSetpoint) } def cool() { thermostats[0].cool() } def heat() { thermostats[0].heat() } def auto() { thermostats[0].auto() } def emergencyHeat() { thermostats[0].emergencyHeat() } def off() { thermostats[0].off() } }