Listening for changes

Volue Insight time series API supports listening for changes to curves. An event listener is set up, and behaves like an infinite iterator, returning change events as they happen.

To create an event listener, find a list of curves (or a list of curve ids) and use that as input to the volue_insight_timeseries.session.Session.events() function. There are two optional arguments: start_time (if you had a listener and you want to restart it without getting old events), and timeout if you do not want the iterator to wait for ever.

When a curve is updated, the iterator returns a CurveEvent object (volue_insight_timeseries.events.CurveEvent). If timeout is specified and expires, a EventTimeout object (volue_insight_timeseries.events.EventTimeout) is returned:

>>> curves = session.search(category='WND', area=['EE', 'LT'], frequency='H')
>>> events = session.events(curves, timeout=5)
>>> for e in events:
        print(e)
...