]> git.basschouten.com Git - openhab-addons.git/blob
8ce908f2592c62dd5558595b90c01b4186c53f86
[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 import java.util.List;
16
17 /**
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.
29  *
30  * @author Mark Hilbush - Initial contribution
31  */
32 public class ExtendedRuntimeDTO {
33
34     /*
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.
39      */
40     public String lastReadingTimestamp;
41
42     /*
43      * The UTC date of the last runtime reading. Format: YYYY-MM-DD
44      */
45     public String runtimeDate;
46
47     /*
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
51      */
52     public Integer runtimeInterval;
53
54     /*
55      * The last three 5 minute actual temperature readings
56      */
57     public List<Integer> actualTemperature;
58
59     /*
60      * The last three 5 minute actual humidity readings.
61      */
62     public List<Integer> actualHumidity;
63
64     /*
65      * The last three 5 minute desired heat temperature readings.
66      */
67     public List<Integer> desiredHeat;
68
69     /*
70      * The last three 5 minute desired cool temperature readings.
71      */
72     public List<Integer> desiredCool;
73
74     /*
75      * The last three 5 minute desired humidity readings.
76      */
77     public List<Integer> desiredHumidity;
78
79     /*
80      * The last three 5 minute desired de-humidification readings.
81      */
82     public List<Integer> desiredDehumidity;
83
84     /*
85      * The last three 5 minute actual air quality accuracy readings
86      */
87     public List<Integer> actualAQAccuracy;
88
89     /*
90      * The last three 5 minute actual air quality score readings
91      */
92     public List<Integer> actualAQScore;
93
94     /*
95      * The last three 5 minute actual CO2 readings
96      */
97     public List<Integer> actualCO2;
98
99     /*
100      * The last three 5 minute actual VOC readings
101      */
102     public List<Integer> actualVOC;
103
104     /*
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
110      * the adjustment.
111      */
112     public List<Integer> dmOffset;
113
114     /*
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.
120      */
121     public List<Integer> hvacMode;
122
123     /*
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.
126      */
127     public List<Integer> heatPump1;
128
129     /*
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.
132      */
133     public List<Integer> heatPump2;
134
135     /*
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.
139      */
140     public List<Integer> auxHeat1;
141
142     /*
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.
146      */
147     public List<Integer> auxHeat2;
148
149     /*
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.
153      */
154     public List<Integer> auxHeat3;
155
156     /*
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.
159      */
160     public List<Integer> cool1;
161
162     /*
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.
165      */
166     public List<Integer> cool2;
167
168     /*
169      * The last three 5 minute fan Runtime values in seconds (0-300 seconds) per interval.
170      */
171     public List<Integer> fan;
172
173     /*
174      * The last three 5 minute humidifier Runtime values in seconds (0-300 seconds) per interval.
175      */
176     public List<Integer> humidifier;
177
178     /*
179      * The last three 5 minute de-humidifier Runtime values in seconds (0-300 seconds) per interval.
180      */
181     public List<Integer> dehumidifier;
182
183     /*
184      * The last three 5 minute economizer Runtime values in seconds (0-300 seconds) per interval.
185      */
186     public List<Integer> economizer;
187
188     /*
189      * The last three 5 minute ventilator Runtime values in seconds (0-300 seconds) per interval.
190      */
191     public List<Integer> ventilator;
192
193     /*
194      * The latest value of the current electricity bill as interpolated from the
195      * thermostat's readings from a paired electricity meter.
196      */
197     public List<Integer> currentElectricityBill;
198
199     /*
200      * The latest estimate of the projected electricity bill as interpolated from the
201      * thermostat's readings from a paired electricity meter.
202      */
203     public List<Integer> projectedElectricityBill;
204 }