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;
15 import java.util.List;
18 * The {@link ExtendedRuntimeDTO} contains the last three 5 minute interval values
19 * sent by the thermostat for the past 15 minutes of runtime. The interval values
20 * are valuable when you are interested in analyzing the runtime data in a more
21 * granular fashion, at 5 minute increments rather than the more general 15 minute
22 * value from the Runtime Object. For the runtime values (i.e. heatPump, auxHeat,
23 * cool, etc.) refer to the Thermostat.Settings values (hasHeatPump, heatStages,
24 * coolStages) to determine whether a heat pump exists and how many stages the
25 * thermostat supports. The actual temperature and humidity will also be updated
26 * when the equipment state changes by the thermostat, this may occur at a frequency
27 * of 3 minutes, however it is only transmitted when there is an equipment state
28 * change on the thermostat.
30 * @author Mark Hilbush - Initial contribution
32 public class ExtendedRuntimeDTO {
35 * The UTC timestamp of the last value read. This timestamp is updated at a 15 min
36 * interval by the thermostat. For the 1st value, it is timestamp - 10 mins, for
37 * the 2nd value it is timestamp - 5 mins. Consider day boundaries being straddled
38 * when using these values.
40 public String lastReadingTimestamp;
43 * The UTC date of the last runtime reading. Format: YYYY-MM-DD
45 public String runtimeDate;
48 * The last 5 minute interval which was updated by the thermostat telemetry update.
49 * Subtract 2 from this interval to obtain the beginning interval for the last 3
50 * readings. Multiply by 5 mins to obtain the minutes of the day. Range: 0-287
52 public Integer runtimeInterval;
55 * The last three 5 minute actual temperature readings
57 public List<Integer> actualTemperature;
60 * The last three 5 minute actual humidity readings.
62 public List<Integer> actualHumidity;
65 * The last three 5 minute desired heat temperature readings.
67 public List<Integer> desiredHeat;
70 * The last three 5 minute desired cool temperature readings.
72 public List<Integer> desiredCool;
75 * The last three 5 minute desired humidity readings.
77 public List<Integer> desiredHumidity;
80 * The last three 5 minute desired de-humidification readings.
82 public List<Integer> desiredDehumidity;
85 * The last three 5 minute actual air quality accuracy readings
87 public List<Integer> actualAQAccuracy;
90 * The last three 5 minute actual air quality score readings
92 public List<Integer> actualAQScore;
95 * The last three 5 minute actual CO2 readings
97 public List<Integer> actualCO2;
100 * The last three 5 minute actual VOC readings
102 public List<Integer> actualVOC;
105 * The last three 5 minute desired Demand Management temeprature offsets.
106 * This value is Demand Management adjustment value which was applied by
107 * the thermostat. If the thermostat decided not to honour the adjustment,
108 * it will send 0 for the interval. Compare these values with the values
109 * sent in the DM message to determine whether the thermostat applied
112 public List<Integer> dmOffset;
115 * The last three 5 minute HVAC Mode reading. These values indicate which
116 * stage was energized in the 5 minute interval. Values: heatStage10n,
117 * heatStage20n, heatStage30n, heatOff, compressorCoolStage10n,
118 * compressorCoolStage20n, compressorCoolOff, compressorHeatStage10n,
119 * compressorHeatStage20n, compressorHeatOff, economyCycle.
121 public List<Integer> hvacMode;
124 * The last three 5 minute HVAC Runtime values in seconds (0-300 seconds)
125 * per interval. This value corresponds to the heat pump stage 1 runtime.
127 public List<Integer> heatPump1;
130 * The last three 5 minute HVAC Runtime values in seconds (0-300 seconds)
131 * per interval. This value corresponds to the heat pump stage 2 runtime.
133 public List<Integer> heatPump2;
136 * The last three 5 minute HVAC Runtime values in seconds (0-300 seconds)
137 * per interval. This value corresponds to the auxiliary heat stage 1. If
138 * the thermostat does not have a heat pump, this is heat stage 1.
140 public List<Integer> auxHeat1;
143 * The last three 5 minute HVAC Runtime values in seconds (0-300 seconds)
144 * per interval. This value corresponds to the auxiliary heat stage 2. If
145 * the thermostat does not have a heat pump, this is heat stage 2.
147 public List<Integer> auxHeat2;
150 * The last three 5 minute HVAC Runtime values in seconds (0-300 seconds)
151 * per interval. This value corresponds to the heat stage 3 if the thermostat
152 * does not have a heat pump. Auxiliary stage 3 is not supported.
154 public List<Integer> auxHeat3;
157 * The last three 5 minute HVAC Runtime values in seconds (0-300 seconds)
158 * per interval. This value corresponds to the cooling stage 1.
160 public List<Integer> cool1;
163 * The last three 5 minute HVAC Runtime values in seconds (0-300 seconds)
164 * per interval. This value corresponds to the cooling stage 2.
166 public List<Integer> cool2;
169 * The last three 5 minute fan Runtime values in seconds (0-300 seconds) per interval.
171 public List<Integer> fan;
174 * The last three 5 minute humidifier Runtime values in seconds (0-300 seconds) per interval.
176 public List<Integer> humidifier;
179 * The last three 5 minute de-humidifier Runtime values in seconds (0-300 seconds) per interval.
181 public List<Integer> dehumidifier;
184 * The last three 5 minute economizer Runtime values in seconds (0-300 seconds) per interval.
186 public List<Integer> economizer;
189 * The last three 5 minute ventilator Runtime values in seconds (0-300 seconds) per interval.
191 public List<Integer> ventilator;
194 * The latest value of the current electricity bill as interpolated from the
195 * thermostat's readings from a paired electricity meter.
197 public List<Integer> currentElectricityBill;
200 * The latest estimate of the projected electricity bill as interpolated from the
201 * thermostat's readings from a paired electricity meter.
203 public List<Integer> projectedElectricityBill;