Operation Guide
Overview
Thingsee PRESENCE supports two distinct operating modes configured via the Service API. Each mode produces different measurement types with different reporting behavior, network traffic characteristics, and optimal use cases.
Data Latency: There’s always a delay from measurement to alerts. Measurement results are sent in predefined intervals (e.g., 1 minute) and time is needed for data to travel through the network and be processed in the cloud service. This sensor is not suitable for real-time applications requiring instant alerts.
Measurements Produced
The following table shows what Haltian IoT measurements this device produces in each operating mode:
| Operating Mode | HIoT Measurement Type | Query Field | MQTT Topic Segment | Example Payload |
|---|---|---|---|---|
| Mode 2 | movementDetections | movementDetections | .../measurements/movementDetections/{device-uuid} | {"measured_at": "2026-01-28T08:52:11Z", "movementDetections": 7} |
| Mode 1 | occupancyStatus | isOccupied | .../measurements/occupancyStatus/{device-uuid} | {"measured_at": "2026-01-28T08:52:11Z", "isOccupied": true} |
| All modes | batteryPercentage | batteryPercentage | .../measurements/batteryPercentage/{device-uuid} | {"measured_at": "2026-01-28T08:52:11Z", "batteryPercentage": 85} |
Full MQTT topic format: haltian-iot/events/{integration-id}/{api-key-id}/measurements/{measurement-type}/{device-uuid}
For details on subscribing to measurements, see the Real-Time Data Streaming guide.
Operating Modes
Mode 1: Occupancy Reporting
Purpose: Reports workspace or area occupancy status using event-based messaging
Characteristics:
- Measurement type - Occupancy status (occupied/vacant)
- Event reporting - Only when status changes (occupied ↔ vacant)
- Idle reporting - Every 1 hour if no status change (configurable)
- Network efficiency - Reduces Wirepas traffic significantly
- Use cases - Desk occupancy, meeting rooms, individual spaces
Message Flow:
PIR detects movement → state = occupied
↓
Produces occupancyStatus measurement (isOccupied = true)
↓
No movement for threshold period → state = vacant
↓
Produces occupancyStatus measurement (isOccupied = false)
↓
If no state change for passiveReportInterval → periodic update
Typical Configuration:
{
"mode": 1,
"threshold": 150,
"passiveReportInterval": 3600
}
Network Traffic: Low (only on state changes + periodic updates)
Advantages:
- Lower network traffic (only on state changes)
- Reduced power consumption
- Clear binary status (occupied/vacant)
- Suitable for workspace management systems
- Longer battery life
Mode 2: Event-Based Movement Count Reporting (Default)
Purpose: Balances detailed movement counting with battery conservation
Characteristics:
- Measurement type - Movement detection count
- Active reporting - Uses reportInterval when movement detected
- Idle reporting - Uses passiveReportInterval when no movement
- Efficiency - Reduces reporting during idle periods
- Use cases - Variable traffic areas, battery conservation priority
Message Flow:
With movement:
Interval starts (reportInterval)
↓
PIR detects movements
↓
At reportInterval → produces movementDetections measurement
↓
Continues using reportInterval while movement detected
Without movement:
No movement detected
↓
Uses passiveReportInterval instead
↓
At passiveReportInterval → produces movementDetections measurement (count=0)
↓
Returns to reportInterval if movement resumes
Typical Configuration:
{
"mode": 2,
"threshold": 150,
"passiveReportInterval": 3600,
"measurementInterval": 60,
"reportInterval": 60
}
Network Traffic: Variable (low during idle, moderate during activity)
Use Cases:
- Areas with intermittent activity
- Energy-efficient monitoring
- Battery conservation priority
- Reducing cloud data volume
Mode Selection Guide
When to Use Each Mode
| Use Case | Recommended Mode | Reason |
|---|---|---|
| Visitor counting in doorway | Mode 2 | Movement counts with battery efficiency |
| Desk occupancy monitoring | Mode 1 | Binary status sufficient, low network traffic |
| Meeting room status | Mode 1 | State changes more relevant than counts |
| High-traffic corridor | Mode 2 | Balance detail with battery life |
| Rarely used area | Mode 2 | Minimal reporting when idle |
| Energy-critical deployment | Mode 1 | Lowest network traffic and power consumption |
| Detailed analytics required | Mode 2 | Consistent reporting for trend analysis |
| Variable traffic patterns | Mode 2 | Adapts reporting to activity level |
Comparison Table
| Feature | Mode 1 | Mode 2 (default) |
|---|---|---|
| Measurement Type | occupancyStatus | movementDetections |
| Reporting Frequency | On change | Variable |
| Network Traffic | Low | Variable |
| Battery Life | Extended | Extended |
| Data Detail | Low | Medium |
| Use Case | Occupancy | Counting |
| Idle Behavior | Periodic only | Longer intervals |
Detection Behavior
PIR Sensor Characteristics
Detection Principle:
- Passive infrared (PIR) sensor detects heat source movement
- No emissions - completely passive monitoring
- Privacy-friendly - no cameras or identifying data
Temperature Dependency:
- Requires thermal contrast between person and environment
- Best performance: environment 15-25°C, person 36-37°C
- Reduced performance when ambient temperature approaches body temperature
- Small temperature differences significantly reduce reliability
Movement Requirements:
- Sensor detects movement, not static presence
- Slow-moving individuals may not trigger detection
- Stationary person will not be detected
- Best suited for normal walking speeds
Detection Limitations
Counting Accuracy:
- Multiple simultaneous passages - People walking side-by-side may count as one
- Slow movement - Very slow walkers may not trigger detection
- Dense crowds - Standing/slow-moving queues reduce accuracy
- Wide doorways - Accuracy decreases with doorway width (>1.5m)
Environmental Factors:
- Direct sunlight - Thermal variations reduce accuracy
- Heat sources - Radiators, HVAC vents cause false triggers
- Temperature changes - Rapid ambient changes reduce sensitivity
- Installation height - Too high creates excessively large detection area
Maximum Detection Rate
- Limit: 34 movements per minute
- Behavior: If more than 34 movements occur, counter saturates at 34
- Impact: Very high traffic may be undercounted
- Mitigation: Use multiple sensors for wide or high-traffic areas
Configuration Impact on Operation
Sensitivity (threshold parameter)
| Threshold | Sensitivity | Typical Use Case |
|---|---|---|
| 80-100 | Very high | Large open areas, distant detection |
| 150 | Default | Standard doorways, general use |
| 200-400 | Medium | Medium-sized rooms |
| 500-800 | Low | Under-desk occupancy |
| 900-1060 | Very low | Small zones, reducing false triggers |
Effect on Operation:
- Lower threshold = more sensitive = more detections = potential false positives
- Higher threshold = less sensitive = fewer detections = potential missed movements
Report Intervals
reportInterval (Mode 2):
- How often sensor sends messages when active
- Shorter = more frequent data, higher battery drain
- Longer = less frequent data, extended battery life
- Typical: 60-300 seconds
passiveReportInterval (Mode 1 & 2):
- How often sensor sends messages when inactive
- Much longer than reportInterval (typically 3600+ seconds)
- Provides periodic “heartbeat” even when no activity
LED Indicator
When Enabled:
- Red flash on movement detection
- Useful for installation verification
- Minimal battery impact (<5%)
- Should be disabled for production
When Disabled:
- No visual feedback
- Standard production configuration
- Maximizes battery life
Measurement Flow Examples
Example 1: Doorway Counter (Mode 2)
Configuration:
- Mode: 2
- reportInterval: 60s
- passiveReportInterval: 3600s
- threshold: 150
Timeline:
00:00 - Interval starts, counter = 0
00:15 - Person passes, counter = 1
00:30 - Person passes, counter = 2
00:45 - Person passes, counter = 3
01:00 - Interval ends, produces measurement: movementDetections = 3, counter resets
01:00 - Next interval starts, counter = 0
01:30 - Person passes, counter = 1
02:00 - Interval ends, produces measurement: movementDetections = 1, counter resets
Example 2: Desk Occupancy (Mode 1)
Configuration:
- Mode: 1
- passiveReportInterval: 3600s
- threshold: 800
Timeline:
08:00 - Person sits down, movement detected
08:01 - State changes to "occupied", produces measurement: isOccupied = true
08:05 - Small movements (typing, mouse) keep state occupied
12:00 - Person leaves for lunch
12:02 - No movement for threshold period
12:03 - State changes to "vacant", produces measurement: isOccupied = false
13:00 - Person returns
13:01 - Movement detected, produces measurement: isOccupied = true
Example 3: Corridor Monitoring (Mode 2)
Configuration:
- Mode: 2
- reportInterval: 120s (active)
- passiveReportInterval: 7200s (idle)
- threshold: 100
Timeline:
08:00 - High traffic period begins
08:02 - Produces measurement: movementDetections = 15 (using 120s interval)
08:04 - Produces measurement: movementDetections = 12 (using 120s interval)
...
17:00 - Traffic decreases, last movement
17:02 - Produces measurement: movementDetections = 3 (using 120s interval)
17:04 - No movement, switches to passive interval
19:04 - Produces measurement: movementDetections = 0 (using 7200s interval)
Related Documentation
- Installation Guide - Installation procedures and verification
- Configuration Reference - Complete configuration parameters
- Troubleshooting - Operation issues and solutions
- Technical Specifications - Complete technical specs
- Uplink Messages - Raw Wirepas CBOR message reference
- Real-Time Data Streaming - MQTT subscription guide
- Measurement Types Reference - All HIoT measurement types