Files
llmiotsafe/data/anomaly_templates/device_fault_scenarios.json
2026-05-12 17:01:39 +08:00

653 lines
19 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"_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最终到达目标位置并停止"
}
}
}
}