]> git.basschouten.com Git - openhab-addons.git/blob
969d3dac43e3faf0576311b577fa277d3db28614
[openhab-addons.git] /
1 /**
2  * Copyright (c) 2010-2021 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 desired Demand Management temeprature offsets.
86      * This value is Demand Management adjustment value which was applied by
87      * the thermostat. If the thermostat decided not to honour the adjustment,
88      * it will send 0 for the interval. Compare these values with the values
89      * sent in the DM message to determine whether the thermostat applied
90      * the adjustment.
91      */
92     public List<Integer> dmOffset;
93
94     /*
95      * The last three 5 minute HVAC Mode reading. These values indicate which
96      * stage was energized in the 5 minute interval. Values: heatStage10n,
97      * heatStage20n, heatStage30n, heatOff, compressorCoolStage10n,
98      * compressorCoolStage20n, compressorCoolOff, compressorHeatStage10n,
99      * compressorHeatStage20n, compressorHeatOff, economyCycle.
100      */
101     public List<Integer> hvacMode;
102
103     /*
104      * The last three 5 minute HVAC Runtime values in seconds (0-300 seconds)
105      * per interval. This value corresponds to the heat pump stage 1 runtime.
106      */
107     public List<Integer> heatPump1;
108
109     /*
110      * The last three 5 minute HVAC Runtime values in seconds (0-300 seconds)
111      * per interval. This value corresponds to the heat pump stage 2 runtime.
112      */
113     public List<Integer> heatPump2;
114
115     /*
116      * The last three 5 minute HVAC Runtime values in seconds (0-300 seconds)
117      * per interval. This value corresponds to the auxiliary heat stage 1. If
118      * the thermostat does not have a heat pump, this is heat stage 1.
119      */
120     public List<Integer> auxHeat1;
121
122     /*
123      * The last three 5 minute HVAC Runtime values in seconds (0-300 seconds)
124      * per interval. This value corresponds to the auxiliary heat stage 2. If
125      * the thermostat does not have a heat pump, this is heat stage 2.
126      */
127     public List<Integer> auxHeat2;
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 stage 3 if the thermostat
132      * does not have a heat pump. Auxiliary stage 3 is not supported.
133      */
134     public List<Integer> auxHeat3;
135
136     /*
137      * The last three 5 minute HVAC Runtime values in seconds (0-300 seconds)
138      * per interval. This value corresponds to the cooling stage 1.
139      */
140     public List<Integer> cool1;
141
142     /*
143      * The last three 5 minute HVAC Runtime values in seconds (0-300 seconds)
144      * per interval. This value corresponds to the cooling stage 2.
145      */
146     public List<Integer> cool2;
147
148     /*
149      * The last three 5 minute fan Runtime values in seconds (0-300 seconds) per interval.
150      */
151     public List<Integer> fan;
152
153     /*
154      * The last three 5 minute humidifier Runtime values in seconds (0-300 seconds) per interval.
155      */
156     public List<Integer> humidifier;
157
158     /*
159      * The last three 5 minute de-humidifier Runtime values in seconds (0-300 seconds) per interval.
160      */
161     public List<Integer> dehumidifier;
162
163     /*
164      * The last three 5 minute economizer Runtime values in seconds (0-300 seconds) per interval.
165      */
166     public List<Integer> economizer;
167
168     /*
169      * The last three 5 minute ventilator Runtime values in seconds (0-300 seconds) per interval.
170      */
171     public List<Integer> ventilator;
172
173     /*
174      * The latest value of the current electricity bill as interpolated from the
175      * thermostat's readings from a paired electricity meter.
176      */
177     public List<Integer> currentElectricityBill;
178
179     /*
180      * The latest estimate of the projected electricity bill as interpolated from the
181      * thermostat's readings from a paired electricity meter.
182      */
183     public List<Integer> projectedElectricityBill;
184 }