Get measurement value

How to get measurement value from the Find Measurement Query


I hope you are using the “Query for measurements” as a starting point to get the pattern to react the results properly.

As you can see there you receive a

which contains a Measurement

now a measurement has a “measurements” dictionary, which contains as values additional dictionaries of which the values are MeasurementValue:

which in turn contain the actual “value” field. This mirrors the fragment and series structures of measurements. If you are a 100% what kind of values the measurements have you are receiving you can use operator to extract them:

float value := resp.measurement.measurements["<<fragment>>"]["<<series>>"].value;

Note that if the fragment or series are not present, this will crash your EPL App. Better would be to include proper tests:

if (resp.measurement.measurements.hasKey("<<fragment>>") {
  dictionary<string, MeasurementValue> f := resp.measurement.measurements["<<fragment>>"];
  if(f.hasKey("<<series>>") {
    float value := f["<<series>>"].value;

Same code snippet works to get time of that measurement?

Time is easier as it is a top-level field:

float ts := resp.measurement.time;