Documentation
¶
Index ¶
- type APIFilterSubscription
- type Action
- type Alert
- type Audio
- type Climate
- type DemandManagement
- type DemandResponse
- type Device
- type ECPDemandResponse
- type Electricity
- type ElectricityDevice
- type ElectricityTier
- type Energy
- type EquipmentSetting
- type Event
- type ExtendedRuntime
- type Function
- type GeneralSetting
- type Group
- type HierarchyPrivilege
- type HierarchySet
- type HierarchyUser
- type HouseDetails
- type LimitSetting
- type Location
- type Management
- type MeterReport
- type MeterReportData
- type NotificationSettings
- type Output
- type Page
- type Program
- type RemoteSensor
- type RemoteSensorCapability
- type ReportJob
- type Runtime
- type RuntimeReport
- type RuntimeSensorMetadata
- type RuntimeSensorReport
- type SecuritySettings
- type Selection
- type Sensor
- type Settings
- type State
- type Status
- type Technician
- type Thermostat
- type ThermostatOEMCfg
- type ThermostatPrivacy
- type ThermostatReminder2
- type TimeOfUse
- type User
- type Utility
- type Version
- type VoiceEngine
- type Weather
- type WeatherForecast
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type APIFilterSubscription ¶
type APIFilterSubscription struct {
}
This object is currently undocumented by ecobee.
type Action ¶
type Action struct {
// Values: activateRelay, adjustTemp, doNothing, shutdownAC, shutdownAuxHeat,
// shutdownSystem, shutdownCompression, switchToOccupied, switchToUnoccupied,
// turnOffDehumidifer, turnOffHumidifier, turnOnCool, turnOnDehumidifier,
// turnOnFan, turnOnHeat, turnOnHumidifier.
Type *string `json:"type,omitempty"`
// Flag to enable an alert to be generated when the state is triggered
SendAlert *bool `json:"sendAlert,omitempty"`
// Whether to send an update message.
SendUpdate *bool `json:"sendUpdate,omitempty"`
// Delay in seconds before the action is triggered by the state change.
ActivationDelay *int `json:"activationDelay,omitempty"`
// The amount of time to wait before deactivating this state after the state
// has been cleared.
DeactivationDelay *int `json:"deactivationDelay,omitempty"`
// The minimum length of time to maintain action after sensor has been deactivated.
MinActionDuration *int `json:"minActionDuration,omitempty"`
// The amount to increase/decrease current setpoint if the type = adjustTemp.
HeatAdjustTemp *int `json:"heatAdjustTemp,omitempty"`
// The amount to increase/decrease current setpoint if the type = adjustTemp.
CoolAdjustTemp *int `json:"coolAdjustTemp,omitempty"`
// The user defined relay to be activated, only used for type == activateRelay.
ActivateRelay *string `json:"activateRelay,omitempty"`
// Select if relay is to be open or closed when activated, only used for type
// == activateRelay.
ActivateRelayOpen *bool `json:"activateRelayOpen,omitempty"`
}
A sensor action defines an action to take when a SensorState is triggered.
type Alert ¶
type Alert struct {
// The unique alert identifier. This is required to acknowledge an alert.
AcknowledgeRef *string `json:"acknowledgeRef,omitempty"`
// The alert date: YYYY-MM-DD
Date *string `json:"date,omitempty"`
// The alert time: HH:MM:SS
Time *string `json:"time,omitempty"`
// The alert severity. Values: low, medium, high.
Severity *string `json:"severity,omitempty"`
// The alert message text. Will be truncated to 500 characters if longer.
Text *string `json:"text,omitempty"`
// The ecobee alert message identifier
AlertNumber *int `json:"alertNumber,omitempty"`
// The type of alert this is. Values: alert, demandResponse, emergency,
// message, pricing.
AlertType *string `json:"alertType,omitempty"`
// Whether the alert was generated by the thermostat owner
IsOperatorAlert *bool `json:"isOperatorAlert,omitempty"`
// Whether a reminder will be sent.
Reminder *string `json:"reminder,omitempty"`
// Whether to show the alert on the thermostat.
ShowIDT *bool `json:"showIdt,omitempty"`
// Whether to show the alert on the ecobee web portal.
ShowWeb *bool `json:"showWeb,omitempty"`
// Whether to send an alert email to the thermostat user.
SendEmail *bool `json:"sendEmail,omitempty"`
// The user acknowledgement type. Values: accept, decline, defer, unacknowledged.
Acknowledgement *string `json:"acknowledgement,omitempty"`
// Whether to remind the user at a later time about the alert.
RemindMeLater *bool `json:"remindMeLater,omitempty"`
// The identifier of the thermostat that generated the alert
ThermostatIdentifier *string `json:"thermostatIdentifier,omitempty"`
// The type of Alert or reminder. Possible values are: alert, hvac,
// furnaceFilter, humidifierFilter, dehumidifierFilter, ventilator, ac,
// airFilter, airCleaner, uvLamp, temp, lowTemp, highTemp, lowHumidity,
// highHumidity, auxHeat, auxOutdoor. If the configuration for the specific
// alert type is required, see NotificationSettings
NotificationType *string `json:"notificationType,omitempty"`
}
The Alert object represents an alert generated either by a thermostat or user which requires user attention. It may be an error, or a reminder for a filter change. Alerts may not be modified directly but rather they must be acknowledged using the Acknowledge Function.
type Audio ¶
type Audio struct {
// The volume level for audio playback. This includes volume of the voice
// assistant. A value between 0 and 100.
PlaybackVolume *int `json:"playbackVolume,omitempty"`
// Turn microphone (privacy mode) on and off.
MicrophoneEnabled *bool `json:"microphoneEnabled,omitempty"`
// The volume level for alerts on the thermostat. A value between 0 and 10,
// with 0 meaning 'off' - the zero value may not be honored by all ecobee
// versions.
SoundAlertVolume *int `json:"soundAlertVolume,omitempty"`
// The volume level for key presses on the thermostat. A value between 0 and
// 10, with 0 meaning 'off' - the zero value may not be honored by all ecobee
// versions.
SoundTickVolume *int `json:"soundTickVolume,omitempty"`
// The list of voice engines compatible with the selected thermostat.
VoiceEngines []VoiceEngine `json:"voiceEngines,omitempty"`
}
The Audio object contains all the audio properties of the thermostat (only applicable to ecobee4).
type Climate ¶
type Climate struct {
// The unique climate name. The name may be changed without affecting the
// program integrity so long as uniqueness is maintained.
Name *string `json:"name,omitempty"`
// The unique climate identifier. Changing the identifier is not possible and
// it is generated on the server for each climate. If this value is not
// supplied a new climate will be created. For the default climates and
// existing user created climates the climateRef should be supplied - see note
// above.
ClimateRef *string `json:"climateRef,omitempty"`
// A flag indicating whether the property is occupied by persons during this
// climate
IsOccupied *bool `json:"isOccupied,omitempty"`
// A flag indicating whether ecobee optimized climate settings are used by this
// climate.
IsOptimized *bool `json:"isOptimized,omitempty"`
// The cooling fan mode. Default: on. Values: auto, on.
CoolFan *string `json:"coolFan,omitempty"`
// The heating fan mode. Default: on. Values: auto, on.
HeatFan *string `json:"heatFan,omitempty"`
// The ventilator mode. Default: off. Values: auto, minontime, on, off.
Vent *string `json:"vent,omitempty"`
// The minimum time, in minutes, to run the ventilator each hour.
VentilatorMinOnTime *int `json:"ventilatorMinOnTime,omitempty"`
// The climate owner. Default: system. Values: adHoc, demandResponse,
// quickSave, sensorAction, switchOccupancy, system, template, user.
Owner *string `json:"owner,omitempty"`
// The type of climate. Default: program. Values: calendarEvent, program.
Type *string `json:"type,omitempty"`
// The integer conversion of the HEX color value used to display this climate
// on the thermostat and on the web portal.
Colour *int `json:"colour,omitempty"`
// The cool temperature for this climate.
CoolTemp *int `json:"coolTemp,omitempty"`
// The heat temperature for this climate.
HeatTemp *int `json:"heatTemp,omitempty"`
// The list of sensors in use for the specific climate. The sensors listed here
// are used for temperature averaging within that climate. Only the sensorId
// and name are listed in the climate.
Sensors []RemoteSensor `json:"sensors,omitempty"`
}
A climate defines a thermostat settings template which is then applied to individual period cells of the Schedule. The result is that if you modify the Climate, all schedule cells which reference that Climate will automatically be changed.
When adding a Climate it is optional whether you reference the new Climate in the schedule cells in the same request or not. However, when deleting a Climate (by omitting that entire Climate object from the POST request) it can not be be deleted if it is still referenced in the schedule cells.
type DemandManagement ¶
type DemandManagement struct {
// The date (UTC) for the beginning of this day's demand management series.
Date *string `json:"date,omitempty"`
// The hour in the day this series begins at. Range: 0-23
Hour *int `json:"hour,omitempty"`
// The series of 12, 5 minute interval temperature adjustments in the hour.
// Valid integer values are required for each interval. See Temperature values.
TempOffsets []int `json:"tempOffsets,omitempty"`
}
The Demand Management object defines a series of 12 5-minute intervals in a given hour of the day. Each value in the series is an adjustment to the thermostat desired temperature which is applied for the matching 5 minute interval in the hour. The temperature adjustment may be made in the range of -2F to +2F. The temperature value must be specified as per standard Temperature notation already described. Specifying 0 for the adjustment in the series will result in no adjustment being made. Values outside the +/- 2F range will result in error.
type DemandResponse ¶
type DemandResponse struct {
// The user defined name of the Demand Response event.
Name *string `json:"name,omitempty"`
// A system generated ID to uniquely identify the event.
DemandResponseRef *string `json:"demandResponseRef,omitempty"`
// User (event creator) comments regarding the event
Comments *string `json:"comments,omitempty"`
// The text message to send to the user (recipient of the event)
Message *string `json:"message,omitempty"`
// The date the demand response is deferred to.
DeferredDate *string `json:"deferredDate,omitempty"`
// The time the demand response has been deferred to.
DeferredTime *string `json:"deferredTime,omitempty"`
// Whether to show the event message on the thermostat. Default: true
ShowIDT *bool `json:"showIdt,omitempty"`
// Whether to show the event message on the web portal. Default: true
ShowWeb *bool `json:"showWeb,omitempty"`
// Whether to send the event message as an email to the user. Default: true
SendEmail *bool `json:"sendEmail,omitempty"`
// Whether to randomize the start time of the event for each thermostat in
// order to mitigate severe electric grid load drops when the event starts.
// Default: false
RandomizeStartTime *bool `json:"randomizeStartTime,omitempty"`
// The number of seconds between 0 and the value to randomize the start time
// with. Default: 1800
RandomStartTimeSeconds *int `json:"randomStartTimeSeconds,omitempty"`
// Whether to randomize the end time of the event for each thermostat in order
// to mitigate electric grid load spikes when the event ends and thermostats
// resume normal program operation. Default: false
RandomizeEndTime *bool `json:"randomizeEndTime,omitempty"`
// The number of seconds between 0 and the value to randomize the end time
// with. Default: 1800
RandomEndTimeSeconds *int `json:"randomEndTimeSeconds,omitempty"`
// The Event Object whose properties to use when creating the DR event.
Event *Event `json:"event,omitempty"`
// The list of thermostats associated with this DR. Populated by the server
// when listing DRs.
Thermostats []string `json:"thermostats,omitempty"`
//
ExternalRef *string `json:"externalRef,omitempty"`
//
ExternalRefType *string `json:"externalRefType,omitempty"`
//
Priority *int `json:"priority,omitempty"`
}
The demand response object contains information pertaining to a program change event for a set of thermostats. Demand response is only available to EMS and Utility accounts.
type Device ¶
type Device struct {
// A unique ID for the device
DeviceID *int `json:"deviceId,omitempty"`
// The user supplied device name
Name *string `json:"name,omitempty"`
// The list of Sensor Objects associated with the device.
Sensors []Sensor `json:"sensors,omitempty"`
// Ths list of Output Objects associated with the device
Outputs []Output `json:"outputs,omitempty"`
}
Represents a device attached to the thermostat. Devices may not be modified remotely, all changes must occur on the thermostat.
type ECPDemandResponse ¶
type ECPDemandResponse struct {
}
This object is currently undocumented by ecobee.
type Electricity ¶
type Electricity struct {
// The list of ElectricityDevice objects associated with the thermostat, each
// representing a device such as an electric meter or remote load control.
Devices []ElectricityDevice `json:"devices,omitempty"`
}
The electricity object contains the last collected electricity usage measurements for the thermostat. An electricity object is composed of Electricity Devices, each of which contains readings from an Electricity Tier.
type ElectricityDevice ¶
type ElectricityDevice struct {
// The name of the device
Name *string `json:"name,omitempty"`
// The list of Electricity Tiers containing the break down of daily electricity
// consumption of the device for the day, broken down per pricing tier.
Tiers []ElectricityTier `json:"tiers,omitempty"`
// The last date/time the reading was updated in UTC time.
LastUpdate *string `json:"lastUpdate,omitempty"`
// The last three daily electricity cost reads from the device in cents with a
// three decimal place precision.
Cost []string `json:"cost,omitempty"`
// The last three daily electricity consumption reads from the device in KWh
// with a three decimal place precision.
Consumption []string `json:"consumption,omitempty"`
}
An electricity device represents an energy recording device. At this time, only meters are supported by the API.
type ElectricityTier ¶
type ElectricityTier struct {
// The tier name as defined by the Utility. May be an empty string if the tier
// is undefined or the usage falls outside the defined tiers.
Name *string `json:"name,omitempty"`
// The last daily consumption reading collected. The reading format and
// precision is to three decimal places in kWh.
Consumption *string `json:"consumption,omitempty"`
// The daily cumulative tier cost in dollars if defined by the Utility. May be
// an empty string if undefined.
Cost *string `json:"cost,omitempty"`
}
An electricity tier object represents the last reading from a given pricing tier if the utility provides such information. If there are no pricing tiers defined, than an unnamed tier will represent the total reading. The values represented here are a daily cumulative total in kWh. The cost is likewise a cumulative total in cents.
type Energy ¶
type Energy struct {
TimeOfUse *TimeOfUse `json:"tou,omitempty"`
EnergyFeatureState *string `json:"energyFeatureState,omitempty"`
FeelsLikeMode *string `json:"feelsLikeMode,omitempty"`
ComfortPreferences *string `json:"comfortPreferences,omitempty"`
}
This object is currently undocumented by ecobee.
type EquipmentSetting ¶
type EquipmentSetting struct {
// The date the filter was last changed for this equipment. String format:
// YYYY-MM-DD
FilterLastChanged *string `json:"filterLastChanged,omitempty"`
// The value representing the life of the filter. This value is expressed in
// month or hour, which is specified in the the filterLifeUnits property.
FilterLife *int `json:"filterLife,omitempty"`
// The units the filterLife field is measured in. Possible values are: month,
// hour. month has a range of 1 - 12. hour has a range of 100 - 10000.
FilterLifeUnits *string `json:"filterLifeUnits,omitempty"`
// The date the reminder will be triggered. This is a read-only field and
// cannot be modified through the API. The value is calculated and set by the
// thermostat.
RemindMeDate *string `json:"remindMeDate,omitempty"`
// Boolean value representing whether or not alerts/reminders are enabled for
// this notification type or not.
Enabled *bool `json:"enabled,omitempty"`
// The type of notification. Possible values are: hvac, furnaceFilter,
// humidifierFilter, dehumidifierFilter, ventilator, ac, airFilter, airCleaner,
// uvLamp
Type *string `json:"type,omitempty"`
// Boolean value representing whether or not alerts/reminders should be sent to
// the technician/contractor associated with the thermostat.
RemindTechnician *bool `json:"remindTechnician,omitempty"`
}
The EquipmentSetting object represents the alert/reminder type which is associated with and dependent upon specific equipment controlled by the Thermostat. It is used when getting/setting the Thermostat NotificationSettings (https://www.ecobee.com/home/developer/api/documentation/v1/objects/NotificationSettings.shtml) object.
Note: Only the notification settings for the equipment/devices currently controlled by the Thermostat are returned during GET request, and only those same settings can be updated using the POST request.
The type corresponds to the Alert.notificationType returned when alerts are also included in the selection. See Alert (https://www.ecobee.com/home/developer/api/documentation/v1/objects/Alert.shtml) for more information.
type Event ¶
type Event struct {
// The type of event. Values: hold, demandResponse, sensor, switchOccupancy,
// vacation, quickSave, today, autoAway, autoHome
Type *string `json:"type,omitempty"`
// The unique event name.
Name *string `json:"name,omitempty"`
// Whether the event is currently active or not.
Running *bool `json:"running,omitempty"`
// The event start date in thermostat local time.
StartDate *string `json:"startDate,omitempty"`
// The event start time in thermostat local time.
StartTime *string `json:"startTime,omitempty"`
// The event end date in thermostat local time.
EndDate *string `json:"endDate,omitempty"`
// The event end time in thermostat local time.
EndTime *string `json:"endTime,omitempty"`
// Whether there are persons occupying the property during the event.
IsOccupied *bool `json:"isOccupied,omitempty"`
// Whether cooling will be turned off during the event.
IsCoolOff *bool `json:"isCoolOff,omitempty"`
// Whether heating will be turned off during the event.
IsHeatOff *bool `json:"isHeatOff,omitempty"`
// The cooling absolute temperature to set.
CoolHoldTemp *int `json:"coolHoldTemp,omitempty"`
// The heating absolute temperature to set.
HeatHoldTemp *int `json:"heatHoldTemp,omitempty"`
// The fan mode during the event. Values: auto, on Default: based on current
// climate and hvac mode.
Fan *string `json:"fan,omitempty"`
// The ventilator mode during the vent. Values: auto, minontime, on, off.
Vent *string `json:"vent,omitempty"`
// The minimum amount of time the ventilator equipment must stay on on each
// duty cycle.
VentilatorMinOnTime *int `json:"ventilatorMinOnTime,omitempty"`
// Whether this event is mandatory or the end user can cancel it.
IsOptional *bool `json:"isOptional,omitempty"`
// Whether the event is using a relative temperature setting to the currently
// active program climate. See the Note at the bottom of this page for more
// information.
IsTemperatureRelative *bool `json:"isTemperatureRelative,omitempty"`
// The relative cool temperature adjustment.
CoolRelativeTemp *int `json:"coolRelativeTemp,omitempty"`
// The relative heat temperature adjustment.
HeatRelativeTemp *int `json:"heatRelativeTemp,omitempty"`
// Whether the event uses absolute temperatures to set the values. Default:
// true for DRs. See the Note at the bottom of this page for more information.
IsTemperatureAbsolute *bool `json:"isTemperatureAbsolute,omitempty"`
// Indicates the % scheduled runtime during a Demand Response event. Valid
// range is 0 - 100%. Default = 100, indicates no change to schedule.
DutyCyclePercentage *int `json:"dutyCyclePercentage,omitempty"`
// The minimum number of minutes to run the fan each hour. Range: 0-60, Default: 0
FanMinOnTime *int `json:"fanMinOnTime,omitempty"`
// True if this calendar event was created because of the occupied sensor.
OccupiedSensorActive *bool `json:"occupiedSensorActive,omitempty"`
// True if this calendar event was created because of the unoccupied sensor
UnoccupiedSensorActive *bool `json:"unoccupiedSensorActive,omitempty"`
// Unsupported. Future feature.
DRRampUpTemp *int `json:"drRampUpTemp,omitempty"`
// Unsupported. Future feature.
DRRampUpTime *int `json:"drRampUpTime,omitempty"`
// Unique identifier set by the server to link one or more events and alerts
// together.
LinkRef *string `json:"linkRef,omitempty"`
// Used for display purposes to indicate what climate (if any) is being used
// for the hold.
HoldClimateRef *string `json:"holdClimateRef,omitempty"`
// What's the default Fan Speed on a HVAC with multi-span. Accepted values:
// low, medium, high, and optimized.
FanSpeed *string `json:"fanSpeed,omitempty"`
}
The event object represents a scheduled thermostat program change. All events have a start and end time during which the thermostat runtime settings will be modified. Events may not be directly modified, various Functions provide the capability to modify the calendar events and to modify the program. The event list is sorted with events ordered by whether they are currently running and the internal priority of each event. It is safe to take the first event which is running and show it as the currently running event. When the resume function is used, events are removed in the order they are listed here.
Note that the start/end date/time for the event must be in thermostat time and are not specified in UTC.
type ExtendedRuntime ¶
type ExtendedRuntime struct {
// The UTC timestamp of the last value read. This timestamp is updated at a 15
// min interval by the thermostat. For the 1st value, it is timestamp - 10
// mins, for the 2nd value it is timestamp - 5 mins. Consider day boundaries
// being straddled when using these values.
LastReadingTimestamp *string `json:"lastReadingTimestamp,omitempty"`
// The UTC date of the last runtime reading. Format: YYYY-MM-DD
RuntimeDate *string `json:"runtimeDate,omitempty"`
// The last 5 minute interval which was updated by the thermostat telemetry
// update. Subtract 2 from this interval to obtain the beginning interval for
// the last 3 readings. Multiply by 5 mins to obtain the minutes of the day.
// Range: 0-287
RuntimeInterval *int `json:"runtimeInterval,omitempty"`
// The last three 5 minute actual temperature readings
ActualTemperature []int `json:"actualTemperature,omitempty"`
// The last three 5 minute actual humidity readings.
ActualHumidity []int `json:"actualHumidity,omitempty"`
// The last three 5 minute desired heat temperature readings.
DesiredHeat []int `json:"desiredHeat,omitempty"`
// The last three 5 minute desired cool temperature readings.
DesiredCool []int `json:"desiredCool,omitempty"`
// The last three 5 minute desired humidity readings.
DesiredHumidity []int `json:"desiredHumidity,omitempty"`
// The last three 5 minute desired de-humidification readings.
DesiredDehumidity []int `json:"desiredDehumidity,omitempty"`
// The last three 5 minute desired Demand Management temperature offsets. This
// value is Demand Management adjustment value which was applied by the
// thermostat. If the thermostat decided not to honour the adjustment, it will
// send 0 for the interval. Compare these values with the values sent in the DM
// message to determine whether the thermostat applied the adjustment.
DMOffset []int `json:"dmOffset,omitempty"`
// The last three 5 minute HVAC Mode reading. These values indicate which stage
// was energized in the 5 minute interval. Values: heatStage10n, heatStage20n,
// heatStage30n, heatOff, compressorCoolStage10n, compressorCoolStage20n,
// compressorCoolOff, compressorHeatStage10n, compressorHeatStage20n,
// compressorHeatOff, economyCycle.
HVACMode []string `json:"hvacMode,omitempty"`
// The last three 5 minute HVAC Runtime values in seconds (0-300 seconds) per
// interval. This value corresponds to the heat pump stage 1 runtime.
HeatPump1 []int `json:"heatPump1,omitempty"`
// The last three 5 minute HVAC Runtime values in seconds (0-300 seconds) per
// interval. This value corresponds to the heat pump stage 2 runtime.
HeatPump2 []int `json:"heatPump2,omitempty"`
// The last three 5 minute HVAC Runtime values in seconds (0-300 seconds) per
// interval. This value corresponds to the auxiliary heat stage 1. If the
// thermostat does not have a heat pump, this is heat stage 1.
AuxHeat1 []int `json:"auxHeat1,omitempty"`
// The last three 5 minute HVAC Runtime values in seconds (0-300 seconds) per
// interval. This value corresponds to the auxiliary heat stage 2. If the
// thermostat does not have a heat pump, this is heat stage 2.
AuxHeat2 []int `json:"auxHeat2,omitempty"`
// The last three 5 minute HVAC Runtime values in seconds (0-300 seconds) per
// interval. This value corresponds to the heat stage 3 if the thermostat does
// not have a heat pump. Auxiliary stage 3 is not supported.
AuxHeat3 []int `json:"auxHeat3,omitempty"`
// The last three 5 minute HVAC Runtime values in seconds (0-300 seconds) per
// interval. This value corresponds to the cooling stage 1.
Cool1 []int `json:"cool1,omitempty"`
// The last three 5 minute HVAC Runtime values in seconds (0-300 seconds) per
// interval. This value corresponds to the cooling stage 2.
Cool2 []int `json:"cool2,omitempty"`
// The last three 5 minute fan Runtime values in seconds (0-300 seconds) per
// interval.
Fan []int `json:"fan,omitempty"`
// The last three 5 minute humidifier Runtime values in seconds (0-300 seconds)
// per interval.
Humidifier []int `json:"humidifier,omitempty"`
// The last three 5 minute de-humidifier Runtime values in seconds (0-300
// seconds) per interval.
Dehumidifier []int `json:"dehumidifier,omitempty"`
// The last three 5 minute economizer Runtime values in seconds (0-300 seconds)
// per interval.
Economizer []int `json:"economizer,omitempty"`
// The last three 5 minute ventilator Runtime values in seconds (0-300 seconds)
// per interval.
Ventilator []int `json:"ventilator,omitempty"`
// The latest value of the current electricity bill as interpolated from the
// thermostat's readings from a paired electricity meter.
CurrentElectricityBill *int `json:"currentElectricityBill,omitempty"`
// The latest estimate of the projected electricity bill as interpolated from
// the thermostat's readings from a paired electricity meter.
ProjectedElectricityBill *int `json:"projectedElectricityBill,omitempty"`
}
The extended runtime object contains the last three 5 minute interval values sent by the thermostat for the past 15 minutes of runtime. The interval values are valuable when you are interested in analyzing the runtime data in a more granular fashion, at 5 minute increments rather than the more general 15 minute value from the Runtime Object.
For the runtime values (i.e. heatPump, auxHeat, cool, etc.) refer to the Thermostat.Settings values (hasHeatPump, heatStages, coolStages) to determine whether a heat pump exists and how many stages the thermostat supports.
The actual temperature and humidity will also be updated when the equipment state changes by the thermostat, this may occur at a frequency of 3 minutes, however it is only transmitted when there is an equipment state change on the thermostat.
See Thermostat Interval Report Data (https://www.ecobee.com/home/developer/api/introduction/core-concepts.shtml#data) for additional information about the interval readings.
The extended runtime object is read-only.
type Function ¶
type Function struct {
// The function type name. See the type name in the function documentation.
Type *string `json:"type,omitempty"`
// A map of key=value pairs as the parameters to the function. See individual
// function documentation for the properties.
Params map[string]interface{} `json:"params,omitempty"`
}
The function object is defined by its functionType and one or more additional properties. The property list is variable depending on the type of function. Functions are used to perform more complex operations on a thermostat or user which are too complex with simple property modifications. Functions are used to modify read-only objects where appropriate.
Each function takes different parameters, the object format is below:
type GeneralSetting ¶
type GeneralSetting struct {
// Boolean value representing whether or not alerts/reminders are enabled for
// this notification type or not.
Enabled *bool `json:"enabled,omitempty"`
// The type of notification. Possible values are: temp
Type *string `json:"type,omitempty"`
// Boolean value representing whether or not alerts/reminders should be sent to
// the technician/contractor associated with the thermostat.
RemindTechnician *bool `json:"remindTechnician,omitempty"`
}
The GeneralSetting object represent the General alert/reminder type. It is used when getting/setting the Thermostat NotificationSettings (https://www.ecobee.com/home/developer/api/documentation/v1/objects/NotificationSettings.shtml) object.
The type corresponds to the Alert.notificationType returned when alerts are included in the selection. See Alert (https://www.ecobee.com/home/developer/api/documentation/v1/objects/Alert.shtml) for more information.
type Group ¶
type Group struct {
// The unique reference Id for the Group. If not supplied in the POST call, and
// new groupRef will be generated.
GroupRef *string `json:"groupRef,omitempty"`
// The name for the Group.
GroupName *string `json:"groupName,omitempty"`
// Flag for whether to synchronize Thermostat Alerts with all other Thermostats
// in the Group. Default is false.
SynchronizeAlerts *bool `json:"synchronizeAlerts,omitempty"`
// Flag for whether to synchronize the Thermostat mode with all other
// Thermostats in the Group. Default is false.
SynchronizeSystemMode *bool `json:"synchronizeSystemMode,omitempty"`
// Flag for whether to synchronize the Thermostat schedule/Program details with
// all other Thermostats in the Group. Default is false.
SynchronizeSchedule *bool `json:"synchronizeSchedule,omitempty"`
// Flag for whether to synchronize the Thermostat quick save settings with all
// other Thermostats in the Group. Default is false.
SynchronizeQuickSave *bool `json:"synchronizeQuickSave,omitempty"`
// Flag for whether to synchronize the Thermostat reminders with all other
// Thermostats in the Group. Default is false.
SynchronizeReminders *bool `json:"synchronizeReminders,omitempty"`
// Flag for whether to synchronize the Thermostat Technician/Contractor
// Information with all other Thermostats in the Group. Default is false.
SynchronizeContractorInfo *bool `json:"synchronizeContractorInfo,omitempty"`
// Flag for whether to synchronize the Thermostat user preferences with all
// other Thermostats in the Group. Default is false.
SynchronizeUserPreferences *bool `json:"synchronizeUserPreferences,omitempty"`
// Flag for whether to synchronize the Thermostat utility information with all
// other Thermostats in the Group. Default is false.
SynchronizeUtilityInfo *bool `json:"synchronizeUtilityInfo,omitempty"`
// Flag for whether to synchronize the Thermostat Location with all other
// Thermostats in the Group. Default is false.
SynchronizeLocation *bool `json:"synchronizeLocation,omitempty"`
// Flag for whether to synchronize the Thermostat reset with all other
// Thermostats in the Group. Default is false.
SynchronizeReset *bool `json:"synchronizeReset,omitempty"`
// Flag for whether to synchronize the Thermostat vacation Program with all
// other Thermostats in the Group. Default is false.
SynchronizeVacation *bool `json:"synchronizeVacation,omitempty"`
// The list of Thermostat identifiers which belong to the group. If an empty
// list is sent the Group will be deleted.
Thermostats []string `json:"thermostats,omitempty"`
}
A Group object defines the group (and the related Group settings) which a thermostat may belong to. There could be a number of Groups and also a number of thermostats in each Group. The Group object allows the caller to define the Group name, which user preferences are shared across all thermostats in that Group, and indeed which Thermostats are part of that Group.
The result is that if you modify the Group settings, for example set the synchronizeAlerts flag to true, any Alert changes made to any thermostat in that group will be shared with the remaining thermostats in the same group.
The Grouping algorithm uses a "first group wins" strategy when a Thermostat is referenced in multiple groups. What this means in practice is that when the API request is processed and a Thermostat is referenced in more than one group, that Thermostat will only be added to the first Group (at head of array) and not to the others.
If any of the synchronizeXXX fields are not supplied they will default to false. So to set all to false where previously some were set to true the caller can either pass all the synchronizeXXX fields explicitly, or pass none and the default will be set for each.
The Group object may be modified. However, it is important to note that if the groupRef is not sent by the caller it is assumed that this is a new group, even if the groupName has not changed, and a new groupRef will be generated and returned. Therefore when updating a Group the groupRef must always be sent.
Also note that if the thermostats list is not sent, or an empty list is sent, the Group will effectively be deleted as it will no longer contain any thermostats and any group information will be lost.
type HierarchyPrivilege ¶
type HierarchyPrivilege struct {
// The path of the management set.
SetPath *string `json:"setPath,omitempty"`
// The name of the management set.
SetName *string `json:"setName,omitempty"`
// The user name of the user associated with this privilege.
UserName *string `json:"userName,omitempty"`
// The user is permitted all privileges on the set.
AllowAll *bool `json:"allowAll,omitempty"`
// The user is denied any privilege and may not view the set.
AllowNone *bool `json:"allowNone,omitempty"`
// The user is only permitted to view the set and its contents.
AllowView *bool `json:"allowView,omitempty"`
// The user is permitted to make program changes.
AllowProgram *bool `json:"allowProgram,omitempty"`
// The user is permitted to create and edit vacation events.
AllowVacation *bool `json:"allowVacation,omitempty"`
// The user is permitted to edit thermostat settings.
AllowSettings *bool `json:"allowSettings,omitempty"`
// The user is permitted to access thermostat details such as desired
// temperature, HVAC mode and humidity settings.
AllowDetails *bool `json:"allowDetails,omitempty"`
// The user is permitted to view thermostat reports.
AllowReport *bool `json:"allowReport,omitempty"`
// The user is permitted to manage user security.
AllowSecurity *bool `json:"allowSecurity,omitempty"`
// The user is permitted to manage management sets.
AllowHierarchy *bool `json:"allowHierarchy,omitempty"`
// The user is permitted to manage alerts.
AllowAlerts *bool `json:"allowAlerts,omitempty"`
// The user is permitted to manage account information and register/unregister
// new users.
AllowManageAccount *bool `json:"allowManageAccount,omitempty"`
}
The hierarchy privileges assigned to a user for a management set.
If the user has any privilege, other than none on a set, this is equivalent to the view privilege.The privilege all grants all privileges regardless of the other privileges defined.
The none privilege supersedes all other privileges and denies access to a set. The following privileges are only considered for the Utility portal: all, none, view. The others have no effect.
type HierarchySet ¶
type HierarchySet struct {
// The name of the hierarchy set.
SetName *string `json:"setName,omitempty"`
// The full path from the root to the hierarchy set.
SetPath *string `json:"setPath,omitempty"`
// The list of child hierarchy sets.
Children []HierarchySet `json:"children,omitempty"`
// The list of hierarchy privileges assigned to this hierarchy set.
Privileges []HierarchyPrivilege `json:"privileges,omitempty"`
// The list of thermostats assigned to this hierarchy set..
Thermostats []string `json:"thermostats,omitempty"`
}
The HierarchySet object contains the name, path and additional information associated with a management set.
All set paths start with '/' which is equivalent to the "My Sets" set. A set path without a leading'/' signifies a special set, such as "Unassigned".
type HierarchyUser ¶
type HierarchyUser struct {
// The user name and login ID. It must be a valid email address.
UserName *string `json:"userName,omitempty"`
// The first name.
FirstName *string `json:"firstName,omitempty"`
// The last name.
LastName *string `json:"lastName,omitempty"`
// The phone number.
Phone *string `json:"phone,omitempty"`
// The timestamp of the last user login into the web portal. Format: YYYY-MM-DD
// HH:MM:SS
LastLogin *string `json:"lastLogin,omitempty"`
// Whether the user is active and permitted to access to the system.
Active *bool `json:"active,omitempty"`
// Whether the user will receive alerts in email.
EmailAlerts *bool `json:"emailAlerts,omitempty"`
}
The information about a user in the EMS or Utility company.
type HouseDetails ¶
type HouseDetails struct {
// The style of house. Values: other, apartment, condominium, detached, loft,
// multiPlex, rowHouse, semiDetached, townhouse, and 0 for unknown.
Style *string `json:"style,omitempty"`
// The size of the house in square feet.
Size *int `json:"size,omitempty"`
// The number of floors or levels in the house.
NumberOfFloors *int `json:"numberOfFloors,omitempty"`
// The number of rooms in the house.
NumberOfRooms *int `json:"numberOfRooms,omitempty"`
// The number of occupants living in the house.
NumberOfOccupants *int `json:"numberOfOccupants,omitempty"`
// The age of house in years.
Age *int `json:"age,omitempty"`
// This field defines the window efficiency of the house. Valid values are in
// the range 1 - 7. Changing the value of this field alters the settings the
// thermostat uses for the humidifier when in 'frost Control' mode. See the
// NOTE above before updating this value.
WindowEfficiency *int `json:"windowEfficiency,omitempty"`
}
The HouseDetails object contains contains the information about the house the thermostat is installed in.
NOTE: the windowEfficiency field can be used to set the window efficiency of the house. This is set as an integer value through the API, however these integer values are actually converted by the thermostat to specific R values which are not sorted. The mapping of API integer value to R value is as follows:
type LimitSetting ¶
type LimitSetting struct {
// The value of the limit to set. For temperatures the value is expressed as
// degrees Fahrenheit, multiplied by 10. For humidity values are expressed as a
// percentage from 5 to 95. See here for more information.
Limit *int `json:"limit,omitempty"`
// Boolean value representing whether or not alerts/reminders are enabled for
// this notification type or not.
Enabled *bool `json:"enabled,omitempty"`
// The type of notification. Possible values are: lowTemp, highTemp,
// lowHumidity, highHumidity, auxHeat, auxOutdoor
Type *string `json:"type,omitempty"`
// Boolean value representing whether or not alerts/reminders should be sent to
// the technician/contractor associated with the thermostat.
RemindTechnician *bool `json:"remindTechnician,omitempty"`
}
The LimitSetting object represents the alert/reminder type which is associated specific values, such as highHeat or lowHumidity. It is used when getting/setting the Thermostat NotificationSettings (https://www.ecobee.com/home/developer/api/documentation/v1/objects/NotificationSettings.shtml) object.
The type corresponds to the Alert.notificationType returned when alerts are also included in the selection. See Alert (https://www.ecobee.com/home/developer/api/documentation/v1/objects/Alert.shtml) for more information.
When POSTing updates to the LimitSettings there are certain requirements and behaviour the API user needs to be aware of:
type Location ¶
type Location struct {
// The timezone offset in minutes from UTC.
TimeZoneOffsetMinutes *int `json:"timeZoneOffsetMinutes,omitempty"`
// The Olson timezone the thermostat resides in (e.g America/Toronto).
TimeZone *string `json:"timeZone,omitempty"`
// Whether the thermostat should factor in daylight savings when displaying the
// date and time.
IsDaylightSaving *bool `json:"isDaylightSaving,omitempty"`
// The thermostat location street address.
StreetAddress *string `json:"streetAddress,omitempty"`
// The thermostat location city.
City *string `json:"city,omitempty"`
// The thermostat location State or Province.
ProvinceState *string `json:"provinceState,omitempty"`
// The thermostat location country.
Country *string `json:"country,omitempty"`
// The thermostat location ZIP or Postal code.
PostalCode *string `json:"postalCode,omitempty"`
// The thermostat owner's phone number
PhoneNumber *string `json:"phoneNumber,omitempty"`
// The lat/long geographic coordinates of the thermostat location.
MapCoordinates *string `json:"mapCoordinates,omitempty"`
}
The Location describes the physical location and coordinates of the thermostat as entered by the thermostat owner. The address information is used in a geocode look up to obtain the thermostat coordinates. The coordinates are used to obtain accurate weather information.
type Management ¶
type Management struct {
// The administrative contact name.
AdministrativeContact *string `json:"administrativeContact,omitempty"`
// The billing contact name.
BillingContact *string `json:"billingContact,omitempty"`
// The company name.
Name *string `json:"name,omitempty"`
// The phone number.
Phone *string `json:"phone,omitempty"`
// The contact email address.
Email *string `json:"email,omitempty"`
// The company web site.
Web *string `json:"web,omitempty"`
// Whether to show management alerts on the thermostat.
ShowAlertIDT *bool `json:"showAlertIdt,omitempty"`
// Whether to show management alerts in the web portal.
ShowAlertWeb *bool `json:"showAlertWeb,omitempty"`
}
The Management object contains information about the management company the thermostat belongs to. The Management object is read-only, it may be modified in the web portal.
type MeterReport ¶
type MeterReport struct {
// The thermostat identifier this report is for.
ThermostatIdentifier *string `json:"thermostatIdentifier,omitempty"`
// The list of meter data for the meters requested. If the thermostat has no
// meter, the object for that meter will not be included in the list. A
// thermostat with no meters will have this list empty.
MeterList []MeterReportData `json:"meterList,omitempty"`
}
The thermostat meter report is a container for the meter data of a single thermostat. It contains meter data for each type of meter requested and its associated data.
type MeterReportData ¶
type MeterReportData struct {
// The type of meter the data is for.
MeterType *string `json:"meterType,omitempty"`
// The columns provided in the data.
Columns *string `json:"columns,omitempty"`
// A list of rows of CSV data matching the columns property.
Data []string `json:"data,omitempty"`
}
Contains the reading data from a single meter.
See Meter Report (https://www.ecobee.com/home/developer/api/documentation/v1/operations/get-meter-report.shtml) for information on the columns and data returned.
type NotificationSettings ¶
type NotificationSettings struct {
// The list of email addresses alerts and reminders will be sent to. The full
// list of email addresses must be sent in any update request. If any are
// missing from that list they will be deleted. If an empty list is sent, any
// email addresses will be deleted.
EmailAddresses []string `json:"emailAddresses,omitempty"`
// Boolean values representing whether or not alerts and reminders will be sent
// to the email addresses listed above when triggered.
EmailNotificationsEnabled *bool `json:"emailNotificationsEnabled,omitempty"`
// The list of equipment specific alert and reminder settings.
Equipment []EquipmentSetting `json:"equipment,omitempty"`
// The list of general alert and reminder settings.
General []GeneralSetting `json:"general,omitempty"`
// The list of limit specific alert and reminder settings.
Limit []LimitSetting `json:"limit,omitempty"`
}
The Thermostat NotficationSettings object is a container for the configuration of the possible alerts and reminders which can be generated by the Thermostat.
The NotificationsSettings supports retrieval through a Thermostat GET call, setting the includeNotificationSettings to true in the Selection (https://www.ecobee.com/home/developer/api/documentation/v1/objects/Selection.shtml)
The NotificationsSettings object can also be updated using the Thermostat POST method. When POSTing updates to this object please take a note of the required fields, allowed values, and notes about the email address below.
The type corresponds to the Alert.notificationType returned when alerts are included in the selection. See Alert (https://www.ecobee.com/home/developer/api/documentation/v1/objects/Alert.shtml) for more information. When the type is anything other than alert it's configuration will be listed here as part of the NotificationSettings.
type Output ¶
type Output struct {
// The name of the outpute
Name *string `json:"name,omitempty"`
// The thermostat zone the output is associated with
Zone *int `json:"zone,omitempty"`
// The unique output identifier number.
OutputID *int `json:"outputId,omitempty"`
// The type of output. Values: compressor1, compressor2, dehumidifier,
// economizer, fan, heat1, heat2, heat3, heatPumpReversal, humidifer, none,
// occupancy, userDefined, ventilator, zoneCool, zoneFan, zoneHeat.
Type *string `json:"type,omitempty"`
// Whether to send an update message.
SendUpdate *bool `json:"sendUpdate,omitempty"`
// If true, when this output is activated it will close the relay. Otherwise,
// activating the relay will open the relay.
ActiveClosed *bool `json:"activeClosed,omitempty"`
// Time to activate relay - in seconds.
ActivationTime *int `json:"activationTime,omitempty"`
// Time to deactivate relay - in seconds.
DeactivationTime *int `json:"deactivationTime,omitempty"`
}
An output is a relay connected to the thermostat.
type Page ¶
type Page struct {
// The page retrieved or, in the case of a request parameter, the specific page
// requested.
Page *int `json:"page,omitempty"`
// The total pages available.
TotalPages *int `json:"totalPages,omitempty"`
// The number of objects on this page.
PageSize *int `json:"pageSize,omitempty"`
// The total number of objects available.
Total *int `json:"total,omitempty"`
}
The Page object contains the response page information.
type Program ¶
type Program struct {
// The Schedule object defining the program schedule.
Schedule [][]string `json:"schedule,omitempty"`
// The list of Climate objects defining all the climates in the program schedule.
Climates []Climate `json:"climates,omitempty"`
// The currently active climate, identified by its ClimateRef.
CurrentClimateRef *string `json:"currentClimateRef,omitempty"`
}
The thermostat Program is a container for the Schedule and its Climates.
See Core Concepts (https://www.ecobee.com/home/developer/api/introduction/core-concepts.shtml#program) for details on how the program is structured. The schedule property is a two dimensional array containing the climate names.
type RemoteSensor ¶
type RemoteSensor struct {
// The unique sensor identifier. It is composed of deviceName + deviceId
// separated by colons, for example: rs:100
ID *string `json:"id,omitempty"`
// The user assigned sensor name.
Name *string `json:"name,omitempty"`
// The type of sensor. Values: thermostat, ecobee3_remote_sensor,
// monitor_sensor, control_sensor.
Type *string `json:"type,omitempty"`
// The unique 4-digit alphanumeric sensor code. For ecobee3 remote sensors this
// corresponds to the code found on the back of the physical sensor.
Code *string `json:"code,omitempty"`
// This flag indicates whether the remote sensor is currently in use by a
// comfort setting. See Climate for more information.
InUse *bool `json:"inUse,omitempty"`
// The list of remoteSensorCapability objects for the remote sensor.
Capability []RemoteSensorCapability `json:"capability,omitempty"`
}
The RemoteSensor object represents a sensor connected to the thermostat.
The remote sensor data will only show computed occupancy, as does the thermostat. Definition - For a given sensor, computed occupancy means a sensor is occupied if any motion was detected in the past 30 minutes.
RemoteSensor data changes trigger the runtimeRevision to be updated. The data updates are sent at an interval of 3 mins maximum. This means that you should not poll quicker than once every 3 mins for revision changes.
Note: remote sensors may only be modified using the UpdateSensor (https://www.ecobee.com/home/developer/api/documentation/v1/functions/UpdateSensor.shtml) function.
type RemoteSensorCapability ¶
type RemoteSensorCapability struct {
// The unique sensor capability identifier. For example: 1
ID *string `json:"id,omitempty"`
// The type of sensor capability. Values: adc, co2, dryContact, humidity,
// temperature, occupancy, unknown.
Type *string `json:"type,omitempty"`
// The data value for this capability, always a String. Temperature values are
// expressed as degrees Fahrenheit, multiplied by 10. For example, a
// temperature of 72F would be returned as the value "720". Occupancy values
// are "true" or "false". Humidity is expressed as a % value such as "45".
// Unknown values are returned as "unknown".
Value *string `json:"value,omitempty"`
}
The RemoteSensorCapability object represents the specific capability of a sensor connected to the thermostat.
For the occupancy type capability the data will only show computed occupancy, as does the thermostat.
Definition - For a given sensor, computed occupancy means a sensor is occupied if any motion was detected in the past 30 minutes.
type ReportJob ¶
type ReportJob struct {
// The job's unique identifier.
JobID *string `json:"jobId,omitempty"`
// The current status of the job. Values: queued, processing, completed,
// cancelled, error.
Status *string `json:"status,omitempty"`
// The message indicating why the job failed (if status=error).
Message *string `json:"message,omitempty"`
// The list of uploaded file URLs for the corresponding job (if status=completed).
Files []string `json:"files,omitempty"`
}
The ReportJob object represents the job status and contains status-specific properties for a given report job.
A job with status='error' will populate the message field with an explanation of why the job failed. A job with status='complete' will populate the files field with a list of file URLs corresponding to the report bundles for the specified job id.
The ReportJob object is read-only.
type Runtime ¶
type Runtime struct {
// The current runtime revision. Equivalent in meaning to the runtime revision
// number in the thermostat summary call.
RuntimeRev *string `json:"runtimeRev,omitempty"`
// Whether the thermostat is currently connected to the server.
Connected *bool `json:"connected,omitempty"`
// The UTC date/time stamp of when the thermostat first connected to the ecobee
// server.
FirstConnected *string `json:"firstConnected,omitempty"`
// The last recorded connection date and time.
ConnectDateTime *string `json:"connectDateTime,omitempty"`
// The last recorded disconnection date and time.
DisconnectDateTime *string `json:"disconnectDateTime,omitempty"`
// The UTC date/time stamp of when the thermostat was updated. Format:
// YYYY-MM-DD HH:MM:SS
LastModified *string `json:"lastModified,omitempty"`
// The UTC date/time stamp of when the thermostat last posted its runtime
// information. Format: YYYY-MM-DD HH:MM:SS
LastStatusModified *string `json:"lastStatusModified,omitempty"`
// The UTC date of the last runtime reading. Format: YYYY-MM-DD
RuntimeDate *string `json:"runtimeDate,omitempty"`
// The last 5 minute interval which was updated by the thermostat telemetry
// update. Subtract 2 from this interval to obtain the beginning interval for
// the last 3 readings. Multiply by 5 mins to obtain the minutes of the day.
// Range: 0-287
RuntimeInterval *int `json:"runtimeInterval,omitempty"`
// The current temperature displayed on the thermostat.
ActualTemperature *int `json:"actualTemperature,omitempty"`
// The current humidity % shown on the thermostat.
ActualHumidity *int `json:"actualHumidity,omitempty"`
// The dry-bulb temperature recorded by the thermostat. When
// Energy.FeelsLikeMode is set to humidex, Runtime.actualTemperature will
// report a "feels like" temperature.
RawTemperature *int `json:"rawTemperature,omitempty"`
// The currently displayed icon on the thermostat.
ShowIconMode *int `json:"showIconMode,omitempty"`
// The desired heat temperature as per the current running program or active event.
DesiredHeat *int `json:"desiredHeat,omitempty"`
// The desired cool temperature as per the current running program or active event.
DesiredCool *int `json:"desiredCool,omitempty"`
// The desired humidity set point.
DesiredHumidity *int `json:"desiredHumidity,omitempty"`
// The desired dehumidification set point.
DesiredDehumidity *int `json:"desiredDehumidity,omitempty"`
// The desired fan mode. Values: auto, on or null if the HVAC system is off and
// the thermostat is not controlling a fan independently.
DesiredFanMode *string `json:"desiredFanMode,omitempty"`
// This field provides the possible valid range for which a desiredHeat
// setpoint can be set to. This value takes into account the thermostat heat
// temperature limits as well the running program or active events. Values are
// returned as an Integer array representing the canonical minimum and maximim,
// e.g. [450,790].
DesiredHeatRange []int `json:"desiredHeatRange,omitempty"`
// This field provides the possible valid range for which a desiredCool
// setpoint can be set to. This value takes into account the thermostat cool
// temperature limits as well the running program or active events. Values are
// returned as an Integer array representing the canonical minimum and maximim,
// e.g. [650,920].
DesiredCoolRange []int `json:"desiredCoolRange,omitempty"`
}
The runtime object represents the last known thermostat running state. This state is composed from the last interval status message received from a thermostat. It is also updated each time the thermostat posts configuration changes to the server.
The runtime object contains the last 5 minute interval value sent by the thermostat for the past 15 minutes of runtime. The thermostat updates the server every 15 minutes with the last three 5 minute readings.
The actual temperature and humidity will also be updated when the equipment state changes by the thermostat, this may occur at a frequency of 3 minutes, however it is only transmitted when there is an equipment state change on the thermostat.
The runtime object contains two fields, desiredHeatRange and desiredCoolRange, which can be queried and used to determine that any holds being set through the API will not be adjusted. The API caller should check these ranges before calling the setHold function to mitigate against the new set points being adjusted by the server if the values are outside the acceptable ranges.
See Thermostat Interval Report Data (https://www.ecobee.com/home/developer/api/introduction/core-concepts.shtml#data) for additional information about the interval readings.
The runtime object is read-only.
type RuntimeReport ¶
type RuntimeReport struct {
// The thermostat identifier for the report.
ThermostatIdentifier *string `json:"thermostatIdentifier,omitempty"`
// The number of report rows in this report
RowCount *int `json:"rowCount,omitempty"`
// A list of CSV report strings based on the columns requested.
RowList []string `json:"rowList,omitempty"`
}
The runtime report contains the historical runtime information for a thermostat.
The date/times returned in the runtime report are always in thermostat time
type RuntimeSensorMetadata ¶
type RuntimeSensorMetadata struct {
// The unique sensor identifier. It is composed of deviceName + deviceId +
// sensorId (from thermostat.device[].sensor[]) separated by colons. This value
// corresponds to the column name for the sensor reading values.
SensorID *string `json:"sensorId,omitempty"`
// The user assigned sensor name.
SensorName *string `json:"sensorName,omitempty"`
// The type of sensor. See Sensor Types. Values: co2, ctclamp, dryContact,
// humidity, plug, temperature
SensorType *string `json:"sensorType,omitempty"`
// The usage configured for the sensor. Values: dischargeAir, indoor, monitor,
// outdoor
SensorUsage *string `json:"sensorUsage,omitempty"`
}
The metadata description of a sensor as related to the sensor runtime data. This is a reflection of the thermostat.device[].sensor[] information.
Note that the sensor metadata reflects the sensor configuration, type, usage, etc. at the time of the first reading taken as specified by the runtime report start date and interval. This information may not match the sensor information currently in the thermostat if it had changed after the start of the report period. Likewise, a change to the sensor configuration during the report period may result in values which do not match the expected values of the sensor configuration at the beginning of the report.
type RuntimeSensorReport ¶
type RuntimeSensorReport struct {
// The thermostat identifier for the report.
ThermostatIdentifier *string `json:"thermostatIdentifier,omitempty"`
// The list of sensor metadata configured in the thermostat.
Sensors []RuntimeSensorMetadata `json:"sensors,omitempty"`
// The list of column names returned in the data property. The sensor data
// column names match the sensorId within the sensor metadata. The first two
// columns are the date and time, the following are the defined sensorIds.
Columns []string `json:"columns,omitempty"`
// The list of CSV rows containing the column data as defined in the columns
// property.
Data []string `json:"data,omitempty"`
}
The Runtime Sensor Report object is a container for the sensor metadata and runtime data for a single thermostat.
type SecuritySettings ¶
type SecuritySettings struct {
// The 4-digit user access code for the thermostat. The code must be set when
// enabling access control. See the callout above for more information.
UserAccessCode *string `json:"userAccessCode,omitempty"`
// The flag for determining whether there are any restrictions on the thermostat
// regarding access control. Default value is false. If all other values are
// true this value will default to true.
AllUserAccess *bool `json:"allUserAccess,omitempty"`
// The flag for determining whether there are any restrictions on the thermostat
// regarding access control to the Thermostat.Program. Default value is false,
// unless allUserAccess is true.
ProgramAccess *bool `json:"programAccess,omitempty"`
// The flag for determining whether there are any restrictions on the thermostat
// regarding access control to the Thermostat system and settings. Default
// value is false, unless allUserAccess is true.
DetailsAccess *bool `json:"detailsAccess,omitempty"`
// The flag for determining whether there are any restrictions on the thermostat
// regarding access control to the Thermostat quick save functionality. Default
// value is false, unless allUserAccess is true.
QuickSaveAccess *bool `json:"quickSaveAccess,omitempty"`
// The flag for determining whether there are any restrictions on the thermostat
// regarding access control to the Thermostat vacation functionality. Default
// value is false, unless allUserAccess is true.
VacationAccess *bool `json:"vacationAccess,omitempty"`
}
A SecuritySettings object defines the security settings which a thermostat may have. Currently this object stores data specific to access control.
If any of the XXXAccess fields are not supplied they will default to false. So to set all to false where previously some were set to true the caller can either pass all the XXXAccess fields explicitly, or pass none and the default will be set for each.
The userAccessCode may be modified. However, it is important to note that for security reason calls to GET this value will return null if no value is present, or a masked value of '****' if the value has been set.
Note that this object is only available to applications which have implicit authorization such as utilities. See here for more information: Authorization Intro (https://www.ecobee.com/home/developer/api/documentation/v1/auth/auth-intro.shtml).
type Selection ¶
type Selection struct {
// The type of match data supplied: Values: thermostats, registered, managementSet.
SelectionType *string `json:"selectionType,omitempty"`
// The match data based on selectionType (e.g. a list of thermostat idendifiers
// in the case of a selectionType of thermostats)
SelectionMatch *string `json:"selectionMatch,omitempty"`
// Include the thermostat runtime object. If not specified, defaults to false.
IncludeRuntime *bool `json:"includeRuntime,omitempty"`
// Include the extended thermostat runtime object. If not specified, defaults
// to false.
IncludeExtendedRuntime *bool `json:"includeExtendedRuntime,omitempty"`
// Include the electricity readings object. If not specified, defaults to false.
IncludeElectricity *bool `json:"includeElectricity,omitempty"`
// Include the thermostat settings object. If not specified, defaults to false.
IncludeSettings *bool `json:"includeSettings,omitempty"`
// Include the thermostat location object. If not specified, defaults to false.
IncludeLocation *bool `json:"includeLocation,omitempty"`
// Include the thermostat program object. If not specified, defaults to false.
IncludeProgram *bool `json:"includeProgram,omitempty"`
// Include the thermostat calendar events objects. If not specified, defaults
// to false.
IncludeEvents *bool `json:"includeEvents,omitempty"`
// Include the thermostat device configuration objects. If not specified,
// defaults to false.
IncludeDevice *bool `json:"includeDevice,omitempty"`
// Include the thermostat technician object. If not specified, defaults to false.
IncludeTechnician *bool `json:"includeTechnician,omitempty"`
// Include the thermostat utility company object. If not specified, defaults to
// false.
IncludeUtility *bool `json:"includeUtility,omitempty"`
// Include the thermostat management company object. If not specified, defaults
// to false.
IncludeManagement *bool `json:"includeManagement,omitempty"`
// Include the thermostat's unacknowledged alert objects. If not specified,
// defaults to false.
IncludeAlerts *bool `json:"includeAlerts,omitempty"`
//
IncludeReminders *bool `json:"includeReminders,omitempty"`
// Include the current thermostat weather forecast object. If not specified,
// defaults to false.
IncludeWeather *bool `json:"includeWeather,omitempty"`
// Include the current thermostat house details object. If not specified,
// defaults to false.
IncludeHouseDetails *bool `json:"includeHouseDetails,omitempty"`
// Include the current thermostat OemCfg object. If not specified, defaults to
// false.
IncludeOEMCfg *bool `json:"includeOemCfg,omitempty"`
// Include the current thermostat equipment status information. If not
// specified, defaults to false.
IncludeEquipmentStatus *bool `json:"includeEquipmentStatus,omitempty"`
// Include the current thermostat alert and reminders settings. If not
// specified, defaults to false.
IncludeNotificationSettings *bool `json:"includeNotificationSettings,omitempty"`
// Include the current thermostat privacy settings. Note: access to this object
// is restricted to callers with implicit authentication, setting this value to
// true without proper credentials will result in an authentication exception.
IncludePrivacy *bool `json:"includePrivacy,omitempty"`
// Include the current firmware version the Thermostat is running. If not
// specified, defaults to false.
IncludeVersion *bool `json:"includeVersion,omitempty"`
// Include the current securitySettings object for the selected Thermostat(s).
// If not specified, defaults to false.
IncludeSecuritySettings *bool `json:"includeSecuritySettings,omitempty"`
// Include the list of current thermostatRemoteSensor objects for the selected
// Thermostat(s). If not specified, defaults to false.
IncludeSensors *bool `json:"includeSensors,omitempty"`
// Include the audio configuration for the selected Thermostat(s). If not
// specified, defaults to false.
IncludeAudio *bool `json:"includeAudio,omitempty"`
// Include the energy configuration for the selected Thermostat(s). If not
// specified, defaults to false.
IncludeEnergy *bool `json:"includeEnergy,omitempty"`
}
The selection object defines the resources and information to return as part of a response. The selection is required in all requests however meaning of some selection fields is only meaningful to certain types of requests.
The selectionType parameter defines the type of selection to perform. The selectionMatch specifies the matching criteria for the type specified.
type Sensor ¶
type Sensor struct {
// The sensor name
Name *string `json:"name,omitempty"`
// The sensor manufacturer
Manufacturer *string `json:"manufacturer,omitempty"`
// The sensor model
Model *string `json:"model,omitempty"`
// The thermostat zone the sensor is associated with
Zone *int `json:"zone,omitempty"`
// The unique sensor identifier
SensorID *int `json:"sensorId,omitempty"`
// The type of sensor. Values: adc, co2, dryCOntact, humidity, temperature,
// unknown.
Type *string `json:"type,omitempty"`
// The sensor usage type. Values: dischargeAir, indoor, monitor, outdoor.
Usage *string `json:"usage,omitempty"`
// The number of bits the adc has been configured to use.
NumberOfBits *int `json:"numberOfBits,omitempty"`
// Value of the bconstant value used in temperature sensors
Bconstant *int `json:"bconstant,omitempty"`
// The sensor thermistor value, ie. 10K thermistor=10000, 2.5K thermistor=2500
ThermistorSize *int `json:"thermistorSize,omitempty"`
// The user adjustable temperature compensation applied to the temperature reading.
TempCorrection *int `json:"tempCorrection,omitempty"`
// The sensor thermistor gain value.
Gain *int `json:"gain,omitempty"`
// The sensor thermistor max voltage in Volts, 5=5V, 10=10V.
MaxVoltage *int `json:"maxVoltage,omitempty"`
// The multiplier value used in sensors (1000x value).
Multiplier *int `json:"multiplier,omitempty"`
// A list of SensorState objects
States []State `json:"states,omitempty"`
}
The Sensor object represents a sensor connected to the thermostat. Sensors may not be modified using the API, however some configuration may occur through the web portal.
type Settings ¶
type Settings struct {
// The current HVAC mode the thermostat is in. Values: auto, auxHeatOnly, cool,
// heat, off.
HVACMode *string `json:"hvacMode,omitempty"`
// The last service date of the HVAC equipment.
LastServiceDate *string `json:"lastServiceDate,omitempty"`
// Whether to send an alert when service is required again.
ServiceRemindMe *bool `json:"serviceRemindMe,omitempty"`
// The user configured monthly interval between HVAC service reminders
MonthsBetweenService *int `json:"monthsBetweenService,omitempty"`
// Date to be reminded about the next HVAC service date.
RemindMeDate *string `json:"remindMeDate,omitempty"`
// The ventilator mode. Values: auto, minontime, on, off.
Vent *string `json:"vent,omitempty"`
// The minimum time in minutes the ventilator is configured to run. The
// thermostat will always guarantee that the ventilator runs for this minimum
// duration whenever engaged.
VentilatorMinOnTime *int `json:"ventilatorMinOnTime,omitempty"`
// Whether the technician associated with this thermostat should receive the
// HVAC service reminders as well.
ServiceRemindTechnician *bool `json:"serviceRemindTechnician,omitempty"`
// A note about the physical location where the SMART or EMS Equipment
// Interface module is located.
EILocation *string `json:"eiLocation,omitempty"`
// The temperature at which a cold temp alert is triggered.
ColdTempAlert *int `json:"coldTempAlert,omitempty"`
// Whether cold temperature alerts are enabled.
ColdTempAlertEnabled *bool `json:"coldTempAlertEnabled,omitempty"`
// The temperature at which a hot temp alert is triggered.
HotTempAlert *int `json:"hotTempAlert,omitempty"`
// Whether hot temperature alerts are enabled.
HotTempAlertEnabled *bool `json:"hotTempAlertEnabled,omitempty"`
// The number of cool stages the connected HVAC equipment supports.
CoolStages *int `json:"coolStages,omitempty"`
// The number of heat stages the connected HVAC equipment supports.
HeatStages *int `json:"heatStages,omitempty"`
// The maximum automated set point set back offset allowed in degrees.
MaxSetBack *int `json:"maxSetBack,omitempty"`
// The maximum automated set point set forward offset allowed in degrees.
MaxSetForward *int `json:"maxSetForward,omitempty"`
// The set point set back offset, in degrees, configured for a quick save event.
QuickSaveSetBack *int `json:"quickSaveSetBack,omitempty"`
// The set point set forward offset, in degrees, configured for a quick save event.
QuickSaveSetForward *int `json:"quickSaveSetForward,omitempty"`
// Whether the thermostat is controlling a heat pump.
HasHeatPump *bool `json:"hasHeatPump,omitempty"`
// Whether the thermostat is controlling a forced air furnace.
HasForcedAir *bool `json:"hasForcedAir,omitempty"`
// Whether the thermostat is controlling a boiler.
HasBoiler *bool `json:"hasBoiler,omitempty"`
// Whether the thermostat is controlling a humidifier.
HasHumidifier *bool `json:"hasHumidifier,omitempty"`
// Whether the thermostat is controlling an energy recovery ventilator.
HasERV *bool `json:"hasErv,omitempty"`
// Whether the thermostat is controlling a heat recovery ventilator.
HasHRV *bool `json:"hasHrv,omitempty"`
// Whether the thermostat is in frost control mode.
CondensationAvoid *bool `json:"condensationAvoid,omitempty"`
// Whether the thermostat is configured to report in degrees Celcius.
UseCelsius *bool `json:"useCelsius,omitempty"`
// Whether the thermostat is using 12hr time format.
UseTimeFormat12 *bool `json:"useTimeFormat12,omitempty"`
// Multilanguage support, currently only "en" - english is supported. In future
// others locales can be supported.
Locale *string `json:"locale,omitempty"`
// The minimum humidity level (in percent) set point for the humidifier
Humidity *string `json:"humidity,omitempty"`
// The humidifier mode. Values: auto, manual, off.
HumidifierMode *string `json:"humidifierMode,omitempty"`
// The thermostat backlight intensity when on. A value between 0 and 10, with 0
// meaning 'off' - the zero value may not be honored by all ecobee versions.
BacklightOnIntensity *int `json:"backlightOnIntensity,omitempty"`
// The thermostat backlight intensity when asleep. A value between 0 and 10,
// with 0 meaning 'off' - the zero value may not be honored by all ecobee
// versions.
BacklightSleepIntensity *int `json:"backlightSleepIntensity,omitempty"`
// The time in seconds before the thermostat screen goes into sleep mode.
BacklightOffTime *int `json:"backlightOffTime,omitempty"`
// The field is deprecated. Please use Audio.soundTickVolume.
SoundTickVolume *int `json:"soundTickVolume,omitempty"`
// The field is deprecated. Please use Audio.soundAlertVolume.
SoundAlertVolume *int `json:"soundAlertVolume,omitempty"`
// The minimum time the compressor must be off for in order to prevent
// short-cycling.
CompressorProtectionMinTime *int `json:"compressorProtectionMinTime,omitempty"`
// The minimum outdoor temperature that the compressor can operate at - applies
// more to air source heat pumps than geothermal.
CompressorProtectionMinTemp *int `json:"compressorProtectionMinTemp,omitempty"`
// The difference between current temperature and set-point that will trigger
// stage 2 heating.
Stage1HeatingDifferentialTemp *int `json:"stage1HeatingDifferentialTemp,omitempty"`
// The difference between current temperature and set-point that will trigger
// stage 2 cooling.
Stage1CoolingDifferentialTemp *int `json:"stage1CoolingDifferentialTemp,omitempty"`
// The time after a heating cycle that the fan will run for to extract any
// heating left in the system - 30 second default.
Stage1HeatingDissipationTime *int `json:"stage1HeatingDissipationTime,omitempty"`
// The time after a cooling cycle that the fan will run for to extract any
// cooling left in the system - 30 second default (for not)
Stage1CoolingDissipationTime *int `json:"stage1CoolingDissipationTime,omitempty"`
// The flag to tell if the heat pump is in heating mode or in cooling when the
// relay is engaged. If set to zero it's heating when the reversing valve is
// open, cooling when closed and if it's one - it's the opposite.
HeatPumpReversalOnCool *bool `json:"heatPumpReversalOnCool,omitempty"`
// Whether fan control by the Thermostat is required in auxiliary heating
// (gas/electric/boiler), otherwise controlled by furnace.
FanControlRequired *bool `json:"fanControlRequired,omitempty"`
// The minimum time, in minutes, to run the fan each hour. Value from 1 to 60.
FanMinOnTime *int `json:"fanMinOnTime,omitempty"`
// The minimum temperature difference between the heat and cool values. Used to
// ensure that when thermostat is in auto mode, the heat and cool values are
// separated by at least this value.
HeatCoolMinDelta *int `json:"heatCoolMinDelta,omitempty"`
// The amount to adjust the temperature reading in degrees F - this value is
// subtracted from the temperature read from the sensor.
TempCorrection *int `json:"tempCorrection,omitempty"`
// The default end time setting the thermostat applies to user temperature
// holds. Values useEndTime4hour, useEndTime2hour (EMS Only), nextPeriod,
// indefinite, askMe
HoldAction *string `json:"holdAction,omitempty"`
// Whether the Thermostat uses a geothermal / ground source heat pump.
HeatPumpGroundWater *bool `json:"heatPumpGroundWater,omitempty"`
// Whether the thermostat is connected to an electric HVAC system.
HasElectric *bool `json:"hasElectric,omitempty"`
// Whether the thermostat is connected to a dehumidifier. If true or
// dehumidifyOvercoolOffset > 0 then allow setting dehumidifierMode and
// dehumidifierLevel.
HasDehumidifier *bool `json:"hasDehumidifier,omitempty"`
// The dehumidifier mode. Values: on, off. If set to off then the dehumidifier
// will not run, nor will the AC overcool run.
DehumidifierMode *string `json:"dehumidifierMode,omitempty"`
// The dehumidification set point in percentage.
DehumidifierLevel *int `json:"dehumidifierLevel,omitempty"`
// Whether the thermostat should use AC overcool to dehumidify. When set to
// true a postive integer value must be supplied for dehumidifyOvercoolOffset
// otherwise an API validation exception will be thrown.
DehumidifyWithAC *bool `json:"dehumidifyWithAC,omitempty"`
// Whether the thermostat should use AC overcool to dehumidify and what that
// temperature offset should be. A value of 0 means this feature is disabled
// and dehumidifyWithAC will be set to false. Value represents the value in F
// to subract from the current set point. Values should be in the range 0 - 50
// and be divisible by 5.
DehumidifyOvercoolOffset *int `json:"dehumidifyOvercoolOffset,omitempty"`
// If enabled, allows the Thermostat to be put in HVACAuto mode.
AutoHeatCoolFeatureEnabled *bool `json:"autoHeatCoolFeatureEnabled,omitempty"`
// Whether the alert for when wifi is offline is enabled.
WiFiOfflineAlert *bool `json:"wifiOfflineAlert,omitempty"`
// The minimum heat set point allowed by the thermostat firmware.
HeatMinTemp *int `json:"heatMinTemp,omitempty"`
// The maximum heat set point allowed by the thermostat firmware.
HeatMaxTemp *int `json:"heatMaxTemp,omitempty"`
// The minimum cool set point allowed by the thermostat firmware.
CoolMinTemp *int `json:"coolMinTemp,omitempty"`
// The maximum cool set point allowed by the thermostat firmware.
CoolMaxTemp *int `json:"coolMaxTemp,omitempty"`
// The maximum heat set point configured by the user's preferences.
HeatRangeHigh *int `json:"heatRangeHigh,omitempty"`
// The minimum heat set point configured by the user's preferences.
HeatRangeLow *int `json:"heatRangeLow,omitempty"`
// The maximum cool set point configured by the user's preferences.
CoolRangeHigh *int `json:"coolRangeHigh,omitempty"`
// The minimum heat set point configured by the user's preferences.
CoolRangeLow *int `json:"coolRangeLow,omitempty"`
// The user access code value for this thermostat. See the SecuritySettings
// object for more information.
UserAccessCode *string `json:"userAccessCode,omitempty"`
// The integer representation of the user access settings. See the
// SecuritySettings object for more information.
UserAccessSetting *int `json:"userAccessSetting,omitempty"`
// The temperature at which an auxHeat temperature alert is triggered.
AuxRuntimeAlert *int `json:"auxRuntimeAlert,omitempty"`
// The temperature at which an auxOutdoor temperature alert is triggered.
AuxOutdoorTempAlert *int `json:"auxOutdoorTempAlert,omitempty"`
// The maximum outdoor temperature above which aux heat will not run.
AuxMaxOutdoorTemp *int `json:"auxMaxOutdoorTemp,omitempty"`
// Whether the auxHeat temperature alerts are enabled.
AuxRuntimeAlertNotify *bool `json:"auxRuntimeAlertNotify,omitempty"`
// Whether the auxOutdoor temperature alerts are enabled.
AuxOutdoorTempAlertNotify *bool `json:"auxOutdoorTempAlertNotify,omitempty"`
// Whether the auxHeat temperature alerts for the technician are enabled.
AuxRuntimeAlertNotifyTechnician *bool `json:"auxRuntimeAlertNotifyTechnician,omitempty"`
// Whether the auxOutdoor temperature alerts for the technician are enabled.
AuxOutdoorTempAlertNotifyTechnician *bool `json:"auxOutdoorTempAlertNotifyTechnician,omitempty"`
// Whether the thermostat should use pre heating to reach the set point on time.
DisablePreHeating *bool `json:"disablePreHeating,omitempty"`
// Whether the thermostat should use pre cooling to reach the set point on time.
DisablePreCooling *bool `json:"disablePreCooling,omitempty"`
// Whether an installer code is required.
InstallerCodeRequired *bool `json:"installerCodeRequired,omitempty"`
// Whether Demand Response requests are accepted by this thermostat. Possible
// values are: always, askMe, customerSelect, defaultAccept, defaultDecline,
// never.
DRAccept *string `json:"drAccept,omitempty"`
// Whether the property is a rental, or not.
IsRentalProperty *bool `json:"isRentalProperty,omitempty"`
// Whether to use a zone controller or not.
UseZoneController *bool `json:"useZoneController,omitempty"`
// Whether random start delay is enabled for cooling.
RandomStartDelayCool *int `json:"randomStartDelayCool,omitempty"`
// Whether random start delay is enabled for heating.
RandomStartDelayHeat *int `json:"randomStartDelayHeat,omitempty"`
// The humidity level to trigger a high humidity alert.
HumidityHighAlert *int `json:"humidityHighAlert,omitempty"`
// The humidity level to trigger a low humidity alert.
HumidityLowAlert *int `json:"humidityLowAlert,omitempty"`
// Whether heat pump alerts are disabled.
DisableHeatPumpAlerts *bool `json:"disableHeatPumpAlerts,omitempty"`
// Whether alerts are disabled from showing on the thermostat.
DisableAlertsOnIDT *bool `json:"disableAlertsOnIdt,omitempty"`
// Whether humidification alerts are enabled to the thermsotat owner.
HumidityAlertNotify *bool `json:"humidityAlertNotify,omitempty"`
// Whether humidification alerts are enabled to the technician associated with
// the thermsotat.
HumidityAlertNotifyTechnician *bool `json:"humidityAlertNotifyTechnician,omitempty"`
// Whether temperature alerts are enabled to the thermsotat owner.
TempAlertNotify *bool `json:"tempAlertNotify,omitempty"`
// Whether temperature alerts are enabled to the technician associated with the
// thermostat.
TempAlertNotifyTechnician *bool `json:"tempAlertNotifyTechnician,omitempty"`
// The dollar amount the owner specifies for their desired maximum electricy bill.
MonthlyElectricityBillLimit *int `json:"monthlyElectricityBillLimit,omitempty"`
// Whether electricity bill alerts are enabled.
EnableElectricityBillAlert *bool `json:"enableElectricityBillAlert,omitempty"`
// Whether electricity bill projection alerts are enabled
EnableProjectedElectricityBillAlert *bool `json:"enableProjectedElectricityBillAlert,omitempty"`
// The day of the month the owner's electricty usage is billed.
ElectricityBillingDayOfMonth *int `json:"electricityBillingDayOfMonth,omitempty"`
// The owners billing cycle duration in months.
ElectricityBillCycleMonths *int `json:"electricityBillCycleMonths,omitempty"`
// The annual start month of the owners billing cycle.
ElectricityBillStartMonth *int `json:"electricityBillStartMonth,omitempty"`
// The number of minutes to run ventilator per hour when home.
VentilatorMinOnTimeHome *int `json:"ventilatorMinOnTimeHome,omitempty"`
// The number of minutes to run ventilator per hour when away.
VentilatorMinOnTimeAway *int `json:"ventilatorMinOnTimeAway,omitempty"`
// Determines whether or not to turn the backlight off during sleep.
BacklightOffDuringSleep *bool `json:"backlightOffDuringSleep,omitempty"`
// When set to true if no occupancy motion detected thermostat will go into
// indefinite away hold, until either the user presses resume schedule or
// motion is detected.
AutoAway *bool `json:"autoAway,omitempty"`
// When set to true if a larger than normal delta is found between sensors the
// fan will be engaged for 15min/hour.
SmartCirculation *bool `json:"smartCirculation,omitempty"`
// When set to true if a sensor has detected presense for more than 10 minutes
// then include that sensor in temp average. If no activity has been seen on a
// sensor for more than 1 hour then remove this sensor from temperature
// average.
FollowMeComfort *bool `json:"followMeComfort,omitempty"`
// This read-only field represents the type of ventilator present for the
// Thermostat. The possible values are none, ventilator, hrv, and erv.
VentilatorType *string `json:"ventilatorType,omitempty"`
// This Boolean field represents whether the ventilator timer is on or off. The
// default value is false. If set to true the ventilatorOffDateTime is set to
// now() + 20 minutes. If set to false the ventilatorOffDateTime is set to it's
// default value.
IsVentilatorTimerOn *bool `json:"isVentilatorTimerOn,omitempty"`
// This read-only field represents the Date and Time the ventilator will run
// until. The default value is 2014-01-01 00:00:00.
VentilatorOffDateTime *string `json:"ventilatorOffDateTime,omitempty"`
// This Boolean field represents whether the HVAC system has a UV filter. The
// default value is true.
HasUVFilter *bool `json:"hasUVFilter,omitempty"`
// This field represents whether to permit the cooling to operate when the
// Outdoor temeperature is under a specific threshold, currently 55F. The
// default value is false.
CoolingLockout *bool `json:"coolingLockout,omitempty"`
// Whether to use the ventilator to dehumidify when climate or calendar event
// indicates the owner is home. The default value is false.
VentilatorFreeCooling *bool `json:"ventilatorFreeCooling,omitempty"`
// This field represents whether to permit dehumidifer to operate when the
// heating is running. The default value is false.
DehumidifyWhenHeating *bool `json:"dehumidifyWhenHeating,omitempty"`
// This field represents whether or not to allow dehumification when cooling.
// The default value is true.
VentilatorDehumidify *bool `json:"ventilatorDehumidify,omitempty"`
// The unique reference to the group this thermostat belongs to, if any. See
// GET Group request and POST Group request for more information.
GroupRef *string `json:"groupRef,omitempty"`
// The name of the the group this thermostat belongs to, if any. See GET Group
// request and POST Group request for more information.
GroupName *string `json:"groupName,omitempty"`
// The setting value for the group this thermostat belongs to, if any. See GET
// Group request and POST Group request for more information.
GroupSetting *int `json:"groupSetting,omitempty"`
// What's the default Fan Speed on a HVAC with multi-span. Accepted values:
// low, medium, high, and optimized.
FanSpeed *string `json:"fanSpeed,omitempty"`
}
The Settings contains all the configuration properties of the thermostat.
type State ¶
type State struct {
// The maximum value the sensor can generate.
MaxValue *int `json:"maxValue,omitempty"`
// The minimum value the sensor can generate.
MinValue *int `json:"minValue,omitempty"`
// Values: coolHigh, coolLow, heatHigh, heatLow, high, low, transitionCount,
// normal.
Type *string `json:"type,omitempty"`
// The list of StateAction objects associated with the sensor.
Actions []Action `json:"actions,omitempty"`
}
A sensor state is a configurable trigger for a number of SensorActions.
type Status ¶
type Status struct {
// The status code for this status.
Code *int `json:"code,omitempty"`
// The detailed message for this status.
Message *string `json:"message,omitempty"`
}
The response status object contains the processing status of the request. It will contain any relevant error information should an error occur. The status object is returned with every response regardless of success or failure status. It is suitable for logging request failures.
type Technician ¶
type Technician struct {
// The internal ecobee unique identifier for this contractor.
ContractorRef *string `json:"contractorRef,omitempty"`
// The company name of the technician.
Name *string `json:"name,omitempty"`
// The technician's contact phone number.
Phone *string `json:"phone,omitempty"`
// The technician's street address.
StreetAddress *string `json:"streetAddress,omitempty"`
// The technician's city.
City *string `json:"city,omitempty"`
// The technician's State or Province.
ProvinceState *string `json:"provinceState,omitempty"`
// The technician's country.
Country *string `json:"country,omitempty"`
// The technician's ZIP or Postal Code.
PostalCode *string `json:"postalCode,omitempty"`
// The technician's email address.
Email *string `json:"email,omitempty"`
// The technician's web site.
Web *string `json:"web,omitempty"`
}
The technician object contains information pertaining to the technician associated with a thermostat. The technician may not be modified through the API.
type Thermostat ¶
type Thermostat struct {
// The unique thermostat serial number.
Identifier *string `json:"identifier,omitempty"`
// A user defined name for a thermostat.
Name *string `json:"name,omitempty"`
// The current thermostat configuration revision.
ThermostatRev *string `json:"thermostatRev,omitempty"`
// Whether the user registered the thermostat.
IsRegistered *bool `json:"isRegistered,omitempty"`
// The thermostat model number. Values: apolloSmart, apolloEms, idtSmart,
// idtEms, siSmart, siEms, athenaSmart, athenaEms, corSmart, nikeSmart, nikeEms
ModelNumber *string `json:"modelNumber,omitempty"`
// The thermostat brand.
Brand *string `json:"brand,omitempty"`
// The comma-separated list of the thermostat's additional features, if any.
Features *string `json:"features,omitempty"`
// The last modified date time for the thermostat configuration.
LastModified *string `json:"lastModified,omitempty"`
// The current time in the thermostat's time zone
ThermostatTime *string `json:"thermostatTime,omitempty"`
// The current time in UTC.
UTCTime *string `json:"utcTime,omitempty"`
// The thermostat audio configuration
Audio *Audio `json:"audio,omitempty"`
// The list of Alert objects tied to the thermostat
Alerts []Alert `json:"alerts,omitempty"`
//
Reminders []ThermostatReminder2 `json:"reminders,omitempty"`
// The thermostat Setting object linked to the thermostat
Settings *Settings `json:"settings,omitempty"`
// The Runtime state object for the thermostat
Runtime *Runtime `json:"runtime,omitempty"`
// The ExtendedRuntime object for the thermostat
ExtendedRuntime *ExtendedRuntime `json:"extendedRuntime,omitempty"`
// The Electricity object for the thermostat
Electricity *Electricity `json:"electricity,omitempty"`
// The list of Device objects linked to the thermostat
Devices []Device `json:"devices,omitempty"`
// The Location object for the thermostat
Location *Location `json:"location,omitempty"`
// The thermostat energy configuration
Energy *Energy `json:"energy,omitempty"`
// The Technician object associated with the thermostat containing the
// technician contact information
Technician *Technician `json:"technician,omitempty"`
// The Utility object associated with the thermostat containing the utility
// company information
Utility *Utility `json:"utility,omitempty"`
// The Management object associated with the thermostat containing the
// management company information
Management *Management `json:"management,omitempty"`
// The Weather object linked to the thermostat representing the current weather
// on the thermostat.
Weather *Weather `json:"weather,omitempty"`
// The list of Event objects linked to the thermostat representing any events
// that are active or scheduled.
Events []Event `json:"events,omitempty"`
// The Program object for the thermostat
Program *Program `json:"program,omitempty"`
// The houseDetails object contains contains the information about the house
// the thermostat is installed in.
HouseDetails *HouseDetails `json:"houseDetails,omitempty"`
// The OemCfg object contains information about the OEM specific thermostat.
OEMCfg *ThermostatOEMCfg `json:"oemCfg,omitempty"`
// The status of all equipment controlled by this Thermostat. Only running
// equipment is listed in the CSV String. Values: heatPump, heatPump2,
// heatPump3, compCool1, compCool2, auxHeat1, auxHeat2, auxHeat3, fan,
// humidifier, dehumidifier, ventilator, economizer, compHotWater, auxHotWater.
// Note: If no equipment is currently running an empty String is returned. If
// Settings.hasHeatPump is true, heatPump value will be returned for heating,
// compCool for cooling, and auxHeat for aux heat. If Settings.hasForcedAir or
// Settings.hasBoiler is true, auxHeat value will be returned for heating and
// compCool for cooling (heatPump will not show up for heating).
EquipmentStatus *string `json:"equipmentStatus,omitempty"`
// The NotificationSettings object containing the configuration for Alert and
// Reminders for the Thermostat.
NotificationSettings *NotificationSettings `json:"notificationSettings,omitempty"`
// The Privacy object containing the privacy settings for the Thermostat. Note:
// access to this object is restricted to callers with implicit authentication.
Privacy *ThermostatPrivacy `json:"privacy,omitempty"`
// The Version object containing the firmware version information for the
// Thermostat. For example: "3.5.0.3957".
Version *Version `json:"version,omitempty"`
// The SecuritySettings object containing the security settings for the Thermostat.
SecuritySettings *SecuritySettings `json:"securitySettings,omitempty"`
//
FilterSubscription *APIFilterSubscription `json:"filterSubscription,omitempty"`
// The list of RemoteSensor objects for the Thermostat.
RemoteSensors []RemoteSensor `json:"remoteSensors,omitempty"`
}
The thermostat object is the central piece of the ecobee API. All objects relate in one way or another to a real thermostat. The thermostat object and its component objects define the real thermostat device.
type ThermostatOEMCfg ¶
type ThermostatOEMCfg struct {
SerialNumber *string `json:"serialNumber,omitempty"`
CCfg map[string]interface{} `json:"cCfg,omitempty"`
}
This object is currently undocumented by ecobee.
type ThermostatPrivacy ¶
type ThermostatPrivacy struct {
AllowContractorAlerts *bool `json:"allowContractorAlerts,omitempty"`
AllowContractorHVACReports *bool `json:"allowContractorHvacReports,omitempty"`
AllowContractorHeatPumpConfiguration *bool `json:"allowContractorHeatPumpConfiguration,omitempty"`
}
This object is currently undocumented by ecobee.
type ThermostatReminder2 ¶
type ThermostatReminder2 struct {
}
This object is currently undocumented by ecobee.
type TimeOfUse ¶
type TimeOfUse struct {
FeatureState *string `json:"featureState,omitempty"`
Savings *string `json:"savings,omitempty"`
}
This object is currently undocumented by ecobee.
type User ¶
type User struct {
// The User login userName. Usually a valid email address.
UserName *string `json:"userName,omitempty"`
// The User display name.
DisplayName *string `json:"displayName,omitempty"`
// The User first name.
FirstName *string `json:"firstName,omitempty"`
// The User last name.
LastName *string `json:"lastName,omitempty"`
// The User title such as Mr. or Mrs.
Honorific *string `json:"honorific,omitempty"`
// The User date of registration.
RegisterDate *string `json:"registerDate,omitempty"`
// The User time of registration.
RegisterTime *string `json:"registerTime,omitempty"`
// The Thermostat identifier this User is associated with.
DefaultThermostatIdentifier *string `json:"defaultThermostatIdentifier,omitempty"`
// The User management reference.
ManagementRef *string `json:"managementRef,omitempty"`
// The User utility reference.
UtilityRef *string `json:"utilityRef,omitempty"`
// The User support reference.
SupportRef *string `json:"supportRef,omitempty"`
// The User phone Number.
PhoneNumber *string `json:"phoneNumber,omitempty"`
//
UtilityTimeZone *string `json:"utilityTimeZone,omitempty"`
//
ManagementTimeZone *string `json:"managementTimeZone,omitempty"`
//
IsResidential *bool `json:"isResidential,omitempty"`
// Whether this user has a developer role.
IsDeveloper *bool `json:"isDeveloper,omitempty"`
// Whether this user has a management role.
IsManagement *bool `json:"isManagement,omitempty"`
// Whether this user has a utility role.
IsUtility *bool `json:"isUtility,omitempty"`
// Whether this user has a contractor role.
IsContractor *bool `json:"isContractor,omitempty"`
}
The User object. The User object contains information pertaining to the User associated with a thermostat.
type Utility ¶
type Utility struct {
// The Utility company name.
Name *string `json:"name,omitempty"`
// The Utility company contact phone number.
Phone *string `json:"phone,omitempty"`
// The Utility company email address.
Email *string `json:"email,omitempty"`
// The Utility company web site.
Web *string `json:"web,omitempty"`
}
The Utility information the Thermostat (https://www.ecobee.com/home/developer/api/documentation/v1/objects/Thermostat.shtml) belongs to. The utility may not be modified through the API.
type Version ¶
type Version struct {
// The thermostat firmware version number.
ThermostatFirmwareVersion *string `json:"thermostatFirmwareVersion,omitempty"`
}
The Version object contains version information about the thermostat.
type VoiceEngine ¶
type VoiceEngine struct {
// The name of the voice engine.
Name *string `json:"name,omitempty"`
// True if the voice engine is currently enabled (paired) for the ecobee
// account of selected thermostat. You can change the flag value by using
// UnlinkVoiceEngine thermostat function.
Enabled *bool `json:"enabled,omitempty"`
}
The Voice Engine object contains information about the voice assistant that the selected thermostat supports.
type Weather ¶
type Weather struct {
// The time stamp in UTC of the weather forecast.
Timestamp *string `json:"timestamp,omitempty"`
// The weather station identifier.
WeatherStation *string `json:"weatherStation,omitempty"`
// The list of latest weather station forecasts.
Forecasts []WeatherForecast `json:"forecasts,omitempty"`
}
The Weather object contains the weather and forecast information for the thermostat's location.
type WeatherForecast ¶
type WeatherForecast struct {
// The Integer value used to map to a weatherSymbol. See list of mappings above.
WeatherSymbol *int `json:"weatherSymbol,omitempty"`
// The time stamp of the weather forecast.
DateTime *string `json:"dateTime,omitempty"`
// A text value representing the current weather condition.
Condition *string `json:"condition,omitempty"`
// The current temperature.
Temperature *int `json:"temperature,omitempty"`
// The current barometric pressure.
Pressure *int `json:"pressure,omitempty"`
// The current humidity.
RelativeHumidity *int `json:"relativeHumidity,omitempty"`
// The dewpoint.
Dewpoint *int `json:"dewpoint,omitempty"`
// The visibility in meters; 0 - 70,000.
Visibility *int `json:"visibility,omitempty"`
// The wind speed as an integer in mph * 1000.
WindSpeed *int `json:"windSpeed,omitempty"`
// The wind gust speed.
WindGust *int `json:"windGust,omitempty"`
// The wind direction.
WindDirection *string `json:"windDirection,omitempty"`
// The wind bearing.
WindBearing *int `json:"windBearing,omitempty"`
// Probability of precipitation.
Pop *int `json:"pop,omitempty"`
// The predicted high temperature for the day.
TempHigh *int `json:"tempHigh,omitempty"`
// The predicted low temperature for the day.
TempLow *int `json:"tempLow,omitempty"`
// The cloud cover condition.
Sky *int `json:"sky,omitempty"`
}
The Weather Forecast contains the weather forecast information for the thermostat. The first forecast is the most accurate, later forecasts become less accurate in distance and time.
Source Files
¶
- action.go
- alert.go
- apifiltersubscription.go
- audio.go
- climate.go
- demandmanagement.go
- demandresponse.go
- device.go
- ecpdemandresponse.go
- electricity.go
- electricitydevice.go
- electricitytier.go
- energy.go
- equipmentsetting.go
- event.go
- extendedruntime.go
- function.go
- generalsetting.go
- group.go
- hierarchyprivilege.go
- hierarchyset.go
- hierarchyuser.go
- housedetails.go
- limitsetting.go
- location.go
- management.go
- meterreport.go
- meterreportdata.go
- notificationsettings.go
- output.go
- page.go
- program.go
- remotesensor.go
- remotesensorcapability.go
- reportjob.go
- runtime.go
- runtimereport.go
- runtimesensormetadata.go
- runtimesensorreport.go
- securitysettings.go
- selection.go
- sensor.go
- settings.go
- state.go
- status.go
- technician.go
- thermostat.go
- thermostatoemcfg.go
- thermostatprivacy.go
- thermostatreminder2.go
- timeofuse.go
- user.go
- utility.go
- version.go
- voiceengine.go
- weather.go
- weatherforecast.go