Developer Portal
Connector Guides
API ReferenceConsole

Beacon

BeaconLogo

This connector allows you to retrieve water meter analysis data such as flow, readings and leaks from Beacon and add them to your graph.

Use Cases

Potential use cases include:

  • Detect water leaks reported by your water meters
  • Track water usage
  • Identify backflow events
  • Monitor Cellular Endpoint telemetry

Configuration

This connector requires the following credentials:

CredentialDescription
Base URLThe URL for the Beacon API. Production is: https://api.beaconama.net
UsernameUsername provided by Beacon Readers
PasswordPassword provided by Beacon Readers

Mapped Concepts

Connector ConceptMapped Type
LocationBuilding
Meters and EndpointsWater_Meter, ICT_Equipment
Report DataWater_Leak_Event_Status, Battery_Status, Communication_Signal_Strength_Status, On_Off_Status, Water_Flow_Sensor, Water_Usage_Sensor, Flow_Sensor, Point

Sample Code

There are multiple available sets of results you may be interested in - the most common usecase is likely looking for water leaks per building. The following example is a relatively straightforward search by building ID, and in this case we will need to use json for the value:

Request Response
Copy
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
{
  buildings(filter: {id: {eq: "BLDGTvc188kZBvQTUeE9nSX6JX"}}) {
    things {
      id
      name
      points {
        id
        name
        series(latest: true) {
          timestamp
          value {
            json
          }
        }
      }
    }
  }
}

Note the empty results for some of the water meters - currently, the points will only materialize if a water leak is detected. So for the majority of the meters, everything is fine - no leaks. For "Water Meter 11696188L", a leak was detected, so the point and time series information is available.

Beyond water leaks, you can track other time series data like Water Flow, or information about the cellular component of the sensor like the Battery Percentage. For points that have standard units, like Water Flow has gallons per minute, you'll just want to pull the float value (and maybe include the unit) like so:

Request Response
Copy
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
{
  points(filter: {exactType: {eq: "Water_Flow_Sensor"}}) {
    id
    name
    exactType
    unit {
      name
      description
    }
    series(latest: true) {
      timestamp
      value {
        float64Value
      }
    }
  }
}

For points where the value you receive represents a numeric representation of a descriptive state, like most of the points related to the Cellular module, you'll want to include the valueMap (and omit unit - won't be anything helpful there):

Request Response
Copy
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
{
  things(filter: {exactType: {eq: "ICT_Equipment"}}) {
    id
    name
    exactType
    points {
      id
      name
      exactType
      valueMap
      series(latest: true) {
        timestamp
        value {
          float64Value
        }
      }
    }
  }
}

This connector also has a unique point called Alert Code, which does not have predefined values we could list in a valueMap. These values would need to be interpreted per your deployment of Beacon. Those would look like this - note there will be nothing useful in valueMap, or unit, for these points:

Request Response
Copy
1
2
3
4
5
6
7
8
9
10
11
12
13
{
  points(filter: {id: {eq: "PNTJAZ411dtF5JNcHMVvUup49"}}) {
    id
    name
    exactType
    series(latest: true) {
      timestamp
      value {
        float64Value
      }
    }
  }
}