Skip to content

Commit 1acb079

Browse files
committed
Fixed dtStart in oadrRegisterReport
Reported in #87.
1 parent 859a26c commit 1acb079

File tree

2 files changed

+9
-3
lines changed

2 files changed

+9
-3
lines changed

openleadr/client.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,8 @@ def add_report(self, callback, resource_id, measurement=None,
178178
report_name=enums.REPORT_NAME.TELEMETRY_USAGE,
179179
reading_type=enums.READING_TYPE.DIRECT_READ,
180180
report_type=enums.REPORT_TYPE.READING,
181-
report_duration=None, sampling_rate=None, data_source=None,
181+
report_duration=None, report_dtstart=None,
182+
sampling_rate=None, data_source=None,
182183
scale="none", unit=None, power_ac=True, power_hertz=50, power_voltage=230,
183184
market_context=None, end_device_asset_mrid=None, report_data_source=None):
184185
"""
@@ -207,6 +208,8 @@ def add_report(self, callback, resource_id, measurement=None,
207208
:param str report_name: An OpenADR name for this report (one of openleadr.enums.REPORT_NAME)
208209
:param str reading_type: An OpenADR reading type (found in openleadr.enums.READING_TYPE)
209210
:param str report_type: An OpenADR report type (found in openleadr.enums.REPORT_TYPE)
211+
:param datetime.timedelta report_duration: The time span that can be provided in this report.
212+
:param datetime.datetime report_dtstart: The earliest available data for this report (defaults to now).
210213
:param datetime.timedelta sampling_rate: The sampling rate for the measurement.
211214
:param str unit: The unit for this measurement.
212215
:param boolean power_ac: Whether the power is AC (True) or DC (False).
@@ -244,6 +247,8 @@ def add_report(self, callback, resource_id, measurement=None,
244247
"or may not be appropriate for your use case.")
245248
report_duration = timedelta(seconds=3600)
246249

250+
if report_dtstart is None:
251+
report_dtstart = datetime.now(timezone.utc)
247252

248253
if sampling_rate is None:
249254
sampling_rate = objects.SamplingRate(min_period=timedelta(seconds=10),
@@ -313,7 +318,8 @@ def add_report(self, callback, resource_id, measurement=None,
313318
report_name=report_name,
314319
report_specifier_id=report_specifier_id,
315320
data_collection_mode=data_collection_mode,
316-
duration=report_duration)
321+
duration=report_duration,
322+
dtstart=report_dtstart)
317323
self.reports.append(report)
318324

319325
# Add the new report description to the report

openleadr/templates/oadrRegisterReport.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<oadr:oadrReport xmlns:xcal="urn:ietf:params:xml:ns:icalendar-2.0" xmlns:strm="urn:ietf:params:xml:ns:icalendar-2.0:stream">
66
{% if report.dtstart is defined and report.dtstart is not none %}
77
<xcal:dtstart>
8-
<xcal:date-time>{{ report.duration|timedeltaformat }}</xcal:date-time>
8+
<xcal:date-time>{{ report.dtstart|datetimeformat }}</xcal:date-time>
99
</xcal:dtstart>
1010
{% endif %}
1111
{% if report.duration is defined and report.duration is not none %}

0 commit comments

Comments
 (0)