
Butlr provides occupancy sensing devices that can be used to track space utilization. The Butlr connector allows you to connect your Butlr devices to the Mapped graph, giving you access to occupancy and traffic count data.
Contact [email protected] in order to retrieve the ID and Secret.
| Field | Required | Description | Where to Find |
|---|---|---|---|
| Client ID | Yes | OAuth client identifier for the Butlr API | Butlr customer or developer portal |
| Client Secret | Yes | OAuth client secret for the Butlr API | Generated with the client ID |
The mapping step loads Butlr buildings, floors, and rooms. Each row represents one room mapping and can optionally include sub-building information and space codes for matching existing spaces.
| Field | Required | Description |
|---|---|---|
| Building Name | Yes | Building name from Butlr |
| Building Site ID | Yes | Building/site identifier from Butlr |
| Building Address | Yes | Building address carried into the mapped building |
| Sub-building Name | No | Optional subdivision for wings or towers |
| Sub-building Code | No | Optional short code |
| Floor Ref ID | Yes | Butlr floor ID |
| Floor Name | Yes | Floor display name |
| Floor Level | Yes | Numeric floor level |
| Space Ref ID | Yes | Combined floor/room reference used by the connector |
| Space Name | Yes | Room display name |
| Space Code | No | External code used when matching existing spaces |
| Space Context | No | Read-only Butlr room metadata such as customID |
| Option | Default | Description |
|---|---|---|
| Traffic Sensor Drift Correction | FALSE | Enables a dedicated traffic correction routine that runs hourly and only processes data during the 09:00 UTC correction window |
| Add Occupancy Zones | Mode-dependent | In custom mode, controls whether Butlr zones become child occupancy zones in the graph |
| Poll Settle Delay Minutes | 0 | Delays the effective query window by up to 10 minutes so Butlr data can settle before it is fetched |
| Simple Traffic Polling | TRUE | Replaces normal entry/exit polling with a day-to-date total routine for traffic counts |
| Butlr concept | Mapped entity | exactType | Relationships |
|---|---|---|---|
| Mapped building/floor hierarchy | Building / Floor | Building / Floor | Place mapping establishes the parent hierarchy |
| Butlr room (materialized mode) | Space | Space | hasPart from floor |
| Butlr zone | Zone | OccupancyZone | hasPart from the mapped room/space |
| Virtual room zone | Zone | OccupancyZone | hasPart from the mapped existing space |
| Butlr sensor | Thing | OccupancySensingDevice | hasLocation to the mapped space and serves any created occupancy zone |
| Butlr data | Point location | exactType | Datatype | Unit | Description |
|---|---|---|---|---|---|
| Floor occupancy report | Floor | OccupancyCountSensor | DOUBLE | NUM | Floor-level occupancy total |
| Room occupancy report | Space in default/custom mode, virtual zone in willow mode | OccupancyCountSensor | DOUBLE | NUM | Occupancy value for the mapped room |
| Room traffic report | Space | OccupancyCountSensor | DOUBLE | NUM | Traffic count for rooms with traffic-capable sensors |
| Room entry count | Space in default/custom mode, virtual zone in willow mode | OccupancyCountSensor | DOUBLE | NUM | Entry count derived from traffic data |
| Room exit count | Space in default/custom mode, virtual zone in willow mode | OccupancyCountSensor | DOUBLE | NUM | Exit count derived from traffic data |
| Zone occupancy report | Butlr occupancy zone | OccupancyCountSensor | DOUBLE | NUM | Occupancy for each provisioned Butlr zone |
| Zone entry/exit count | Butlr occupancy zone | OccupancyCountSensor | DOUBLE | NUM | Entry and exit counts for traffic-enabled zones |
The main poll runs every minute. When drift correction is enabled, a second hourly poll checks whether it is in the 09:00 UTC correction window before requesting traffic correction data.
Note: Presence sensors have been deprecated.
Query Occupancy Zones
Request ResponseCopy1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26{ zones(filter: {connectedDataSourceId: {eq: "your-connector-Id"}}) { id name exactType mappingKey isPartOf { id name exactType } hasPoint { id name exactType mappingKey } isServedBy { ... on Thing { id name exactType } } } }
