def build_event_signal(site_event): event_start = site_event.dr_event.start event_end = site_event.dr_event.end event_duration = event_end - event_start seconds = event_duration.seconds # datetime.timedelta only has a seconds property, so pass in seconds to duration duration = isoduration.Duration(seconds=seconds) iso_duration = isoduration.duration_isoformat( duration) # duration in iso format duration = oadr_20b.DurationPropType(duration=iso_duration) dtstart = oadr_20b.dtstart(date_time=event_start) properties = oadr_20b.properties(dtstart=dtstart, duration=duration) report_interval = [ oadr_20b.WsCalendarIntervalType(properties=properties) ] interval = [oadr_20b.IntervalType(dtstart=dtstart, duration=duration)] intervals = oadr_20b.intervals(interval=interval) return [ oadr_20b.eiEventSignalType(intervals=intervals, signalName='simple', signalType='level') ]
def build_report_specifier(self): report_specifier_id = self.report_specifier_id time = pytz.UTC.localize(datetime.utcnow()) dtstart = oadr_20b.dtstart(date_time=time) # report duration == None is a signal to the Kisensum VEN (outside of the normal OADR protocol) # to indicate that this report should continue indefinitely, i.e., until superseded by another report request. properties = oadr_20b.properties(dtstart=dtstart, duration=None) report_interval = oadr_20b.WsCalendarIntervalType(properties=properties) return oadr_20b.ReportSpecifierType(reportSpecifierID=report_specifier_id, reportInterval=report_interval)
def build_report_specifier(self): report_specifier_id = self.report_specifier_id time = pytz.UTC.localize(datetime.utcnow()) dtstart = oadr_20b.dtstart(date_time=time) # report duration == None is a signal to the Kisensum VEN (outside of the normal OADR protocol) # to indicate that this report should continue indefinitely, i.e., until superseded by another report request. properties = oadr_20b.properties(dtstart=dtstart, duration=None) report_interval = oadr_20b.WsCalendarIntervalType( properties=properties) return oadr_20b.ReportSpecifierType( reportSpecifierID=report_specifier_id, reportInterval=report_interval)
def build_event_signal(site_event): event_start = site_event.dr_event.start event_end = site_event.dr_event.end event_duration = event_end - event_start seconds = event_duration.seconds # datetime.timedelta only has a seconds property, so pass in seconds to duration duration = isoduration.Duration(seconds=seconds) iso_duration = isoduration.duration_isoformat(duration) # duration in iso format duration = oadr_20b.DurationPropType(duration=iso_duration) dtstart = oadr_20b.dtstart(date_time=event_start) properties = oadr_20b.properties(dtstart=dtstart, duration=duration) report_interval = [oadr_20b.WsCalendarIntervalType(properties=properties)] interval = [oadr_20b.IntervalType(dtstart=dtstart, duration=duration)] intervals = oadr_20b.intervals(interval=interval) return [oadr_20b.eiEventSignalType(intervals=intervals, signalName='simple', signalType='level')]
def build_active_period_properties(site_event): # Calculate duration event_start = site_event.dr_event.start event_end = site_event.dr_event.end event_duration = event_end - event_start seconds = event_duration.seconds # datetime.timedelta only has a seconds property, so pass in seconds to duration duration = isoduration.Duration(seconds=seconds) iso_duration = isoduration.duration_isoformat(duration) # duration in iso format duration = oadr_20b.DurationPropType(duration=iso_duration) x_ei_notification = oadr_20b.DurationPropType(duration=iso_duration) dtstart = oadr_20b.dtstart(date_time=event_start) properties = oadr_20b.properties(dtstart=dtstart, duration=duration, x_eiNotification=x_ei_notification, x_eiRampUp=None, x_eiRecovery=None) return properties
def build_active_period_properties(site_event): # Calculate duration event_start = site_event.dr_event.start event_end = site_event.dr_event.end event_duration = event_end - event_start seconds = event_duration.seconds # datetime.timedelta only has a seconds property, so pass in seconds to duration duration = isoduration.Duration(seconds=seconds) iso_duration = isoduration.duration_isoformat( duration) # duration in iso format duration = oadr_20b.DurationPropType(duration=iso_duration) x_ei_notification = oadr_20b.DurationPropType(duration=iso_duration) dtstart = oadr_20b.dtstart(date_time=event_start) properties = oadr_20b.properties(dtstart=dtstart, duration=duration, x_eiNotification=x_ei_notification, x_eiRampUp=None, x_eiRecovery=None) return properties