Esempio n. 1
0
    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')
        ]
Esempio n. 2
0
    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)
Esempio n. 3
0
    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)
Esempio n. 4
0
    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')]
Esempio n. 5
0
    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
Esempio n. 6
0
    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