1 //Create a class for thermostat device
3 import SmartThing.SmartThings
5 //Importing mutable integer class
6 import MutableInteger.MutableInteger
8 class Thermostats extends SmartThings {
9 List thermostats = new ArrayList()
11 Thermostats(Closure sendEvent, boolean init) {
12 // Only initialize one time since we only have one device for each capability
13 thermostats = smartThings
16 StringBuilder id = new StringBuilder("thermostatID0")
17 StringBuilder label = new StringBuilder("thermostat")
18 StringBuilder displayName = new StringBuilder("thermostat0")
19 StringBuilder climateName = new StringBuilder("climateName")
20 StringBuilder thermostatOperatingState = new StringBuilder()
21 StringBuilder thermostatFanMode = new StringBuilder()
22 StringBuilder thermostatMode = new StringBuilder()
23 MutableInteger temperature = new MutableInteger()
24 MutableInteger coolingSetpoint = new MutableInteger()
25 MutableInteger heatingSetpoint = new MutableInteger()
26 MutableInteger thermostatSetpoint = new MutableInteger()
29 temperature.setValue(60)
30 coolingSetpoint.setValue(70)
31 heatingSetpoint.setValue(35)
32 thermostatSetpoint.setValue(50)
33 thermostatOperatingState.append("off")
34 thermostatFanMode.append("off")
35 thermostatMode.append("off")
37 temperature.setValue(66)
38 coolingSetpoint.setValue(80)
39 heatingSetpoint.setValue(50)
40 thermostatSetpoint.setValue(60)
41 thermostatOperatingState.append("heating")
42 thermostatFanMode.append("circulate")
43 thermostatMode.append("auto")
46 thermostats.add(new Thermostat(sendEvent, id, label, displayName, temperature, coolingSetpoint,
47 heatingSetpoint, thermostatSetpoint, thermostatOperatingState,
48 thermostatFanMode, thermostatMode, climateName))
51 // Methods to set values
52 def setCoolingSetpoint(int coolingSetpoint) {
53 thermostats[0].setCoolingSetpoint(coolingSetpoint)
56 def setCoolingSetpoint(String coolingSetpoint) {
57 setCoolingSetpoint(coolingSetpoint.toInteger())
60 def setHeatingSetpoint(int heatingSetpoint) {
61 thermostats[0].setHeatingSetpoint(heatingSetpoint)
64 def setHeatingSetpoint(String heatingSetpoint) {
65 setHeatingSetpoint(heatingSetpoint.toInteger())
68 def setThermostatFanMode(String thermostatFanMode) {
69 thermostats[0].setThermostatFanMode(thermostatFanMode)
72 def setThermostatMode(String thermostatMode) {
73 thermostats[0].setThermostatMode(thermostatMode)
76 def setClimate(String info, String givenClimateName) {
77 thermostats[0].setClimate(info, givenClimateName)
80 def setHold(String info1, int coolingSetpoint, int heatingSetpoint, String info2, String info3) {
81 setCoolingSetpoint(coolingSetpoint)
82 setHeatingSetpoint(heatingSetpoint)
98 thermostats[0].emergencyHeat()
105 // Methods to return values
106 def getCurrentTemperature() {
107 List tmpValues = new ArrayList()
108 tmpValues.add(thermostats[0].getCurrentTemperature())
112 def getCurrentCoolingSetpoint() {
113 List tmpValues = new ArrayList()
114 tmpValues.add(thermostats[0].getCurrentCoolingSetpoint())
118 def getCurrentHeatingSetpoint() {
119 List tmpValues = new ArrayList()
120 tmpValues.add(thermostats[0].getCurrentHeatingSetpoint())
124 def getCurrentThermostatSetPoint() {
125 List tmpValues = new ArrayList()
126 tmpValues.add(thermostats[0].getCurrentThermostatSetPoint())
130 def getCurrentThermostatOperatingState() {
131 List tmpValues = new ArrayList()
132 tmpValues.add(thermostats[0].getCurrentThermostatOperatingState())
136 def getCurrentThermostatFanMode() {
137 List tmpValues = new ArrayList()
138 tmpValues.add(thermostats[0].getCurrentThermostatFanMode())
142 def getCurrentThermostatMode() {
143 List tmpValues = new ArrayList()
144 tmpValues.add(thermostats[0].getCurrentThermostatMode())
148 def getCurrentClimateName() {
149 List tmpValues = new ArrayList()
150 tmpValues.add(thermostats[0].getCurrentClimateName())