2 * Copyright (c) 2010-2022 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;
15 import java.util.Date;
16 import java.util.List;
19 * The {@link RuntimeDTO} represents the last known thermostat running state. This state
20 * is composed from the last interval status message received from a thermostat. It is
21 * also updated each time the thermostat posts configuration changes to the server.
22 * The runtime object contains the last 5 minute interval value sent by the thermostat
23 * for the past 15 minutes of runtime. The thermostat updates the server every 15 minutes
24 * with the last three 5 minute readings. The actual temperature and humidity will also
25 * be updated when the equipment state changes by the thermostat, this may occur at a
26 * frequency of 3 minutes, however it is only transmitted when there is an equipment
27 * state change on the thermostat. The runtime object contains two fields, desiredHeatRange
28 * and desiredCoolRange, which can be queried and used to determine that any holds being
29 * set through the API will not be adjusted. The API caller should check these ranges
30 * before calling the setHold function to mitigate against the new set points being
31 * adjusted by the server if the values are outside the acceptable ranges.
33 * @author Mark Hilbush - Initial contribution
35 public class RuntimeDTO {
37 * The current runtime revision. Equivalent in meaning to the runtime
38 * revision number in the thermostat summary call.
40 public String runtimeRev;
43 * Whether the thermostat is currently connected to the server.
45 public Boolean connected;
48 * The UTC date/time stamp of when the thermostat first connected
49 * to the ecobee server.
51 public Date firstConnected;
54 * The last recorded connection date and time.
56 public Date connectDateTime;
59 * The last recorded disconnection date and time.
61 public Date disconnectDateTime;
64 * The UTC date/time stamp of when the thermostat was updated.
65 * Format: YYYY-MM-DD HH:MM:SS
67 public Date lastModified;
70 * The UTC date/time stamp of when the thermostat last posted its
71 * runtime information. Format: YYYY-MM-DD HH:MM:SS
73 public Date lastStatusModified;
76 * The UTC date of the last runtime reading. Format: YYYY-MM-DD
78 public String runtimeDate;
81 * The last 5 minute interval which was updated by the thermostat
82 * telemetry update. Subtract 2 from this interval to obtain the
83 * beginning interval for the last 3 readings. Multiply by 5 mins
84 * to obtain the minutes of the day. Range: 0-287
86 public Integer runtimeInterval;
89 * The current temperature displayed on the thermostat.
91 public Integer actualTemperature;
94 * The current humidity % shown on the thermostat.
96 public Integer actualHumidity;
99 * The dry-bulb temperature recorded by the thermostat. When
100 * Energy.FeelsLikeMode is set to humidex, Runtime.actualTemperature
101 * will report a "feels like" temperature.
103 public Integer rawTemperature;
106 * The currently displayed icon on the thermostat.
108 public Integer showIconMode;
111 * The desired heat temperature as per the current running
112 * program or active event.
114 public Integer desiredHeat;
117 * The desired cool temperature as per the current running
118 * program or active event.
120 public Integer desiredCool;
123 * The desired humidity set point.
125 public Integer desiredHumidity;
128 * The desired dehumidification set point.
130 public Integer desiredDehumidity;
133 * The desired fan mode. Values: auto, on or null if the HVAC
134 * system is off and the thermostat is not controlling a fan independently.
136 public String desiredFanMode;
139 * This field provides the possible valid range for which a desiredHeat
140 * setpoint can be set to. This value takes into account the thermostat
141 * heat temperature limits as well the running program or active events.
142 * Values are returned as an Integer array representing the canonical
143 * minimum and maximim, e.g. [450,790].
145 public List<Integer> desiredHeatRange;
148 * This field provides the possible valid range for which a desiredCool
149 * setpoint can be set to. This value takes into account the thermostat
150 * cool temperature limits as well the running program or active events.
151 * Values are returned as an Integer array representing the canonical
152 * minimum and maximim, e.g. [650,920].
154 public List<Integer> desiredCoolRange;
157 * The current air quality accuracy
159 public Integer actualAQAccuracy;
162 * The current air quality score
164 public Integer actualAQScore;
167 * The current CO2 in ppm
169 public Integer actualCO2;
172 * The current VOC in ppb
174 public Integer actualVOC;