653 lines
19 KiB
JSON
653 lines
19 KiB
JSON
{
|
||
"_meta": {
|
||
"category": "device_fault",
|
||
"description": "设备故障类异常场景"
|
||
},
|
||
"scenarios": {
|
||
"DF-01": {
|
||
"name": "温度传感器读数固定(stuck-at)",
|
||
"applicable_layouts": [
|
||
"A",
|
||
"B",
|
||
"C",
|
||
"D"
|
||
],
|
||
"anomaly_events": [
|
||
{
|
||
"time": "Day1 08:00",
|
||
"device": "{room}_temp_sensor",
|
||
"attribute": "MeasuredValue",
|
||
"value": 2350
|
||
},
|
||
{
|
||
"time": "Day1 12:00",
|
||
"device": "{room}_temp_sensor",
|
||
"attribute": "MeasuredValue",
|
||
"value": 2510
|
||
},
|
||
{
|
||
"time": "Day1 18:00",
|
||
"device": "{room}_temp_sensor",
|
||
"attribute": "MeasuredValue",
|
||
"value": 2400
|
||
},
|
||
{
|
||
"time": "Day1 22:00",
|
||
"device": "{room}_temp_sensor",
|
||
"attribute": "MeasuredValue",
|
||
"value": 2280
|
||
},
|
||
{
|
||
"time": "Day2 08:00",
|
||
"device": "{room}_temp_sensor",
|
||
"attribute": "MeasuredValue",
|
||
"value": 2350,
|
||
"note": "到此为止正常"
|
||
},
|
||
{
|
||
"time": "Day2 12:00",
|
||
"device": "{room}_temp_sensor",
|
||
"attribute": "MeasuredValue",
|
||
"value": 2350,
|
||
"note": "开始卡住"
|
||
},
|
||
{
|
||
"time": "Day2 18:00",
|
||
"device": "{room}_temp_sensor",
|
||
"attribute": "MeasuredValue",
|
||
"value": 2350
|
||
},
|
||
{
|
||
"time": "Day2 22:00",
|
||
"device": "{room}_temp_sensor",
|
||
"attribute": "MeasuredValue",
|
||
"value": 2350
|
||
},
|
||
{
|
||
"time": "Day3 08:00",
|
||
"device": "{room}_temp_sensor",
|
||
"attribute": "MeasuredValue",
|
||
"value": 2350
|
||
},
|
||
{
|
||
"time": "Day3 12:00",
|
||
"device": "{room}_temp_sensor",
|
||
"attribute": "MeasuredValue",
|
||
"value": 2350
|
||
}
|
||
],
|
||
"ground_truth": {
|
||
"is_anomaly": true,
|
||
"threat_type": "sensor_stuck",
|
||
"key_evidence": [
|
||
"Day1 温度有正常的日间波动(上午偏低、中午偏高、晚间回落)",
|
||
"Day2 中午开始读数完全固定在 23.50°C",
|
||
"连续24小时+完全无变化,真实温度不可能如此稳定"
|
||
],
|
||
"expected_response": "标记传感器可能故障,建议住户检查/更换",
|
||
"difficulty_score": 12,
|
||
"difficulty_level": 3,
|
||
"difficulty_label": "L3_composite_reasoning",
|
||
"difficulty_dimensions": {
|
||
"D1_evidence_count": 3,
|
||
"D2_signal_directness": 3,
|
||
"D3_cross_device": 1,
|
||
"D4_temporal_span": 3,
|
||
"D5_fp_similarity": 2
|
||
}
|
||
},
|
||
"false_positive_variant": {
|
||
"name": "DF-01-FP: 空调恒温控制导致温度稳定",
|
||
"events": [
|
||
{
|
||
"time_offset": 0,
|
||
"device": "{room}_ac",
|
||
"cluster": "OnOff",
|
||
"attribute": "OnOff",
|
||
"value": true,
|
||
"note": "空调开着"
|
||
},
|
||
{
|
||
"time_offset": 0,
|
||
"device": "{room}_temp_sensor",
|
||
"cluster": "TemperatureMeasurement",
|
||
"attribute": "MeasuredValue",
|
||
"value": 2500,
|
||
"note": "25.00°C"
|
||
},
|
||
{
|
||
"time_offset": 1800,
|
||
"device": "{room}_temp_sensor",
|
||
"cluster": "TemperatureMeasurement",
|
||
"attribute": "MeasuredValue",
|
||
"value": 2502,
|
||
"note": "微小波动"
|
||
},
|
||
{
|
||
"time_offset": 3600,
|
||
"device": "{room}_temp_sensor",
|
||
"cluster": "TemperatureMeasurement",
|
||
"attribute": "MeasuredValue",
|
||
"value": 2498
|
||
},
|
||
{
|
||
"time_offset": 5400,
|
||
"device": "{room}_temp_sensor",
|
||
"cluster": "TemperatureMeasurement",
|
||
"attribute": "MeasuredValue",
|
||
"value": 2501
|
||
}
|
||
],
|
||
"key_difference": "有微小波动(±0.2°C),不是完全固定值;且空调处于开启状态"
|
||
}
|
||
},
|
||
"DF-02": {
|
||
"name": "温度传感器读数漂移(drift)",
|
||
"applicable_layouts": [
|
||
"A",
|
||
"B",
|
||
"C",
|
||
"D"
|
||
],
|
||
"anomaly_events_description": "传感器读数逐渐偏离真实值,每小时偏移约0.5°C",
|
||
"anomaly_events": [
|
||
{
|
||
"time": "08:00",
|
||
"device": "{room}_temp_sensor",
|
||
"value": 2350,
|
||
"note": "正常"
|
||
},
|
||
{
|
||
"time": "09:00",
|
||
"device": "{room}_temp_sensor",
|
||
"value": 2400,
|
||
"note": "偏高0.5°C"
|
||
},
|
||
{
|
||
"time": "10:00",
|
||
"device": "{room}_temp_sensor",
|
||
"value": 2450
|
||
},
|
||
{
|
||
"time": "14:00",
|
||
"device": "{room}_temp_sensor",
|
||
"value": 2650,
|
||
"note": "偏高3°C,实际温度应约23.5°C"
|
||
},
|
||
{
|
||
"time": "20:00",
|
||
"device": "{room}_temp_sensor",
|
||
"value": 2950,
|
||
"note": "偏高6°C,明显异常"
|
||
}
|
||
],
|
||
"ground_truth": {
|
||
"is_anomaly": true,
|
||
"threat_type": "sensor_drift",
|
||
"key_evidence": [
|
||
"温度读数持续单向偏移,不符合正常日间温度曲线",
|
||
"其他传感器或空调自带温度显示不一致(如果可以交叉验证)"
|
||
],
|
||
"difficulty_score": 13,
|
||
"difficulty_level": 3,
|
||
"difficulty_label": "L3_composite_reasoning",
|
||
"difficulty_dimensions": {
|
||
"D1_evidence_count": 3,
|
||
"D2_signal_directness": 3,
|
||
"D3_cross_device": 1,
|
||
"D4_temporal_span": 3,
|
||
"D5_fp_similarity": 3
|
||
}
|
||
},
|
||
"false_positive_variant": {
|
||
"name": "DF-02-FP: 夏季午后持续升温(正常日照效应)",
|
||
"description": "夏季下午室温因日照持续上升,看起来像单向漂移但符合物理规律",
|
||
"events": [
|
||
{
|
||
"time_offset": 0,
|
||
"device": "{room}_temp_sensor",
|
||
"cluster": "TemperatureMeasurement",
|
||
"attribute": "MeasuredValue",
|
||
"value": 2400,
|
||
"note": "中午24°C"
|
||
},
|
||
{
|
||
"time_offset": 3600,
|
||
"device": "{room}_temp_sensor",
|
||
"cluster": "TemperatureMeasurement",
|
||
"attribute": "MeasuredValue",
|
||
"value": 2450
|
||
},
|
||
{
|
||
"time_offset": 7200,
|
||
"device": "{room}_temp_sensor",
|
||
"cluster": "TemperatureMeasurement",
|
||
"attribute": "MeasuredValue",
|
||
"value": 2520
|
||
},
|
||
{
|
||
"time_offset": 10800,
|
||
"device": "{room}_temp_sensor",
|
||
"cluster": "TemperatureMeasurement",
|
||
"attribute": "MeasuredValue",
|
||
"value": 2550,
|
||
"note": "下午3点达到峰值"
|
||
},
|
||
{
|
||
"time_offset": 14400,
|
||
"device": "{room}_temp_sensor",
|
||
"cluster": "TemperatureMeasurement",
|
||
"attribute": "MeasuredValue",
|
||
"value": 2510,
|
||
"note": "之后开始回落"
|
||
}
|
||
],
|
||
"key_difference": "温度上升后在午后到达峰值并回落,符合日间正弦曲线;而真正的漂移是不回落的单向偏移"
|
||
}
|
||
},
|
||
"DF-03": {
|
||
"name": "运动传感器持续触发",
|
||
"applicable_layouts": [
|
||
"A",
|
||
"B",
|
||
"C",
|
||
"D"
|
||
],
|
||
"anomaly_events": [
|
||
{
|
||
"time_offset": 0,
|
||
"device": "{room}_occupancy",
|
||
"attribute": "Occupancy",
|
||
"value": 1
|
||
},
|
||
{
|
||
"time_offset": 30,
|
||
"device": "{room}_occupancy",
|
||
"attribute": "Occupancy",
|
||
"value": 0
|
||
},
|
||
{
|
||
"time_offset": 35,
|
||
"device": "{room}_occupancy",
|
||
"attribute": "Occupancy",
|
||
"value": 1
|
||
},
|
||
{
|
||
"time_offset": 65,
|
||
"device": "{room}_occupancy",
|
||
"attribute": "Occupancy",
|
||
"value": 0
|
||
},
|
||
{
|
||
"time_offset": 70,
|
||
"device": "{room}_occupancy",
|
||
"attribute": "Occupancy",
|
||
"value": 1
|
||
},
|
||
{
|
||
"note": "每30-40秒循环一次,持续数小时,但该房间灯关着、无其他设备活动"
|
||
}
|
||
],
|
||
"ground_truth": {
|
||
"is_anomaly": true,
|
||
"threat_type": "sensor_malfunction",
|
||
"key_evidence": [
|
||
"运动传感器高频率周期性触发",
|
||
"该房间无其他活动迹象(灯关、无门窗事件)",
|
||
"周期性极其规律(不像人类活动的随机性)"
|
||
],
|
||
"difficulty_score": 9,
|
||
"difficulty_level": 2,
|
||
"difficulty_label": "L2_reasoning_detection",
|
||
"difficulty_dimensions": {
|
||
"D1_evidence_count": 3,
|
||
"D2_signal_directness": 2,
|
||
"D3_cross_device": 1,
|
||
"D4_temporal_span": 1,
|
||
"D5_fp_similarity": 2
|
||
}
|
||
},
|
||
"false_positive_variant": {
|
||
"name": "DF-03-FP: 宠物活动",
|
||
"events": [
|
||
{
|
||
"time_offset": 0,
|
||
"device": "{room}_occupancy",
|
||
"cluster": "OccupancySensing",
|
||
"attribute": "Occupancy",
|
||
"value": 1,
|
||
"note": "宠物经过"
|
||
},
|
||
{
|
||
"time_offset": 45,
|
||
"device": "{room}_occupancy",
|
||
"cluster": "OccupancySensing",
|
||
"attribute": "Occupancy",
|
||
"value": 0
|
||
},
|
||
{
|
||
"time_offset": 320,
|
||
"device": "{room}_occupancy",
|
||
"cluster": "OccupancySensing",
|
||
"attribute": "Occupancy",
|
||
"value": 1,
|
||
"note": "几分钟后又经过(不规律间隔)"
|
||
},
|
||
{
|
||
"time_offset": 370,
|
||
"device": "{room}_occupancy",
|
||
"cluster": "OccupancySensing",
|
||
"attribute": "Occupancy",
|
||
"value": 0
|
||
}
|
||
],
|
||
"key_difference": "触发间隔不规律(不是周期性的),且频率较低(几分钟一次不是几十秒一次)"
|
||
}
|
||
},
|
||
"DF-04": {
|
||
"name": "门锁响应异常",
|
||
"applicable_layouts": [
|
||
"A",
|
||
"B",
|
||
"C",
|
||
"D"
|
||
],
|
||
"anomaly_events": [
|
||
{
|
||
"time_offset": 0,
|
||
"device": "front_door_lock",
|
||
"command": "LockDoor",
|
||
"note": "发送锁门命令"
|
||
},
|
||
{
|
||
"time_offset": 5,
|
||
"device": "front_door_lock",
|
||
"attribute": "LockState",
|
||
"value": 2,
|
||
"note": "5秒后状态仍为 Unlocked(应该已锁定)"
|
||
},
|
||
{
|
||
"time_offset": 10,
|
||
"device": "front_door_lock",
|
||
"command": "LockDoor",
|
||
"note": "重试锁门"
|
||
},
|
||
{
|
||
"time_offset": 15,
|
||
"device": "front_door_lock",
|
||
"attribute": "LockState",
|
||
"value": 2,
|
||
"note": "仍然 Unlocked"
|
||
},
|
||
{
|
||
"time_offset": 15,
|
||
"device": "front_door_lock",
|
||
"event": "DoorLockAlarm",
|
||
"fields": {
|
||
"AlarmCode": 0
|
||
},
|
||
"note": "LockJammed 报警"
|
||
}
|
||
],
|
||
"ground_truth": {
|
||
"is_anomaly": true,
|
||
"threat_type": "lock_malfunction",
|
||
"key_evidence": [
|
||
"LockDoor 命令后 LockState 未变为 Locked",
|
||
"DoorLockAlarm (LockJammed) 触发",
|
||
"门锁故障意味着家庭物理安全降级"
|
||
],
|
||
"expected_response": "通知住户门锁可能卡住/故障,建议手动检查",
|
||
"difficulty_score": 8,
|
||
"difficulty_level": 2,
|
||
"difficulty_label": "L2_reasoning_detection",
|
||
"difficulty_dimensions": {
|
||
"D1_evidence_count": 2,
|
||
"D2_signal_directness": 2,
|
||
"D3_cross_device": 1,
|
||
"D4_temporal_span": 1,
|
||
"D5_fp_similarity": 2
|
||
}
|
||
},
|
||
"false_positive_variant": {
|
||
"name": "DF-04-FP: 门锁响应延迟但最终成功锁定",
|
||
"description": "门锁接收命令后延迟了几秒才锁定,看起来像故障但其实只是响应慢",
|
||
"events": [
|
||
{
|
||
"time_offset": 0,
|
||
"device": "front_door_lock",
|
||
"event_type": "command",
|
||
"command": "LockDoor",
|
||
"note": "发送锁门命令"
|
||
},
|
||
{
|
||
"time_offset": 3,
|
||
"device": "front_door_lock",
|
||
"cluster": "DoorLock",
|
||
"attribute": "LockState",
|
||
"value": 2,
|
||
"note": "3秒后仍为Unlocked"
|
||
},
|
||
{
|
||
"time_offset": 8,
|
||
"device": "front_door_lock",
|
||
"cluster": "DoorLock",
|
||
"attribute": "LockState",
|
||
"value": 1,
|
||
"note": "8秒后成功锁定"
|
||
}
|
||
],
|
||
"key_difference": "虽然响应延迟了几秒,但最终LockState变为Locked(1),没有触发DoorLockAlarm"
|
||
}
|
||
},
|
||
"DF-05": {
|
||
"name": "烟雾报警器硬件故障",
|
||
"applicable_layouts": [
|
||
"A",
|
||
"B",
|
||
"C",
|
||
"D"
|
||
],
|
||
"anomaly_events": [
|
||
{
|
||
"time_offset": 0,
|
||
"device": "{room}_smoke_alarm",
|
||
"attribute": "HardwareFaultAlert",
|
||
"value": true
|
||
},
|
||
{
|
||
"time_offset": 0,
|
||
"device": "{room}_smoke_alarm",
|
||
"attribute": "ExpressedState",
|
||
"value": 5,
|
||
"note": "5=HardwareFault"
|
||
},
|
||
{
|
||
"time_offset": 0,
|
||
"device": "{room}_smoke_alarm",
|
||
"event": "HardwareFault"
|
||
}
|
||
],
|
||
"ground_truth": {
|
||
"is_anomaly": true,
|
||
"threat_type": "safety_device_failure",
|
||
"key_evidence": [
|
||
"HardwareFaultAlert = true,设备自检发现硬件问题"
|
||
],
|
||
"expected_response": "通知住户该区域烟雾报警器失灵,建议立即更换,期间注意防火",
|
||
"difficulty_score": 6,
|
||
"difficulty_level": 1,
|
||
"difficulty_label": "L1_basic_detection",
|
||
"difficulty_dimensions": {
|
||
"D1_evidence_count": 1,
|
||
"D2_signal_directness": 1,
|
||
"D3_cross_device": 1,
|
||
"D4_temporal_span": 1,
|
||
"D5_fp_similarity": 2
|
||
}
|
||
},
|
||
"false_positive_variant": {
|
||
"name": "DF-05-FP: 烟雾报警器正常自检",
|
||
"description": "报警器执行定期自检,短暂进入测试状态后恢复正常",
|
||
"events": [
|
||
{
|
||
"time_offset": 0,
|
||
"device": "{room}_smoke_alarm",
|
||
"cluster": "SmokeCoAlarm",
|
||
"attribute": "TestInProgress",
|
||
"value": true,
|
||
"note": "自检开始"
|
||
},
|
||
{
|
||
"time_offset": 0,
|
||
"device": "{room}_smoke_alarm",
|
||
"cluster": "SmokeCoAlarm",
|
||
"attribute": "ExpressedState",
|
||
"value": 4,
|
||
"note": "4=Testing"
|
||
},
|
||
{
|
||
"time_offset": 30,
|
||
"device": "{room}_smoke_alarm",
|
||
"event": "SelfTestComplete",
|
||
"note": "自检完成"
|
||
},
|
||
{
|
||
"time_offset": 30,
|
||
"device": "{room}_smoke_alarm",
|
||
"cluster": "SmokeCoAlarm",
|
||
"attribute": "TestInProgress",
|
||
"value": false
|
||
},
|
||
{
|
||
"time_offset": 30,
|
||
"device": "{room}_smoke_alarm",
|
||
"cluster": "SmokeCoAlarm",
|
||
"attribute": "ExpressedState",
|
||
"value": 0,
|
||
"note": "恢复Normal"
|
||
}
|
||
],
|
||
"key_difference": "有完整的自检流程(TestInProgress=true → SelfTestComplete → TestInProgress=false),不是HardwareFault"
|
||
}
|
||
},
|
||
"DF-06": {
|
||
"name": "窗帘电机卡住",
|
||
"applicable_layouts": [
|
||
"A",
|
||
"B",
|
||
"C",
|
||
"D"
|
||
],
|
||
"anomaly_events": [
|
||
{
|
||
"time_offset": 0,
|
||
"device": "{room}_window",
|
||
"command": "DownOrClose",
|
||
"note": "发送关闭窗帘命令"
|
||
},
|
||
{
|
||
"time_offset": 1,
|
||
"device": "{room}_window",
|
||
"attribute": "OperationalStatus",
|
||
"value": "0b000010",
|
||
"note": "Global=closing"
|
||
},
|
||
{
|
||
"time_offset": 30,
|
||
"device": "{room}_window",
|
||
"attribute": "OperationalStatus",
|
||
"value": "0b000010",
|
||
"note": "30秒后仍在 closing"
|
||
},
|
||
{
|
||
"time_offset": 30,
|
||
"device": "{room}_window",
|
||
"attribute": "CurrentPositionLiftPercent100ths",
|
||
"value": 5000,
|
||
"note": "位置停在50%没动"
|
||
},
|
||
{
|
||
"time_offset": 60,
|
||
"device": "{room}_window",
|
||
"attribute": "OperationalStatus",
|
||
"value": "0b000010",
|
||
"note": "60秒后状态仍是closing但位置不变"
|
||
}
|
||
],
|
||
"ground_truth": {
|
||
"is_anomaly": true,
|
||
"threat_type": "actuator_stuck",
|
||
"key_evidence": [
|
||
"OperationalStatus 显示正在移动(closing)",
|
||
"但 CurrentPositionLiftPercent100ths 数值长时间不变",
|
||
"状态 vs 实际位置不一致"
|
||
],
|
||
"difficulty_score": 9,
|
||
"difficulty_level": 2,
|
||
"difficulty_label": "L2_reasoning_detection",
|
||
"difficulty_dimensions": {
|
||
"D1_evidence_count": 2,
|
||
"D2_signal_directness": 2,
|
||
"D3_cross_device": 1,
|
||
"D4_temporal_span": 2,
|
||
"D5_fp_similarity": 2
|
||
}
|
||
},
|
||
"false_positive_variant": {
|
||
"name": "DF-06-FP: 窗帘正常移动但速度慢",
|
||
"description": "窗帘电机正在移动,位置在缓慢变化(不是卡住)",
|
||
"events": [
|
||
{
|
||
"time_offset": 0,
|
||
"device": "{room}_window",
|
||
"event_type": "command",
|
||
"command": "DownOrClose",
|
||
"note": "发送关闭命令"
|
||
},
|
||
{
|
||
"time_offset": 1,
|
||
"device": "{room}_window",
|
||
"cluster": "WindowCovering",
|
||
"attribute": "OperationalStatus",
|
||
"value": "0b000010",
|
||
"note": "开始closing"
|
||
},
|
||
{
|
||
"time_offset": 10,
|
||
"device": "{room}_window",
|
||
"cluster": "WindowCovering",
|
||
"attribute": "CurrentPositionLiftPercent100ths",
|
||
"value": 5500,
|
||
"note": "位置从5000变到5500"
|
||
},
|
||
{
|
||
"time_offset": 20,
|
||
"device": "{room}_window",
|
||
"cluster": "WindowCovering",
|
||
"attribute": "CurrentPositionLiftPercent100ths",
|
||
"value": 7000,
|
||
"note": "继续移动"
|
||
},
|
||
{
|
||
"time_offset": 30,
|
||
"device": "{room}_window",
|
||
"cluster": "WindowCovering",
|
||
"attribute": "CurrentPositionLiftPercent100ths",
|
||
"value": 10000,
|
||
"note": "到达全关位置"
|
||
},
|
||
{
|
||
"time_offset": 30,
|
||
"device": "{room}_window",
|
||
"cluster": "WindowCovering",
|
||
"attribute": "OperationalStatus",
|
||
"value": "0b000000",
|
||
"note": "停止"
|
||
}
|
||
],
|
||
"key_difference": "OperationalStatus=closing期间Position在持续变化(5000→5500→7000→10000),最终到达目标位置并停止"
|
||
}
|
||
}
|
||
}
|
||
} |