Skip to main content

EnOcean Sensors

EnOcean logo

The EnOcean Sensors connector brings wireless, battery-free sensor data from the EnOcean Cloud into the Mapped Graph. This connector supports real-time telemetry streaming from a wide range of EnOcean sensor types including environmental sensors (temperature, humidity, CO2, illumination), motion and occupancy sensors, contact sensors, and various control devices.

Use Cases​

  • Real-time Environmental Monitoring: Stream live temperature, humidity, CO2, and illumination data from EnOcean sensors for building comfort and air quality analysis
  • Occupancy and Space Utilization: Track motion detection and contact sensor events to understand space usage patterns and optimize building operations
  • Energy-Efficient Sensor Networks: Leverage EnOcean's battery-free sensor technology for sustainable, maintenance-free monitoring across facilities

Configuration​

Auth Requirements​

The connector requires two sets of credentials for EnOcean Cloud integration:

REST API Credentials (for device provisioning):

  • Username
  • Password

MQTT Credentials (for real-time telemetry):

  • MQTT Broker URL (e.g., mqtts://mqtt.enocean.cloud:8883)
  • MQTT Topic (subscription topic for sensor data)
  • Username
  • Password

These credentials are securely stored and managed by Mapped's credential vault system.

Select Buildings​

The connector maps EnOcean sensors to spaces within your building hierarchy:

FieldRequiredDescription
thing.refIdYesEnOcean device ID
building.siteIdYesBuilding identifier
building.nameYesBuilding name
building.addressYesBuilding address
floor.nameYesFloor name
floor.levelYesFloor level number
space.nameYesSpace/room name
space.codeYesSpace code
space.refIdYesSpace reference ID
thing.nameYesFriendly sensor name
thing #customTagNoOptional custom identifier
thing #euridNoEnOcean Unique Radio ID

Advanced Options​

tsDownsamplingPeriodSec (optional)

  • Controls the time window for downsampling incoming sensor data
  • Default: Platform default
  • Use case: Reduce data volume for high-frequency sensors

tsFlushIntervalSec (optional)

  • Interval (in seconds) for batch writing timeseries data to the Mapped platform
  • Default: 5 seconds
  • Use case: Adjust based on desired latency vs. write efficiency trade-offs

Mapped Concepts​

API to Mapped Entities​

The connector creates the following entity structure in the Mapped graph:

EnOcean API ModelMapped Entity TypeDescription
Device (sensor type)Thing (SENSOR_EQUIPMENT)Physical sensor device
Device locationSpacePhysical space containing the sensor
Device telemetry typesPointIndividual sensor readings (varies by sensor type)

Entity Relationships:

  • Thing → addLocation → Space: Sensors are located in spaces
  • Thing → hasPoint → Point: Sensors have measurement points

Supported Sensor Point Types:

Sensor TypePoint Entity TypeUnitDatatype
TemperatureTEMPERATURE_SENSORDEG_CDOUBLE
HumidityHUMIDITY_SENSORPERCENTDOUBLE
IlluminationILLUMINANCE_SENSORLUXINT
CO2CO2_LEVEL_SENSORPPMINT
Motion DetectedMOTION_SENSORNUMENUM
ContactCONTACT_SENSORNUMENUM
AccelerationSPEED_SENSORGDOUBLE
Acceleration StatusSENSORNUMENUM
Supply VoltageVOLTAGE_SENSORVINT
Energy BowON_OFF_STATUSNUMENUM
RockerPOINTNUMENUM
TriggerPOINTNUMENUM
PIR MotionON_OFF_STATUSNUMENUM

Enumerations​

The connector provides value mappings for enumerated sensor states:

Acceleration Status:

  • 0 - UNKNOWN
  • 1 - THRESHOLD 1 EVENT
  • 2 - HEARTBEAT

Contact Sensor:

  • 0 - UNKNOWN
  • 1 - WINDOW OPEN
  • 2 - OPEN
  • 3 - WINDOW CLOSED

Motion Detector:

  • 0 - UNKNOWN
  • 1 - MOTION DETECTED
  • 2 - UNCERTAIN OF PRESENCE

Energy Bow Status:

  • 0 - UNKNOWN
  • 1 - ENERGY BOW RELEASED
  • 2 - ENERGY BOW PRESSED

Rocker Status:

  • 0 - UNKNOWN
  • 1 - BUTTON A0
  • 2 - BUTTON A1

Trigger Status:

  • 0 - UNKNOWN
  • 1 - EVENT TRIGGERED
  • 2 - HEARTBEAT

PIR Status:

  • 0 - UNKNOWN
  • 1 - PIR OFF
  • 2 - PIR ON

API to Mapped Points​

Telemetry KeyPoint Mapping Key PatternDatatypeUnit
temperaturesensors/temperature/{deviceId}DOUBLEDEG_C
humiditysensors/humidity/{deviceId}DOUBLEPERCENT
illuminationsensors/illumination/{deviceId}INTLUX
co2sensors/co2/{deviceId}INTPPM
motionDetectedsensors/motionDetected/{deviceId}ENUMNUM
contactsensors/contact/{deviceId}ENUMNUM
accelerationsensors/acceleration/{deviceId}DOUBLEG
accelerationStatussensors/accelerationStatus/{deviceId}ENUMNUM
supplyVoltagesensors/supplyVoltage/{deviceId}INTV
energybowsensors/energybow/{deviceId}ENUMNUM
rockerAsensors/rockerA/{deviceId}ENUMNUM
triggersensors/trigger/{deviceId}ENUMNUM
motionsensors/motion/{deviceId}ENUMNUM

Real-time Data Flow:

  • Sensor data is received via MQTT subscription in near real-time
  • Data points are batched according to tsFlushIntervalSec setting
  • Enumerated values are automatically mapped to their numeric equivalents
  • Timestamps are preserved from the EnOcean gateway

Sample Code​

Query sensors and their locations

{
buildings(filter: {connectedDataSourceId: {eq: "your-connector-Id"}}) {
id
name
exactType
identities {
... on ExternalIdentity {
__typename
value
scope
scopeId
}
}
floors {
id
name
exactType
level
identities {
... on ExternalIdentity {
__typename
value
scope
scopeId
}
}
}
}
}

Query specific sensor with time series and context

{
things(filter: { id: {eq: "THGk9ZxP2LmQvT7aYc8R4nWbH"}}) {
id
name
exactType
mappingKey
hasPoint {
id
name
exactType
unit {
id
}
series(latest:true) {
value {
float64Value
}
timestamp
}
}
hasLocation {
... on Space {
id
name
isPartOf {
id
name
exactType
isPartOf {
id
name
exactType
}
}
}
}
}
}