]> git.basschouten.com Git - openhab-addons.git/blob
f06adba18165d806d0eaa20ba68fd59408cf93ae
[openhab-addons.git] /
1 /**
2  * Copyright (c) 2010-2023 Contributors to the openHAB project
3  *
4  * See the NOTICE file(s) distributed with this work for additional
5  * information.
6  *
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
10  *
11  * SPDX-License-Identifier: EPL-2.0
12  */
13 package org.openhab.binding.ecobee.internal.dto.thermostat;
14
15 /**
16  * The {@link SettingsDTO} is responsible for
17  *
18  * @author Mark Hilbush - Initial contribution
19  */
20 public class SettingsDTO {
21
22     /*
23      * The current HVAC mode the thermostat is in. Values: auto, auxHeatOnly, cool, heat, off.
24      */
25     public String hvacMode;
26
27     /*
28      * The last service date of the HVAC equipment.
29      */
30     public String lastServiceDate;
31
32     /*
33      * Whether to send an alert when service is required again.
34      */
35     public Boolean serviceRemindMe;
36
37     /*
38      * The user configured monthly interval between HVAC service reminders
39      */
40     public Integer monthsBetweenService;
41
42     /*
43      * Date to be reminded about the next HVAC service date.
44      */
45     public String remindMeDate;
46
47     /*
48      * The ventilator mode. Values: auto, minontime, on, off.
49      */
50     public String vent;
51
52     /*
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.
55      */
56     public Integer ventilatorMinOnTime;
57
58     /*
59      * Whether the technician associated with this thermostat should receive the HVAC service reminders as well.
60      */
61     public Boolean serviceRemindTechnician;
62
63     /*
64      * A note about the physical location where the SMART or EMS Equipment Interface module is located.
65      */
66     public String eiLocation;
67
68     /*
69      * The temperature at which a cold temp alert is triggered.
70      */
71     public Integer coldTempAlert;
72
73     /*
74      * Whether cold temperature alerts are enabled.
75      */
76     public Boolean coldTempAlertEnabled;
77
78     /*
79      * The temperature at which a hot temp alert is triggered.
80      */
81     public Integer hotTempAlert;
82
83     /*
84      * Whether hot temperature alerts are enabled.
85      */
86     public Boolean hotTempAlertEnabled;
87
88     /*
89      * The number of cool stages the connected HVAC equipment supports.
90      */
91     public Integer coolStages;
92
93     /*
94      * The number of heat stages the connected HVAC equipment supports.
95      */
96     public Integer heatStages;
97
98     /*
99      * The maximum automated set point set back offset allowed in degrees.
100      */
101     public Integer maxSetBack;
102
103     /*
104      * The maximum automated set point set forward offset allowed in degrees.
105      */
106     public Integer maxSetForward;
107
108     /*
109      * The set point set back offset, in degrees, configured for a quick save event.
110      */
111     public Integer quickSaveSetBack;
112
113     /*
114      * The set point set forward offset, in degrees, configured for a quick save event.
115      */
116     public Integer quickSaveSetForward;
117
118     /*
119      * Whether the thermostat is controlling a heat pump.
120      */
121     public Boolean hasHeatPump;
122
123     /*
124      * Whether the thermostat is controlling a forced air furnace.
125      */
126     public Boolean hasForcedAir;
127
128     /*
129      * Whether the thermostat is controlling a boiler.
130      */
131     public Boolean hasBoiler;
132
133     /*
134      * Whether the thermostat is controlling a humidifier.
135      */
136     public Boolean hasHumidifier;
137
138     /*
139      * Whether the thermostat is controlling an energy recovery ventilator.
140      */
141     public Boolean hasErv;
142
143     /*
144      * Whether the thermostat is controlling a heat recovery ventilator.
145      */
146     public Boolean hasHrv;
147
148     /*
149      * Whether the thermostat is in frost control mode.
150      */
151     public Boolean condensationAvoid;
152
153     /*
154      * Whether the thermostat is configured to report in degrees Celsius.
155      */
156     public Boolean useCelsius;
157
158     /*
159      * Whether the thermostat is using 12hr time format.
160      */
161     public Boolean useTimeFormat12;
162
163     /*
164      * Multilanguage support, currently only "en" - english is supported. In future others
165      * locales can be supported.
166      */
167     public String locale;
168
169     /*
170      * The minimum humidity level (in percent) set point for the humidifier
171      */
172     public String humidity;
173
174     /*
175      * The humidifier mode. Values: auto, manual, off.
176      */
177     public String humidifierMode;
178
179     /*
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.
182      */
183     public Integer backlightOnIntensity;
184
185     /*
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.
188      */
189     public Integer backlightSleepIntensity;
190
191     /*
192      * The time in seconds before the thermostat screen goes into sleep mode.
193      */
194     public Integer backlightOffTime;
195
196     /*
197      * The field is deprecated. Please use Audio.soundTickVolume.
198      */
199     public Integer soundTickVolume;
200
201     /*
202      * The field is deprecated. Please use Audio.soundAlertVolume.
203      */
204     public Integer soundAlertVolume;
205
206     /*
207      * The minimum time the compressor must be off for in order to prevent short-cycling.
208      */
209     public Integer compressorProtectionMinTime;
210
211     /*
212      * The minimum outdoor temperature that the compressor can operate at - applies
213      * more to air source heat pumps than geothermal.
214      */
215     public Integer compressorProtectionMinTemp;
216
217     /*
218      * The difference between current temperature and set-point that will trigger stage 2 heating.
219      */
220     public Integer stage1HeatingDifferentialTemp;
221
222     /*
223      * The difference between current temperature and set-point that will trigger stage 2 cooling.
224      */
225     public Integer stage1CoolingDifferentialTemp;
226
227     /*
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.
230      */
231     public Integer stage1HeatingDissipationTime;
232
233     /*
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.
236      */
237     public Integer stage1CoolingDissipationTime;
238
239     /*
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.
243      */
244     public Boolean heatPumpReversalOnCool;
245
246     /*
247      * Whether fan control by the Thermostat is required in auxiliary heating (gas/electric/boiler),
248      * otherwise controlled by furnace.
249      */
250     public Boolean fanControlRequired;
251
252     /*
253      * The minimum time, in minutes, to run the fan each hour. Value from 1 to 60.
254      */
255     public Integer fanMinOnTime;
256
257     /*
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.
260      */
261     public Integer heatCoolMinDelta;
262
263     /*
264      * The amount to adjust the temperature reading in degrees F - this value is subtracted from
265      * the temperature read from the sensor.
266      */
267     public Integer tempCorrection;
268
269     /*
270      * The default end time setting the thermostat applies to user temperature holds. Values useEndTime4hour,
271      * useEndTime2hour (EMS Only), nextPeriod, indefinite, askMe
272      */
273     public String holdAction;
274
275     /*
276      * Whether the Thermostat uses a geothermal / ground source heat pump.
277      */
278     public Boolean heatPumpGroundWater;
279
280     /*
281      * Whether the thermostat is connected to an electric HVAC system.
282      */
283     public Boolean hasElectric;
284
285     /*
286      * Whether the thermostat is connected to a dehumidifier. If true or dehumidifyOvercoolOffset > 0 then
287      * allow setting dehumidifierMode and dehumidifierLevel.
288      */
289     public Boolean hasDehumidifier;
290
291     /*
292      * The dehumidifier mode. Values: on, off. If set to off then the dehumidifier will not run,
293      * nor will the AC overcool run.
294      */
295     public String dehumidifierMode;
296
297     /*
298      * The dehumidification set point in percentage.
299      */
300     public Integer dehumidifierLevel;
301
302     /*
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.
305      */
306     public Boolean dehumidifyWithAC;
307
308     /*
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.
313      */
314     public Integer dehumidifyOvercoolOffset;
315
316     /*
317      * If enabled, allows the Thermostat to be put in HVACAuto mode.
318      */
319     public Boolean autoHeatCoolFeatureEnabled;
320
321     /*
322      * Whether the alert for when wifi is offline is enabled.
323      */
324     public Boolean wifiOfflineAlert;
325
326     /*
327      * The minimum heat set point allowed by the thermostat firmware.
328      */
329     public Integer heatMinTemp;
330
331     /*
332      * The maximum heat set point allowed by the thermostat firmware.
333      */
334     public Integer heatMaxTemp;
335
336     /*
337      * The minimum cool set point allowed by the thermostat firmware.
338      */
339     public Integer coolMinTemp;
340
341     /*
342      * The maximum cool set point allowed by the thermostat firmware.
343      */
344     public Integer coolMaxTemp;
345
346     /*
347      * The maximum heat set point configured by the user's preferences.
348      */
349     public Integer heatRangeHigh;
350
351     /*
352      * The minimum heat set point configured by the user's preferences.
353      */
354     public Integer heatRangeLow;
355
356     /*
357      * The maximum cool set point configured by the user's preferences.
358      */
359     public Integer coolRangeHigh;
360
361     /*
362      * The minimum heat set point configured by the user's preferences.
363      */
364     public Integer coolRangeLow;
365
366     /*
367      * The user access code value for this thermostat. See the SecuritySettings object for more information.
368      */
369     public String userAccessCode;
370
371     /*
372      * The integer representation of the user access settings. See the SecuritySettings object for more information.
373      */
374     public Integer userAccessSetting;
375
376     /*
377      * The temperature at which an auxHeat temperature alert is triggered.
378      */
379     public Integer auxRuntimeAlert;
380
381     /*
382      * The temperature at which an auxOutdoor temperature alert is triggered.
383      */
384     public Integer auxOutdoorTempAlert;
385
386     /*
387      * The maximum outdoor temperature above which aux heat will not run.
388      */
389     public Integer auxMaxOutdoorTemp;
390
391     /*
392      * Whether the auxHeat temperature alerts are enabled.
393      */
394     public Boolean auxRuntimeAlertNotify;
395
396     /*
397      * Whether the auxOutdoor temperature alerts are enabled.
398      */
399     public Boolean auxOutdoorTempAlertNotify;
400
401     /*
402      * Whether the auxHeat temperature alerts for the technician are enabled.
403      */
404     public Boolean auxRuntimeAlertNotifyTechnician;
405
406     /*
407      * Whether the auxOutdoor temperature alerts for the technician are enabled.
408      */
409     public Boolean auxOutdoorTempAlertNotifyTechnician;
410
411     /*
412      * Whether the thermostat should use pre heating to reach the set point on time.
413      */
414     public Boolean disablePreHeating;
415
416     /*
417      * Whether the thermostat should use pre cooling to reach the set point on time.
418      */
419     public Boolean disablePreCooling;
420
421     /*
422      * Whether an installer code is required.
423      */
424     public Boolean installerCodeRequired;
425
426     /*
427      * Whether Demand Response requests are accepted by this thermostat. Possible values
428      * are: always, askMe, customerSelect, defaultAccept, defaultDecline, never.
429      */
430     public String drAccept;
431
432     /*
433      * Whether the property is a rental, or not.
434      */
435     public Boolean isRentalProperty;
436
437     /*
438      * Whether to use a zone controller or not.
439      */
440     public Boolean useZoneController;
441
442     /*
443      * Whether random start delay is enabled for cooling.
444      */
445     public Integer randomStartDelayCool;
446
447     /*
448      * Whether random start delay is enabled for heating.
449      */
450     public Integer randomStartDelayHeat;
451
452     /*
453      * The humidity level to trigger a high humidity alert.
454      */
455     public Integer humidityHighAlert;
456
457     /*
458      * The humidity level to trigger a low humidity alert.
459      */
460     public Integer humidityLowAlert;
461
462     /*
463      * Whether heat pump alerts are disabled.
464      */
465     public Boolean disableHeatPumpAlerts;
466
467     /*
468      * Whether alerts are disabled from showing on the thermostat.
469      */
470     public Boolean disableAlertsOnIdt;
471
472     /*
473      * Whether humidification alerts are enabled to the thermsotat owner.
474      */
475     public Boolean humidityAlertNotify;
476
477     /*
478      * Whether humidification alerts are enabled to the technician associated with the thermsotat.
479      */
480     public Boolean humidityAlertNotifyTechnician;
481
482     /*
483      * Whether temperature alerts are enabled to the thermsotat owner.
484      */
485     public Boolean tempAlertNotify;
486
487     /*
488      * Whether temperature alerts are enabled to the technician associated with the thermostat.
489      */
490     public Boolean tempAlertNotifyTechnician;
491
492     /*
493      * The dollar amount the owner specifies for their desired maximum electricy bill.
494      */
495     public Integer monthlyElectricityBillLimit;
496
497     /*
498      * Whether electricity bill alerts are enabled.
499      */
500     public Boolean enableElectricityBillAlert;
501
502     /*
503      * Whether electricity bill projection alerts are enabled
504      */
505     public Boolean enableProjectedElectricityBillAlert;
506
507     /*
508      * The day of the month the owner's electricty usage is billed.
509      */
510     public Integer electricityBillingDayOfMonth;
511
512     /*
513      * The owners billing cycle duration in months.
514      */
515     public Integer electricityBillCycleMonths;
516
517     /*
518      * The annual start month of the owners billing cycle.
519      */
520     public Integer electricityBillStartMonth;
521
522     /*
523      * The number of minutes to run ventilator per hour when home.
524      */
525     public Integer ventilatorMinOnTimeHome;
526
527     /*
528      * The number of minutes to run ventilator per hour when away.
529      */
530     public Integer ventilatorMinOnTimeAway;
531
532     /*
533      * Determines whether or not to turn the backlight off during sleep.
534      */
535     public Boolean backlightOffDuringSleep;
536
537     /*
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.
540      */
541     public Boolean autoAway;
542
543     /*
544      * When set to true if a larger than normal delta is found between sensors the fan
545      * will be engaged for 15min/hour.
546      */
547     public Boolean smartCirculation;
548
549     /*
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.
553      */
554     public Boolean followMeComfort;
555
556     /*
557      * This read-only field represents the type of ventilator present for the Thermostat.
558      * The possible values are none, ventilator, hrv, and erv.
559      */
560     public String ventilatorType;
561
562     /*
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.
566      */
567     public Boolean isVentilatorTimerOn;
568
569     /*
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.
572      */
573     public String ventilatorOffDateTime;
574
575     /*
576      * This Boolean field represents whether the HVAC system has a UV filter. The default value is true.
577      */
578     public Boolean hasUVFilter;
579
580     /*
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.
583      */
584     public Boolean coolingLockout;
585
586     /*
587      * Whether to use the ventilator to dehumidify when climate or calendar event indicates the owner
588      * is home. The default value is false.
589      */
590     public Boolean ventilatorFreeCooling;
591
592     /*
593      * This field represents whether to permit dehumidifer to operate when the heating is
594      * running. The default value is false.
595      */
596     public Boolean dehumidifyWhenHeating;
597
598     /*
599      * This field represents whether or not to allow dehumification when cooling. The default value is true.
600      */
601     public Boolean ventilatorDehumidify;
602
603     /*
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.
606      */
607     public String groupRef;
608
609     /*
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.
612      */
613     public String groupName;
614
615     /*
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.
618      */
619     public Integer groupSetting;
620 }