Skip to main content

Disruptive Technologies

DisruptiveLogo

This connector integrates with the Disruptive Technologies IoT sensor platform. Disruptive Technologies produces small, wireless sensors for environmental monitoring and space utilization — including temperature, humidity, CO₂, motion, and desk occupancy sensors. The connector ingests sensor data into the Mapped Graph, creating device entities with associated timeseries points that represent real-time and historical environmental and occupancy measurements.

Use Cases​

  • Environmental monitoring: Track temperature, humidity, and CO₂ levels across buildings and spaces to ensure occupant comfort and regulatory compliance.
  • Space utilization: Monitor desk occupancy and motion activity to understand how spaces are used and optimize real estate decisions.
  • Device health oversight: Monitor sensor battery status, network signal strength, and online/offline connectivity to proactively manage your sensor fleet.

Configuration​

Auth Requirements​

The connector supports two authentication methods. Choose the one that matches your Disruptive Technologies account setup.

MethodFieldsWhere to Find
OAuth2 (recommended)Service Account Email, Account Key ID, Account Key SecretIn the DT Studio under your project's Service Accounts section. Create a Service Account, then create a Key to obtain the Key ID and Secret.
Basic AuthUsername (Key ID), Password (Secret)Same location as OAuth2 — the Key ID is the username and the Key Secret is the password.

Runtime Mode​

ModeDescription
Webhook (Real-time)Default. Creates a DT Data Connector (HTTP_PUSH) for each project to receive real-time sensor events. Poll supplements webhooks with network signal strength data.
Polling (Scheduled)Fetches full event history for all mapped devices every 10 minutes. No remote webhook is created.
#

Advanced Options​

OptionDefaultDescription
Materialize Space as ZoneFALSEWhen enabled, DT Spaces are represented as OccupancyZone entities in the Graph instead of Space.
Review the Graph diagrams below for examples of Materialize Space as Zone disabled and enabled.

Place Mapping​

The connector uses a mapping table to associate DT sensors with locations in the Mapped graph. When you select one or more DT projects, the connector fetches all supported devices and presents them for mapping.

FieldRequiredDescription
building.siteIdYesThe Mapped site ID for the building
building.addressYesBuilding address
building.nameYesBuilding display name
subBuilding.nameNoSub-building name (if applicable)
subBuilding.codeNoSub-building code
floor.nameYesFloor name
floor.levelYesFloor level number (0 = ground, negative = basement)
space.nameNoSpace name (if omitted, device is placed at the floor level)
space.codeNoSpace code
thing.refIdYes (unique)The DT device ID — auto-populated from the API
thing.nameYesDevice display name — auto-populated as {type} - {deviceId}
thing.contextNo (editable)Device metadata including type and labels from the DT API

Backfill​

Backfill imports historical sensor events for devices that are already mapped, for example to recover a gap or to load history for a newly commissioned building. It is a manually triggered job, not automatic polling, and writes into the same points as the live feed.

OptionDefaultDescription
Date RangeLast 7 daysThe history window to import. There is no lower bound field: a start date older than the retention limit below is clamped to the oldest data DT can still serve, and the run reports that it did so.
DevicesAll mapped devicesBackfill every device the connector maps, or narrow the run to specific Project IDs or Device IDs. Narrowing is the best way to recover a single building without spending DT's rate budget on the whole estate.
Window Size (days) (advanced)7The span of each history query. The default keeps the 31-day limit within 5 windows, which gives smoother progress reporting.
Devices in Parallel (advanced)4 (maximum 16)How many devices are processed at once. Raising it mostly takes throughput away from live polling, because a shared rate limiter is the real ceiling.

:::note 31-day retention limit Disruptive Technologies' API retains only 31 days of event history. This is a DT limit, not a Mapped policy. Anything older cannot be backfilled. The connector also holds back a small safety margin from the 31-day edge so that a long-running backfill does not fall off the retention boundary partway through. :::

Connector Log Messages​

A poll cycle that fails, for example because the DT API is unavailable or Mapped does not accept the readings, is retried from the same point by the next cycle, so a temporary failure does not leave a gap in your sensor readings.

Beyond poll success and failure, the connector reports the following to your connector log. Each message is reported once per poll cycle (every 10 minutes) for as long as the condition lasts.

MessageLevelWhenWhat to do
Device Missing ({deviceId} / {name}) - Please check place mapping for possibly decommissioned deviceWARNA device in your place mapping is no longer returned by Disruptive Technologies. Its heartbeat also reports NOT_OK ("Device not found") for as long as the mapping points at it.The sensor was decommissioned or moved to a different DT project. Remove the mapping row, or re-map the device to the project it now lives in.
Webhook missing for DT project {projectId}: Disruptive Technologies has no Data Connector sending this project's sensor events to Mapped, so sensor readings are not updating. Restart the connector to recreate it.ERRORWebhook mode only. DT has no Data Connector for this connector in the project, so no occupancy, motion or other sensor events are reaching Mapped.Restart the connector: starting it recreates the Data Connector. If the message comes back, check in DT Studio (API Integrations → Data Connectors) what is removing it.
Webhook disabled for DT project {projectId}: Data Connector {dataConnectorId} is {status} in Disruptive Technologies, so this project's sensor events are not reaching Mapped. Restart the connector to recreate it.ERRORWebhook mode only. The connector's Data Connector exists, but DT reports it as disabled and sends nothing through it.Restart the connector: starting it replaces the Data Connector with a new, active one.
Polling has not completed since {from}. Readings from {from} to {to} are no longer retried; to recover any that are missing, run Backfill Event History for that period (Disruptive Technologies keeps 31 days of history).WARNPolling mode only. No poll cycle has completed for more than 6 hours, and one cycle reads at most the last 6 hours. The period in the message grows until a cycle completes.Run a Backfill (Backfill Event History) for the period in the message. Readings older than DT's 31-day retention can no longer be fetched.

Mapped Concepts​

API to Mapped Entities​

DT ConceptMapped EntityexactTypeDescription
DT ProjectBuildingBuildingEach DT project maps to a building in the Mapped graph
DT Device (all types)SensorEquipmentSensorEquipmentEach sensor device becomes a SensorEquipment entity
SpaceOccupancyZoneOccupancyZoneMotion and desk occupancy sensors create an OccupancyZone that is part of the mapped Space or Floor

API to Mapped Points​

DT Event TypePoint NameexactTypeDatatypeUnitValue Description
temperatureTemperatureTemperatureSensorDOUBLEDEG_CTemperature in degrees Celsius
humidityHumidityRelativeHumiditySensorDOUBLEPERCENT_RHRelative humidity percentage
co2CO2CO2LevelSensorDOUBLEPPMCO₂ concentration in parts per million
motionMotionOccupancySensorENUMNUM0 = NO_MOTION_DETECTED, 1 = MOTION_DETECTED
deskOccupancyDesk OccupancyOccupancySensorENUMNUM0 = NOT_OCCUPIED, 1 = OCCUPIED
batteryStatusBattery StatusBatteryStatusDOUBLEPERCENTBattery level percentage (all device types)
networkStatusNetwork Signal StrengthCommunicationSignalStrengthStatusDOUBLEPERCENTNetwork signal strength percentage (all device types)

Relationships:

  • Each SensorEquipment hasLocation → the Space, Floor, or OccupancyZone where it is installed
  • For motion and desk occupancy sensors, the SensorEquipment serves → an OccupancyZone, which isPartOf → the parent Space or Floor
  • Each SensorEquipment hasPoint → its timeseries Point entities (main sensor point + battery + network signal)
  • Each SensorEquipment and all its Points share a single Heartbeat via hasHeartbeat

Sample Code​

Query latest sensor readings

{
points(filter: { connectedDataSourceId: { eq: "your-connector-Id" } }) {
id
name
exactType
datatype
mappingKey
unit {
id
}
series(latest: true) {
timestamp
value {
float64Value
}
}
}
}

Query Occupancy Zones and their sensors

{
zones(
filter: {
connectedDataSourceId: { eq: "your-connector-Id" }
exactType: { eq: "Occupancy_Zone" }
}
) {
id
name
exactType
mappingKey
isServedBy {
id
name
hasPoint {
id
name
exactType
mappingKey
}
}
isPartOf {
id
name
exactType
}
}
}

Query sensor devices and their locations

{
things(filter: { connectedDataSourceId: { eq: "your-connector-Id" } }) {
id
name
exactType
mappingKey
hasLocation {
id
name
exactType
}
hasPoint {
id
name
exactType
mappingKey
datatype
unit {
id
}
}
}
}

Graph Diagrams​

Default - DT Space as Space

Default DT Graph shape. Building hasPart Floor which hasPart Space and hasPart OccupancyZone. Space hasIdentity SpaceCode and hasPart OccupancyZone. OccupancyZone isServedBy and isLocationOf SensorEquipment. SensorEquipment hasPoint TemperatureSensor, BatteryStatus, NetworkSignalStrength, C02LevelSensor, OccupancySensor, CommunicationSignalStrengthStatus.

DT Spaces Materialized as Zones

With Materialize Spaces as Zones set to TRUE, the DT Space is rendered as a Zone.

Default DT Graph shape. Building hasPart Floor which hasPart Occupancy_Zone and hasPart OccupancyZone. Occupancy_Zone hasIdentity SpaceCode and hasPart OccupancyZone. OccupancyZone isServedBy and isLocationOf SensorEquipment. SensorEquipment hasPoint TemperatureSensor, BatteryStatus, NetworkSignalStrength, C02LevelSensor, OccupancySensor, CommunicationSignalStrengthStatus.