OpenADR 2.0 Demand Response Program Guide

OpenADR 2.0

Demand Response Program Guide

Revision Number: 0.92

Document Status: Working Text

Document Number: 20140701

Copyright © OpenADR Alliance (2014/15). All rights Reserved. The information within this document is the property of the OpenADR Alliance and its use and disclosure are restricted.

CONTENTS

1 Introduction 6

2 References 6

3 Terms and Definitions 6

4 Abbreviations 9

5 Demand Response Program Types 9

6 Deployment Scenarios 10

6.1 Direct 1 11

6.2 Direct 2 12

6.3 Direct 3 13

6.4 Direct 4 14

6.5 Facilitator 1 15

6.6 Aggregator 1 16

7 Deployment Scenario and DR Program Mapping 16

8 Selecting a DR Program Template 18

9 Demand Response Program Templates 21

9.1 Critical Peak Pricing Program (CPP) 21

9.1.1 CPP DR Program Characteristics 21

9.1.2 OpenADR Characteristics for CPP Programs 22

9.2 Capacity Bidding Program 24

9.2.1 Capacity Bidding DR Program Characteristics 24

9.2.2 OpenADR Characteristics for Capacity Bidding Programs 25

9.3 Residential Thermostat Program 27

9.3.1 Residential Thermostat DR Program Characteristics 27

9.3.2 OpenADR Characteristics for Residential Thermostat Programs 28

9.4 Fast DR Dispatch 29

9.4.1 Fast DR Dispatch Program Characteristics 29

9.4.2 OpenADR Characteristics for Capacity Bidding Programs 31

9.5 Residential Electric Vehicle (EV) Time of Use (TOU) Program 33

9.5.1 Residential EV TOU Program Characteristics 33

9.5.2 OpenADR Characteristics for Residential EV TOU Programs 33

9.6 Public Station Electric Vehicle (EV) Real-Time Pricing Program 34

9.6.1 Public Station EV RTP Program Characteristics 34

9.6.2 OpenADR Characteristics for Public Station EV RTP Programs 34

9.7 Distributed Energy Resources (DER) DR Program 35

9.7.1 Distributed Energy Resources (DER) Program Characteristics 35

9.7.2 OpenADR Characteristics for Distributed Energy Resources (DER) 35

Annex A – Sample Data and Payload Templates 36

A.1 Critical Peak Pricing Program (CPP) 36

A.1.1 CPP Scenario 1 – Simple Use case, A or B Profile 36

A.1.2 CPP Scenario 2 – Typcial Use Case, B profile 36

A.1.3 CPP Scenario 3 – Complex Use Case 37

A.1.4 CPP Sample Event Payload – Typical B Profile Use Case 37

A.2 Capacity Bidding Program (CBP) 39

A.2.1 CBP Scenario 1 – Simple Use case, A or B Profile 39

A.2.2 CBP Scenario 2 – Typcial Use Case, B profile 39

A.2.3 CBP Scenario 3 – Complex Use Case 40

A.2.4 CBP Sample Event Payload – Typical B Profile Use Case 40

A.3 Residential Thermostat Program 42

A.3.1 Residential Thermostat Scenario 1 – Simple Use case, A or B Profile 42

A.3.2 Residential Thermostat Scenario 2 – Typcial Use Case, B profile 42

A.3.3 Residential Thermostat Scenario 3 – Complex Use Case 43

A.3.4 Residential Thermostat Sample Event Payload – Typical B Profile Use Case 43

A.4 Fast DR Dispatch 45

A.4.1 Fast DR Scenario 1 – Simple Use case, A or B Profile 45

A.4.2 Fast DR Scenario 2 – Typcial Use Case, B profile 45

A.4.3 Fast DR Scenario 3 – Complex Use Case 46

A.4.4 Fast DR Sample Event Payload – Typical B Profile Use Case 46

A.4.5 Fast DR Sample Report Metadata Payload – Typical B Profile Use Case 48

A.4.6 Fast DR Sample Report Request Payload – Typical B Profile Use Case 48

A.4.7 Fast DR Sample Report Data Payload – Typical B Profile Use Case 49

A.5 Residential Electric Vehicle (EV) Time of Use (TOU) Program 49

A.5.1 Residential EV Scenario 1 – Simple Use case, A or B Profile 49

A.5.2 Residential EV Scenario 2 – Typcial Use Case, B profile 50

A.5.3 Residential EV Sample Event Payload – Typical B Profile Use Case 50

A.6 Public Station Electric Vehicle (EV) Real-Time Pricing Program 53

A.6.1 Public Station EV Scenario 1 – Typcial Use Case, B profile 53

A.6.2 Public Station EV Sample Event Payload – Typical B Profile Use Case 53

A.7 Distributed Energy Resources (DER) DR Program 54

Annex B – Service and Payload Definitions 55

B.1 Open ADR supports the following services: 55

Annex C – Service and Payload Definitions 56

C.1 EiEvent Payloads 56

C.2 EiReport Payloads 56

C.3 EiOpt Payloads 56

C.4 EiRegisterParty Payloads 57

C.5 OadrPoll Payloads 57

Annex D – Glossary of Schema Payload Elements 58

Annex E Glossary of Enumerated Values 65

E.1 eventStatus 65

E.2 itemUnits 65

E.3 oadrDataQuality 65

E.4 oadrResponseRequired 66

E.5 optReason 66

E.6 oadrTransportName 66

E.7 OptType 66

E.8 readingType 66

E.9 reportName 67

E.10 reportType 67

E.11 scaleCode 68

E.12 signalName 68

E.13 signalType 69

Annex F – OpenADR A and B Profile Differences 70

Annex G – OpenADR Security Certificates 71

The target audience for this guide is utilities planning to deploy Demand Response (DR) programs that utilize OpenADR 2.0 for communicating DR event related messages between the utility and downstream entities, and the manufacturers of equipment that facilitate that communication exchange. It is assumed that the reader has a basic conceptual understanding of both demand response and OpenADR 2.0 (referred to simply as OpenADR from this point forward).

The OpenADR profile specifications clearly define the expected behaviour when exchanging DR event related information, however there is enough optionality in OpenADR that the deployment of servers (VTNs) at the utility and clients (VENs) at downstream sites is not a plug-n-play experience. OpenADR characteristics such as event signals, report formats, and targeting must be specified on a DR program-by-program basis.

There is no such thing as a standardized DR program. Each DR program design tends to be unique, fitting the structural and regulatory requirements of the geographic region it is deployed in. For each DR program there are numerous possible deployment scenarios involving a variety of actors.

The variability in DR program designs, deployment scenarios, and OpenADR characteristics are an inhibitor to expanded deployment of DR and the use of OpenADR. This variability is for the most part a reflection of the fragmented and complex nature of the smart grid.

Utilities need examples of typical DR programs so that they can be used as models for their own DR program implementations. Equipment manufacturers need to understand typical DR Program usage models so they can validate interoperability as part of the development process rather than on a DR program deployment specific basis. The intent of this guide is to accomplish both these goals as follows:

  • Define a small set of standard DR Program templates modelled after the common characteristics of the most popular DR programs implemented to date
  • Define a small set of deployment scenarios modelled after real world deployments, with actors and roles clearly identified
  • Define best practices recommendations for OpenADR characteristics specific for each of the DR Program templates
  • Provide a decision tree that utilities can use to identify the useful DR program templates and deployment scenarios based upon their business needs

The emphasis in this guide will be on keeping things simple by providing a small set of clear recommendations that will address the majority of the details required to deploy a typical DR program, and to enable interoperability testing of equipment deployed in programs using the recommendations in this guide.

  • OpenADR Profile Specification and schema – www.openadr.org

The following terms and definitions are used in this document.

  • Demand Response: A mechanism to manage customer load demand in response to supply conditions, such as prices or availability signals
  • Aggregator Party – This is a party that aggregates multiple Resources together and presents them to the DR Program Party as a single Resource in their DR Programs.
  • Aggregator Intermediary Infrastructure – This is the infrastructure, separate from the Demand Side Infrastructure, which is used by the Aggregator Intermediary Party to interact with both the Resources and the grid side entities
  • Agreement: A contractual agreement between parties playing a role in a DR program outlining responsibilities and compensation
  • Asset – A type of Resource that represents a specific collection of physical loads. Resources can be composed of Assets, and an Asset may be Resource, but Assets cannot be further decomposed into multiple Assets or Resources.
  • Associated: Provide a programmatic association between two entities, through configuration of a device of database. For instance, associated resources with a VEN
  • Baselines: The calculated or measured energy usage (demand) by a piece of equipment or a site prior to the event as determined by through surveys, inspections, and/or metering at the site.
  • BMS – This is the Building Management System that may be used to control resources. This is sometimes referred to as an Energy Management System.
  • Compound Resource – This is a special type of Resource that is an aggregation of multiple physical assets that each have their own means of load control.
  • Customer Incentive: An inducement provided to the owner/aggregator of demand side resources for participation in a DR program.
  • Demand Side Infrastructure – This is the infrastructure that houses the Resources that are enrolled in the DR Programs
  • DR Logic: Algorithms or logic that convert DR signals into actionable load control. Note that DR Logic may be implemented in many different locations and in some case be distributed among multiple sub-systems.
  • DR Program Party – this is the entity that is responsible for the Grid Infrastructure and furthermore for managing the DR Programs used to mitigate grid issues. This is typically a Utility or ISO.
  • Enrolled: The owner/aggregator of demand side resources elects to participate in a DR program and may provide information about the specific resources that may be targeted for DR events
  • Event Active Period: The is the period in the of time during which a change in the load profile is being requested as part of a DR Event
  • Event Constraints: The time frames during which the customer can expect to receive events and related constraints such as no events on weekends or consecutive days
  • Event Days: A day when an DR event occurs. Most programs have limitations as to the number of event days that are allowed in a given calendar period
  • Event Descriptor: Part of the OpenADR event object that describes metadata about the event, such as program name and event priority
  • Event Duration: The length of the event. Most programs define constraints as to the length of an event, as well as the hours of the day during which the event can occur
  • Event Signals: The actionable information contained in an event such as electricity pricing or specific levels of load shed requested that typically trigger some pre-programmed load shed behavior by the recipient of the event. A DR program definition should specify the types of event signals used
  • Event Targeting: The load shedding resources that are the intended recipient for the DR event. The may be a geographic area, a particular class of devices, a group identifier, resource ID, or other identifier. A DR program definition should specify how specific resources are going to be targeted.
  • Events: An event is a notification from the utility to demand side resources requesting load shed starting at a specific time, over a specified duration, and may include targeting information designating specific resources that should participate in the event
  • Facilitator Intermediary Infrastructure – This is the infrastructure, separate from the Demand Side Infrastructure, which is used by the Facilitator Intermediary Party to interact with both the Resources and the grid side entities.
  • Facilitator: A third party that manages some or all of the execution of the DR program on behalf of the utility
  • Grid Infrastructure – This is the infrastructure that is owned or managed by the DR Program Parties. This infrastructure includes the implementation of the OpenADR VTN that is used to send DR signals to Resources enrolled in the DR Programs
  • Intermediary Party – This is a party that typically works on behalf of the Resource Party to facilitate their participation in DR Programs.
  • Load Control – this is the infrastructure related to a Resource that is responsible for actually controlling the Resource and producing a specific load profile.
  • Load Profile Objective: This motivation behind developing a DR program and issuing events. Such as the desire to shave peak loads.
  • Notification: A period of time prior to the start time of an event where the demand side resource owner is notified of a pending event
  • Opt Behaviour: The expected response from the demand side resource owner upon receipt of an event. This response may take the form of and OptIn or OptOut indication whether or not resource will participate in the event
  • Opt Responses: Whether a specific program should require a response from demand side resources in response to an event, and what those responses typically are.
  • Opt Services: Schedules communicated over OpenADR to indicate temporary changes in resource availability to participate in events.
  • Prerequisite: Criteria that must be met in order for a demand side resource owner to enroll in a DR program. This may include the availability of interval meeting or some minimum load shed capacity
  • Primary Drivers: The primary motivation on the part of the utility for creating the DR program and issuing events. Such as ” Peak demand reduction and resource adequacy”
  • Programs – These are the DR Programs that the Resources are enrolled in.
  • Program Description: A narrative description of how a program works. Part of the DR Program templates defined in this document
  • Program Time Frame: The time of the year or seasons during with a DR program is typically active
  • Rate Design: The specific modifications to the rate structure or incentives paid to motivate demand side resource owners to participate in the program
  • Registration Services: Service used by the OpenADR protocol to establish basic interoperability between a VTN and VEN, and to validate that the VEN is associated with the utility customers account.
  • Reporting Services: Service used by the OpenADR to enable VENs to provide reporting to VENs. DR Program should specify the reporting requirements for the program.
  • Resource Party – This is the party that owns the demand side Resources that may be enrolled in DR Programs
  • Resource – This is the entity that is enrolled in the DR Programs and is capable of delivering some sort of change to their load profile in response to receiving a DR signal from a VTN.
  • Target Customer: The profile of demand side resources that may enroll in a specific DR programs such as residential, industrial, or perhaps based on level of electricity consumption.
  • Target Loads: The demand side resources whose load should be modified upon receipt of a
  • VEN – This is the OpenADR Virtual End Node that is used to interact with the VTN.
  • VTN – This is the OpenADR Virtual Top Node that is used to interact with the Resources enrolled in the DR Programs.
  • BMS: Building Management System
  • C&I: Commercial and Industrial
  • Comm: Communications between two entities
  • DR: Demand Response
  • EMS: Energy Management System
  • OpenADR: Open Automated Demand Response
  • Programs: Reference to a Demand Response Program(s)
  • VEN: Virtual End Node
  • VTN: Virtual Top Node

This document contains templates for the DR programs shown below.

 

1. Critical Peak Pricing: Rate and/or price structure designed to encourage reduced consumption during periods of high wholesale market prices or system contingencies by imposing a pre-specified high rate or price for a limited number of days or hours.

2. Capacity Bidding Program: A program which allows a demand resource in retail and wholesale markets to offer load reductions at a price, or to identify how much load it is willing to curtail at a specific price.

 

3. Residential Thermostat Program/Direct Load Control: A demand response activity by which the program sponsor remotely controls a customer’s electrical equipment (e.g. air conditioner) on short notice. These programs are primarily offered to residential or small commercial customers.

4. Fast DR Dispatch/Ancillary Services Program: A demand response program that provides incentive payments to customers for load response during an Emergency Demand Response Event. An abnormal system condition (for example, system constraints and local capacity constraints) that requires automatic or immediate manual action to prevent or limit the failure of transmission facilities or generation supply that could adversely affect the reliability of the Bulk Electric System. These type of programs may sometimes be referred to as “Ancillary Services”.

5. Electric Vehicle (EV) DR Program: A demand response activity by which the cost of charging electric vehicles is modified to cause consumers to shift consumption patterns.

6. Distributed Energy Resources (DER) DR Program: A demand response activity utilized to smooth the integration of distribute energy resources into the smart grid.

 

The way in which a DR program is deployed is somewhat independent of the characteristics of the DR program itself. The following diagrams show a variety of ways in which a DR program might be deployed. The following section provides a cross reference between the deployment scenarios and the DR Programs they are most likely to be utilized with.

The diagrams in this section show the relationships between the entities in the various scenarios.

Direct 1

This is a simple scenario in which there is a direct relationship between the DR Program Party and the Resource Party. The Resource Party is responsible for enrolling their own Resources into the DR Programs and the Grid Infrastructure interacts directly with the Resources via a VEN that resides within the Demand Side Infrastructure. Furthermore the VEN is owned by the Resource Party and is separate from the Resources and their controllers. When a DR signal is received by the VEN it typically does not implement any load control logic, but simply forwards the signals to the load controllers who take the appropriate action. Examples of this scenario would include C&I buildings that may install a gateway that contains an OpenADR VEN and when a signal is received by that gateway it simply translates it into some other protocol and forwards to the load controllers themselves.

Direct 2

This is very similar to the Direct 1 scenario. The main difference being in how the VEN is instantiated and the interactions with the VTN facilitated. The VEN is instantiated in an entity like a centralized BMS that can implement DR logic and interact with Compound Resource and their many different load controllers from a more centralized location. Examples include large buildings with a BMS that control many different loads in a building (e.g. lighting, HVAC, industrial processes, etc.) to campuses that may have multiple facilities with a centralized control system.

Direct 3

This scenario is very similar to the Direct 1 scenario. The main difference being that the VEN is instantiated directly in the resource and its load controller. In this case the DR signals are sent directly to the resource and its load controller. The so called “prices to devices” scenario falls into this category. Examples would include any sort of load controller such as HVAC (i.e. thermostat) that has an embedded VEN that is capable of interacting directly with the grid side entities VTN.

Direct 4

This is a combination of sorts of the Direct 1 and Direct 2 scenarios. The main difference being that multiple VEN’s are associated with a single Compound Resource that is comprised of multiple assets with their own load controllers. Each of the load controllers that comprise the Compound Resource may be associated with a different VEN. Note that all the VEN’s would be under control of the same Resource Party that owns the Compound Resource. This scenario exists in order to facilitate Demand Side Infrastructures that have Compound Resources, but do not have a centralized BMS like the Direct 2 scenario. Examples might include buildings with different load controllers on each floor, but no centralized BMS, or campuses with different controllers in each building, but no campus wide controller. Since from the DR Program Party’s perspective there is only a single resource enrolled in the program when it wants to send a DR signal to the resource it may simply send the same signals to each of the designated VENs that have been associated with the Resource.

Facilitator 1

In this scenario there is an intermediary that facilitates interactions between the DR Program Party and the Resources. Typically the Intermediary Party works on behalf of the Resource Party to help them manage their Resources. The Resource Parties have direct relationships with the DR Program Party and they enroll their own Resources into the DR Programs. Thus the DR Program Party views each Resource Party as a separate Resource and may interact with them individually. The role of the Intermediary Party is to act as a go between for all the OpenADR related interactions, thus the VEN is instantiated within the Facilitator Intermediary Infrastructure. Such infrastructure is often cloud bases and offered to the Resource Parties as Software as a Service (SaaS). When the DR signal is received by the Facilitator’s VEN a number of different actions may take place including forwarding the DR signal to the appropriate Resource and possibly implementing some sort of DR Logic and sending load control commands to each Resource’s load controller. Examples of this scenario include:

  • Vendors that manage the facilities for large commercial chains such as big box retailers.
  • Industrial control intermediaries.
  • Energy Services Companies (ESCO’s)
  • Cloud based appliance and device management systems such as the emerging smart communicating thermostat vendors.

Aggregator 1

This scenario is similar to the Facilitator scenario. The main difference being that the Aggregator Party has the relationship with the DR Program Party as opposed to the Resource Parties. The Aggregator Party aggregates multiple customer Assets into a single Resource that it enrolls into the DR Programs. The DR Program Party does not have visibility into the individual Assets the Aggregator is managing. As with the Facilitator the Aggregator has their own infrastructure where the VEN is instantiated. The difference being that when a DR signal is received it references a single resource and the Aggregator implements some sort of DR logic over all the Assets in their portfolio to achieve the objectives specified in the DR signal.

 

The table below provides as to which deployment scenarios are most common for a specific DR Program.

Deployment Scenario
DR Template Direct 1, 2, 3, 4 Facilitator 1 Aggregator 1
CPP Program
Capacity Bidding Program
Residential Thermostat

Program

Fast DR Dispatch
Electric Vehicle (EV) DR Program
Distributed Energy Resources (DER) DR Program

The following are a set of questions that are relevant to any utility about to implement a new DR program. This is not meant to be comprehensive, but represents some of the more pertinent issues. The intent of these questions is to help guide utilities towards an appropriate set of DR Program templates.

Q: Why do you want to do DR? What grid condition or operational issue are you trying to mitigate with DR?

This is by far the most important question and forms the basis for the overall requirements and objectives for what the DR program is supposed to achieve. The answer to this question defines how the demand side load profile is supposed to be shaped by the DR program. All other requirements flow from the answer to this question.

  • Are you trying to shave peaks?
  • Do you want to fill the belly of the duck?
  • Are you trying to hedge the spot price of electricity?
  • Are you concerned with grid reliability?
  • Are you trying to preserve grid assets?
  • Etc. etc. etc.

The table below provides some additional context to the motivations behind wanting to develop a DR Program

Grid Reliability & Safety Frequency and Voltage Stability
Resource Adequacy
Peak Capacity
Ramping
Contingency
Procurement of Energy Spot Market Prices
Price Arbitrage
Asset Management Damage Prevention
Maintenance Reduction
Lifetime Extension
Capacity Management Economic Benefits
Emergency Management
Environmental Negawatt
Clean Energy

Q: Is there an existing DR program or tariff already in place for this program?

  • Often times the program rules are spelled out explicitly in a tariff.

Q: What demand side market segment are you targeting with this program?

This may help determine the targeting of the resources in the event and the type of signal.

  • Residential
  • Large C&I
  • Small C&I
  • Agriculture
  • Water management
  • Electric Vehicles
  • Etc, etc, etc

Q: Are you trying to target specific types of loads?

  • Thermostats
  • Electric vehicles
  • Ag pumps
  • etc.

Q: What is your deployment model?

The answer to this question can influence how resources are defined within the program and determine how those resources are targeted within events.

  • Direct to customers
  • Through intermediaries like aggregators or facilitators
  • Customer responsible for procuring and deploying their own VEN equipment?
  • etc.

Q: At what level of specificity do you want to interact with the demand side loads?

This question is somewhat related to the deployment model and determines how the resources in the program are defined and targeted. It is one of the most important and possibly complex questions.

  • Interact with each individual resource
  • Interact through a facilitator or aggregator with no specification of the resources behind them
  • Interact through a facilitator or aggregator AND specify which resources behind them should be dispatched
  • Use location as an attribute to specify resources
  • Use some sort of utility defined grouping mechanism to specify resources
  • Target individual assets such as thermostats
  • Interact with no resources at all and just broadcast DR events
  • etc.

Q: What interaction pattern do you want to employ to influence your customers load profiles?

This question determines the type of DR signals that will be sent to participants in a program.

  • Incentives (e.g. dynamic pricing)
  • Load dispatches (e.g. ancillary services)
  • Direct load control
  • Generic event signal
  • etc.

Q: What is the general resource scheduling attributes of the program?

  • Dates and times that events may be called
  • Frequency of events
  • Duration of events
  • Allowable latencies for the propagation of events
  • etc.

Q: How is the availability of resources in the program determined?

  • By strict program rules
  • As part of some nomination or bidding process done by the resource
  • Opt In/Out allowed?
  • etc.

Q: What type of visibility do you need into the resource’s performance?

This is a very broad question and determines what type of information is fed back from the resources in the DR program. In general this determines the type of reports that are required.

  • Online/Offline
  • Usage (current and/or historical)
  • Load response potential
  • Load availability
  • Load/asset state (current and/or historical)
  • Etc., etc. etc.

Critical Peak Pricing Program (CPP)

CPP DR Program Characteristics

Load Profile Objective -Peak demand reduction
Primary Drivers -Reduced capital expenditures and reduced energy costs
Program Description When utilities observe or anticipate high wholesale market prices or power system emergency conditions, they may call critical events during a specified time period (e.g., 3 p.m.—6 p.m. on a hot summer weekday), the price for electricity during these time periods is substantially raised.
Customer Incentive Customers may be offered discounted energy prices during non-peak times as an incentive to participate in the program.
Rate Design CPP is a price program with rates increasing during critical peaks in energy consumption. Typically CPP rates are an adder or multiplier to flat, tiered, or TOU base rates.
Target Customer -Residential or C&I
Target Load -Any
Prerequisite -Customer must have interval metering

-C&I customers may have to meet a demand criterion

Program Time Frame -Typically spans months of the year where peak energy consumption occurs, although may be year round in some cases.
Event Constraints -Typically Monday through Friday, excluding holidays, with consecutive day events typically allowed
Event Days -Typically 9 to 15 per year
Event Duration -Typically during a fixed time frame for all events ranging from 4 to 6 hours during the highest energy consumption times of the day.
Notification -Typically day ahead
Opt Behavior -Typically customers are not required to participate in events
Certification

Events

-Typically none

OpenADR Characteristics for CPP Programs

Event Signals A SIMPLE signal with levels 1 to 3 mapped to the pricing impact of the CPP event. If a CPP program has a single pricing component it should be mapped to level 1. For CPP programs with multiple pricing components, the smallest price component should be mapped to level 1, with the other price components mapped to levels 2 and 3 in increasing degree of pricing impact.

-If the deployment supports B profile VENs, in addition to the SIMPLE signal, an ELECTRICITY_PRICE signal may be included in the payload with a type of priceRelative, priceAbsolute, or priceMultiplier depending on the nature of the program.

See Annex A for examples.

Opt Responses -VTNs sending events should set the oadrResponseRequired element to “always”, requiring the VEN to respond with an optIn or optOut

-As participation in a CPP program is a “best effort” exercise, there is no formal meaning to optIn or optOut beyond a courtesy availability indication of intent to participate. We recommend that VENs respond with optIn unless there has been some specific override action taken by the customer.

-The oadrCreateOpt payload would typically not be used to qualify resources participating in events.

Event Descriptor -The event priority should be set to 1 unless the program rules or VTN configuration specify otherwise

Test events are typically not used with CPP programs. However if they are allowed the testEvent element should be set to “true” to indicate the test event. If additional parameterized information is required in this element it can follow “true” separated by a space with this additional information.

Event Active Period eiRampUp, eiRecovery, tolerance elements are typically not used
Baselines Baselines are typically not included in the event payload
Event Targeting -CPP programs typically don’t differentiate between resources for a given customer. Targeting typically specifies the venID, indicating that all the resources associated with the VEN should participate, or a list of all the resourceIDs associated with VEN.
Reporting Services Telemetry reporting is typically not used as it is not absolutely necessary for CPP programs.

Refer to Annex B for examples of reports from utility pilots that might be applicable to this type of program.

Opt Services Use of the Opt service to communicate temporary availability schedules typically would not be used as part of a CPP program. However, some deployments could use this service to preserve available event days for customers who indicate lack of availability.
Registration Services Polling intervals requested by the VTN for typical day-ahead CPP programs are not required to be more frequent that once an hour. However, the use of polling for heartbeat detection may require more frequent polling.

Capacity Bidding Program

Capacity Bidding DR Program Characteristics

Load Profile Objective -Peak demand reduction and resource adequacy
Primary Drivers -Reduced capital expenditures and reduced energy costs
Program Description The capacity bidding program is used by ISO/utilities to obtain pre-committed load shed capacity from aggregators or self aggregated customers. This pre-committed load shed capacity is utilized by ISO/utilities when they observe or anticipate high wholesale market prices, power system emergency conditions, or as part of normal energy resource utilization by calling DR events during a specified time period.

 

Note that each aggregator is typically responsible for designing their own demand response program as well as customer acquisition, and event notification in order to meet the capacity commitments made as part of this program.

Customer Incentive Aggregators/customers receive two types of incentives. First, they receive a capacity payment for holding a specific amount of load shed capacity available for DR events during a future time window. Second, if an event is called during the future time window an energy payment may be made for load shed over the duration of the event.
Rate Design Participants in the program make a “capacity nomination” bid indicating the load shed capacity they are willing to hold as available during a future time window. The bid may also include the incentive the aggregator/customer is willing to accept for load shed below a baseline value.

In utility markets the capacity commitment is typically for the next calendar month, although much longer time frames are used in ISO markets. As part of the capacity nomination, the customer may be able to chose between a number of characteristics including day-ahead or day-of notification and the event duration window (such as 1-4 hours, 2-6 hours, …).

A capacity payment is made to the customer for this pre-commitment even if there are no events called during the time window. If an event is called during the time window the customer may receive an energy payment for the load shed in relation to a baseline, however penalties may apply if less than the pre-committed load shed capacity is delivered at the time the event is called.

Target Customer -Aggregators and self aggregated C&I customers
Target Loads – Any
Prerequisite -Customer must have interval metering

-C&I customers may have to meet a demand or bid criterion

Program Time Frame -Anytime
Event Constraints -Typically Monday through Friday, excluding holidays, with consecutive day events typically allowed
Event Days -Typically a maximum of 30 hours per month
Event Duration -Typically during a fixed time window for all events during the highest energy consumption times of the day.). Event duration varies by customer capacity commitment with preferences ranging from 1 to 8 hours or as specified by the design of the program
Notification -Day-ahead or day-of depending on customer capacity commitment preferences or the design of the program
Opt Behavior -Typically customers would opt-in to events given that as they have pre-committed load shed capacity.
Certification

Events

-Typically two per year (Test)

OpenADR Characteristics for Capacity Bidding Programs

Event Signals A SIMPLE signal with levels 1 to 3 mapped to the amount of load shed. If the program only supports a single level of load shed, that should be mapped to level 1. For programs with multiple levels of load shed, the smallest change from normal operation should be mapped to the level 1, with the load shed values mapped to levels 2 and 3 in increasing degree of load shed.

-If the deployment supports B profile VENs, in addition to the SIMPLE signal, a BID_LOAD and/or BID_PRICE signal may be included in the payload with signal types of setpoint and price, and units of powerReal and currencyPerKW respectively. The BID_LOAD would reflect the requested load shed up to capacity amount bid by the aggregator/customer, and the BID_PRICE would reflect the incentive bid by the aggregator/customer.

See Annex A for examples.

Opt Responses -VTNs sending events should set the oadrResponseRequired element to “always”, requiring the VEN to respond with an optIn or optOut

-As aggregators/customers have pre-committed capacity VENs should respond with optIn. An opt out may be sent in response to the event, but this is an informal availability indication, not a formal opt out of the event.

-The oadrCreateOpt payload would typically not be used to qualify resources participating in events as typically the load is a single aggregated entity.

Event Descriptor -The event priority should be set to 1 unless the program rules or VTN configuration specify otherwise

Test events may be used with Capacity Bidding programs. If they are allowed, the testEvent element should be set to “true” to indicate the test event. If additional parameterized information is required in this element it can follow “true” separated by a space with this additional information.

Event Active Period eiRampUp, eiRecovery, tolerance elements are typically not used
Baselines Baselines are typically not included in the event payload as this data typically not available at the time the event is initiated. However, both utilities and aggregators/customers would view the inclusion of baseline information in events as useful.
Event Targeting -Capacity Bidding programs typically don’t differentiate between resources for a given customer. Targeting typically specifies the venID, indicating that all the resources associated with the VEN should participate, or includes a resourceID representative of the aggregated load associated with VEN.
Reporting Services ISO Capacity Bidding programs typically require TELEMETRY_USAGE reports with powerReal data points. See examples in Annex A.

Telemetry reporting for utility Capacity Bidding typically is not required.

Note that telemetry reporting requires B profile VENs.

Refer to Annex B for examples of reports from utility pilots that might be applicable to this type of program.

Opt Services Use of the Opt service to communicate temporary availability schedules typically would not be used as part of a Capacity Bidding program as customers have pre-committed their availability. However, this service may be useful as an informal way for participants to indicate a lack of availability for extenuating reasons such as equipment failure.
Registration Services Polling intervals requested by the VTN for typical day-ahead programs are not required to be more frequent that once an hour. However, the use of polling for heartbeat detection or day-of programs may require more frequent polling.

Residential Thermostat Program

This program is representative of Direct Load Control (DLC) where the Demand Response signal directly modifies the behavior of load shedding resources, without a layer of abstraction between receipt of the signal and the specific load shedding action taken.

Residential Thermostat DR Program Characteristics

Load Profile Objective -Peak demand reduction
Primary Drivers -Reduced capital expenditures and reduced energy costs
Program Description -When utilities observe or anticipate high wholesale market prices or power system emergency conditions, they may initiate an event that modifies the behavior of the customer’s programmable communicating thermostat (PCT) over a specified time period (e.g., 3 p.m.—6 p.m. on a hot summer weekday) in order to reduce energy consumption.

-The change to the PCT behavior in response to the event may be a simple change in temperature setpoint for the duration for the event or a more complex set of changes, including pre-cooling, that minimize the impact of the event on the customer’s comfort level.

Customer Incentive -Incentives take two general forms. First, customers may be provided with a free PCT or offered discounts/rebates on customer purchased PCTs as an incentive to enroll in the DR program. Second, customers may receive an ongoing annual stipend for continued enrollment in the program. Less common would be ongoing incentives paid to customers based upon actual energy reduction during events.
Rate Design -Primarily an incentive program, where customers receive discounted or free PCT’s for enrolling in the DR program. Some programs may pay a periodic stipend or incentive payments based upon energy reduction during events.

 

Target Customer -Residential
Target Load -HVAC
Prerequisite -Typically none, as customers receive a PCT as part of the program enrollment

 

Program Time Frame -Typically spans months of the year where peak energy consumption occurs, although may be year round in some cases.
Event Constraints -Typically Monday through Friday, excluding holidays, with consecutive day events typically allowed.
Event Days -Typically 9 to 15 per year
Event Duration -Events could occur at any time, with durations ranging from 2 to 4 hours, although typically events occur during the highest energy consumption times of the day.
Notification -Typically day ahead, although some programs may have notification times as short as 10 minutes.
Opt Behavior -Customers are not required to participate in events, however they will automatically be opted in to events unless they take action to override the event or make manual adjustments to temperature during the event.
Certification

Events

-Typically none

OpenADR Characteristics for Residential Thermostat Programs

Event Signals A SIMPLE signal with levels 1 to 3 mapped to the change in PCT temperature setpoint offsets or thermostatic cycling percentage . If a residential thermostat program has a single offset/cycling component it should be mapped to level 1. For programs with multiple offset/cycling components, the smallest change from normal operation should be mapped to the level 1, with the other offset/cycling values mapped to levels 2 and 3 in increasing degree of load shed impact.

-If the deployment supports B profile VENs, in addition to the SIMPLE signal, a LOAD_CONTROL signal may be included in the payload with a type of

x-loadControlLevelOffset or x-loadControlCapacity to specify the desired temperature setpoint offset or thermostatic cycling percentage respectively. It is recommenced that a unit type of “temperature” by used in payloads utilizing the x-loadControlLevelOffset signalType to indicate Celsius or Fahrenheit for the offset.

See Annex A for examples.

Opt Responses -VTNs sending events should set the oadrResponseRequired element to “always”, requiring the VEN to respond with an optIn or optOut

VENs Should respond with optIn unless there has been some specific override action taken by the customer.

-The oadrCreateOpt payload may be used by VENs to qualify the participation of resources in an event. For instance, an event may target the resourceID’s of two thermostats that control separate HVAC systems. If the customer decides that only one of the HVAC systems can participate in the event, this would get communicated to the VTN using the oadrCreateOpt payload. Note that the oadrCreateOpt payload is only supported by B profile VENs

Event Descriptor -The event priority should be set to 1 unless the program rules or VTN configuration specify otherwise

Test events are typically not used with Residential Thermostat programs. However if they are allowed the testEvent element should be set to “true” to indicate the test event. If additional parameterized information is required in this element it can follow “true” separated by a space with this additional information.

Event Active Period Randomization is typically used for residential thermostat events using the tolerance element

eiRampUp and eiRecovery elements are typically not used

Baselines Baselines are typically not included in the event payload
Event Targeting -Residential Thermostat programs target HVAC resources controlled by PCTs. Targeting typically specifies the resourceIDs of the HVAC systems (i.e. the thermostat) associated with VEN or the venID with the event signal device class target set to Thermostat
Reporting Services Telemetry reporting is typically not used as it is not absolutely necessary for residential thermostat programs

Refer to Annex B for examples of reports from utility pilots that might be applicable to this type of program.

Opt Services Use of the Opt service to communicate temporary availability schedules typically would not be used as part of a CPP program.
Registration Services Polling intervals requested by the VTN for typical day-ahead Residential Thermostat programs are not required to be more frequent that once an hour. However, the use of polling for heartbeat detection may require more frequent polling as would residential thermostat programs with substantially shorter notification times.

Fast DR Dispatch

Fast DR Dispatch Program Characteristics

Load Profile Objective -Dispatch resources to achieve load response in “real-time”
Primary Drivers -Grid reliability and ancillary services
Program Description Fast DR is used by ISO/utilities to obtain pre-committed load response in “real-time”. This pre-committed load response is utilized by ISO/utilities when they observe conditions that require immediate action to maintain the stability and integrity of the grid. Real-time means that resources are typically dispatched with a latency ranging from 10 minutes for resources that are used as reserves to 2 seconds for resources that are used for regulation purposes.

The size of the load response must be large enough to make a difference in mitigating the grid condition and thus resources are typically very large and often managed by aggregators as part of an aggregated resource. Minimum sizes for the load response for a resource to qualify to participate in ancillary services are typically around 500 kW, but can be as low as 100 kW for some programs.

Note that if the resource is used as a reserve it will typically be called upon to decrease (i.e. shed) load, but if it is being used for regulation purposes it may be dispatched to either increase or decrease load.

Customer Incentive Aggregators/customers typically receive two types of incentives. First, they receive a payment for committing and making available a specific amount of load response available for DR events during a future time window. The amount of load response, the time window of availability and the amount to be paid is typically set by the aggregator/customer. Second, if an event is called during the future time window a payment based upon the amount of load response over the duration of the event.
Rate Design Participants in the program submit a bid indicating the load response they are willing to make available during a future time window. The bid typically also includes the payment the aggregator/customer is willing to accept for the load response.

In utility/ISO markets the bid is typically submitted either the day ahead or the day of the time period for which the commitment is being made. As part of their qualification and registration in the markets various performance envelops parameters are associated with the resource such as ramp rate and min and max operating limits. Such parameters govern how it will be dispatched.

If a participant’s bid is accepted a payment may be made to the customer for their pre-commitment even if there are no events called during the time window. If an event is called during the time window the customer may receive additional payments for their performance during the event. Such performance based payments may be based on a number of factors including amount energy, power, how closely the resource follows the dispatch instructions, and a “mileage” payment which reflects how much their load profile was required to change during the event. Some of these parameters such as energy and power may be with respect to a baseline.

Target Customer -Aggregators and self-aggregated C&I customers
Target Loads – Those which can respond to real-time dispatches.
Prerequisite -Customer must have interval metering

-Must meet minim size requirements for the load response

-Must be able to respond to real-time dispatches

-Typically have to supply real-time telemetry that shows the current load response

Program Time Frame -Anytime
Event Constraints -none
Event Days -none
Event Duration -Typically short (less than 30 minutes), but in any case will never exceed the time window that the participant made the resource available when they submitted their bid.
Notification -none
Opt Behavior -Customers are opted in to events by default given that they have pre-committed load response
Certification

Events

-Typically one per year (Test)

OpenADR Characteristics for Capacity Bidding Programs

Event Signals A SIMPLE signal with levels 1 to 3 mapped to the amount of load response. If the program only supports a single level of load response, that should be mapped to level 1. For programs with mutiple levels of load response, the smallest change from normal operation should be mapped to the level 1, with the load shed values mapped to levels 2 and 3 in increasing degree of load response.

-If the deployment supports B profile VENs, in addition to the SIMPLE signal, a dispatch in the form of a LOAD_DISPATCH signal may be included in the payload with signal types of setpoint or delta, and units of powerReal. This signal represents the desired “operating point” of the load and can be expressed either as an absolute amount of mW (i.e. setpoint) or some relative number of mW (i.e. delta) from the resources current operating point.

See Annex A for examples.

Opt Responses -VTNs sending events should set the oadrResponseRequired element to “always”, requiring the VEN to respond with an optIn or optOut

-As aggregators/customers have pre-committed capacity VENs should respond with optIn. An opt out may be sent in response to the event, but this is an informal availability indication, not a formal opt out of the event.

-The oadrCreateOpt payload would typically not be used to qualify resources participating in events as typically the load is a single aggregated entity.

Event Descriptor -The event priority should be set to 1 unless the program rules or VTN configuration specify otherwise

Test events may be used, especially during the registration and qualification of a resource. If they are allowed, the testEvent element should be set to “true” to indicate the test event. If additional parameterized information is required in this element it can follow “true” separated by a space with this additional information.

Event Active Period Tolerance elements are not used. The eiRampUp and eiRecovery periods are typically part of a resource’s parameters when they register and may be used. Because of the nature of the dispatches they may be open ended and thus there may be no end time for the event.
Baselines Baselines are typically not included in the event payload as this data typically is not be available at the time the event is initiated. However, both utilities and aggregators/customers would view the inclusion of baseline information in events as useful.
Event Targeting -Capacity Bidding programs typically don’t differentiate between resources for a given customer. Targeting typically specifies the venID, indicating that all the resources associated with the VEN should participate, or includes a resourceID representative of the aggregated load associated with VEN.
Reporting Services Fast DR programs typically require TELEMETRY_USAGE reports with powerReal data points. The usage report depicts the resources current operating point and is used by the Utility/ISO to determine how closely the resource is following the dispatch instruction that was sent.

In some cases the telemetry may include other data points such as voltage readings and charge state (i.e. energy) in the case where the resources is some form of storage. In some cases the reporting frequency may be as high as every 2 seconds.

Note that telemetry reporting requires B profile VENs.

See Annex A for examples.

Also refer to Annex B for examples of reports from utility pilots that might be applicable to this type of program.

Opt Services Use of the Opt service to communicate temporary availability schedules typically would not be used as customers have pre-committed their availability. However, this service may be useful as an informal way for participants to indicate a lack of availability for extenuating reasons such as equipment failure.
Registration Services Because of the low latency requirements of the real-time dispatches only push interaction patterns are used.

Residential Electric Vehicle (EV) Time of Use (TOU) Program

Residential EV TOU Program Characteristics

Load Profile Objective A rate structure by which the cost of charging electric vehicles is modified to cause consumers to shift consumption patterns.
Primary Drivers Residential energy use peaks in the evening. Since EV charging takes 4-8 hours, it can be delayed for a couple hours to shift load peaks.
Program Description Customers who have an electric vehicle can sign up for an Electric Vehicle Time-of-Use (EV-TOU) rate and receive lower rates for charging their vehicle during off-peak hours, such as between midnight and 5 A.M. EV-TOU rates are offered to encourage customers to limit daytime usage of electricity, when demand for electricity is highest.
Customer Incentive Less expensive charging for EVs.
Rate Design TOU with mid-day peak, morning and evening mid-peak, and 12AM-5AM off-peak
Target Customer EV Owner with a load profile that peaks in the evening.
Target Loads EV Chargers
Prerequisite Customer must have a smart meter and EV
Program Time Frame All-year
Event Constraints None
Event Days Every day, or weekdays only
Event Duration 5-8 hours
Notification Customer is notified of price tiers on their monthly bills, and VTNs send out event signals day-ahead.
Opt Behavior Ratepayers may change their rate plan as they would normally do with a utility.
Certification

Events

OpenADR Characteristics for Residential EV TOU Programs

Event Signals ELECTRICITY_PRICE signals with actual price tiers, as well as SIMPLE signals to allow participation by 2.0a VENs

See Annex A for examples.

Opt Responses Always optIn by VENs
Event Descriptor One event per week, with event intervals for each price tier
Event Active Period At least 24 hour notification should be used. Each event interval should capture the TOU rate tier
Baselines N/A
Event Targeting No advanced targeting required, only VEN-level targeting.
Reporting Services No reporting needed, all data can come from the meter.

Refer to Annex B for examples of reports from utility pilots that might be applicable to this type of program.

Opt Services Opt services would not be relevant to this program type.
Registration Services Consumers would pre-provision their VEN with the utility to receive pricing signals.

Public Station Electric Vehicle (EV) Real-Time Pricing Program

Public Station EV RTP Program Characteristics

Load Profile Objective A demand response activity by which the cost of charging electric vehicles is modified to shift the realities of peak pricing onto consumers.
Primary Drivers The price of electricity is variable over a day. This program aims to more efficiently match the price of charging to the cost of electricity.
Program Description Public chargers can exist at workplaces, in public parking lots, and at retail stores. This program relays real-time prices to potential chargers before they plug in, so that they can make an informed decision about whether or not to charge their car.
Customer Incentive Less expensive charging during off-peak times.
Rate Design Prices can change hourly, but once a customer chooses to plug in their car, the rate is set for the duration of charging.
Target Customer Anyone with an EV that needs to charge while away from home.
Target Loads Public EV Chargers
Prerequisite EV chargers must be internet-connected and OpenADR2.0b certified, or connected to an OpenADR2.0b VEN gateway.
Program Time Frame All-year
Event Constraints None
Event Days Every day, or weekdays only
Event Duration 1 hour or longer
Notification Customer is notified of the prevailing rate when choosing to plug in their car.
Opt Behavior Customers may opt out by deciding not to charge.
Certification

Events

OpenADR Characteristics for Public Station EV RTP Programs

Event Signals ELECTRICITY_PRICE signals with prices.

See Annex A for examples.

Opt Responses Always optIn by VENs
Event Descriptor Events must be contiguous, and contain one interval.
Event Active Period At least 1 hour notification should be used, however utilities may choose to use day-ahead notification.
Baselines N/A
Event Targeting No advanced targeting required, but targeting can be used to send prices to specific transformers, feeders, or geographic areas.
Reporting Services No reporting needed, but can be used if desired.

Refer to Annex B for examples of reports from utility pilots that might be applicable to this type of program.

Opt Services Opt services would not be relevant to this program type.
Registration Services A charging station vendor would provision their devices with a utility’s VTN.

Distributed Energy Resources (DER) DR Program

The following program description is hypothetical and is based on a research paper (reference Rish’s paper) describing how utility customers can utilize DER storage resources to participate in DR programs such as real time pricing (RTP) programs.

Distributed Energy Resources (DER) Program Characteristics

Load Profile Objective A demand response activity utilized to smooth the integration of distributed energy resources into the smart grid.
Primary Drivers -Reduced capital expenditures and reduced energy costs
Program Description Customers with DER resources that can harvest energy and store it can minimize the cost of purchasing electricity from the grid during high price periods by first utilizing stored energy resources, followed by implementing load shedding strategies
Customer Incentive Ability to control costs during times of high electricity prices by leveraging stored energy generated via PV or other means and implementing load shedding strategies
Rate Design Electrity rates vary with wholesale market prices or a tariff that varies as a function of time of day, season, or temperature
Target Customer Customers with energy storage resources
Target Loads Any
Prerequisite Energy storage resources
Program Time Frame Any time
Event Constraints None
Event Days Every day
Event Duration 24 hours
Notification Day ahead
Opt Behavior N/A – A best effort program
Certification

Events

None

OpenADR Characteristics for Distributed Energy Resources (DER)

Event Signals ELECTRICITY_PRICE signals with 24 one hour intervals of prices over a 24 hour period. This signal will require the B profile. This program does not lend itself to SIMPLE signaling for A profile VENs.

See Annex A for examples.

Opt Responses -VTNs sending events should set the oadrResponseRequired element to “never”, preventing VENs from responding.
Event Descriptor -The event priority should be set to 1 unless the program rules or VTN configuration specify otherwise
Event Active Period 24 hours with 1 hour intervals with day ahead notification
Baselines N/A
Event Targeting No advanced targeting required other then the venID
Reporting Services No reporting needed

Refer to Annex B for examples of reports from utility pilots that might be applicable to this type of program.

Opt Services Not used
Registration Services Polling intervals requested by the VTN for typical day-ahead t programs are not required to be more frequent that once an hour. However, the use of polling for heartbeat detection may require more frequent polling as would residential thermostat programs with substantially shorter notification times.

– Sample Data and Payload Templates

The following tables and XML payload samples will provide implementers with tangible examples of how the DR templates in this document should be implemented. The following namespace prefixes are used in the payload examples:

  • xmlns:oadr=”http://openadr.org/oadr-2.0b/2012/07″
  • xmlns:pyld=”http://docs.oasis-open.org/ns/energyinterop/201110/payloads”
  • xmlns:ei=”http://docs.oasis-open.org/ns/energyinterop/201110″
  • xmlns:scale=”http://docs.oasis-open.org/ns/emix/2011/06/siscale”
  • xmlns:emix=”http://docs.oasis-open.org/ns/emix/2011/06″
  • xmlns:strm=”urn:ietf:params:xml:ns:icalendar-2.0:stream”
  • xmlns:xcal=”urn:ietf:params:xml:ns:icalendar-2.0″
  • xmlns:power=”http://docs.oasis-open.org/ns/emix/2011/06/power”

Critical Peak Pricing Program (CPP)

CPP Scenario 1 – Simple Use case, A or B Profile

  • Event
    • Notification: Day before event
    • Start Time: 1pm
    • Duration:4 hours
    • Randomization: None
    • Ramp Up: None
    • Recovery: None
    • Number of signals: 1
    • Signal Name: SIMPLE
      • Signal Type: level
      • Units: N/A
      • Number of intervals 1
      • Interval Duration(s):4 hours
      • Typical Interval Value(s): 1
      • Signal Target: N/A
    • Event Target(s): venID_1234
    • Priority: 1
    • VEN Response Required: always
    • VEN Expected Response: optIn
  • Reports
    • None

CPP Scenario 2 – Typical Use Case, B profile

  • Event
    • Notification: Day before event
    • Start Time:1pm
    • Duration: 4 hours
    • Randomization: None
    • Ramp Up: None
    • Recovery: None
    • Number of signals: 2
    • Signal Name: Simple
      • Signal Type: level
      • Units: Level 0, 1, 2, 3
      • Number of intervals 1
      • Interval Duration(s):4 hours
      • Typical Interval Value(s): 1 or 2
      • Signal Target: None
    • Signal Name: ELECTRICITY_PRICE
      • Signal Type: price
      • Units: USD per Kwh
      • Number of intervals 1
      • Interval Duration(s):4 hours
      • Typical Interval Value(s): $0.10 to $1.00
      • Signal Target: None
    • Event Targets: venID_1234
    • Priority: 1
    • VEN Response Required: always
    • VEN Expected Response: optIn
  • Reports
    • None

CPP Scenario 3 – Complex Use Case

  • Event
    • Notification: Day before event
    • Start Time: 2pm
    • Duration: 6 hours
    • Randomization: None
    • Ramp Up: None
    • Recovery: None
    • Number of signals:2
    • Signal Name: Simple
      • Signal Type: level
      • Units: Level 0,1, 2, 3)
      • Number of intervals 3
      • Interval Duration(s):1 hour, 4 hours, 1 hour
      • Typical Interval Value(s): 1, 2, 1 (for each interval respectively)
      • Signal Target: None
    • Signal Name: ELECTRICITY_PRICE
      • Signal Type: price
      • Units: USD per Kwh
      • Number of intervals 3
      • Interval Duration(s): 1 hour, 4 hours, 1 hour
      • Typical Interval Value(s): $0.50, $0.75, $0.50 (for each interval respectively)
      • Signal Target: None
    • Event Targets: Resource_1, Resource_2, Resource_3
    • Priority: 1
    • VEN Response Required: always
    • VEN Expected Response: optIn
  • Reports
    • None

CPP Sample Event Payload – Typical B Profile Use Case

<oadr:oadrPayload>

<oadr:oadrSignedObject>

<oadr:oadrDistributeEvent ei:schemaVersion=”2.0b”>

<pyld:requestID>OadrDisReq091214_043740_513</pyld:requestID>

<ei:vtnID>TH_VTN</ei:vtnID>

<oadr:oadrEvent>

<ei:eiEvent>

<ei:eventDescriptor>

<ei:eventID>Event091214_043741_028_0</ei:eventID>

<ei:modificationNumber>0</ei:modificationNumber>

<ei:eiMarketContext>

<emix:marketContext>http://MarketContext1</emix:marketContext>

</ei:eiMarketContext>

<ei:createdDateTime>2014-12-09T12:37:40Z</ei:createdDateTime>

<ei:eventStatus>far</ei:eventStatus>

</ei:eventDescriptor>

<ei:eiActivePeriod>

<xcal:properties>

<xcal:dtstart>

<xcal:date-time>2014-12-09T13:00:00Z</xcal:date-time>

</xcal:dtstart>

<xcal:duration>

<xcal:duration>PT4H</xcal:duration>

</xcal:duration>

<ei:x-eiNotification>

<xcal:duration>PT24H</xcal:duration>

</ei:x-eiNotification>

</xcal:properties>

<xcal:components/>

</ei:eiActivePeriod>

<ei:eiEventSignals>

<ei:eiEventSignal>

<strm:intervals>

<ei:interval>

<xcal:duration>

<xcal:duration>PT4H</xcal:duration>

</xcal:duration>

<xcal:uid>

<xcal:text>0</xcal:text>

</xcal:uid>

<ei:signalPayload>

<ei:payloadFloat>

<ei:value>2.0</ei:value>

</ei:payloadFloat>

</ei:signalPayload>

</ei:interval>

</strm:intervals>

<ei:signalName>SIMPLE</ei:signalName>

<ei:signalType>level</ei:signalType>

<ei:signalID>SIG_01</ei:signalID>

<ei:currentValue>

<ei:payloadFloat>

<ei:value>0.0</ei:value>

</ei:payloadFloat>

</ei:currentValue>

</ei:eiEventSignal>

<ei:eiEventSignal>

<strm:intervals>

<ei:interval>

<xcal:duration>

<xcal:duration>PT4H</xcal:duration>

</xcal:duration>

<xcal:uid>

<xcal:text>0</xcal:text>

</xcal:uid>

<ei:signalPayload>

<ei:payloadFloat>

<ei:value>0.75</ei:value>

</ei:payloadFloat>

</ei:signalPayload>

</ei:interval>

</strm:intervals>

<ei:signalName>ELECTRICITY_PRICE</ei:signalName>

<ei:signalType>price</ei:signalType>

<ei:signalID>SIG_02</ei:signalID>

<oadr:currencyPerKWh>

<oadr:itemDescription>currencyPerKWh</oadr:itemDescription>

<oadr:itemUnits>USD</oadr:itemUnits>

<scale:siScaleCode>none</scale:siScaleCode>

</oadr:currencyPerKWh>

<ei:currentValue>

<ei:payloadFloat>

<ei:value>0.0</ei:value>

</ei:payloadFloat>

</ei:currentValue>

</ei:eiEventSignal>

</ei:eiEventSignals>

<ei:eiTarget>

<ei:venID>venID_1234</ei:venID>

</ei:eiTarget>

</ei:eiEvent>

<oadr:oadrResponseRequired>always</oadr:oadrResponseRequired>

</oadr:oadrEvent>

</oadr:oadrDistributeEvent>

</oadr:oadrSignedObject>

</oadr:oadrPayload>

Capacity Bidding Program (CBP)

CBP Scenario 1 – Simple Use case, A or B Profile

  • Event
    • Notification: Day before event
    • Start Time: 1pm
    • Duration:4 hours
    • Randomization: None
    • Ramp Up: None
    • Recovery: None
    • Number of signals: 1
    • Signal Name: SIMPLE
      • Signal Type: level
      • Units: N/A
      • Number of intervals 1
      • Interval Duration(s):4 hours
      • Typical Interval Value(s): 1
      • Signal Target: N/A
    • Event Target(s): venID_1234
    • Priority: 1
    • VEN Response Required: always
    • VEN Expected Response: optIn
  • Reports
    • None

CBP Scenario 2 – Typical Use Case, B profile

  • Event
    • Notification: Day before event
    • Start Time:1pm
    • Duration: 4 hours
    • Randomization: None
    • Ramp Up: None
    • Recovery: None
    • Number of signals: 2
    • Signal Name: Simple
      • Signal Type: level
      • Units: Level 0,1, 2, 3
      • Number of intervals 1
      • Interval Duration(s):4 hours
      • Typical Interval Value(s): 1 or 2
      • Signal Target: None
    • Signal Name: BID_LOAD
      • Signal Type: setpoint
      • Units: powerReal
      • Number of intervals 1
      • Interval Duration(s):4 hours
      • Typical Interval Value(s): 20kW to 100kW
      • Signal Target: None
    • Event Targets: venID_1234
    • Priority: 1
    • VEN Response Required: always
    • VEN Expected Response: optIn
  • Reports
    • None

CBP Scenario 3 – Complex Use Case

  • Event
    • Notification: Day of event (how many hours?)
    • Start Time: 1pm
    • Duration: 6 hours
    • Randomization: None
    • Ramp Up: None
    • Recovery: None
    • Number of signals:3
    • Signal Name: Simple
      • Signal Type: level
      • Units: Level 0,1, 2, 3)
      • Number of intervals: 2
      • Interval Duration(s): 3 hours, 3 hours
      • Typical Interval Value(s): 1, 2 (for each interval respectively)
      • Signal Target: None
    • Signal Name: BID_LOAD
      • Signal Type: setpoint
      • Units: powerReal
      • Number of intervals 2
      • Interval Duration(s):3 hours, 3 hours
      • Typical Interval Value(s): 40kW, 80kW (for each interval respectively)
      • Signal Target: None
    • Signal Name: BID_PRICE
      • Signal Type: price
      • Units: currencyPerKW
      • Number of intervals 1
      • Interval Duration(s):6 hours
      • Typical Interval Value(s): $3.10
      • Signal Target: None
    • Event Targets: Resource_1, Resource_2, Resource_3
    • Priority: 1
    • VEN Response Required: always
    • VEN Expected Response: optIn
  • Report(s)
    • Report Name: TELEMETRY_USAGE
    • Report Type: usage
    • Units: powerReal
    • Reading Type: Direct Read
    • Report Frequency: every 1 hour

CBP Sample Event Payload – Typical B Profile Use Case

<oadr:oadrPayload>

<oadr:oadrSignedObject>

<oadr:oadrDistributeEvent ei:schemaVersion=”2.0b”>

<pyld:requestID>OadrDisReq091214_043740_513</pyld:requestID>

<ei:vtnID>TH_VTN</ei:vtnID>

<oadr:oadrEvent>

<ei:eiEvent>

<ei:eventDescriptor>

<ei:eventID>Event091214_043741_028_0</ei:eventID>

<ei:modificationNumber>0</ei:modificationNumber>

<ei:eiMarketContext>

<emix:marketContext>http://MarketContext1</emix:marketContext>

</ei:eiMarketContext>

<ei:createdDateTime>2014-12-09T12:37:40Z</ei:createdDateTime>

<ei:eventStatus>far</ei:eventStatus>

</ei:eventDescriptor>

<ei:eiActivePeriod>

<xcal:properties>

<xcal:dtstart>

<xcal:date-time>2014-12-09T13:00:00Z</xcal:date-time>

</xcal:dtstart>

<xcal:duration>

<xcal:duration>PT4H</xcal:duration>

</xcal:duration>

<ei:x-eiNotification>

<xcal:duration>PT24H</xcal:duration>

</ei:x-eiNotification>

</xcal:properties>

<xcal:components/>

</ei:eiActivePeriod>

<ei:eiEventSignals>

<ei:eiEventSignal>

<strm:intervals>

<ei:interval>

<xcal:duration>

<xcal:duration>PT4H</xcal:duration>

</xcal:duration>

<xcal:uid>

<xcal:text>0</xcal:text>

</xcal:uid>

<ei:signalPayload>

<ei:payloadFloat>

<ei:value>2.0</ei:value>

</ei:payloadFloat>

</ei:signalPayload>

</ei:interval>

</strm:intervals>

<ei:signalName>SIMPLE</ei:signalName>

<ei:signalType>level</ei:signalType>

<ei:signalID>SIG_01</ei:signalID>

<ei:currentValue>

<ei:payloadFloat>

<ei:value>0.0</ei:value>

</ei:payloadFloat>

</ei:currentValue>

</ei:eiEventSignal>

<ei:eiEventSignal>

<strm:intervals>

<ei:interval>

<xcal:duration>

<xcal:duration>PT4H</xcal:duration>

</xcal:duration>

<xcal:uid>

<xcal:text>0</xcal:text>

</xcal:uid>

<ei:signalPayload>

<ei:payloadFloat>

<ei:value>80.0</ei:value>

</ei:payloadFloat>

</ei:signalPayload>

</ei:interval>

</strm:intervals>

<ei:signalName>BID_LOAD</ei:signalName>

<ei:signalType>setpoint</ei:signalType>

<ei:signalID>SIG_02</ei:signalID>

<power:powerReal>

<power:itemDescription>RealPower</power:itemDescription>

<power:itemUnits>W</power:itemUnits>

<scale:siScaleCode>k</scale:siScaleCode>

<power:powerAttributes>

<power:hertz>60.0</power:hertz>

<power:voltage>220.0</power:voltage>

<power:ac>true</power:ac>

</power:powerAttributes>

</power:powerReal>

<ei:currentValue>

<ei:payloadFloat>

<ei:value>0.0</ei:value>

</ei:payloadFloat>

</ei:currentValue>

</ei:eiEventSignal>

</ei:eiEventSignals>

<ei:eiTarget>

<ei:venID>venID_1234</ei:venID>

</ei:eiTarget>

</ei:eiEvent>

<oadr:oadrResponseRequired>always</oadr:oadrResponseRequired>

</oadr:oadrEvent>

</oadr:oadrDistributeEvent>

</oadr:oadrSignedObject>

</oadr:oadrPayload>

Residential Thermostat Program

Residential Thermostat Scenario 1 – Simple Use case, A or B Profile

  • Event
    • Notification: Day before event
    • Start Time: 1pm
    • Duration:4 hours
    • Randomization: 10 minutes
    • Ramp Up: None
    • Recovery: None
    • Number of signals: 1
    • Signal Name: SIMPLE
      • Signal Type: level
      • Units: N/A
      • Number of intervals 1
      • Interval Duration(s):4 hours
      • Typical Interval Value(s): 1
      • Signal Target: N/A
    • Event Target(s): Resource_1
    • Priority: 1
    • VEN Response Required: always
    • VEN Expected Response: optIn
  • Reports
    • None

Residential Thermostat Scenario 2 – Typical Use Case, B profile

  • Event
    • Notification: Day before event
    • Start Time:1pm
    • Duration: 4 hours
    • Randomization: 10 minutes
    • Ramp Up: None
    • Recovery: None
    • Number of signals: 2
    • Signal Name: Simple
      • Signal Type: level
      • Units: Level 0,1, 2, 3
      • Number of intervals 1
      • Interval Duration(s):4 hours
      • Typical Interval Value(s): 1 or 2
      • Signal Target: None
    • Signal Name: LOAD_CONTROL
      • Signal Type: x-loadControlLevelOffset
      • Units: Temperature
      • Number of intervals 1
      • Interval Duration(s):4 hours
      • Typical Interval Value(s): 2 to 6 degrees Fahrenheit
      • Signal Target: None
    • Event Targets: Resource_1, Resource_2
    • Priority: 1
    • VEN Response Required: always
    • VEN Expected Response: optIn, Possible outOut (oadrCreateOpt)
  • Reports
    • None

Residential Thermostat Scenario 3 – Complex Use Case

  • Event
    • Notification: Day of event
    • Start Time: 1pm
    • Duration: 6 hours
    • Randomization: 10 minutes
    • Ramp Up: None
    • Recovery: None
    • Number of signals:3
    • Signal Name: Simple
      • Signal Type: level
      • Units: Level 0,1, 2, 3)
      • Number of intervals: 2
      • Interval Duration(s): 3 hours, 3 hours
      • Typical Interval Value(s): 1, 2 (for each interval respectively)
      • Signal Target: None
    • Signal Name: BID_LOAD
      • Signal Type: x-loadControlCapacity
      • Units: None
      • Number of intervals 2
      • Interval Duration(s):3 hours, 3 hours
      • Typical Interval Value(s): 0.9, 0.8 (for each interval respectively)
      • Signal Target: None
    • Event Targets: Resource_1, Resource_2, Resource_3
    • Priority: 1
    • VEN Response Required: always
    • VEN Expected Response: optIn, Possible outOut (oadrCreateOpt)
  • Report(s)
    • None

Residential Thermostat Sample Event Payload – Typical B Profile Use Case

<oadr:oadrPayload>

<oadr:oadrSignedObject>

<oadr:oadrDistributeEvent ei:schemaVersion=”2.0b”>

<pyld:requestID>OadrDisReq091214_043740_513</pyld:requestID>

<ei:vtnID>TH_VTN</ei:vtnID>

<oadr:oadrEvent>

<ei:eiEvent>

<ei:eventDescriptor>

<ei:eventID>Event091214_043741_028_0</ei:eventID>

<ei:modificationNumber>0</ei:modificationNumber>

<ei:eiMarketContext>

<emix:marketContext>http://MarketContext1</emix:marketContext>

</ei:eiMarketContext>

<ei:createdDateTime>2014-12-09T12:37:40Z</ei:createdDateTime>

<ei:eventStatus>far</ei:eventStatus>

</ei:eventDescriptor>

<ei:eiActivePeriod>

<xcal:properties>

<xcal:dtstart>

<xcal:date-time>2014-12-09T13:00:00Z</xcal:date-time>

</xcal:dtstart>

<xcal:duration>

<xcal:duration>PT4H</xcal:duration>

</xcal:duration>

<xcal:tolerance>

<xcal:tolerate>

<xcal:startafter>PT10M</xcal:startafter>

</xcal:tolerate>

</xcal:tolerance>

<ei:x-eiNotification>

<xcal:duration>PT24H</xcal:duration>

</ei:x-eiNotification>

</xcal:properties>

<xcal:components/>

</ei:eiActivePeriod>

<ei:eiEventSignals>

<ei:eiEventSignal>

<strm:intervals>

<ei:interval>

<xcal:duration>

<xcal:duration>PT4H</xcal:duration>

</xcal:duration>

<xcal:uid>

<xcal:text>0</xcal:text>

</xcal:uid>

<ei:signalPayload>

<ei:payloadFloat>

<ei:value>2.0</ei:value>

</ei:payloadFloat>

</ei:signalPayload>

</ei:interval>

</strm:intervals>

<ei:signalName>SIMPLE</ei:signalName>

<ei:signalType>level</ei:signalType>

<ei:signalID>SIG_01</ei:signalID>

<ei:currentValue>

<ei:payloadFloat>

<ei:value>0.0</ei:value>

</ei:payloadFloat>

</ei:currentValue>

</ei:eiEventSignal>

<ei:eiEventSignal>

<strm:intervals>

<ei:interval>

<xcal:duration>

<xcal:duration>PT4H</xcal:duration>

</xcal:duration>

<xcal:uid>

<xcal:text>0</xcal:text>

</xcal:uid>

<ei:signalPayload>

<ei:payloadFloat>

<ei:value>6.0</ei:value>

</ei:payloadFloat>

</ei:signalPayload>

</ei:interval>

</strm:intervals>

<ei:signalName>LOAD_CONTROL</ei:signalName>

<ei:signalType>x-loadControlLevelOffset</ei:signalType>

<ei:signalID>SIG_02</ei:signalID>

<oadr:temperature>

<oadr:itemDescription>temperature</oadr:itemDescription>

<oadr:itemUnits>fahrenheit</oadr:itemUnits>

<scale:siScaleCode>none</scale:siScaleCode>

</oadr:temperature>

<ei:currentValue>

<ei:payloadFloat>

<ei:value>0.0</ei:value>

</ei:payloadFloat>

</ei:currentValue>

</ei:eiEventSignal>

</ei:eiEventSignals>

<ei:eiTarget>

<ei:resourceID>resource_1</ei:resourceID>

<ei:resourceID>resource_2</ei:resourceID>

</ei:eiTarget>

</ei:eiEvent>

<oadr:oadrResponseRequired>always</oadr:oadrResponseRequired>

</oadr:oadrEvent>

</oadr:oadrDistributeEvent>

</oadr:oadrSignedObject>

</oadr:oadrPayload>

Fast DR Dispatch

Fast DR Scenario 1 – Simple Use case, A or B Profile

  • Event
    • Notification: 10 minutes
    • Start Time: 1pm
    • Duration: 0 (Open Ended)
    • Randomization: None
    • Ramp Up: None
    • Recovery: None
    • Number of signals: 1
    • Signal Name: SIMPLE
      • Signal Type: level
      • Units: N/A
      • Number of intervals 1
      • Interval Duration(s): 0 (Open Ended)
      • Typical Interval Value(s): 1
      • Signal Target: N/A
    • Event Target(s): venID_1234
    • Priority: 1
    • VEN Response Required: always
    • VEN Expected Response: optIn
  • Reports
    • None

Fast DR Scenario 2 – Typical Use Case, B profile

  • Event
    • Notification: 10 minutes
    • Start Time:1pm
    • Duration: 30 minutes
    • Randomization: None
    • Ramp Up: 5 minutes
    • Recovery: 5 minutes
    • Number of signals: 2
    • Signal Name: Simple
      • Signal Type: level
      • Units: Level 0,1, 2, 3
      • Number of intervals 1
      • Interval Duration(s): 30 minutes
      • Typical Interval Value(s): 1 or 2
      • Signal Target: None
    • Signal Name: LOAD_DISPATCH
      • Signal Type: delta
      • Units: powerReal
      • Number of intervals 1
      • Interval Duration(s): 30 minutes
      • Typical Interval Value(s): 500 kW to 2mW
      • Signal Target: None
    • Event Targets: venID_1234
    • Priority: 1
    • VEN Response Required: always
    • VEN Expected Response: optIn
  • Reports
    • Report Name: TELEMETRY_USAGE
    • Report Type: usage
    • Units: powerReal
    • Reading Type: Direct Read
    • Report Frequency: every 1 minute

Fast DR Scenario 3 – Complex Use Case

  • Event
    • Notification: 10 minutes
    • Start Time: 1pm
    • Duration: 30 minutes
    • Randomization: None
    • Ramp Up: 5 minutes
    • Recovery: 5 minutes
    • Number of signals:2
    • Signal Name: Simple
      • Signal Type: level
      • Units: Level 0,1, 2, 3)
      • Number of intervals: 2
      • Interval Duration(s): 15 minutes, 15 minutes
      • Typical Interval Value(s): 1, 2 (for each interval respectively)
      • Signal Target: None
    • Signal Name: LOAD_DISPATCH
      • Signal Type: setpoint
      • Units: powerReal
      • Number of intervals 2
      • Interval Duration(s): 15 minutes, 15 minutes
      • Typical Interval Value(s): 800kW, 900kW (for each interval respectively)
      • Signal Target: None
    • Event Targets: Resource_1
    • Priority: 1
    • VEN Response Required: always
    • VEN Expected Response: optIn
  • Report(s)
    • Report Name: TELEMETRY_USAGE
    • Report Type: usage
    • Units: powerReal and voltage
    • Reading Type: Direct Read
    • Report Frequency: every 5 seconds

Fast DR Sample Event Payload – Typical B Profile Use Case

<oadr:oadrPayload>

<oadr:oadrSignedObject>

<oadr:oadrDistributeEvent ei:schemaVersion=”2.0b”>

<pyld:requestID>OadrDisReq091214_043740_513</pyld:requestID>

<ei:vtnID>TH_VTN</ei:vtnID>

<oadr:oadrEvent>

<ei:eiEvent>

<ei:eventDescriptor>

<ei:eventID>Event091214_043741_028_0</ei:eventID>

<ei:modificationNumber>0</ei:modificationNumber>

<ei:eiMarketContext>

<emix:marketContext>http://MarketContext1</emix:marketContext>

</ei:eiMarketContext>

<ei:createdDateTime>2014-12-09T12:37:40Z</ei:createdDateTime>

<ei:eventStatus>far</ei:eventStatus>

</ei:eventDescriptor>

<ei:eiActivePeriod>

<xcal:properties>

<xcal:dtstart>

<xcal:date-time>2014-12-09T13:00:00Z</xcal:date-time>

</xcal:dtstart>

<xcal:duration>

<xcal:duration>PT10M</xcal:duration>

</xcal:duration>

<ei:x-eiNotification>

<xcal:duration>PT10M</xcal:duration>

</ei:x-eiNotification>

<ei:x-eiRampUp>

<xcal:duration>PT5M</xcal:duration>

</ei:x-eiRampUp>

<ei:x-eiRecovery>

<xcal:duration>PT5M</xcal:duration>

</ei:x-eiRecovery>

</xcal:properties>

<xcal:components/>

</ei:eiActivePeriod>

<ei:eiEventSignals>

<ei:eiEventSignal>

<strm:intervals>

<ei:interval>

<xcal:duration>

<xcal:duration>PT10M</xcal:duration>

</xcal:duration>

<xcal:uid>

<xcal:text>0</xcal:text>

</xcal:uid>

<ei:signalPayload>

<ei:payloadFloat>

<ei:value>2.0</ei:value>

</ei:payloadFloat>

</ei:signalPayload>

</ei:interval>

</strm:intervals>

<ei:signalName>SIMPLE</ei:signalName>

<ei:signalType>level</ei:signalType>

<ei:signalID>SIG_01</ei:signalID>

<ei:currentValue>

<ei:payloadFloat>

<ei:value>0.0</ei:value>

</ei:payloadFloat>

</ei:currentValue>

</ei:eiEventSignal>

<ei:eiEventSignal>

<strm:intervals>

<ei:interval>

<xcal:duration>

<xcal:duration>PT10M</xcal:duration>

</xcal:duration>

<xcal:uid>

<xcal:text>0</xcal:text>

</xcal:uid>

<ei:signalPayload>

<ei:payloadFloat>

<ei:value>500.0</ei:value>

</ei:payloadFloat>

</ei:signalPayload>

</ei:interval>

</strm:intervals>

<ei:signalName>LOAD_DISPATCH</ei:signalName>

<ei:signalType>delta</ei:signalType>

<ei:signalID>SIG_02</ei:signalID>

<power:powerReal>

<power:itemDescription>RealPower</power:itemDescription>

<power:itemUnits>W</power:itemUnits>

<scale:siScaleCode>k</scale:siScaleCode>

<power:powerAttributes>

<power:hertz>60.0</power:hertz>

<power:voltage>220.0</power:voltage>

<power:ac>true</power:ac>

</power:powerAttributes>

</power:powerReal>

<ei:currentValue>

<ei:payloadFloat>

<ei:value>0.0</ei:value>

</ei:payloadFloat>

</ei:currentValue>

</ei:eiEventSignal>

</ei:eiEventSignals>

<ei:eiTarget>

<ei:venID>venID_1234</ei:venID>

</ei:eiTarget>

</ei:eiEvent>

<oadr:oadrResponseRequired>always</oadr:oadrResponseRequired>

</oadr:oadrEvent>

</oadr:oadrDistributeEvent>

</oadr:oadrSignedObject>

</oadr:oadrPayload>

Fast DR Sample Report Metadata Payload – Typical B Profile Use Case

<oadr:oadrPayload >

<oadr:oadrSignedObject>

<oadr:oadrRegisterReport ei:schemaVersion=”2.0b”>

<pyld:requestID>RegReq120615_122508_975</pyld:requestID>

<oadr:oadrReport>

<xcal:duration>

<xcal:duration>PT10M</xcal:duration>

</xcal:duration>

<oadr:oadrReportDescription>

<ei:rID>rID120615_122512_981_0</ei:rID>

<ei:reportDataSource>

<ei:resourceID>resource1</ei:resourceID>

</ei:reportDataSource>

<ei:reportType>usage</ei:reportType>

<power:energyReal>

<power:itemDescription>RealEnergy</power:itemDescription>

<power:itemUnits>Wh</power:itemUnits>

<scale:siScaleCode>k</scale:siScaleCode>

</power:energyReal>

<ei:readingType>Direct Read</ei:readingType>

<emix:marketContext>http://MarketContext1</emix:marketContext>

<oadr:oadrSamplingRate>

<oadr:oadrMinPeriod>PT1M</oadr:oadrMinPeriod>

<oadr:oadrMaxPeriod>PT10M</oadr:oadrMaxPeriod>

<oadr:oadrOnChange>false</oadr:oadrOnChange>

</oadr:oadrSamplingRate>

</oadr:oadrReportDescription>

<ei:reportRequestID>0</ei:reportRequestID>

<ei:reportSpecifierID>ReportSpecID120615_122512_481_2</ei:reportSpecifierID>

<ei:reportName>METADATA_TELEMETRY_USAGE</ei:reportName>

<ei:createdDateTime>2015-06-12T19:25:12Z</ei:createdDateTime>

</oadr:oadrReport>

<ei:venID>ec27de207837e1048fd3</ei:venID>

</oadr:oadrRegisterReport>

</oadr:oadrSignedObject>

</oadr:oadrPayload>

Fast DR Sample Report Request Payload – Typical B Profile Use Case

<oadr:oadrPayload>

<oadr:oadrSignedObject>

<oadr:oadrCreateReport ei:schemaVersion=”2.0b”>

<pyld:requestID>ReportReqID130615_192625_230</pyld:requestID>

<oadr:oadrReportRequest>

<ei:reportRequestID>ReportReqID130615_192625_730</ei:reportRequestID>

<ei:reportSpecifier>

<ei:reportSpecifierID>ReportSpecID120615_122512_481_2</ei:reportSpecifierID>

<xcal:granularity>

<xcal:duration>PT1M</xcal:duration>

</xcal:granularity>

<ei:reportBackDuration>

<xcal:duration>PT1M</xcal:duration>

</ei:reportBackDuration>

<ei:reportInterval>

<xcal:properties>

<xcal:dtstart>

<xcal:date-time>2015-06-14T13:00:00Z</xcal:date-time>

</xcal:dtstart>

<xcal:duration>

<xcal:duration>PT10M</xcal:duration>

</xcal:duration>

</xcal:properties>

</ei:reportInterval>

<ei:specifierPayload>

<ei:rID>rID120615_122512_981_0</ei:rID>

<ei:readingType>x-notApplicable</ei:readingType>

</ei:specifierPayload>

</ei:reportSpecifier>

</oadr:oadrReportRequest>

<ei:venID>VEN130615_192312_582</ei:venID>

</oadr:oadrCreateReport>

</oadr:oadrSignedObject>

</oadr:oadrPayload>

Fast DR Sample Report Data Payload – Typical B Profile Use Case

<oadr:oadrPayload>

<oadr:oadrSignedObject>

<oadr:oadrUpdateReport ei:schemaVersion=”2.0b”>

<pyld:requestID>ReportUpdReqID130615_192730_445</pyld:requestID>

<oadr:oadrReport>

<xcal:dtstart>

<xcal:date-time>2015-06-14T02:27:29Z</xcal:date-time>

</xcal:dtstart>

<strm:intervals>

<ei:interval>

<xcal:dtstart>

<xcal:date-time>2015-06-14T02:27:29Z</xcal:date-time>

</xcal:dtstart>

<oadr:oadrReportPayload>

<ei:rID>rID120615_122512_981_0</ei:rID>

<ei:confidence>100</ei:confidence>

<ei:accuracy>0.0</ei:accuracy>

<ei:payloadFloat>

<ei:value>500.0</ei:value>

</ei:payloadFloat>

<oadr:oadrDataQuality>Quality Good – Non Specific</oadr:oadrDataQuality>

</oadr:oadrReportPayload>

</ei:interval>

</strm:intervals>

<ei:eiReportID>RP_54321</ei:eiReportID>

<ei:reportRequestID>ReportReqID130615_192625_730</ei:reportRequestID>

<ei:reportSpecifierID>ReportSpecID120615_122512_481_2</ei:reportSpecifierID>

<ei:reportName>TELEMETRY_USAGE</ei:reportName>

<ei:createdDateTime>2015-06-14T02:27:29Z</ei:createdDateTime>

</oadr:oadrReport>

<ei:venID>VEN130615_192312_582</ei:venID>

</oadr:oadrUpdateReport>

</oadr:oadrSignedObject>

</oadr:oadrPayload>

Residential Electric Vehicle (EV) Time of Use (TOU) Program

Note that as program communicates rate tiers in a fairly structured form only the simple and typical use cases are shown

Residential EV Scenario 1 – Simple Use case, A or B Profile

  • Event
    • Notification: Day before event
    • Start Time: 1pm
    • Duration:24 hours
    • Randomization: None
    • Ramp Up: None
    • Recovery: None
    • Number of signals: 1
    • Signal Name: SIMPLE
      • Signal Type: level
      • Units: N/A
      • Number of intervals; equal TOU Tier changes in 24 hours (2 – 6)
      • Interval Duration(s): TOU tier active time frame (i.e. 6 hours)
      • Typical Interval Value(s): 0 – 4 mapped to TOU Tiers
      • Signal Target: N/A
    • Event Target(s): venID_1234
    • Priority: 1
    • VEN Response Required: always
    • VEN Expected Response: optIn
  • Reports
    • None

Residential EV Scenario 2 – Typical Use Case, B profile

  • Event
    • Notification: Day before event
    • Start Time:midnight
    • Duration: 24 hours
    • Randomization: None
    • Ramp Up: None
    • Recovery: None
    • Number of signals: 2
    • Signal Name: Simple
      • Signal Type: level
      • Units: Level 0, 1, 2, 3
      • Number of intervals: equal TOU Tier change in 24 hours (2 – 6)
      • Interval Duration(s): TOU tier active time frame (i.e. 6 hours)
      • Typical Interval Value(s): 0 – 4 mapped to TOU Tiers (0 – Cheapest Tier)
      • Signal Target: None
    • Signal Name: ELECTRICITY_PRICE
      • Signal Type: price
      • Units: USD per Kwh
      • Number of intervals: equal TOU Tier changes in 24 hours (2 – 6)
      • Interval Duration(s): TOU tier active time frame (i.e. 6 hours)
      • Typical Interval Value(s): $0.10 to $1.00 (current tier rate)
      • Signal Target: None
    • Event Targets: venID_1234
    • Priority: 1
    • VEN Response Required: always
    • VEN Expected Response: optIn
  • Reports
    • None

Residential EV Sample Event Payload – Typical B Profile Use Case

<oadr:oadrPayload>

<oadr:oadrSignedObject>

<oadr:oadrDistributeEvent ei:schemaVersion=”2.0b”>

<pyld:requestID>OadrDisReq091214_043740_513</pyld:requestID>

<ei:vtnID>TH_VTN</ei:vtnID>

<oadr:oadrEvent>

<ei:eiEvent>

<ei:eventDescriptor>

<ei:eventID>Event091214_043741_028_0</ei:eventID>

<ei:modificationNumber>0</ei:modificationNumber>

<ei:eiMarketContext>

<emix:marketContext>http://MarketContext1</emix:marketContext>

</ei:eiMarketContext>

<ei:createdDateTime>2014-12-09T12:37:40Z</ei:createdDateTime>

<ei:eventStatus>far</ei:eventStatus>

</ei:eventDescriptor>

<ei:eiActivePeriod>

<xcal:properties>

<xcal:dtstart>

<xcal:date-time>2014-12-09T00:00:00Z</xcal:date-time>

</xcal:dtstart>

<xcal:duration>

<xcal:duration>PT24H</xcal:duration>

</xcal:duration>

<ei:x-eiNotification>

<xcal:duration>PT24H</xcal:duration>

</ei:x-eiNotification>

</xcal:properties>

<xcal:components/>

</ei:eiActivePeriod>

<ei:eiEventSignals>

<ei:eiEventSignal>

<strm:intervals>

<ei:interval>

<xcal:duration>

<xcal:duration>PT5H</xcal:duration>

</xcal:duration>

<xcal:uid>

<xcal:text>0</xcal:text>

</xcal:uid>

<ei:signalPayload>

<ei:payloadFloat>

<ei:value>0.0</ei:value>

</ei:payloadFloat>

</ei:signalPayload>

</ei:interval>

<ei:interval>

<xcal:duration>

<xcal:duration>PT7H</xcal:duration>

</xcal:duration>

<xcal:uid>

<xcal:text>1</xcal:text>

</xcal:uid>

<ei:signalPayload>

<ei:payloadFloat>

<ei:value>1.0</ei:value>

</ei:payloadFloat>

</ei:signalPayload>

</ei:interval>

<ei:interval>

<xcal:duration>

<xcal:duration>PT47H</xcal:duration>

</xcal:duration>

<xcal:uid>

<xcal:text>2</xcal:text>

</xcal:uid>

<ei:signalPayload>

<ei:payloadFloat>

<ei:value>2.0</ei:value>

</ei:payloadFloat>

</ei:signalPayload>

</ei:interval>

<ei:interval>

<xcal:duration>

<xcal:duration>PT5H</xcal:duration>

</xcal:duration>

<xcal:uid>

<xcal:text>3</xcal:text>

</xcal:uid>

<ei:signalPayload>

<ei:payloadFloat>

<ei:value>1.0</ei:value>

</ei:payloadFloat>

</ei:signalPayload>

</ei:interval>

</strm:intervals>

<ei:signalName>SIMPLE</ei:signalName>

<ei:signalType>level</ei:signalType>

<ei:signalID>SIG_01</ei:signalID>

<ei:currentValue>

<ei:payloadFloat>

<ei:value>0.0</ei:value>

</ei:payloadFloat>

</ei:currentValue>

</ei:eiEventSignal>

<ei:eiEventSignal>

<strm:intervals>

<ei:interval>

<xcal:duration>

<xcal:duration>PT5H</xcal:duration>

</xcal:duration>

<xcal:uid>

<xcal:text>0</xcal:text>

</xcal:uid>

<ei:signalPayload>

<ei:payloadFloat>

<ei:value>0.35</ei:value>

</ei:payloadFloat>

</ei:signalPayload>

</ei:interval>

<ei:interval>

<xcal:duration>

<xcal:duration>PT7H</xcal:duration>

</xcal:duration>

<xcal:uid>

<xcal:text>1</xcal:text>

</xcal:uid>

<ei:signalPayload>

<ei:payloadFloat>

<ei:value>0.55</ei:value>

</ei:payloadFloat>

</ei:signalPayload>

</ei:interval>

<ei:interval>

<xcal:duration>

<xcal:duration>PT7H</xcal:duration>

</xcal:duration>

<xcal:uid>

<xcal:text>2</xcal:text>

</xcal:uid>

<ei:signalPayload>

<ei:payloadFloat>

<ei:value>0.75</ei:value>

</ei:payloadFloat>

</ei:signalPayload>

</ei:interval>

<ei:interval>

<xcal:duration>

<xcal:duration>PT5H</xcal:duration>

</xcal:duration>

<xcal:uid>

<xcal:text>3</xcal:text>

</xcal:uid>

<ei:signalPayload>

<ei:payloadFloat>

<ei:value>0.55</ei:value>

</ei:payloadFloat>

</ei:signalPayload>

</ei:interval>

</strm:intervals>

<ei:signalName>ELECTRICITY_PRICE</ei:signalName>

<ei:signalType>price</ei:signalType>

<ei:signalID>SIG_02</ei:signalID>

<oadr:currencyPerKWh>

<oadr:itemDescription>currencyPerKWh</oadr:itemDescription>

<oadr:itemUnits>USD</oadr:itemUnits>

<scale:siScaleCode>none</scale:siScaleCode>

</oadr:currencyPerKWh>

<ei:currentValue>

<ei:payloadFloat>

<ei:value>0.0</ei:value>

</ei:payloadFloat>

</ei:currentValue>

</ei:eiEventSignal>

</ei:eiEventSignals>

<ei:eiTarget>

<ei:venID>venID_1234</ei:venID>

</ei:eiTarget>

</ei:eiEvent>

<oadr:oadrResponseRequired>always</oadr:oadrResponseRequired>

</oadr:oadrEvent>

</oadr:oadrDistributeEvent>

</oadr:oadrSignedObject>

</oadr:oadrPayload>

Public Station Electric Vehicle (EV) Real-Time Pricing Program

Note that as this is a real time pricing program there really is no differentiation between a simple, typical, and complex use case. Therefore sample data will only be shown for a typical use case.

Public Station EV Scenario 1 – Typical Use Case, B profile

  • Event
    • Notification: 1 hour ahead
    • Start Time:1pm
    • Duration: 1 hours
    • Randomization: None
    • Ramp Up: None
    • Recovery: None
    • Number of signals: 1
    • Signal Name: ELECTRICITY_PRICE
      • Signal Type: price
      • Units: USD per Kwh
      • Number of intervals 1
      • Interval Duration(s):1 hours
      • Typical Interval Value(s): $0.10 to $1.00
      • Signal Target: None
    • Event Targets: venID_1234
    • Priority: 1
    • VEN Response Required: always
    • VEN Expected Response: optIn
  • Reports
    • None

Public Station EV Sample Event Payload – Typical B Profile Use Case

<oadr:oadrPayload>

<oadr:oadrSignedObject>

<oadr:oadrDistributeEvent ei:schemaVersion=”2.0b”>

<pyld:requestID>OadrDisReq091214_043740_513</pyld:requestID>

<ei:vtnID>TH_VTN</ei:vtnID>

<oadr:oadrEvent>

<ei:eiEvent>

<ei:eventDescriptor>

<ei:eventID>Event091214_043741_028_0</ei:eventID>

<ei:modificationNumber>0</ei:modificationNumber>

<ei:eiMarketContext>

<emix:marketContext>http://MarketContext1</emix:marketContext>

</ei:eiMarketContext>

<ei:createdDateTime>2014-12-09T12:37:40Z</ei:createdDateTime>

<ei:eventStatus>far</ei:eventStatus>

</ei:eventDescriptor>

<ei:eiActivePeriod>

<xcal:properties>

<xcal:dtstart>

<xcal:date-time>2014-12-09T13:00:00Z</xcal:date-time>

</xcal:dtstart>

<xcal:duration>

<xcal:duration>PT1H</xcal:duration>

</xcal:duration>

<ei:x-eiNotification>

<xcal:duration>PT1H</xcal:duration>

</ei:x-eiNotification>

</xcal:properties>

<xcal:components/>

</ei:eiActivePeriod>

<ei:eiEventSignals>

<ei:eiEventSignal>

<strm:intervals>

<ei:interval>

<xcal:duration>

<xcal:duration>PT1H</xcal:duration>

</xcal:duration>

<xcal:uid>

<xcal:text>0</xcal:text>

</xcal:uid>

<ei:signalPayload>

<ei:payloadFloat>

<ei:value>0.75</ei:value>

</ei:payloadFloat>

</ei:signalPayload>

</ei:interval>

</strm:intervals>

<ei:signalName>ELECTRICITY_PRICE</ei:signalName>

<ei:signalType>price</ei:signalType>

<ei:signalID>SIG_01</ei:signalID>

<oadr:currencyPerKWh>

<oadr:itemDescription>currencyPerKWh</oadr:itemDescription>

<oadr:itemUnits>USD</oadr:itemUnits>

<scale:siScaleCode>none</scale:siScaleCode>

</oadr:currencyPerKWh>

<ei:currentValue>

<ei:payloadFloat>

<ei:value>0.0</ei:value>

</ei:payloadFloat>

</ei:currentValue>

</ei:eiEventSignal>

</ei:eiEventSignals>

<ei:eiTarget>

<ei:venID>venID_1234</ei:venID>

</ei:eiTarget>

</ei:eiEvent>

<oadr:oadrResponseRequired>always</oadr:oadrResponseRequired>

</oadr:oadrEvent>

</oadr:oadrDistributeEvent>

</oadr:oadrSignedObject>

</oadr:oadrPayload>

Distributed Energy Resources (DER) DR Program

Note that as this is a real time pricing program there really is no differentiation between a simple, typical, and complex use case. Therefore sample data will only be shown for a typical use case.

Public Station EV Scenario 1 – Typical Use Case, B profile

  • Event
    • Notification: Day ahead
    • Start Time:midnight
    • Duration: 24 hours
    • Randomization: None
    • Ramp Up: None
    • Recovery: None
    • Number of signals: 24
    • Signal Name: ELECTRICITY_PRICE
      • Signal Type: price
      • Units: USD per Kwh
      • Number of intervals 1
      • Interval Duration(s):1 hours
      • Typical Interval Value(s): $0.10 to $1.00
      • Signal Target: None
    • Event Targets: venID_1234
    • Priority: 1
    • VEN Response Required: never
    • VEN Expected Response: n/a
  • Reports
    • None

Public Station EV Sample Event Payload – Typical B Profile Use Case

<oadr:oadrPayload>

<oadr:oadrSignedObject>

<oadr:oadrDistributeEvent ei:schemaVersion=”2.0b”>

<pyld:requestID>OadrDisReq091214_043740_513</pyld:requestID>

<ei:vtnID>TH_VTN</ei:vtnID>

<oadr:oadrEvent>

<ei:eiEvent>

<ei:eventDescriptor>

<ei:eventID>Event091214_043741_028_0</ei:eventID>

<ei:modificationNumber>0</ei:modificationNumber>

<ei:eiMarketContext>

<emix:marketContext>http://MarketContext1</emix:marketContext>

</ei:eiMarketContext>

<ei:createdDateTime>2014-12-09T12:37:40Z</ei:createdDateTime>

<ei:eventStatus>far</ei:eventStatus>

</ei:eventDescriptor>

<ei:eiActivePeriod>

<xcal:properties>

<xcal:dtstart>

<xcal:date-time>2014-12-09T00:00:00Z</xcal:date-time>

</xcal:dtstart>

<xcal:duration>

<xcal:duration>PT24H</xcal:duration>

</xcal:duration>

<ei:x-eiNotification>

<xcal:duration>PT24H</xcal:duration>

</ei:x-eiNotification>

</xcal:properties>

<xcal:components/>

</ei:eiActivePeriod>

<ei:eiEventSignals>

<ei:eiEventSignal>

<strm:intervals>

<ei:interval>

<xcal:duration>

<xcal:duration>PT1H</xcal:duration>

</xcal:duration>

<xcal:uid>

<xcal:text>0</xcal:text>

</xcal:uid>

<ei:signalPayload>

<ei:payloadFloat>

<ei:value>0.75</ei:value>

</ei:payloadFloat>

</ei:signalPayload>

</ei:interval>

<ei:interval>

<xcal:duration>

<xcal:duration>PT1H</xcal:duration>

</xcal:duration>

<xcal:uid>

<xcal:text>1</xcal:text>

</xcal:uid>

<ei:signalPayload>

<ei:payloadFloat>

<ei:value>0.80</ei:value>

</ei:payloadFloat>

</ei:signalPayload>

</ei:interval>

<!– 22 additional intervals of price data–>

</strm:intervals>

<ei:signalName>ELECTRICITY_PRICE</ei:signalName>

<ei:signalType>price</ei:signalType>

<ei:signalID>SIG_01</ei:signalID>

<oadr:currencyPerKWh>

<oadr:itemDescription>currencyPerKWh</oadr:itemDescription>

<oadr:itemUnits>USD</oadr:itemUnits>

<scale:siScaleCode>none</scale:siScaleCode>

</oadr:currencyPerKWh>

<ei:currentValue>

<ei:payloadFloat>

<ei:value>0.0</ei:value>

</ei:payloadFloat>

</ei:currentValue>

</ei:eiEventSignal>

</ei:eiEventSignals>

<ei:eiTarget>

<ei:venID>venID_1234</ei:venID>

</ei:eiTarget>

</ei:eiEvent>

<oadr:oadrResponseRequired>never</oadr:oadrResponseRequired>

</oadr:oadrEvent>

</oadr:oadrDistributeEvent>

</oadr:oadrSignedObject>

</oadr:oadrPayload>

– Example Reports From Utility Pilots

OpenADR Alliance members provided the following B Profile oadrUpdateReport payload samples from utility pilot programs where their VENs had been deployed. The following notes accompanied the three payloads samples provided:

Thermostat Payload Objective:

  • Need to know the status of the thermostat (temp, set points, fan and mode states)
  • If opted in, whether or not the customer changed the thermostat settings (manual override messages)

M&V for Rebates Payload Objective:

  • Status of resources and manual override in the case of opt in
  • Interval data from a KYZ Pulse Counter or Energy Monitor for total energy in KWH and instantaneous demand in KW

Smart Meter/AMI Interval Data Payload Objective:

  • AMI meter reading interval is about 15 minutes to 1 hour. Although useful, not granular enough for near real time billing estimates
  • Total Energy in KWH, delta energy in KWH, instantaneous demand in KW

The following namespace prefixes are used in the payload examples:

  • xmlns:oadr=”http://openadr.org/oadr-2.0b/2012/07″
  • xmlns:pyld=”http://docs.oasis-open.org/ns/energyinterop/201110/payloads”
  • xmlns:ei=”http://docs.oasis-open.org/ns/energyinterop/201110″
  • xmlns:scale=”http://docs.oasis-open.org/ns/emix/2011/06/siscale”
  • xmlns:emix=”http://docs.oasis-open.org/ns/emix/2011/06″
  • xmlns:strm=”urn:ietf:params:xml:ns:icalendar-2.0:stream”
  • xmlns:xcal=”urn:ietf:params:xml:ns:icalendar-2.0″
  • xmlns:power=”http://docs.oasis-open.org/ns/emix/2011/06/power”

Thermostat Report Payload Sample

<oadr:oadrPayload>

<oadr:oadrSignedObject>

<oadr:oadrUpdateReport ei:schemaVersion=”2.0b”>

<pyld:requestID>RUP-18</pyld:requestID>

<oadr:oadrReport>

<xcal:dtstart>

<xcal:date-time>2014-03-21T02:25:03Z</xcal:date-time>

</xcal:dtstart>

<xcal:duration>

<xcal:duration>PT1M</xcal:duration>

</xcal:duration>

<strm:intervals>

<ei:interval>

<xcal:dtstart>

<xcal:date-time>2014-03-21T02:25:03Z</xcal:date-time>

</xcal:dtstart>

<xcal:duration>

<xcal:duration>PT1M</xcal:duration>

</xcal:duration>

<oadr:oadrReportPayload>

<ei:rID>Status</ei:rID>

<oadr:oadrPayloadResourceStatus>

<oadr:oadrOnline>true</oadr:oadrOnline>

<oadr:oadrManualOverride>false</oadr:oadrManualOverride>

<oadr:oadrLoadControlState>

<oadr:oadrLevelOffset>

<oadr:oadrCurrent>0</oadr:oadrCurrent>

</oadr:oadrLevelOffset>

</oadr:oadrLoadControlState>

</oadr:oadrPayloadResourceStatus>

<oadr:oadrDataQuality>No New Value – Previous Value Used</oadr:oadrDataQuality>

</oadr:oadrReportPayload>

<oadr:oadrReportPayload>

<ei:rID>Current Temp</ei:rID>

<ei:payloadFloat>

<ei:value>77.000000</ei:value>

</ei:payloadFloat>

<oadr:oadrDataQuality>No New Value – Previous Value Used</oadr:oadrDataQuality>

</oadr:oadrReportPayload>

<oadr:oadrReportPayload>

<ei:rID>Heat Temp Setting</ei:rID>

<ei:payloadFloat>

<ei:value>64.000000</ei:value>

</ei:payloadFloat>

<oadr:oadrDataQuality>No New Value – Previous Value Used</oadr:oadrDataQuality>

</oadr:oadrReportPayload>

<oadr:oadrReportPayload>

<ei:rID>Cool Temp Setting</ei:rID>

<ei:payloadFloat>

<ei:value>86.000000</ei:value>

</ei:payloadFloat>

<oadr:oadrDataQuality>No New Value – Previous Value Used</oadr:oadrDataQuality>

</oadr:oadrReportPayload>

<oadr:oadrReportPayload>

<ei:rID>HVAC Mode Setting</ei:rID>

<ei:payloadFloat>

<ei:value>3</ei:value>

</ei:payloadFloat>

<oadr:oadrDataQuality>No New Value – Previous Value Used</oadr:oadrDataQuality>

</oadr:oadrReportPayload>

<oadr:oadrReportPayload>

<ei:rID>Current HVAC Mode</ei:rID>

<ei:payloadFloat>

<ei:value>0.000000</ei:value>

</ei:payloadFloat>

<oadr:oadrDataQuality>No Quality – No Value</oadr:oadrDataQuality>

</oadr:oadrReportPayload>

<oadr:oadrReportPayload>

<ei:rID>Fan Mode Setting</ei:rID>

<ei:payloadFloat>

<ei:value>2</ei:value>

</ei:payloadFloat>

<oadr:oadrDataQuality>No New Value – Previous Value Used</oadr:oadrDataQuality>

</oadr:oadrReportPayload>

<oadr:oadrReportPayload>

<ei:rID>Current Hold Mode</ei:rID>

<ei:payloadFloat>

<ei:value>2</ei:value>

</ei:payloadFloat>

<oadr:oadrDataQuality>No New Value – Previous Value Used</oadr:oadrDataQuality>

</oadr:oadrReportPayload>

<oadr:oadrReportPayload>

<ei:rID>Current Away Mode</ei:rID>

<ei:payloadFloat>

<ei:value>0</ei:value>

</ei:payloadFloat>

<oadr:oadrDataQuality>No New Value – Previous Value Used</oadr:oadrDataQuality>

</oadr:oadrReportPayload>

<oadr:oadrReportPayload>

<ei:rID>Current Humidity</ei:rID>

<ei:payloadFloat>

<ei:value>0.000000</ei:value>

</ei:payloadFloat>

<oadr:oadrDataQuality>No Quality – No Value</oadr:oadrDataQuality>

</oadr:oadrReportPayload>

</ei:interval>

</strm:intervals>

<ei:eiReportID>RP21</ei:eiReportID>

<ei:reportRequestID>REQ:RReq:1395368583267</ei:reportRequestID>

<ei:reportSpecifierID>0013A20040980FAE</ei:reportSpecifierID>

<ei:reportName>TELEMETRY_STATUS</ei:reportName>

<ei:createdDateTime>2014-03-21T02:26:04Z</ei:createdDateTime>

</oadr:oadrReport>

<ei:venID>VEN.ID:1395090780716</ei:venID>

</oadr:oadrUpdateReport>

</oadr:oadrSignedObject>

</oadr:oadrPayload>

M&Vfor Rebates Report Payload Sample

<oadr:oadrPayload>

<oadr:oadrSignedObject>

<oadr:oadrUpdateReport ei:schemaVersion=”2.0b”>

<pyld:requestID>RUP-10</pyld:requestID>

<oadr:oadrReport>

<xcal:dtstart>

<xcal:date-time>2015-08-21T17:41:14Z</xcal:date-time>

</xcal:dtstart>

<xcal:duration>

<xcal:duration>PT30S</xcal:duration>

</xcal:duration>

<strm:intervals>

<ei:interval>

<xcal:dtstart>

<xcal:date-time>2015-08-21T17:41:14Z</xcal:date-time>

</xcal:dtstart>

<xcal:duration>

<xcal:duration>PT30S</xcal:duration>

</xcal:duration>

<oadr:oadrReportPayload>

<ei:rID>Status</ei:rID>

<oadr:oadrPayloadResourceStatus>

<oadr:oadrOnline>true</oadr:oadrOnline>

<oadr:oadrManualOverride>false</oadr:oadrManualOverride>

</oadr:oadrPayloadResourceStatus>

<oadr:oadrDataQuality>Quality Good – Non Specific</oadr:oadrDataQuality>

</oadr:oadrReportPayload>

<oadr:oadrReportPayload>

<ei:rID>Pulse Count</ei:rID>

<ei:payloadFloat>

<ei:value>34750.000000</ei:value>

</ei:payloadFloat>

<oadr:oadrDataQuality>Quality Good – Non Specific</oadr:oadrDataQuality>

</oadr:oadrReportPayload>

<oadr:oadrReportPayload>

<ei:rID>Energy</ei:rID>

<ei:payloadFloat>

<ei:value>33985.500000</ei:value>

</ei:payloadFloat>

<oadr:oadrDataQuality>Quality Good – Non Specific</oadr:oadrDataQuality>

</oadr:oadrReportPayload>

<oadr:oadrReportPayload>

<ei:rID>Power</ei:rID>

<ei:payloadFloat>

<ei:value>1.26</ei:value>

</ei:payloadFloat>

<oadr:oadrDataQuality>Quality Good – Non Specific</oadr:oadrDataQuality>

</oadr:oadrReportPayload>

</ei:interval>

</strm:intervals>

<ei:eiReportID>RP15</ei:eiReportID>

<ei:reportRequestID>REQ:RReq:10453335019195698</ei:reportRequestID>

<ei:reportSpecifierID>0000000000522613 60</ei:reportSpecifierID>

<ei:reportName>TELEMETRY_USAGE</ei:reportName>

<ei:createdDateTime>2015-08-21T17:41:50Z</ei:createdDateTime>

</oadr:oadrReport>

<ei:venID>VEN.ID:1439831430142</ei:venID>

</oadr:oadrUpdateReport>

</oadr:oadrSignedObject>

</oadr:oadrPayload>

Smart Meter/AMI Interval Data Report Payload Sample

<oadr:oadrPayload>

<oadr:oadrSignedObject>

<oadr:oadrUpdateReport ei:schemaVersion=”2.0b”>

<pyld:requestID>RUP-4096</pyld:requestID>

<oadr:oadrReport>

<xcal:dtstart>

<xcal:date-time>2014-09-10T06:26:52Z</xcal:date-time>

</xcal:dtstart>

<xcal:duration>

<xcal:duration>PT1M</xcal:duration>

</xcal:duration>

<strm:intervals>

<ei:interval>

<xcal:dtstart>

<xcal:date-time>2014-09-10T06:26:52Z</xcal:date-time>

</xcal:dtstart>

<xcal:duration>

<xcal:duration>PT15S</xcal:duration>

</xcal:duration>

<oadr:oadrReportPayload>

<ei:rID>instantaneousDemand</ei:rID>

<ei:payloadFloat>

<ei:value>6.167000</ei:value>

</ei:payloadFloat>

<oadr:oadrDataQuality>No New Value – Previous Value Used</oadr:oadrDataQuality>

</oadr:oadrReportPayload>

<oadr:oadrReportPayload>

<ei:rID>intervalDataDelivered</ei:rID>

<ei:payloadFloat>

<ei:value>0.051000</ei:value>

</ei:payloadFloat>

<oadr:oadrDataQuality>No New Value – Previous Value Used</oadr:oadrDataQuality>

</oadr:oadrReportPayload>

<oadr:oadrReportPayload>

<ei:rID>currSumDelivered</ei:rID>

<ei:payloadFloat>

<ei:value>12172.052000</ei:value>

</ei:payloadFloat>

<oadr:oadrDataQuality>No New Value – Previous Value Used</oadr:oadrDataQuality>

</oadr:oadrReportPayload>

</ei:interval>

<ei:interval>

<xcal:dtstart>

<xcal:date-time>2014-09-10T06:27:07Z</xcal:date-time>

</xcal:dtstart>

<xcal:duration>

<xcal:duration>PT15S</xcal:duration>

</xcal:duration>

<oadr:oadrReportPayload>

<ei:rID>instantaneousDemand</ei:rID>

<ei:payloadFloat>

<ei:value>6.114000</ei:value>

</ei:payloadFloat>

<oadr:oadrDataQuality>No New Value – Previous Value Used</oadr:oadrDataQuality>

</oadr:oadrReportPayload>

<oadr:oadrReportPayload>

<ei:rID>intervalDataDelivered</ei:rID>

<ei:payloadFloat>

<ei:value>0.051000</ei:value>

</ei:payloadFloat>

<oadr:oadrDataQuality>No New Value – Previous Value Used</oadr:oadrDataQuality>

</oadr:oadrReportPayload>

<oadr:oadrReportPayload>

<ei:rID>currSumDelivered</ei:rID>

<ei:payloadFloat>

<ei:value>12172.052000</ei:value>

</ei:payloadFloat>

<oadr:oadrDataQuality>No New Value – Previous Value Used</oadr:oadrDataQuality>

</oadr:oadrReportPayload>

</ei:interval>

<ei:interval>

<xcal:dtstart>

<xcal:date-time>2014-09-10T06:27:22Z</xcal:date-time>

</xcal:dtstart>

<xcal:duration>

<xcal:duration>PT15S</xcal:duration>

</xcal:duration>

<oadr:oadrReportPayload>

<ei:rID>instantaneousDemand</ei:rID>

<ei:payloadFloat>

<ei:value>6.113000</ei:value>

</ei:payloadFloat>

<oadr:oadrDataQuality>No New Value – Previous Value Used</oadr:oadrDataQuality>

</oadr:oadrReportPayload>

<oadr:oadrReportPayload>

<ei:rID>intervalDataDelivered</ei:rID>

<ei:payloadFloat>

<ei:value>0.051000</ei:value>

</ei:payloadFloat>

<oadr:oadrDataQuality>No New Value – Previous Value Used</oadr:oadrDataQuality>

</oadr:oadrReportPayload>

<oadr:oadrReportPayload>

<ei:rID>currSumDelivered</ei:rID>

<ei:payloadFloat>

<ei:value>12172.142000</ei:value>

</ei:payloadFloat>

<oadr:oadrDataQuality>No New Value – Previous Value Used</oadr:oadrDataQuality>

</oadr:oadrReportPayload>

</ei:interval>

<ei:interval>

<xcal:dtstart>

<xcal:date-time>2014-09-10T06:27:37Z</xcal:date-time>

</xcal:dtstart>

<xcal:duration>

<xcal:duration>PT15S</xcal:duration>

</xcal:duration>

<oadr:oadrReportPayload>

<ei:rID>instantaneousDemand</ei:rID>

<ei:payloadFloat>

<ei:value>6.112000</ei:value>

</ei:payloadFloat>

<oadr:oadrDataQuality>No New Value – Previous Value Used</oadr:oadrDataQuality>

</oadr:oadrReportPayload>

<oadr:oadrReportPayload>

<ei:rID>intervalDataDelivered</ei:rID>

<ei:payloadFloat>

<ei:value>0.051000</ei:value>

</ei:payloadFloat>

<oadr:oadrDataQuality>No New Value – Previous Value Used</oadr:oadrDataQuality>

</oadr:oadrReportPayload>

<oadr:oadrReportPayload>

<ei:rID>currSumDelivered</ei:rID>

<ei:payloadFloat>

<ei:value>12172.142000</ei:value>

</ei:payloadFloat>

<oadr:oadrDataQuality>No New Value – Previous Value Used</oadr:oadrDataQuality>

</oadr:oadrReportPayload>

</ei:interval>

</strm:intervals>

<ei:eiReportID>RP4101</ei:eiReportID>

<ei:reportRequestID>d5f88bf0-1a8d-0132-eab3-0a5317f1edaa</ei:reportRequestID>

<ei:reportSpecifierID>00:21:b9:00:f2:a9</ei:reportSpecifierID>

<ei:reportName>TELEMETRY_USAGE</ei:reportName>

<ei:createdDateTime>2014-09-10T06:27:53Z</ei:createdDateTime>

</oadr:oadrReport>

<ei:venID>2b2159c0-19cd-0132-eaa3-0a5317f1edaa</ei:venID>

</oadr:oadrUpdateReport>

</oadr:oadrSignedObject>

</oadr:oadrPayload>

– Services

Open ADR supports the following services:

  • EiEvent Service – Used by VTNs to send demand response events to VENs, and used by VENs to indicate whether resources are going to participate in the event. The only service supported by the A profile is EiEvent
  • EiReport Service – Used by VENs and VTNs to exchange historical, telemetry, and forecast reports
  • EiOpt Service – Used by VEN to communicate temporary availability schedule to VTNs or to qualify the resources participating in an event
  • EiRegisterParty Service – Initiated by the VEN, and used by both VEN and VTN to exhange information required to ensure interoperable exchange of payloads
  • OadrPoll Service – Used by VENs to poll the VTN for payloads from any of the other services

A and B profile service operations are defined by the root element of each payload, excluding the oadrPayload and oadrSignedObject wrappers used on all B profile payloads.

– Payload Definitions

EiEvent Payloads

  • oadrRequestEvent – Used in a pull exchange model by the VEN to retrieve all relevant events from the VTN. Used as the primary polling mechanism for A profile VENs, but only used on B VENs for syncing with the VTN.
  • oadrDistributeEvent – Used by the VTN to deliver demand response events to the VEN
  • oadrCreatedEvent – Used by the VEN to communicate whether it intends to participate in an event by opting in or out
  • oadrResponse – Used by the VTN to acknowledge the receipt of the optIn or optOut from the VEN

EiReport Payloads

Note that both VENs and VTNs are capable of being both a report producer and a report requestor, so all the payloads below can be initiated by either party.

  • oadrRegisterReport – Used to publish their reporting capabilities in a metadata report
  • oadrRegisteredReport -Acknowledge the receipt of oadrRegisterReport, optionally request one of the offered reports
  • oadrCreateReport – Used to request a report that has been previously offered by the VEN or VTN
  • oadrCreatedReport – Acknowledge receipt of a report request
  • oadrUpdateReport -Deliver a requested report containing interval data
  • oadrUpdatedReport – Acknowledge receipt of a delivered report
  • oadrCancelReport – Cancel a previously requested periodic report
  • oadrCanceledReport – Acknowledge a periodic report cancellation
  • oadrResponse – Used as a placeholder response in some pull exchange patterns when an application layer response is delivered in a transport layer request.

EiOpt Payloads

  • oadrCreateOpt – Used for two distinctly different purposes
    • For the VEN to communicate a temporary availability schedule to the VTN with regards to its ability to participate in DR events
    • For the VEN to qualify the resources participating in an event
  • oadrCreatedOpt – Acknowledge the receipt of the oadrCreateOpt payload
  • oadrCancelOpt -Cancel a temporary availability schedule
  • oadrCanceledOpt – Acknowledge a temporary availability report cancellation

 

EiRegisterParty Payloads

  • oadrQueryRegistration – A way for the VEN to query the VTNs registration information without actually registering.
  • oadrCreatePartyRegistration – A request from the VEN to the VTN to register. Contains information about the VENs capabilities.
  • oadrCreatedPartyRegistration – Response to either a oadrQueryRegistration or a oadrCreatePartyRegistration. Contains VTN capabilities and registration information necessary for the VEN to interoperate
  • oadrCancelPartyRegistration – Used by either the VEN or VTN to cancel registration
  • oadrCanceledPartyRegistration – Reponse to a oadrCancelPartyRegistration. Acknowledges receipt of the registration cancellation
  • oadrRequestReregistration – This payload is used by a VTN in a pull exchange model to signal the VEN to reinitiate the registration sequence
  • oadrResponse – Used as a placeholder response in some pull exchange patterns when an application layer response is delivered in a transport layer request.

OadrPoll Payloads

  • oadrPoll – A generic poling mechanism for the B profile that returns payload for any other service that are new or have been updated.
  • oadrResponse – Used to indicate that there are no new or updated payloads available

– Glossary of Schema Payload Elements

The following is an alphabetical list of schema elements used in OpenADR 2.0 payloads. The narrative describes their usage as it pertains to OpenADR and thier use in payloads.. When a element definition changes based on the payload it is contained in or its usage context, this will be noted in the narrative. Root payload definitions have been excluded as the are defined in Annex C.

  • ac – A Boolean value indicating whether the power product is alternating current
  • accuracy – Number is in same units as the payload variable for an Interval. When present with Confidence, indicates the likely variability of the prediction. When present with ReadingType, indicates likely error of Reading.
  • aggregatedPnode – An aggregated pricing node is a specialized type of pricing node used to model items such as System Zone, Default Price Zone, Custom Price Zone, Control Area, Aggregated Generation, Aggregated Participating Load, Aggregated Non-Participating Load, Trading Hub, DCA Zone
  • available – An object containing a date-time and duration for an EiOpt availability schedule
  • baselineID – Unique ID for a specific baseline
  • baselineName – Descriptive name for baseline
  • components
  • confidence – A statistical probability that a reported data point is accurate
  • createdDateTime – The dateTime the payload was created
  • currency
  • currencyPerKW
  • currencyPerKWh
  • currencyPerThm
  • current
  • currentValue – The payloadFloat value of the event interval currently executing.
  • customUnit – Used to define a custom unit of measure for custom reports
  • date-time
  • dtstart – The starting time for the activity, data, or state change
  • duration – A time period for an event, reporting, or availablity time interval
  • duration – The duration of the activity, data, or state
  • eiActivePeriod – Time frames relevant to the overall event
  • eiCreatedEvent – Respond to a DR Event with optIn or optOut
  • eiEvent -An object containing all the information for a single event
  • eiEventBaseline – B profile
  • eiEventSignal – An object containing all the information for a single signal in an event
  • eiEventSignals – Interval data for one or more event signals and/or baselines
  • eiMarketContext – A URI uniquely identifying a demand response program
  • eiReportID – Reference ID for a report
  • eiRequestEvent – Request Event from a VTN in pull mode
  • eiResponse – Indicate whether received payload is acceptable
  • eiTarget – Identifies the resources associated with the logical VEN interface. For events, the values specified are the target for the event
  • endDeviceAsset – The EndDeviceAssets are the physical device or devices which could be meters or other types of devices that may be of interest
  • energyApparent – Apparent Energy, measured in volt-ampere hours (VAh)
  • energyItem
  • energyReactive – Reactive Energy, volt-amperes reactive hours (VARh)
  • energyReal – Real Energy, Watt Hours (Wh)
  • eventDescriptor – Information about the event
  • eventID – An ID value that identifies a specific DR event instance.
  • eventResponse – An object containing VENs response to a request to participate in an event
  • eventResponses – optIn or optOut responses for received events
  • eventStatus – The current status of an event (far, near, active, etc)
  • FeatureCollection/location/Polygon/exterior/LinearRing
  • frequency
  • granularity – This is the time interval between sampled data in a report request.
  • groupID -This type of target is used for events, reports, and opt schedules. The value would typically be assigned by the utility during enrolment in a DR program
  • groupName – This type of target is used for events, reports, and opt schedules. The value would typically be assigned by the utility during enrolment in a DR program
  • hertz
  • interval – An object containing data-time and/or duration, and an actionable value in the case of an event or data in the case of a report
  • intervals – One or more time intervals during which the DR event is active or report data is available
  • itemDescription – A description of a report unit of measure
  • itemUnits – The base unit of measure for a report data point
  • marketContext – A URI identifying a DR Program
  • meterAsset – The MeterAsset is the physical device or devices that performs the role of the meter
  • modificationDateTime – When an event is modified
  • modificationNumber – Incremented each time an event is modified.
  • modificationReason – Why an event was modified
  • mrid – The mRID identifies the physical device that may be a CustomerMeter or other types of EndDevices.
  • node – The Node is a place where something changes (often ownership) or connects on the grid. Many nodes are associated with meters, but not all are.
  • numDataSources
  • oadrCapacity
  • oadrCurrent
  • oadrDataQuality
  • oadrDeviceClass – Device Class target – use only endDeviceAsset.
  • oadrEvent – An object containing a demand response event
  • oadrExtension
  • oadrExtensionName –
  • oadrExtensions
  • oadrHttpPullModel – A boolean indicating whether the VEN want to use a pull exchange model
  • oadrInfo – A key value pair of service specific registration information
  • oadrKey
  • oadrLevelOffset
  • oadrLoadControlState
  • oadrManualOverride – If true then the control of the load has been manually overridden
  • oadrMax
  • oadrMaxPeriod – Maximum sampling period
  • oadrMin
  • oadrMinPeriod – Minimum sampling period
  • oadrNormal
  • oadrOnChange – If true then the data will be recorded when it changes, but at no greater a frequency than that specified by minPeriod.
  • oadrOnline – If true then resource/asset is online, if false then offline.
  • oadrPayload
  • oadrPayloadResourceStatus – Current resource status information
  • oadrPendingReports – A list of periodic reports still active
  • oadrPercentOffset
  • oadrProfile – Profile supported by VEN or VTN
  • oadrProfileName – OpenADR profile name such as 2.0a or 2.0b.
  • oadrProfiles – OpenADR profiles supported by the implementation
  • oadrReport -An object containing all the information for a single report
  • oadrReportDescription – Desciption of the report characteristics offered by the report producer. Contained in a metadata report
  • oadrReportOnly – ReportOnlyDeviceFlag
  • oadrReportPayload – Data point values for reports
  • oadrRequestedOadrPollFreq – The VEN shall send an oadrPoll payload to the VTN at most once for each duration specified by this element
  • oadrResponseRequired – Controls when optIn/optOut response is required. Can be always or never
  • oadrSamplingRate – Sampling rate for telemetry type data
  • oadrService
  • oadrServiceName – This type of target is used for events, reports, and opt schedules. The value would typically be assigned by the utility during enrolment in a DR program
  • oadrServiceSpecificInfo – Service specific registration information
  • oadrSetPoint
  • oadrSignedObject
  • oadrTransport – A transport name supported by a VEN or VTN
  • oadrTransportAddress – Root address used to communicate with other party. Should include port if required
  • oadrTransportName – OpenADR transport name such as simpleHttp or xmpp
  • oadrTransports – OpenADR transports supported by implementation
  • oadrUpdatedReport – Acknowledge receipt of a report
  • oadrUpdateReport – Send a previously requested report
  • oadrValue
  • oadrVenName – VEN name. May be used in VTN GUI
  • oadrXmlSignature – Implementation supports XML signature
  • optID – Identifier for an opt interaction
  • optReason – Enumerated value for the opt reason such as x-schedule
  • optType – optIn or optOut of an event, or used to indicate the type of opt schedule defined in the vavailablityObject for the EiOpt service
  • partyID – This type of target is used for events, reports, and opt schedules. The value would typically be assigned by the utility during enrolment in a DR program
  • payloadFloat – Data point value for event signals or for reporting current or historical values.
  • pnode – A pricing node is directly associated with a connectivity node. It is a pricing location for which market participants submit their bids, offers, buy/sell CRRs, and settle.
  • pointOfDelivery
  • pointOfReceipt
  • posList
  • powerApparent – Apparent Power measured in volt-amperes (VA)
  • powerAttributes
  • powerItem
  • powerReactive – Reactive power, measured in volt-amperes reactive (VAR)
  • powerReal – Real power measured in Watts (W) or Joules/second (J/s)
  • priority – The priority of the event in relation to other events (The lower the number higher the priority. A value of zero (0) indicates no priority, which is the lowest priority by default).
  • properties
  • pulseCount – A reporting data point
  • pulseFactor – kWh per count
  • qualifiedEventID – A unique ID for an event
  • readingType – Metadata about the Readings, such as mean or derived
  • registrationID – Identifier for Registration transaction. Not included in response to query registration unless already registered
  • replyLimit – The maximum number of events to return in an oadrDistributeEvent payload
  • reportBackDuration – Report back with the Report-To-Date for each passing of this Duration.
  • reportDataSource – Sources for data in this report. Examples include meters or submeters. For example, if a meter is capable of providing two different types of measurements, then each measurement stream would be separately identified.
  • reportInterval – This is the overall period of reporting.
  • reportName – Optional name for a report.
  • reportRequestID – Identifier for a particular report request
  • reportSpecifier – Specify data points desired in a particular report instance
  • reportSpecifierID – Identifier for a particular Metadata report specification
  • reportSubject – Device Class target – use only endDeviceAsset.
  • reportToFollow – Indicates if report (in the form of UpdateReport) to be returned following cancellation of Report
  • reportType – The type of a report such as usage or price
  • requestID – A ID used to match up a logical transaction request and response
  • resourceID – This type of target is used for events, reports, and opt schedules. The value would typically be assigned by the utility during enrolment in a DR program
  • response
  • responseCode – A 3 digit response code
  • responseDescription – Narrative description of response status
  • responses
  • rID – ReferenceID for this data point
  • serviceArea – This type of target is used for events, reports, and opt schedules. The value would typically be assigned by the utility during enrolment in a DR program
  • serviceDeliveryPoint – Logical point on the network where the ownership of the service changes hands. It is one of potentially many service points within a ServiceLocation, delivering service in accordance with a CustomerAgreement. Used at the place where a meter may be installed.
  • serviceLocation – A customer ServiceLocation has one or more ServiceDeliveryPoint(s), which in turn relate to Meters. The location may be a point or a polygon, depending on the specific circumstances. For distribution, the ServiceLocation is typically the location of the utility customer’s premise.
  • signalID – unique Identifier for a specific event signal
  • signalName – The name of a signal such as SIMPLE
  • signalPayload – Signal values for events and baselines
  • siScaleCode – A scaling factor for the base unit of measure for a report
  • specifierPayload – An open
  • startafter – Randomization window for start of event
  • statusDateTime – Date and time this artifact references.
  • temperature
  • testEvent – Anything other than false indicates a test event
  • text
  • Therm
  • tolerance – An sub-object containing the randomization requirements for an event
  • tolerate – An object containing the randomization requirements for an event
  • transportInterface – The Transport Interface delineates the edges at either end of a transport segment.
  • uid – Used as an index to identify intervals. Unique Identifier
  • value
  • vavailability – A schedule reflecting device availability for participating in DR events
  • venID – A unique identifier for a VEN
  • voltage
  • vtnComment – Any text
  • vtnID – A unique identifier for a VTN
  • x-eiNotification – The VEN should receive the DR event payload prior to dtstart minus this duration.
  • x-eiRampUp – A duration before or after the event start time during which load shed should transit.
  • x-eiRecovery – A duration before or after the event end time during which load shed should transit.

 

Glossary of Enumerated Values

eventStatus

  • active – The event has been initiated and is currently active.
  • canceled – The event has been canceled.
  • completed – The event has completed.
  • far – Event pending in the far future. The exact definition of how far in the future this refers is dependent upon the market context, but typically means the next day.
  • near – Event pending in the near future. The exact definition of how near in the future the pending event is active is dependent on the market context. .Starts concurrent with effective start of the event x-eiRampUp time. If x-eiRampUp is not defined for the event, this status will not be used for the event.
  • none – No event pending

itemUnits

  • Currency
    • USD – United States Dollars
    • To many to list here, refer to schema
  • powerReal
    • J/s – Joule-second
    • W – Watts
  • temperature
    • celsius
    • fahrenheit

oadrDataQuality

  • No New Value – Previous Value Used
  • No Quality – No Value
  • Quality Bad – Comm Failure
  • Quality Bad – Configuration Error
  • Quality Bad – Device Failure
  • Quality Bad – Last Known Value
  • Quality Bad – Non Specific
  • Quality Bad – Not Connected
  • Quality Bad – Out of Service
  • Quality Bad – Sensor Failure
  • Quality Good – Local Override
  • Quality Good – Non Specific
  • Quality Limit – Field/Constant
  • Quality Limit – Field/High
  • Quality Limit – Field/Low
  • Quality Limit – Field/Not
  • Quality Uncertain – EU Units Exceeded
  • Quality Uncertain – Last Usable Value
  • Quality Uncertain – Non Specific
  • Quality Uncertain – Sensor Not Accurate
  • Quality Uncertain – Sub Normal

oadrResponseRequired

  • always – Always send a response for every event received.
  • never – Never respond.

optReason

Enumerated reasons for opting.

  • economic
  • emergency
  • mustRun
  • notParticipating
  • outageRunStatus
  • overrideStatus –
  • participating
  • x-schedule

oadrTransportName

  • simpleHttp
  • xmpp

OptType

  • optIn – An indication that the VEN will participate in an event, or in the case of the EiOpt service a type of schedule indicating that resource will be available
  • optOut – An indication that the VEN will not participate in an event, or in the case of the EiOpt service a type of schedule indicating that resource will be not available

readingType

  • Allocated – Meter covers several [resources] and usage is inferred through some sort of pro data computation.
  • Contract – Indicates reading is pro forma, i.e., is reported at agreed upon rates
  • Derived – Usage is inferred through knowledge of run-time, normal operation, etc.
  • Direct Read – Reading is read from a device that increases monotonically, and usage must be computed from pairs of start and stop readings.
  • Estimated – Used when a reading is absent in a series in which most readings are present.
  • Hybrid – If aggregated, refers to different reading types in the aggregate number.
  • Mean – Reading is the mean value over the period indicated in Granularity
  • Net – Meter or [resource] prepares its own calculation of total use over time.
  • Peak – Reading is Peak (highest) value over the period indicated in granularity. For some measurements, it may make more sense as the lowest value. May not be consistent with aggregate readings. Only valid for flow-rate Item Bases, i.e., Power not Energy.
  • Projected – Indicates reading is in the future, and has not yet been measured.
  • Summed – Several meters together provide the reading for this [resource]. This is specifically a different than aggregated, which refers to multiple [resources] in the same payload. See also Hybrid.
  • x-notApplicable – Not Applicable
  • x-RMS – Root Mean Square

reportName

  • HISTORY_GREENBUTTON – A report containing greenbutton data in an atom feed schema structure
  • HISTORY_USAGE – A report containing histrorical energy usage data
  • METADATA_HISTORY_GREENBUTTON – A metadata report defining the reporting capabilities for HISTORY_GREENBUTTON reports
  • METADATA_HISTORY_USAGE – A metadata report defining the reporting capabilities for HISTORY_USAGE reports
  • METADATA_TELEMETRY_STATUS – A metadata report defining the reporting capabilities for TELEMETRY_STATUS reports
  • METADATA_TELEMETRY_USAGE – A metadata report defining the reporting capabilities for TELEMETRY_USAGE reports
  • TELEMETRY_STATUS – A report containing real time resource status information such as online state
  • TELEMETRY_USAGE – A report containing real time energy usage information

reportType

An enumerated value that gives the type of report being provided.

  • availableEnergyStorage – Capacity available for further energy storage, perhaps to get to Target Energy Storage
  • avgDemand – Average usage over the duration indicated by the Granularity. See demand for more information.
  • avgUsage – Average usage over the duration indicated by the Granularity. See usage for more information.
  • baseline – Can be demand or usage, as indicated by ItemBase. Indicates what [measurement] would be if not for the event or regulation. Report is of the format Baseline.
  • deltaDemand – Change in demand as compared to the baseline. See demand for more information
  • deltaSetPoint – Changes in setpoint from previous schedule.
  • deltaUsage – Change in usage as compared to the baseline. See usage for more information
  • demand – Report indicates an amount of units (denominated in ItemBase or in the EMIX Product). Payload type is Quantity. A typical ItemBase is Real Power.
  • deviation – Difference between some instruction and actual state.
  • downRegulationCapacityAvailable – Down Regulation capacity available for dispatch, expressed in EMIX Real Power. Payload is always expressed as positive Quantity.
  • level – Simple level from market at each Interval.
  • operatingState – Generalized state of a resource such as on/off, occupancy of building, etc. No ItemBase is relevant. Requires an Application Specific Payload Extension.
  • percentDemand – Percentage of demand
  • percentUsage – Percentage of usage
  • powerFactor – Power factor for the resource
  • price – Price per ItemBase at each Interval
  • reading – Report indicates a reading, as from a meter. Readings are moments in time-changes over time can be computed from the difference between successive readings. Payload type is float
  • regulationSetpoint – Regulation setpoint as instructed as part of regulation services
  • setPoint – Report indicates the amount (denominated in ItemBase or in the EMIX Product) currently set. May be a confirmation/return of the setpoint control value sent from the VTN. Payload type is Quantity. A typical ItemBase is Real Power.
  • storedEnergy – Stored Energy is expressed as Real Energy and Payload is expressed as a Quantity.
  • targetEnergyStorage – Target Energy is expressed as Real Energy and Payload is expressed as a Quantity.
  • upRegulationCapacityAvailable – Up Regulation capacity available for dispatch, expressed in EMIX Real Power. Payload is always expressed as positive Quantity.
  • usage – Report indicates an amount of units (denominated in ItemBase or in the EMIX Product) over a period. Payload type is Quantity. A typical ItemBase is RealEnergy
  • x-resourceStatus – Percentage of demand

scaleCode

  • p – Pico 10**-12
  • n – Nano 10**-9
  • micro – Micro 10**-6
  • m – Milli 10**-3
  • c – Centi 10**-2
  • d – Deci 10**-1
  • k – Kilo 10**3
  • M – Mega 10**6
  • G – Giga 10**9
  • T – Tera 10**12
  • none – Native Scale

signalName

  • BID_ENERGY – This is the amount of energy from a resource that was bid into a program
  • BID_LOAD – This is the amount of load that was bid by a resource into a program
  • BID_PRICE – This is the price that was bid by the resource
  • CHARGE_STATE – State of energy storage resource
  • DEMAND_CHARGE – This is the demand charge
  • ELECTRICITY_PRICE – This is the cost of electricity
  • ENERGY_PRICE – This is the cost of energy
  • LOAD_CONTROL -Set load output to relative values
  • LOAD_DISPATCH – This is used to dispatch load
  • simple – depreciated – for backwards compatibility with A profile
  • SIMPLE – Simple levels (OpenADR 2.0a compliant)

signalType

An enumerated value describing the type of signal such as level or price

  • delta – Signal indicates the amount to change from what one would have used without the signal.
  • level – Signal indicates a program level.
  • multiplier – Signal indicates a multiplier applied to the current rate of delivery or usage from what one would have used without the signal.
  • price – Signal indicates the price.
  • priceMultiplier – Signal indicates the price multiplier. Extended price is the computed price value multiplied by the number of units.
  • priceRelative – Signal indicates the relative price.
  • setpoint – Signal indicates a target amount of units.
  • x-loadControlCapacity – This is an instruction for the load controller to operate at a level that is some percentage of its maximum load consumption capacity. This can be mapped to specific load controllers to do things like duty cycling. Note that 1.0 refers to 100% consumption. In the case of simple ON/OFF type devices then 0 = OFF and 1 = ON.
  • x-loadControlLevelOffset – Discrete integer levels that are relative to normal operations where 0 is normal operations.
  • x-loadControlPercentOffset – Percentage change from normal load control operations.
  • x-loadControlSetpoint – Load controller set points.

– OpenADR A and B Profile Differences

The only service supported by the A profile is the EiEvent service. The EiEvent object is simplified in the A profile with the following constraints:

  • Only one signal per event is allowed and that signal must be the OpenADR well-known signal SIMPLE.
  • There is a limited event targeting with only venID, groupID, resourceID, and partyID supported.(eiEvent:eiTarget).
  • Targeting at the signal level with device classes is not supported (eiEventSignal:eiTarget:endDeviceAsset).
  • Baselines are not supported (eiEvent:eiEventSignals:eiEventBaseline).
  • modificationDateTime and modificationReason are not supported.
  • The endpoint URL for simple HTTP in 2.0b is:
    • https://<hostname>(:port)/(prefix/)OpenADR2/Simple/2.0b/<service>

Some payload elements that were required in the A profile are now optional in the B profile, including:

  • currentValue

– OpenADR Security Certificates

The OpenADR conformance rules require the following:

  • TLS Version 1.2 is used for the exchange of X.509 certificates
  • VTN’s must have both SHA256 ECC and RSA certificates
  • VENs may support either SHA256 ECC and RSA certificates, and may support both
  • Both VTNs and VENs must be configured to request client certificates if they are going to play the role of a transport server (i.e. responding to requests from the other party)
  • Both VTNs and VENs must provide a client certificate when requested by the other party as part of the TLS negotiation process

Certificates provided by NetworkFX will be will be specific to RSA or ECC. The creation of these certificates may occur as the results of filling out forms on the NetworkFX web site to request test certificates or may be the result of requesting production certificates via a Certificate Signing Request (CSR). Regardless of the method, the following files will be provided (examples are shown):

  • Root Certificate
  • Intermediate Root Certificate
  • Device Certificate
  • Private Key

In general, the Private Key is used to encrypt payloads sent by a VEN or VTN. The Device Certificate is a set of unique identifying information about a VEN or VTN that has been created by a Certificate Authority and encrypted using the Private Key. The Root and Intermediate files are used to decrypt the Device Certificate and validate that the certificate came from a trusted authority.

In a Java environment that utilizes JSSE, there are two certificate stores. One is called a Trust Store and is used to hold the Root Certificate. The second is called a Key Store and is used to store a certificate chain consisting of the device certificate intermediate certificate, as well as the private key

Please note that when using an XMPP transport the VEN is communicating with the XMPP server and NOT directly with the VTN. So the configuration of certificates in the XMPP server MUST be equivalent to that of a VTN . The communication between the VTN itself and the XMPP server is transparent to the VEN and is essentially a private link. Nevertheless, most vendors used a set of VEN certs in the VTN when communicating with the XMPP server.

If you are using OpenFire as your XMPP server, there is another constraint that you must consider. OpenFire requires that the CN name used in the client device certificates match the devices XMPP username configured on the XMPP server. This can result in some odd client names as a MAC like address is used for the CN name on the VEN certificates (Part of the OpenADR Security Requirements)

Finally, most VENs and VTNs when playing the role of a transport client will attempt to validate that the CN field of the certificate provided by the transport server has a CN name that matches the host name of the entity that provided the certificate. This may be another source of interoperability problems when exchanging certificates. Host Name Verification can typically be disabled programmatically to isolate these kinds of issues.

OpenADR 2.0 Demand Response Program Guide – OpenADR 2.0 Demand Response Program Guide –

[xyz-ips snippet=”download-snippet”]


Posted

in

by