Timeseries
The logger
group of object IDs (with the exception of the event log) returns time series data (values with an
associated timestamp taken at regular intervals) as a long response. Similar to th event log, the data is queried by
writing a UNIX timestamp to the object ID, uppon which the device returns data that was logged before that
timestamp. The amount of data varies similar to the event log, so in order to get a full days of data for a single time
series, an average of 7 queries are required.
As with the event table, the first element is a unix timestamp, repeating the value written to the object ID. Then follows a list of pairs, first a UNIX timestamp and then the floating point value.
Thus, the request data type is INT32
for the timestamp, and the response data type is the special TIMESTAMP
data type to cause the decode_value()
function to correctly parse the data into a data
structure.
Data resolution
The data resolution varies between object IDs. Object IDs with minutes
in their name, such as
logger.day_egrid_load_log_ts
have a resolution of 5 minutes.
Time part |
Resolution |
---|---|
|
5 minutes |
|
|
|
|
|
Data storage
The devices use some sort of ring buffer to manage their data, meaning that old elements are overwritten as new data is
stored. For minutes
graphs, this leads to ~90 days of history.
Data format
All elements are always 4-bytes long and are either UINT32 for the timestamp or FLOAT for the value.
Number |
Meaning |
---|---|
0 |
Query timestamp, repeated from the write request. |
1 |
Timestamp 0, associated with the following element. |
2 |
Value 0. |
3 |
Timestamp 1. |
4 |
Value 1. |
5 |
Timestamp 2. |
... |
... |
Unless an error occurs, the structure is always <number of entries> * 2 + 1
4-byte sequences, the extra sequence
being the timestamp at the very beginning.