{
"device": {
"device_id": "CS-A1B2C3D4",
"firmware_version": "1.4.3-cloud"
},
"health": {
"last_error": null,
"time_source": "NTP",
"time_synced": true,
"wake_reason": "manual",
"radar_status": "online",
"rtc_detected": true,
"wifi_rssi_dbm": -47,
"storage_status": "ready",
"uptime_seconds": 82,
"battery_percent": 0,
"battery_voltage": 3.563,
"free_heap_bytes": 81580,
"storage_backend": "sd",
"storage_free_bytes": 1971146752,
"radar_online_percent": 100.0
},
"upload": {
"mode": "every_hour",
"sequence": 0,
"scheduled_time": "manual",
"configured_times": [
"00:00",
"01:00",
"02:00",
"03:00",
"04:00",
"05:00",
"06:00",
"07:00",
"08:00",
"09:00",
"10:00",
"11:00",
"12:00",
"13:00",
"14:00",
"15:00",
"16:00",
"17:00",
"18:00",
"19:00",
"20:00",
"21:00",
"22:00",
"23:00"
]
},
"reports": [
{
"date": "2026-08-27",
"hourly": [
{
"complete": true,
"period_end": "2026-08-27T01:00:00",
"crowd_level": "empty",
"data_status": "valid",
"observations": 15,
"period_start": "2026-08-27T00:00:00",
"pir_triggers": 1,
"coverage_percent": 4.5,
"observed_seconds": 161,
"average_crowd_score": 0.0,
"highest_crowd_score": 0.0,
"radar_online_percent": 84.4,
"elevated_observations": 0,
"occupied_observations": 0,
"average_battery_percent": 11.4
},
{
"complete": true,
"period_end": "2026-08-27T02:00:00",
"crowd_level": "empty",
"data_status": "valid",
"observations": 15,
"period_start": "2026-08-27T01:00:00",
"pir_triggers": 1,
"coverage_percent": 5.0,
"observed_seconds": 180,
"average_crowd_score": 0.0,
"highest_crowd_score": 0.0,
"radar_online_percent": 97.0,
"elevated_observations": 0,
"occupied_observations": 0,
"average_battery_percent": 11.4
},
{
"complete": true,
"period_end": "2026-08-27T03:00:00",
"crowd_level": "empty",
"data_status": "valid",
"observations": 15,
"period_start": "2026-08-27T02:00:00",
"pir_triggers": 0,
"coverage_percent": 5.0,
"observed_seconds": 180,
"average_crowd_score": 0.0,
"highest_crowd_score": 0.0,
"radar_online_percent": 95.1,
"elevated_observations": 0,
"occupied_observations": 0,
"average_battery_percent": 10.6
},
{
"complete": true,
"period_end": "2026-08-27T04:00:00",
"crowd_level": "empty",
"data_status": "valid",
"observations": 15,
"period_start": "2026-08-27T03:00:00",
"pir_triggers": 0,
"coverage_percent": 5.2,
"observed_seconds": 188,
"average_crowd_score": 0.0,
"highest_crowd_score": 0.0,
"radar_online_percent": 96.7,
"elevated_observations": 0,
"occupied_observations": 0,
"average_battery_percent": 9.7
},
{
"complete": true,
"period_end": "2026-08-27T05:00:00",
"crowd_level": "empty",
"data_status": "valid",
"observations": 15,
"period_start": "2026-08-27T04:00:00",
"pir_triggers": 1,
"coverage_percent": 5.1,
"observed_seconds": 184,
"average_crowd_score": 0.0,
"highest_crowd_score": 0.0,
"radar_online_percent": 97.0,
"elevated_observations": 0,
"occupied_observations": 0,
"average_battery_percent": 9.9
},
{
"complete": true,
"period_end": "2026-08-27T06:00:00",
"crowd_level": "empty",
"data_status": "valid",
"observations": 15,
"period_start": "2026-08-27T05:00:00",
"pir_triggers": 0,
"coverage_percent": 5.3,
"observed_seconds": 191,
"average_crowd_score": 0.0,
"highest_crowd_score": 0.0,
"radar_online_percent": 92.8,
"elevated_observations": 0,
"occupied_observations": 0,
"average_battery_percent": 8.8
},
{
"complete": true,
"period_end": "2026-08-27T07:00:00",
"crowd_level": "empty",
"data_status": "valid",
"observations": 15,
"period_start": "2026-08-27T06:00:00",
"pir_triggers": 0,
"coverage_percent": 5.1,
"observed_seconds": 183,
"average_crowd_score": 0.0,
"highest_crowd_score": 0.0,
"radar_online_percent": 96.9,
"elevated_observations": 0,
"occupied_observations": 0,
"average_battery_percent": 9.9
},
{
"complete": true,
"period_end": "2026-08-27T08:00:00",
"crowd_level": "empty",
"data_status": "valid",
"observations": 15,
"period_start": "2026-08-27T07:00:00",
"pir_triggers": 1,
"coverage_percent": 4.6,
"observed_seconds": 164,
"average_crowd_score": 1.0,
"highest_crowd_score": 29.0,
"radar_online_percent": 94.4,
"elevated_observations": 0,
"occupied_observations": 2,
"average_battery_percent": 8.9
},
{
"complete": true,
"period_end": "2026-08-27T09:00:00",
"crowd_level": "empty",
"data_status": "valid",
"observations": 15,
"period_start": "2026-08-27T08:00:00",
"pir_triggers": 1,
"coverage_percent": 5.2,
"observed_seconds": 189,
"average_crowd_score": 0.0,
"highest_crowd_score": 0.0,
"radar_online_percent": 96.9,
"elevated_observations": 0,
"occupied_observations": 0,
"average_battery_percent": 8.3
},
{
"complete": true,
"period_end": "2026-08-27T10:00:00",
"crowd_level": "empty",
"data_status": "valid",
"observations": 15,
"period_start": "2026-08-27T09:00:00",
"pir_triggers": 0,
"coverage_percent": 4.9,
"observed_seconds": 176,
"average_crowd_score": 0.0,
"highest_crowd_score": 0.0,
"radar_online_percent": 97.2,
"elevated_observations": 0,
"occupied_observations": 0,
"average_battery_percent": 8.5
},
{
"complete": true,
"period_end": "2026-08-27T11:00:00",
"crowd_level": "empty",
"data_status": "valid",
"observations": 15,
"period_start": "2026-08-27T10:00:00",
"pir_triggers": 7,
"coverage_percent": 5.1,
"observed_seconds": 185,
"average_crowd_score": 0.0,
"highest_crowd_score": 0.0,
"radar_online_percent": 79.3,
"elevated_observations": 0,
"occupied_observations": 0,
"average_battery_percent": 7.9
},
{
"complete": true,
"period_end": "2026-08-27T12:00:00",
"crowd_level": "low",
"data_status": "valid",
"observations": 16,
"period_start": "2026-08-27T11:00:00",
"pir_triggers": 35,
"coverage_percent": 21.7,
"observed_seconds": 780,
"average_crowd_score": 19.1,
"highest_crowd_score": 27.0,
"radar_online_percent": 99.6,
"elevated_observations": 0,
"occupied_observations": 12,
"average_battery_percent": 8.8
},
{
"complete": true,
"period_end": "2026-08-27T13:00:00",
"crowd_level": "low",
"data_status": "valid",
"observations": 15,
"period_start": "2026-08-27T12:00:00",
"pir_triggers": 11,
"coverage_percent": 19.1,
"observed_seconds": 688,
"average_crowd_score": 17.2,
"highest_crowd_score": 50.0,
"radar_online_percent": 100.0,
"elevated_observations": 1,
"occupied_observations": 10,
"average_battery_percent": 6.3
},
{
"complete": true,
"period_end": "2026-08-27T14:00:00",
"crowd_level": "low",
"data_status": "valid",
"observations": 15,
"period_start": "2026-08-27T13:00:00",
"pir_triggers": 11,
"coverage_percent": 22.2,
"observed_seconds": 798,
"average_crowd_score": 23.4,
"highest_crowd_score": 53.0,
"radar_online_percent": 100.0,
"elevated_observations": 4,
"occupied_observations": 12,
"average_battery_percent": 8.3
},
{
"complete": true,
"period_end": "2026-08-27T15:00:00",
"crowd_level": "low",
"data_status": "valid",
"observations": 15,
"period_start": "2026-08-27T14:00:00",
"pir_triggers": 3,
"coverage_percent": 19.9,
"observed_seconds": 716,
"average_crowd_score": 16.8,
"highest_crowd_score": 23.0,
"radar_online_percent": 100.0,
"elevated_observations": 0,
"occupied_observations": 10,
"average_battery_percent": 6.7
},
{
"complete": true,
"period_end": "2026-08-27T16:00:00",
"crowd_level": "low",
"data_status": "valid",
"observations": 19,
"period_start": "2026-08-27T15:00:00",
"pir_triggers": 24,
"coverage_percent": 27.6,
"observed_seconds": 993,
"average_crowd_score": 21.8,
"highest_crowd_score": 54.0,
"radar_online_percent": 100.0,
"elevated_observations": 3,
"occupied_observations": 15,
"average_battery_percent": 5.9
}
],
"status": "partial",
"summary": {
"peak_hour": "13:00-14:00",
"observations": 245,
"quietest_hour": "00:00-01:00",
"dominant_level": "low",
"coverage_percent": 10.3,
"observed_seconds": 5956,
"level_distribution": {
"low": 80,
"high": 0,
"peak": 0,
"empty": 155,
"medium": 0
},
"average_crowd_score": 13.3,
"highest_crowd_score": 54.0,
"elevated_observations": 8,
"occupied_observations": 61
},
"revision": 16,
"report_id": "CS-A1B2C3D4-2026-08-27",
"period_end": "2026-08-27T16:00:00",
"period_start": "2026-08-27T00:00:00"
}
],
"sync_id": "CS-A1B2C3D4-20260827-M-1787826653",
"generated_at": "2026-08-27T16:00:53\u002B05:30",
"message_type": "device_sync",
"command_results": [],
"reported_config": {
"area_size": "medium",
"power_mode": "smart",
"sensitivity": "medium",
"config_version": 8,
"pir_wake_enabled": true,
"pir_cooldown_seconds": 60,
"active_window_seconds": 45,
"maximum_window_seconds": 120,
"backup_interval_seconds": 300,
"empty_confirmation_seconds": 8
},
"observation_batch": null
}