2 * Copyright (c) 2010-2023 Contributors to the openHAB project
4 * See the NOTICE file(s) distributed with this work for additional
7 * This program and the accompanying materials are made available under the
8 * terms of the Eclipse Public License 2.0 which is available at
9 * http://www.eclipse.org/legal/epl-2.0
11 * SPDX-License-Identifier: EPL-2.0
13 package org.openhab.binding.ecobee.internal.dto.thermostat;
16 * The {@link SettingsDTO} is responsible for
18 * @author Mark Hilbush - Initial contribution
20 public class SettingsDTO {
23 * The current HVAC mode the thermostat is in. Values: auto, auxHeatOnly, cool, heat, off.
25 public String hvacMode;
28 * The last service date of the HVAC equipment.
30 public String lastServiceDate;
33 * Whether to send an alert when service is required again.
35 public Boolean serviceRemindMe;
38 * The user configured monthly interval between HVAC service reminders
40 public Integer monthsBetweenService;
43 * Date to be reminded about the next HVAC service date.
45 public String remindMeDate;
48 * The ventilator mode. Values: auto, minontime, on, off.
53 * The minimum time in minutes the ventilator is configured to run. The thermostat will always
54 * guarantee that the ventilator runs for this minimum duration whenever engaged.
56 public Integer ventilatorMinOnTime;
59 * Whether the technician associated with this thermostat should receive the HVAC service reminders as well.
61 public Boolean serviceRemindTechnician;
64 * A note about the physical location where the SMART or EMS Equipment Interface module is located.
66 public String eiLocation;
69 * The temperature at which a cold temp alert is triggered.
71 public Integer coldTempAlert;
74 * Whether cold temperature alerts are enabled.
76 public Boolean coldTempAlertEnabled;
79 * The temperature at which a hot temp alert is triggered.
81 public Integer hotTempAlert;
84 * Whether hot temperature alerts are enabled.
86 public Boolean hotTempAlertEnabled;
89 * The number of cool stages the connected HVAC equipment supports.
91 public Integer coolStages;
94 * The number of heat stages the connected HVAC equipment supports.
96 public Integer heatStages;
99 * The maximum automated set point set back offset allowed in degrees.
101 public Integer maxSetBack;
104 * The maximum automated set point set forward offset allowed in degrees.
106 public Integer maxSetForward;
109 * The set point set back offset, in degrees, configured for a quick save event.
111 public Integer quickSaveSetBack;
114 * The set point set forward offset, in degrees, configured for a quick save event.
116 public Integer quickSaveSetForward;
119 * Whether the thermostat is controlling a heat pump.
121 public Boolean hasHeatPump;
124 * Whether the thermostat is controlling a forced air furnace.
126 public Boolean hasForcedAir;
129 * Whether the thermostat is controlling a boiler.
131 public Boolean hasBoiler;
134 * Whether the thermostat is controlling a humidifier.
136 public Boolean hasHumidifier;
139 * Whether the thermostat is controlling an energy recovery ventilator.
141 public Boolean hasErv;
144 * Whether the thermostat is controlling a heat recovery ventilator.
146 public Boolean hasHrv;
149 * Whether the thermostat is in frost control mode.
151 public Boolean condensationAvoid;
154 * Whether the thermostat is configured to report in degrees Celsius.
156 public Boolean useCelsius;
159 * Whether the thermostat is using 12hr time format.
161 public Boolean useTimeFormat12;
164 * Multilanguage support, currently only "en" - english is supported. In future others
165 * locales can be supported.
167 public String locale;
170 * The minimum humidity level (in percent) set point for the humidifier
172 public String humidity;
175 * The humidifier mode. Values: auto, manual, off.
177 public String humidifierMode;
180 * The thermostat backlight intensity when on. A value between 0 and 10, with 0
181 * meaning 'off' - the zero value may not be honored by all ecobee versions.
183 public Integer backlightOnIntensity;
186 * The thermostat backlight intensity when asleep. A value between 0 and 10, with 0
187 * meaning 'off' - the zero value may not be honored by all ecobee versions.
189 public Integer backlightSleepIntensity;
192 * The time in seconds before the thermostat screen goes into sleep mode.
194 public Integer backlightOffTime;
197 * The field is deprecated. Please use Audio.soundTickVolume.
199 public Integer soundTickVolume;
202 * The field is deprecated. Please use Audio.soundAlertVolume.
204 public Integer soundAlertVolume;
207 * The minimum time the compressor must be off for in order to prevent short-cycling.
209 public Integer compressorProtectionMinTime;
212 * The minimum outdoor temperature that the compressor can operate at - applies
213 * more to air source heat pumps than geothermal.
215 public Integer compressorProtectionMinTemp;
218 * The difference between current temperature and set-point that will trigger stage 2 heating.
220 public Integer stage1HeatingDifferentialTemp;
223 * The difference between current temperature and set-point that will trigger stage 2 cooling.
225 public Integer stage1CoolingDifferentialTemp;
228 * The time after a heating cycle that the fan will run for to extract any heating left
229 * in the system - 30 second default.
231 public Integer stage1HeatingDissipationTime;
234 * The time after a cooling cycle that the fan will run for to extract any cooling left
235 * in the system - 30 second default.
237 public Integer stage1CoolingDissipationTime;
240 * The flag to tell if the heat pump is in heating mode or in cooling when the relay
241 * is engaged. If set to zero it's heating when the reversing valve is open, cooling
242 * when closed and if it's one - it's the opposite.
244 public Boolean heatPumpReversalOnCool;
247 * Whether fan control by the Thermostat is required in auxiliary heating (gas/electric/boiler),
248 * otherwise controlled by furnace.
250 public Boolean fanControlRequired;
253 * The minimum time, in minutes, to run the fan each hour. Value from 1 to 60.
255 public Integer fanMinOnTime;
258 * The minimum temperature difference between the heat and cool values. Used to ensure that when
259 * thermostat is in auto mode, the heat and cool values are separated by at least this value.
261 public Integer heatCoolMinDelta;
264 * The amount to adjust the temperature reading in degrees F - this value is subtracted from
265 * the temperature read from the sensor.
267 public Integer tempCorrection;
270 * The default end time setting the thermostat applies to user temperature holds. Values useEndTime4hour,
271 * useEndTime2hour (EMS Only), nextPeriod, indefinite, askMe
273 public String holdAction;
276 * Whether the Thermostat uses a geothermal / ground source heat pump.
278 public Boolean heatPumpGroundWater;
281 * Whether the thermostat is connected to an electric HVAC system.
283 public Boolean hasElectric;
286 * Whether the thermostat is connected to a dehumidifier. If true or dehumidifyOvercoolOffset > 0 then
287 * allow setting dehumidifierMode and dehumidifierLevel.
289 public Boolean hasDehumidifier;
292 * The dehumidifier mode. Values: on, off. If set to off then the dehumidifier will not run,
293 * nor will the AC overcool run.
295 public String dehumidifierMode;
298 * The dehumidification set point in percentage.
300 public Integer dehumidifierLevel;
303 * Whether the thermostat should use AC overcool to dehumidify. When set to true a postive integer value
304 * must be supplied for dehumidifyOvercoolOffset otherwise an API validation exception will be thrown.
306 public Boolean dehumidifyWithAC;
309 * Whether the thermostat should use AC overcool to dehumidify and what that temperature offset
310 * should be. A value of 0 means this feature is disabled and dehumidifyWithAC will be set to false.
311 * Value represents the value in F to subract from the current set point. Values should be in the
312 * range 0 - 50 and be divisible by 5.
314 public Integer dehumidifyOvercoolOffset;
317 * If enabled, allows the Thermostat to be put in HVACAuto mode.
319 public Boolean autoHeatCoolFeatureEnabled;
322 * Whether the alert for when wifi is offline is enabled.
324 public Boolean wifiOfflineAlert;
327 * The minimum heat set point allowed by the thermostat firmware.
329 public Integer heatMinTemp;
332 * The maximum heat set point allowed by the thermostat firmware.
334 public Integer heatMaxTemp;
337 * The minimum cool set point allowed by the thermostat firmware.
339 public Integer coolMinTemp;
342 * The maximum cool set point allowed by the thermostat firmware.
344 public Integer coolMaxTemp;
347 * The maximum heat set point configured by the user's preferences.
349 public Integer heatRangeHigh;
352 * The minimum heat set point configured by the user's preferences.
354 public Integer heatRangeLow;
357 * The maximum cool set point configured by the user's preferences.
359 public Integer coolRangeHigh;
362 * The minimum heat set point configured by the user's preferences.
364 public Integer coolRangeLow;
367 * The user access code value for this thermostat. See the SecuritySettings object for more information.
369 public String userAccessCode;
372 * The integer representation of the user access settings. See the SecuritySettings object for more information.
374 public Integer userAccessSetting;
377 * The temperature at which an auxHeat temperature alert is triggered.
379 public Integer auxRuntimeAlert;
382 * The temperature at which an auxOutdoor temperature alert is triggered.
384 public Integer auxOutdoorTempAlert;
387 * The maximum outdoor temperature above which aux heat will not run.
389 public Integer auxMaxOutdoorTemp;
392 * Whether the auxHeat temperature alerts are enabled.
394 public Boolean auxRuntimeAlertNotify;
397 * Whether the auxOutdoor temperature alerts are enabled.
399 public Boolean auxOutdoorTempAlertNotify;
402 * Whether the auxHeat temperature alerts for the technician are enabled.
404 public Boolean auxRuntimeAlertNotifyTechnician;
407 * Whether the auxOutdoor temperature alerts for the technician are enabled.
409 public Boolean auxOutdoorTempAlertNotifyTechnician;
412 * Whether the thermostat should use pre heating to reach the set point on time.
414 public Boolean disablePreHeating;
417 * Whether the thermostat should use pre cooling to reach the set point on time.
419 public Boolean disablePreCooling;
422 * Whether an installer code is required.
424 public Boolean installerCodeRequired;
427 * Whether Demand Response requests are accepted by this thermostat. Possible values
428 * are: always, askMe, customerSelect, defaultAccept, defaultDecline, never.
430 public String drAccept;
433 * Whether the property is a rental, or not.
435 public Boolean isRentalProperty;
438 * Whether to use a zone controller or not.
440 public Boolean useZoneController;
443 * Whether random start delay is enabled for cooling.
445 public Integer randomStartDelayCool;
448 * Whether random start delay is enabled for heating.
450 public Integer randomStartDelayHeat;
453 * The humidity level to trigger a high humidity alert.
455 public Integer humidityHighAlert;
458 * The humidity level to trigger a low humidity alert.
460 public Integer humidityLowAlert;
463 * Whether heat pump alerts are disabled.
465 public Boolean disableHeatPumpAlerts;
468 * Whether alerts are disabled from showing on the thermostat.
470 public Boolean disableAlertsOnIdt;
473 * Whether humidification alerts are enabled to the thermsotat owner.
475 public Boolean humidityAlertNotify;
478 * Whether humidification alerts are enabled to the technician associated with the thermsotat.
480 public Boolean humidityAlertNotifyTechnician;
483 * Whether temperature alerts are enabled to the thermsotat owner.
485 public Boolean tempAlertNotify;
488 * Whether temperature alerts are enabled to the technician associated with the thermostat.
490 public Boolean tempAlertNotifyTechnician;
493 * The dollar amount the owner specifies for their desired maximum electricy bill.
495 public Integer monthlyElectricityBillLimit;
498 * Whether electricity bill alerts are enabled.
500 public Boolean enableElectricityBillAlert;
503 * Whether electricity bill projection alerts are enabled
505 public Boolean enableProjectedElectricityBillAlert;
508 * The day of the month the owner's electricty usage is billed.
510 public Integer electricityBillingDayOfMonth;
513 * The owners billing cycle duration in months.
515 public Integer electricityBillCycleMonths;
518 * The annual start month of the owners billing cycle.
520 public Integer electricityBillStartMonth;
523 * The number of minutes to run ventilator per hour when home.
525 public Integer ventilatorMinOnTimeHome;
528 * The number of minutes to run ventilator per hour when away.
530 public Integer ventilatorMinOnTimeAway;
533 * Determines whether or not to turn the backlight off during sleep.
535 public Boolean backlightOffDuringSleep;
538 * When set to true if no occupancy motion detected thermostat will go into indefinite away
539 * hold, until either the user presses resume schedule or motion is detected.
541 public Boolean autoAway;
544 * When set to true if a larger than normal delta is found between sensors the fan
545 * will be engaged for 15min/hour.
547 public Boolean smartCirculation;
550 * When set to true if a sensor has detected presense for more than 10 minutes then
551 * include that sensor in temp average. If no activity has been seen on a sensor for
552 * more than 1 hour then remove this sensor from temperature average.
554 public Boolean followMeComfort;
557 * This read-only field represents the type of ventilator present for the Thermostat.
558 * The possible values are none, ventilator, hrv, and erv.
560 public String ventilatorType;
563 * This Boolean field represents whether the ventilator timer is on or off. The default
564 * value is false. If set to true the ventilatorOffDateTime is set to now() + 20 minutes.
565 * If set to false the ventilatorOffDateTime is set to it's default value.
567 public Boolean isVentilatorTimerOn;
570 * This read-only field represents the Date and Time the ventilator will run until.
571 * The default value is 2014-01-01 00:00:00.
573 public String ventilatorOffDateTime;
576 * This Boolean field represents whether the HVAC system has a UV filter. The default value is true.
578 public Boolean hasUVFilter;
581 * This field represents whether to permit the cooling to operate when the Outdoor temeperature
582 * is under a specific threshold, currently 55F. The default value is false.
584 public Boolean coolingLockout;
587 * Whether to use the ventilator to dehumidify when climate or calendar event indicates the owner
588 * is home. The default value is false.
590 public Boolean ventilatorFreeCooling;
593 * This field represents whether to permit dehumidifer to operate when the heating is
594 * running. The default value is false.
596 public Boolean dehumidifyWhenHeating;
599 * This field represents whether or not to allow dehumification when cooling. The default value is true.
601 public Boolean ventilatorDehumidify;
604 * The unique reference to the group this thermostat belongs to, if any. See GET Group request and POST
605 * Group request for more information.
607 public String groupRef;
610 * The name of the the group this thermostat belongs to, if any. See GET Group request and POST Group
611 * request for more information.
613 public String groupName;
616 * The setting value for the group this thermostat belongs to, if any. See GET Group request and POST
617 * Group request for more information.
619 public Integer groupSetting;