OpenADRVenAgent

OpenADR (Automated Demand Response) is a standard for alerting and responding to the need to adjust electric power consumption in response to fluctuations in grid demand.

For further information about OpenADR and this agent, please see the OpenADR documentation in VOLTTRON ReadTheDocs.

Dependencies

The VEN agent depends on some third-party libraries that are not in the standard VOLTTRON installation. They should be installed in the VOLTTRON virtual environment prior to building the agent. Use requirements.txt in the agent directory to install the requirements

cd $VOLTTRON_ROOT/services/core/OpenADRVenAgent
pip install -r requirements.txt

Configuration Parameters

The VEN agent’s configuration file contains JSON that includes several parameters for configuring VTN server communications and other behavior. A sample configuration file, config, has been provided in the agent directory.

The VEN agent supports the following configuration parameters:

Parameter

Example

Description

db_path

“$VOLTTRON_HOME/data/

Pathname of the agent’s sqlite database. Shell

openadr.sqlite”

variables will be expanded if they are present

in the pathname.

ven_id

“0”

The OpenADR ID of this virtual end node. Identifies

this VEN to the VTN. If automated VEN registration

is used, the ID is assigned by the VTN at that

time. If the VEN is registered manually with the

VTN (i.e., via configuration file settings), then

a common VEN ID should be entered in this config

file and in the VTN’s site definition.

ven_name

“ven01”

Name of this virtual end node. This name is used

during automated registration only, identiying

the VEN before its VEN ID is known.

vtn_id

“vtn01”

OpenADR ID of the VTN with which this VEN

communicates.

vtn_address

http://openadr-vtn.

URL and port number of the VTN.

ki-evi.com:8000”

send_registration

“False”

(“True” or ”False”) If “True”, the VEN sends

a one-time automated registration request to

the VTN to obtain the VEN ID. If automated

registration will be used, the VEN should be run

in this mode initially, then shut down and run

with this parameter set to “False” thereafter.

security_level

“standard”

If ‘high’, the VTN and VEN use a third-party

signing authority to sign and authenticate each

request. The default setting is “standard”: the

XML payloads do not contain Signature elements.

poll_interval_secs

30

(integer) How often the VEN should send an OadrPoll

request to the VTN. The poll interval cannot be

more frequent than the VEN’s 5-second process

loop frequency.

log_xml

“False”

(“True” or “False”) Whether to write each

inbound/outbound request’s XML data to the

agent’s log.

opt_in_timeout_secs

1800

(integer) How long to wait before making a

default optIn/optOut decision.

opt_in_default_decision

“optOut”

(“True” or “False”) Which optIn/optOut choice

to make by default.

request_events_on_startup

“False”

(“True” or “False”) Whether to ask the VTN for a

list of current events during VEN startup.

report_parameters

(see below)

A dictionary of definitions of reporting/telemetry

parameters.

Reporting Configuration

The VEN’s reporting configuration, specified as a dictionary in the agent configuration, defines each telemetry element (metric) that the VEN can report to the VTN, if requested. By default, it defines reports named “telemetry” and “telemetry_status”, with a report configuration dictionary containing the following parameters:

“telemetry” report: parameters

Example

Description

report_name

“TELEMETRY_USAGE”

Friendly name of the report.

report_name_metadata

“METADATA_TELEMETRY_USAGE”

Friendly name of the report’s metadata, when sent

by the VEN’s oadrRegisterReport request.

report_specifier_id

“telemetry”

Uniquely identifies the report’s data set.

report_interval_secs_default

“300”

How often to send a reporting update to the VTN.

telemetry_parameters (baseline_power_kw): r_id

“baseline_power”

(baseline_power) Unique ID of the metric.

telemetry_parameters (baseline_power_kw): report_type

“baseline”

(baseline_power) The type of metric being reported.

telemetry_parameters (baseline_power_kw): reading_type

“Direct Read”

(baseline_power) How the metric was calculated.

telemetry_parameters (baseline_power_kw): units

“powerReal”

(baseline_power) The reading’s data type.

telemetry_parameters (baseline_power_kw): method_name

“get_baseline_power”

(baseline_power) The VEN method to use when

extracting the data for reporting.

telemetry_parameters (baseline_power_kw): min_frequency

30

(baseline_power) The metric’s minimum sampling

frequency.

telemetry_parameters (baseline_power_kw): max_frequency

60

(baseline_power) The metric’s maximum sampling

frequency.

telemetry_parameters (current_power_kw): r_id

“actual_power”

(current_power) Unique ID of the metric.

telemetry_parameters (current_power_kw): report_type

“reading”

(current_power) The type of metric being reported.

telemetry_parameters (current_power_kw): reading_type

“Direct Read”

(current_power) How the metric was calculated.

telemetry_parameters (current_power_kw): units

“powerReal”

(baseline_power) The reading’s data type.

telemetry_parameters (current_power_kw): method_name

“get_current_power”

(current_power) The VEN method to use when

extracting the data for reporting.

telemetry_parameters (current_power_kw): min_frequency

30

(current_power) The metric’s minimum sampling

frequency.

telemetry_parameters (current_power_kw): max_frequency

60

(current_power) The metric’s maximum sampling

frequency.

“telemetry_status” report: parameters

Example

Description

report_name

“TELEMETRY_STATUS”

Friendly name of the report.

report_name_metadata

“METADATA_TELEMETRY_STATUS”

Friendly name of the report’s metadata, when sent

by the VEN’s oadrRegisterReport request.

report_specifier_id

“telemetry_status”

Uniquely identifies the report’s data set.

report_interval_secs_default

“300”

How often to send a reporting update to the VTN.

telemetry_parameters (Status): r_id

“Status”

Unique ID of the metric.

telemetry_parameters (Status): report_type

“x-resourceStatus”

The type of metric being reported.

telemetry_parameters (Status): reading_type

“x-notApplicable”

How the metric was calculated.

telemetry_parameters (Status): units

“”

The reading’s data type.

telemetry_parameters (Status): method_name

“”

The VEN method to use when extracting the data

for reporting.

telemetry_parameters (Status): min_frequency

60

The metric’s minimum sampling frequency.

telemetry_parameters (Status): max_frequency

120

The metric’s maximum sampling frequency.