Skip to content

Visualisation API

mdf edited this page Sep 6, 2012 · 12 revisions

How to get data for a Timestreams Visualisation.

In short:

  • ask the server what time it is
  • optionally ask the server for a list of existing Timestreams, or you need to know the ID of a specific Timestream
  • ask for the metadata that describes the datasource currently feeding the Timestream
  • ask the server for an initial data set (the last 30 readings, for example)
  • repeatedly ask the server for data that has arrived since you last asked

In practical terms:

  • ask the server what time it is

Method name: timestreams.ext_get_time Arguments: username, password

timestreams.ext_get_time USERNAME PASSWORD

curl --noproxy localhost -d "timestreams.ext_get_timeUSERNAMEPASSWORD" http://localhost/relatedev/xmlrpc.php

returns the current server time in seconds. All queries involving a timestamp sent to the server should be relative to this timestamp to avoid time zone problems - i.e. calculate your local time offset from the server's current time, and apply this offset when telling the server when you last asked for something.

1346924718
  • get a list of Timestreams.

Method name: timestreams.ext_get_timestreams Arguments: username, password

timestreams.ext_get_timestreams USERNAME PASSWORD

curl --noproxy localhost -d "timestreams.ext_get_timestreamsUSERNAMEPASSWORD" http://localhost/relatedev/xmlrpc.php

currently returns an array of all Timestreams. Realistically you would only care about timestream_id and name (the friendly name)

timestream_id18 nameadadda head_id21 metadata_id26 starttime2012-08-19 14:50:41 endtime2012-08-19 15:12:18 timestream_id17 nametestimg head_id20 metadata_id28 starttime2012-08-28 16:11:52 endtime2012-08-28 16:12:09
  • ask for the metadata that describes the datasource currently feeding the Timestream

Method name: timestreams.ext_get_timestream_metadata Arguments: username, password, timestream id

timestreams.ext_get_timestream_metadata USERNAME PASSWORD 17

curl --noproxy localhost -d "timestreams.ext_get_timestream_metadataUSERNAMEPASSWORD17" http://localhost/relatedev/xmlrpc.php

returns metadata about the datasource - max value, min value, information about the sensor, units etc

metadata_id28 tablenamewp_5_5_ts_Image_89 measurement_typeImage first_record min_value0 max_value100 unitimage/png unit_symbolPNG device_details5909E86B-DF41-54E6-AD21-FD767045AB33 other_infoTesting data_typeVARCHAR(200)
  • ask the server for an initial data set (the last 30 readings, for example)

Method name: timestreams.ext_get_timestream_metadata Arguments: username, password, timestream id, time last asked, maximum number of readings to return

Note how the initial time last asked argument is 0, indicating we want the latest 30 readings initially.

timestreams.ext_get_timestream_data USERNAME PASSWORD 17 0 30

curl --noproxy localhost -d "timestreams.ext_get_timestream_dataUSERNAMEPASSWORD17134692471810" http://localhost/relatedev/xmlrpc.php

Returns an array of readings. "valid_time" is the time that this reading actually happened, so is the one to display if necessary. "value" is the actual reading - temperature reading, URL of an image etc

id14 valuehttp://robin.timestreams.wp.horizon.ac.uk/files/2012/08/wp_5_5_ts_Image_89_img13.png valid_time2012-08-28 16:11:23 transaction_time2012-08-28 16:12:31 id15 valuehttp://robin.timestreams.wp.horizon.ac.uk/files/2012/08/wp_5_5_ts_Image_89_img14.png valid_time2012-08-28 16:11:23 transaction_time2012-08-28 16:12:43 id12 valuehttp://robin.timestreams.wp.horizon.ac.uk/files/2012/08/wp_5_5_ts_Image_89_img11.png valid_time2012-08-28 16:11:12 transaction_time2012-08-28 16:12:11 id13 valuehttp://robin.timestreams.wp.horizon.ac.uk/files/2012/08/wp_5_5_ts_Image_89_img12.png valid_time2012-08-28 16:11:12 transaction_time2012-08-28 16:12:23

Subsequently repeat this call, but now include the time we last asked, which we should have remembered from the previous call. Timestamp is a unix timestamp in seconds, as below.

timestreams.ext_get_timestream_data USERNAME PASSWORD 17 1346924718 30

Clone this wiki locally