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.time.Instant;
16 import java.time.LocalDateTime;
17 import java.util.List;
20 * The {@link ThermostatDTO} is the central piece of the ecobee API. All objects
21 * relate in one way or another to a real thermostat. The thermostat object
22 * and its component objects define the real thermostat device.
24 * @author Mark Hilbush - Initial contribution
26 public class ThermostatDTO {
28 * The unique thermostat serial number.
30 public String identifier;
33 * A user defined name for a thermostat.
38 * The current thermostat configuration revision.
40 public String thermostatRev;
43 * Whether the user registered the thermostat.
45 public Boolean isRegistered;
48 * The thermostat model number.
50 * Values: apolloSmart, apolloEms, idtSmart, idtEms, siSmart, siEms,
51 * athenaSmart, athenaEms, corSmart, nikeSmart, nikeEms
53 public String modelNumber;
56 * The thermostat brand.
61 * The comma-separated list of the thermostat's additional features, if any.
63 public String features;
66 * The last modified date time for the thermostat configuration.
68 public Instant lastModified;
71 * The current time in the thermostat's time zone.
73 public LocalDateTime thermostatTime;
76 * The current time in UTC.
78 public String utcTime;
81 * The status of all equipment controlled by this Thermostat.
82 * Only running equipment is listed in the CSV String.
84 * Values: heatPump, heatPump2, heatPump3, compCool1, compCool2,
85 * auxHeat1, auxHeat2, auxHeat3, fan, humidifier, dehumidifier,
86 * ventilator, economizer, compHotWater, auxHotWater.
88 * Note: If no equipment is currently running an empty String is returned.
89 * If Settings.hasHeatPump is true, heatPump value will be returned for
90 * heating, compCool for cooling, and auxHeat for aux heat.
91 * If Settings.hasForcedAir or Settings.hasBoiler is true, auxHeat value
92 * will be returned for heating and compCool for cooling (heatPump will
93 * not show up for heating).
95 public String equipmentStatus;
97 public List<AlertDTO> alerts;
99 public AudioDTO audio;
101 public List<DeviceDTO> devices;
103 public ElectricityDTO electricity;
105 public EnergyDTO energy;
107 public List<EventDTO> events;
109 public ExtendedRuntimeDTO extendedRuntime;
111 public HouseDetailsDTO houseDetails;
113 public LocationDTO location;
115 public ManagementDTO management;
117 public NotificationSettingsDTO notificationSettings;
119 public OemCfgDTO oemCfg;
121 public PrivacyDTO privacy;
123 public ProgramDTO program;
125 public List<ReminderDTO> reminders;
127 public RuntimeDTO runtime;
129 public SecuritySettingsDTO securitySettings;
131 public List<RemoteSensorDTO> remoteSensors;
133 public SettingsDTO settings;
135 public TechnicianDTO technician;
137 public UtilityDTO utility;
139 public VersionDTO version;
141 public WeatherDTO weather;