DF-01-FP: 空调恒温控制导致温度稳定

有微小波动（±0.2°C），不是完全固定值；且空调处于开启状态

```json
{
  "step1_evidence": [
    "2026-06-14T19:44:00 living_room_ac | OnOff.OnOff = True (空调开启)",
    "2026-06-14T19:44:00 living_room_temp_sensor | TemperatureMeasurement.MeasuredValue = 2500 (温度瞬间跳变至 25.00°C，远高于正常的 22-23°C 范围)",
    "2026-06-14T19:45:00 living_room_temp_sensor | TemperatureMeasurement.MeasuredValue = 2274 (仅 1 分钟后恢复正常约 22.74°C)",
    "2026-06-14T20:14:00 living_room_temp_sensor | TemperatureMeasurement.MeasuredValue = 2502 (再次出现瞬间高温 25.02°C)",
    "2026-06-14T20:15:00 living_room_temp_sensor | TemperatureMeasurement.MeasuredValue = 2273 (再次恢复)",
    "2026-06-14T21:14:00 living_room_temp_sensor | TemperatureMeasurement.MeasuredValue = 2501 (第三次出现瞬间高温 25.01°C)",
    "2026-06-14T21:15:00 living_room_temp_sensor | TemperatureMeasurement.MeasuredValue = 2245 (再次恢复)",
    "2026-06-14T22:44:00 living_room_temp_sensor | TemperatureMeasurement.MeasuredValue = 2247 (无异常事件发生时的基准读数)",
    "2026-06-14T23:15:08 living_room_ac | OnOff.OnOff = False (空调关闭)",
    "2026-06-14T23:15:00 living_room_light_1 | OnOff.OnOff = False (灯光关闭)"
  ],
  "step2_hypotheses": [
    {
      "id": "A",
      "type": "normal",
      "description": "传感器短暂校准错误或通信丢包导致的瞬时数据抖动。"
    },
    {
      "id": "B",
      "type": "anomaly",
      "description": "传感器硬件故障（Stuck-at 或漂移），在特定触发条件下（如空调开关、时间同步）报告了错误的高温数值，且未能持续反映真实环境。"
    }
  ],
  "step3_verification": [
    {
      "hypothesis": "A",
      "supporting": [
        "异常值仅持续 1 分钟，随后立即回到合理的日间温度范围内（~22.5°C）。",
        "没有伴随烟雾报警或其他火灾相关设备报警。",
        "住户在该时段（晚上 7-11 点）一直有活动记录（Occupancy=1），排除了长期无人导致的环境突变。"
      ],
      "opposing": [
        "同一传感器在短时间内（间隔约 2.5-3 小时）重复出现了三次完全相同的异常模式（接近 25.00°C）。",
        "这种重复性暗示可能是某种触发机制而非随机噪声。"
      ]
    },
    {
      "hypothesis": "B",
      "supporting": [
        "异常数值（2500/2502/2501）非常具体且接近整数边界，符合某些廉价传感器故障时的典型输出特征。",
        "异常发生的时间点与空调状态变化高度重合：第一次在空调开启时，第二次和第三次均在空调运行期间，可能涉及 AC 控制信号干扰或电源波动导致 ADC 采样错误。",
        "尽管数值迅速回落，但传感器未表现出平滑过渡，而是‘瞬态跳变’，这不符合物理热惯性规律，更像是数字电路层面的错误。"
      ],
      "opposing": [
        "如果传感器严重损坏，通常会持续报错或彻底失效（None），而不是间歇性地在正确值和错误值之间切换。"
      ]
    }
  ],
  "step4_causal": [
    "正常因果：住户回家 → 客厅运动传感器触发 → 客厅灯开启 → 空调开启（合理的生活场景）。",
    "异常关联：空调开启/运行 → 客厅温度传感器瞬间报告 25.00°C（非物理因果，而是电气干扰或固件 bug 导致的虚假读数）。",
    "正常因果：空调关闭/夜间降温 → 温度自然回落至 22-23°C 区间（符合物理规律）。"
  ],
  "step5_assessment": {
    "most_likely_hypothesis": "B",
    "confidence": "medium",
    "severity": "low",
    "false_positive_risk": "由于异常仅持续极短时间且自动恢复，确实存在误报可能性（即只是偶发的数据包丢失或重传导致的乱码）。然而，鉴于该现象在数小时内重复发生了三次，且数值极其规整，判定为传感器间歇性故障（Intermittent Sensor Malfunction）的可能性高于随机误差。"
  },
  "step6_decision": {
    "is_anomaly": true,
    "threat_type": "sensor_malfunction",
    "threat_description": "客厅温度传感器在空调运行期间反复出现间歇性故障，报告了不符合物理规律的瞬时高温假象。",
    "recommended_actions": [
      "建议检查客厅温度传感器的电池电量或连接稳定性。",
      "暂时忽略这些瞬时的高温和低度读数，以平均趋势为准进行环境监测。",
      "如果问题持续，建议更换该传感器以避免因误报高温而触发不必要的警报，或因误报低温而过度制冷。"
    ]
  }
}
```

Explanation: 假设A: [normal] 传感器短暂校准错误或通信丢包导致的瞬时数据抖动。

Explanation: 假设B: [anomaly] 传感器硬件故障（Stuck-at 或漂移），在特定触发条件下（如空调开关、时间同步）报告了错误的高温数值，且未能持续反映真实环境。

Explanation: 最可能假设: B, 置信度: medium

Explanation: 误报可能性: 由于异常仅持续极短时间且自动恢复，确实存在误报可能性（即只是偶发的数据包丢失或重传导致的乱码）。然而，鉴于该现象在数小时内重复发生了三次，且数值极其规整，判定为传感器间歇性故障（Intermittent Sensor Malfunction）的可能性高于随机误差。

建议检查客厅温度传感器的电池电量或连接稳定性。

暂时忽略这些瞬时的高温和低度读数，以平均趋势为准进行环境监测。

传感器短暂校准错误或通信丢包导致的瞬时数据抖动。

Hypothesis: A

异常值仅持续 1 分钟，随后立即回到合理的日间温度范围内（~22.5°C）。

没有伴随烟雾报警或其他火灾相关设备报警。

这种重复性暗示可能是某种触发机制而非随机噪声。

Hypothesis: B


触发间隔不规律（不是周期性的），且频率较低（几分钟一次不是几十秒一次）

```json
{
  "step1_evidence": [
    "异常事件 1: [2026-06-09T19:10:00] kitchen_temp_sensor | TemperatureMeasurement.MeasuredValue = None — 在灶具开启期间传感器突然停止上报数据，随后恢复。",
    "异常事件 2: [2026-06-09T19:30:30] kitchen_window_contact | BooleanState.StateValue = False (False=Open) — 厨房窗户在有人且未明确操作时打开。",
    "异常事件 3: [2026-06-09T19:31:00] kitchen_temp_sensor | TemperatureMeasurement.MeasuredValue = None — 传感器再次丢失读数，伴随窗户打开事件。",
    "异常事件 4: [2026-06-09T19:50:00] kitchen_temp_sensor | TemperatureMeasurement.MeasuredValue = 2584 (25.84°C) — 灶具已关闭（19:30），但厨房温度仍高达 25.84°C，远超正常回落速度，且此前有窗户打开记录。",
    "异常事件 5: [2026-06-09T19:55:00] kitchen_temp_sensor | TemperatureMeasurement.MeasuredValue = 2556 (25.56°C) — 温度持续高位，下降极慢（仅降 0.28°C），不符合自然冷却曲线。",
    "异常事件 6: [2026-06-09T20:00:00] kitchen_dishwasher | OnOff.OnOff = True — 洗碗机开启，可能产生额外热源或湿度影响，需确认是否关联高温。",
    "异常事件 7: [2026-06-09T20:00:05] kitchen_dishwasher | OperationalState.OperationalState = 1 — 确认洗碗机正在运行中。",
    "异常事件 8: [2026-06-09T20:05:00] kitchen_temp_sensor | TemperatureMeasurement.MeasuredValue = 2473 (24.73°C) — 温度开始缓慢下降，但仍高于预期。",
    "异常事件 9: [2026-06-09T20:10:00] kitchen_temp_sensor | TemperatureMeasurement.MeasuredValue = 2429 (24.29°C) — 降温速率约为 0.44°C/5min，略快于之前，但仍偏慢。",
    "异常事件 10: [2026-06-09T19:09:00] kitchen_light | OnOff.OnOff = True — 开灯行为正常，作为时间锚点，确认有人在厨房活动。"
  ],
  "step2_hypotheses": [
    {
      "id": "A",
      "type": "normal",
      "description": "住户在傍晚烹饪后未及时关窗通风，导致厨房热量积聚；后续洗碗机运行产生的热量也延缓了降温过程，温度回落较慢属于正常物理现象。"
    },
    {
      "id": "B",
      "type": "anomaly",
      "description": "存在外部入侵风险：入侵者可能在 19:30 左右打开厨房窗户进行侦察或破坏，同时干扰温度传感器（导致两次 None 读数）以掩盖其活动痕迹。"
    },
    {
      "id": "C",
      "type": "anomaly",
      "description": "厨房温度传感器发生漂移或故障（sensor_drift/sensor_malfunction）：传感器在高温环境下出现间歇性失效（返回 None），且读数长期偏高无法准确反映真实环境温度。"
    }
  ],
  "step3_verification": [
    {
      "hypothesis": "A",
      "supporting": [
        "间接证据：19:09 开灯、19:09:30 开灶具，表明有正常烹饪行为。",
        "间接证据：19:30 关闭灶具后，温度从 2690(26.9°C) 开始逐步下降，符合余热消散规律。",
        "间接证据：无门锁报警或运动传感器异常触发记录，排除暴力入侵迹象。"
      ],
      "opposing": [
        "直接证据：19:30:30 窗户状态变为 Open（False），但日志中无任何用户主动开窗的操作记录。",
        "直接证据：温度传感器在 19:10 和 19:31 两次返回 None，这种间歇性故障不符合正常传感器特性。",
        "间接证据：即使考虑余热，从 26.9°C 降至 24.2°C 耗时约 50 分钟，对于夏季夜晚室内环境而言过慢，暗示外部热空气持续涌入。"
      ]
    },
    {
      "hypothesis": "B",
      "supporting": [
        "直接证据：19:30:30 厨房窗户自动变为打开状态，且前后无相关操作日志。",
        "直接证据：温度传感器在疑似入侵窗口期（19:10, 19:31）两次丢失数据，可能是被物理遮挡或信号干扰所致。",
        "间接证据：高温持续时间长，若窗户被非法打开，外部热空气会持续进入，阻碍降温。"
      ],
      "opposing": [
        "否定证据：卧室和客厅运动传感器在 19:00-20:00 期间均显示 Occupancy=1，说明住户一直在屋内，未离开厨房去开窗。",
        "否定证据：入户门锁状态正常，无强行开门或多次锁操作失败记录。",
        "否定证据：没有烟雾报警器或其他紧急设备报警。"
      ]
    },
    {
      "hypothesis": "C",
      "supporting": [
        "直接证据：传感器两次返回 None 值，可能表示硬件故障或通信中断。",
        "间接证据：读数波动不规则，且在关键时间点缺失数据。"
      ],
      "opposing": [
        "否定证据：传感器在其他时间段（如 19:40, 19:50 等）能正常报告数值，并未完全失效。",
        "否定证据：温度读数的整体趋势（先升后降）与物理规律一致，并非完全随机或固定值，不太像典型的 stuck-at 故障。"
      ]
    }
  ],
  "step4_causal": [
    "因果关系 1: 19:09 开启灶具 → 厨房温度急剧上升至 26.9°C（正常因果：烹饪产热）。",
    "因果关系 2: 19:30 关闭灶具 → 温度应逐步下降，但因窗户在 19:30:30 意外打开，导致热空气持续进入，降温受阻（异常关联：非预期的门窗状态变化破坏了正常的热平衡）。",
    "因果关系 3: 19:10 和 19:31 传感器返回 None → 可能是由于窗户打开引入的强气流干扰了传感器读取，或是传感器本身的间歇性故障（异常关联：环境突变或设备缺陷导致数据丢失）。",
    "因果关系 4: 20:00 开启洗碗机 → 可能产生少量热量和蒸汽，进一步轻微延缓降温，但不足以解释前期的高温和长时间滞留（正常因果：电器运行产热）。"
  ],
  "step5_assessment": {
    "most_likely_hypothesis": "B",
    "confidence": "medium",
    "severity": "medium",
    "false_positive_risk": "住户可能通过自动化场景或远程 App 打开了窗户而忘记记录，或者窗户因机械故障自行打开（误报可能性中等）。然而，结合传感器间歇性失效和高热滞留特征，人为故意操作（如入侵者通风散热）的可能性不能排除。"
  },
  "step6_decision": {
    "is_anomaly": true,
    "threat_type": "intrusion",
    "threat_description": "检测到厨房窗户在非预期时间打开，伴随温度传感器间歇性失效及异常高温滞留，可能存在外部入侵者利用窗户进入并干扰安防系统以掩盖行踪的风险。",
    "recommended_actions": [
      "立即检查厨房窗户的物理状态及锁扣机制，确认是否为外力开启或机械故障。",
      "调取该时段周边摄像头录像（如有），核实是否有陌生人出现在厨房区域。",
      "联系设备供应商检查温度传感器固件及硬件状态，排除传感器故障导致的误判。",
      "建议启用更严格的门窗联动警报策略，例如窗户打开时若检测到无人则触发高分贝警报。"
    ]
  }
}
```

Explanation: 假设A: [normal] 住户在傍晚烹饪后未及时关窗通风，导致厨房热量积聚；后续洗碗机运行产生的热量也延缓了降温过程，温度回落较慢属于正常物理现象。

Explanation: 假设B: [anomaly] 存在外部入侵风险：入侵者可能在 19:30 左右打开厨房窗户进行侦察或破坏，同时干扰温度传感器（导致两次 None 读数）以掩盖其活动痕迹。

Explanation: 假设C: [anomaly] 厨房温度传感器发生漂移或故障（sensor_drift/sensor_malfunction）：传感器在高温环境下出现间歇性失效（返回 None），且读数长期偏高无法准确反映真实环境温度。

Explanation: 最可能假设: B, 置信度: medium

Explanation: 误报可能性: 住户可能通过自动化场景或远程 App 打开了窗户而忘记记录，或者窗户因机械故障自行打开（误报可能性中等）。然而，结合传感器间歇性失效和高热滞留特征，人为故意操作（如入侵者通风散热）的可能性不能排除。

立即检查厨房窗户的物理状态及锁扣机制，确认是否为外力开启或机械故障。 调取该时段周边摄像头录像（如有），核实是否有陌生人出现在厨房区域。 联系设备供应商检查温度传感器固件及硬件状态，排除传感器故障导致的误判。 建议启用更严格的门窗联动警报策略，例如窗户打开时若检测到无人则触发高分贝警报。

Hypothesis: A

间接证据：19:09 开灯、19:09:30 开灶具，表明有正常烹饪行为。

间接证据：无门锁报警或运动传感器异常触发记录，排除暴力入侵迹象。

Hypothesis: B

直接证据：19:30:30 厨房窗户自动变为打开状态，且前后无相关操作日志。

间接证据：高温持续时间长，若窗户被非法打开，外部热空气会持续进入，阻碍降温。

否定证据：入户门锁状态正常，无强行开门或多次锁操作失败记录。

否定证据：没有烟雾报警器或其他紧急设备报警。

Hypothesis: C

直接证据：传感器两次返回 None 值，可能表示硬件故障或通信中断。
间接证据：读数波动不规则，且在关键时间点缺失数据。


DF-04-FP: 门锁响应延迟但最终成功锁定

```json
{
  "step1_evidence": [
    "2026-06-12T18:24:07: front_door_contact StateValue=False (门开) → 18:24:24 living_room_occupancy=1 (有人进入) — 正常的开门进入序列",
    "2026-06-12T19:54:30: kitchen_window_contact StateValue=False (厨房窗户打开)",
    "2026-06-12T19:55:00: kitchen_temp_sensor MeasuredValue=None (数据丢失/故障)",
    "2026-06-12T19:55:00: kitchen_temp_sensor MeasuredValue=2549 (瞬间跳变，数值极高，约 25.49°C)",
    "2026-06-12T20:00:00: kitchen_temp_sensor MeasuredValue=2508 (数值仍异常高)",
    "2026-06-12T20:05:00: kitchen_temp_sensor MeasuredValue=2464 (数值持续偏高)",
    "2026-06-12T20:10:00: kitchen_temp_sensor MeasuredValue=2423 (数值缓慢下降，但仍高于正常背景值)",
    "2026-06-12T19:10:00: kitchen_cook_surface OnOff=True (灶具开启)",
    "2026-06-12T19:54:00: kitchen_cook_surface OnOff=False (灶具关闭)",
    "2026-06-12T22:09:37: front_door_contact StateValue=True (门关)"
  ],
  "step2_hypotheses": [
    {
      "id": "A",
      "type": "normal",
      "description": "厨房温度传感器因靠近热源（灶具）或阳光直射出现读数漂移，导致数值偏高；或者传感器在重启后需要时间校准。"
    },
    {
      "id": "B",
      "type": "anomaly",
      "description": "厨房窗户被非法打开（由入侵者），导致外部热空气涌入或传感器暴露在异常环境中，同时伴随传感器通信故障（None 值）和读数异常跳动。"
    }
  ],
  "step3_verification": [
    {
      "hypothesis": "A",
      "supporting": [
        "日志显示 19:10 至 19:54 期间灶具处于开启状态，这本身就会显著提升厨房温度。",
        "温度从 25.49°C 逐渐下降到 22.47°C，符合热源移除后的自然冷却趋势。",
        "厨房窗户在 19:54 打开可能让热空气流通，但也可能是住户为了通风。",
        "没有其他安防设备（如烟雾报警、漏水报警）触发。"
      ],
      "opposing": [
        "19:55 的温度读数突然变为 None，随后又跳变为 25.49°C，这种瞬时中断和剧烈跳变不符合单纯的热源加热逻辑。",
        "即使考虑灶具余热，19:54 关闭灶具后，温度在短短几分钟内（19:54-20:00）从理论上的峰值迅速回落并稳定在一个非零的‘高位’区间，且数值波动模式（None -> 2549 -> 2508 -> ...）显得不连续。",
        "正常烹饪场景下，温度应随灶具开启平滑上升，关闭后平滑下降，中间不应出现数据丢失（None）。"
      ]
    },
    {
      "hypothesis": "B",
      "supporting": [
        "19:54:30 厨房窗户传感器报告打开 (False)，这是一个关键的时间点巧合。",
        "紧接着 19:55:00 传感器返回 None，随后是极高的 25.49°C，这可能意味着传感器物理位置暴露或被干扰。",
        "如果窗户被意外打开，可能导致传感器读数不稳定或受环境影响产生异常值。",
        "尽管没有直接的运动传感器触发（可能是入侵者在窗边未触发 PIR，或 PIR 有盲区），但窗户打开 + 温度异常 + 数据丢失构成了可疑组合。"
      ],
      "opposing": [
        "整个时间段内（19:00 - 23:00），客厅和卧室的运动传感器持续报告 Occupancy=1，表明家中一直有人活动，降低了深夜入侵的可能性。",
        "没有任何其他安全警报（如 SmokeAlarm, DoorLockAlarm）被触发。",
        "用户手动打开了厨房窗户（如果是人为操作），则属于正常行为而非入侵。"
      ]
    }
  ],
  "step4_causal": [
    "灶具开启 (19:10) → 厨房温度逐步上升 (19:10-19:54) （正常因果：热传递）",
    "灶具关闭 (19:54) → 厨房温度开始下降 (19:54 之后) （正常因果：热消散）",
    "厨房窗户打开 (19:54:30) + 传感器数据异常 (19:55:00 None, 25.49°C) → 传感器读数不可靠/漂移 （异常关联：环境变化导致测量误差或硬件故障）",
    "无明确证据表明窗户打开是由外部入侵导致的（缺乏运动传感器支持），更可能是住户行为或误报。"
  ],
  "step5_assessment": {
    "most_likely_hypothesis": "A",
    "confidence": "medium",
    "severity": "low",
    "false_positive_risk": "存在一定误报风险。如果住户确实是在无人看管的情况下打开了窗户（例如忘记关窗后离开片刻再回来），那么高温和高湿度可能导致传感器读数异常。然而，考虑到家中一直有人（Occupancy=1），以及温度的下降趋势符合关机后的物理规律，最可能的解释是传感器受到短暂的环境干扰（开窗）或自身出现了临时性故障（stuck-at 或通信丢包），而非安全威胁。数据中的 'None' 值强烈暗示了传感器层面的问题。"
  },
  "step6_decision": {
    "is_anomaly": false,
    "threat_type": "none",
    "threat_description": "虽然厨房传感器在 19:55 出现数据丢失和数值跳变，且伴随窗户打开事件，但结合持续的室内人员活动和随后的温度正常下降趋势，判定为传感器临时故障或环境干扰，未发现明确的入侵或其他安全威胁迹象。",
    "recommended_actions": ["建议检查厨房温度传感器是否清洁或重新校准。", "确认 19:54 厨房窗户打开是否为住户有意操作。"]
  }
}
```

Explanation: 假设A: [normal] 厨房温度传感器因靠近热源（灶具）或阳光直射出现读数漂移，导致数值偏高；或者传感器在重启后需要时间校准。

Explanation: 假设B: [anomaly] 厨房窗户被非法打开（由入侵者），导致外部热空气涌入或传感器暴露在异常环境中，同时伴随传感器通信故障（None 值）和读数异常跳动。

Explanation: 最可能假设: A, 置信度: medium

Explanation: 误报可能性: 存在一定误报风险。如果住户确实是在无人看管的情况下打开了窗户（例如忘记关窗后离开片刻再回来），那么高温和高湿度可能导致传感器读数异常。然而，考虑到家中一直有人（Occupancy=1），以及温度的下降趋势符合关机后的物理规律，最可能的解释是传感器受到短暂的环境干扰（开窗）或自身出现了临时性故障（stuck-at 或通信丢包），而非安全威胁。数据中的 'None' 值强烈暗示了传感器层面的问题。

建议检查厨房温度传感器是否清洁或重新校准。
确认 19:54 厨房窗户打开是否为住户有意操作。

Hypothesis: A

厨房窗户在 19:54 打开可能让热空气流通，但也可能是住户为了通风。

没有其他安防设备（如烟雾报警、漏水报警）触发。

Hypothesis: B

如果窗户被意外打开，可能导致传感器读数不稳定或受环境影响产生异常值。

用户手动打开了厨房窗户（如果是人为操作），则属于正常行为而非入侵。


DF-02-FP: 夏季午后持续升温（正常日照效应）

温度上升后在午后到达峰值并回落，符合日间正弦曲线；而真正的漂移是不回落的单向偏移

```json
{
  "step1_evidence": [
    "2026-06-09T14:24:00 living_room_temp_sensor | TemperatureMeasurement.MeasuredValue = 2400 — 在上午时段，客厅温度突然剧烈下降（此前为 2537°C），随后在 14:25 回升至 2463°C，呈现非连续性的跳变。",
    "2026-06-09T16:24:00 living_room_temp_sensor | TemperatureMeasurement.MeasuredValue = 2520 — 下午时段，客厅温度再次出现无预警的剧烈上升（此前为 2370°C），随后回落。",
    "2026-06-09T17:24:00 living_room_temp_sensor | TemperatureMeasurement.MeasuredValue = 2550 — 傍晚时段，温度再次突兀飙升（此前为 2348°C），不符合自然热力学规律。",
    "2026-06-09T19:16:00 kitchen_temp_sensor | TemperatureMeasurement.MeasuredValue = None — 灶具开启后，厨房温度传感器读数变为空值（None）。",
    "2026-06-09T19:35:00 kitchen_temp_sensor | TemperatureMeasurement.MeasuredValue = None — 即使灶具关闭且有人在场，厨房温度传感器仍持续报告空值。",
    "2026-06-09T19:35:31 bedroom_occupancy | OccupancySensing.Occupancy = 0 — 卧室运动传感器在有人活动（刚关灯）后立即报告无人，可能存在逻辑冲突或误报。"
  ],
  "step2_hypotheses": [
    {
      "id": "A",
      "type": "normal",
      "description": "设备正在经历极端的天气变化或 HVAC 系统故障导致的正常波动，数据跳变是传感器校准延迟或环境突变的结果。"
    },
    {
      "id": "B",
      "type": "anomaly",
      "description": "living_room 区域的温度传感器存在严重的通信中断、固件崩溃或硬件故障，导致读数丢失和数值跳变；同时厨房温度传感器可能已完全失效（stuck-at-null）。"
    }
  ],
  "step3_verification": [
    {
      "hypothesis": "A",
      "supporting": [],
      "opposing": [
        "温度变化幅度极大（例如从 2537 到 2400，差值 137 个单位即 1.37°C？不，单位是 0.01°C，所以是 1.37°C 还是更大？2537=25.37, 2400=24.00，差值 1.37°C。等等，重新检查日志数值：2026-06-09T14:24:00 值为 2400 (24.00°C)，前一刻 14:20 为 2461 (24.61°C)。差值约 0.6°C。这看起来其实是在正常范围内？",
        "再仔细看：2026-06-09T14:24:00 -> 2400 (24.00)。2026-06-09T14:20:00 -> 2461 (24.61)。下降了 0.61 度。这在一天内是可能的。",
        "但是看 16:24:00 -> 2520 (25.20)。16:20:00 -> 2392 (23.92)。上升了 1.28 度。",
        "再看 17:24:00 -> 2550 (25.50)。17:20:00 -> 2341 (23.41)。上升了 2.09 度！这个幅度过大，且发生在晚上通常降温的时段。",
        "关键点在于 19:16:00 厨房温度变成 None。这是明确的异常信号。",
        "此外，14:24 之前的趋势是缓慢下降，突然出现一个低点，然后快速反弹，这种'V'型反转在没有强风或空调强力介入的情况下是不自然的。但更致命的证据是厨房传感器的 None 值。"
      ]
    },
    {
      "hypothesis": "B",
      "supporting": [
        "2026-06-09T19:16:00 kitchen_temp_sensor | TemperatureMeasurement.MeasuredValue = None：在烹饪过程中传感器返回空值，这是典型的传感器故障或通信丢失症状。",
        "2026-06-09T19:35:00 kitchen_temp_sensor | TemperatureMeasurement.MeasuredValue = None：问题持续存在，即使操作停止。",
        "living_room_temp_sensor 在特定时间点（14:24, 16:24, 17:24）出现剧烈的、不符合物理规律的数值跳变，暗示内部状态机错误或数据包损坏。",
        "厨房温度在长时间运行中完全失去读数能力，符合 sensor_malfunction 的定义。"
      ],
      "opposing": [
        "其他房间的温度传感器读数相对连贯，没有同样的 None 或剧烈跳变现象。"
      ]
    }
  ],
  "step4_causal": [
    "正常因果：白天日照导致室内温度逐渐升高（00:00-14:00 的趋势基本符合）。",
    "异常关联：19:15 开启灶具后，19:16 厨房温度传感器立即变为 None，表明传感器无法在高温下工作或通信模块故障。",
    "异常关联：living_room_temp_sensor 在傍晚和深夜出现无原因的剧烈数值反转（如 17:20 的 23.41°C 到 17:24 的 25.50°C），极可能是传感器漂移或固件计算错误导致的 sensor_drift 或 sensor_malfunction。",
    "正常因果：住户回家（18:13）开启空调导致温度下降，符合预期。"
  ],
  "step5_assessment": {
    "most_likely_hypothesis": "B",
    "confidence": "high",
    "severity": "high",
    "false_positive_risk": "较低。虽然温度波动有时可能由漏报的数据点引起，但厨房传感器连续报告 None 以及客厅传感器出现不可能的剧烈跳变，强烈指向硬件或固件层面的故障，而非环境因素。"
  },
  "step6_decision": {
    "is_anomaly": true,
    "threat_type": "sensor_malfunction",
    "threat_description": "living_room 区域温度传感器出现数据跳变和不可解释的波动，且 kitchen 区域温度传感器在烹饪时完全失效（返回 None），存在严重的安全监测盲区。",
    "recommended_actions": [
      "立即重置 kitchen_temp_sensor 和 living_room_temp_sensor 设备以尝试恢复通信。",
      "检查厨房温度传感器的供电电压和连接线缆，排除因高温导致的接触不良。",
      "如果重置无效，建议更换故障的温度传感器，以确保火灾报警系统和暖通空调控制系统的准确性。",
      "在传感器修复前，人工定期记录室温以防万一发生火灾等紧急情况。"
    ]
  }
}
```

Explanation: 假设A: [normal] 设备正在经历极端的天气变化或 HVAC 系统故障导致的正常波动，数据跳变是传感器校准延迟或环境突变的结果。

Explanation: 假设B: [anomaly] living_room 区域的温度传感器存在严重的通信中断、固件崩溃或硬件故障，导致读数丢失和数值跳变；同时厨房温度传感器可能已完全失效（stuck-at-null）。

Explanation: 最可能假设: B, 置信度: high

Explanation: 误报可能性: 较低。虽然温度波动有时可能由漏报的数据点引起，但厨房传感器连续报告 None 以及客厅传感器出现不可能的剧烈跳变，强烈指向硬件或固件层面的故障，而非环境因素。

检查厨房温度传感器的供电电压和连接线缆，排除因高温导致的接触不良。

在传感器修复前，人工定期记录室温以防万一发生火灾等紧急情况。

Hypothesis: A

关键点在于 19:16:00 厨房温度变成 None。这是明确的异常信号。

Hypothesis: B

其他房间的温度传感器读数相对连贯，没有同样的 None 或剧烈跳变现象。

正常因果：住户回家（18:13）开启空调导致温度下降，符合预期。


DF-04-FP: 门锁响应延迟但最终成功锁定

```json
{
  "step1_evidence": [
    "[2026-06-22T07:14:23] front_door_lock | Event: LockOperation(LockOperationType=1, OperationSource=Manual) — 住户手动解锁",
    "[2026-06-22T07:14:25] front_door_contact | BooleanState.StateValue = False — 门打开，且时间戳与解锁操作几乎同步，符合正常开门逻辑",
    "[2026-06-22T07:14:31] front_door_lock | Event: LockOperation(LockOperationType=0, OperationSource=Auto) — 系统自动重新上锁（通常发生在检测到有人离开或定时策略），LockState 变为 1 (Locked)",
    "[2026-06-22T18:22:00] front_door_lock | Event: LockOperation(LockOperationType=1, OperationSource=Manual) — 住户再次手动解锁",
    "[2026-06-22T18:22:02] front_door_contact | BooleanState.StateValue = False — 门打开",
    "[2026-06-22T18:22:19] living_room_occupancy | OccupancySensing.Occupancy = 1 — 进门后立即检测到客厅有人",
    "[2026-06-22T18:22:21] living_room_ac | OnOff.OnOff = True — 回家开启空调",
    "[2026-06-22T21:24:03] front_door_lock | DoorLock.LockState = 2 — 门锁状态变为 2 (Unlocked)，但未看到明确的 Manual Unlock 事件记录",
    "[2026-06-22T21:24:07] living_room_occupancy | OccupancySensing.Occupancy = 1 — 紧接着检测到有人进入",
    "[2026-06-22T21:24:08] front_door_lock | DoorLock.LockState = 1 — 门锁状态迅速变回 Locked"
  ],
  "step2_hypotheses": [
    {
      "id": "A",
      "type": "normal",
      "description": "这是住户正常的夜间回家行为。21:24 分前门锁处于锁定状态，随后通过 App 远程解锁、物理开门或智能门锁感应到用户靠近后自动执行解锁流程（部分 Matter 设备支持 proximity unlock），导致状态序列为 Unlocked -> Opened -> Occupied -> Locked。"
    },
    {
      "id": "B",
      "type": "anomaly",
      "description": "存在异常：在 21:24:03 只有 `LockState` 变为 Unlocked 的日志，缺少对应的 `LockOperation` 事件（如 Manual 或 Auto）。这可能意味着发生了未授权的状态变更、传感器故障误报开锁，或者是某种自动化脚本/入侵者触发了非预期的开锁逻辑。"
    }
  ],
  "step3_verification": [
    {
      "hypothesis": "A",
      "supporting": [
        "07:14 和 18:22 两次开门都有完整的 'Manual Unlock' -> 'Door Open' -> 'Auto Lock' 闭环，证明门锁机制正常工作。",
        "21:24 开门后，Living Room Occupancy 立即变为 1，且随后开启了灯光和空调，行为模式与早上起床/晚上回家的常规作息完全一致。",
        "没有发现凌晨或非正常时间的异常活动。"
    ],
    {
      "hypothesis": "B",
      "supporting": [
        "21:24:03 确实出现了 `LockState = 2` (Unlocked) 的记录，但紧随其后的日志中缺乏 `Event: LockOperation(...)` 这一关键动作记录，这与早晚两次的标准操作流程不符。"
    ]
  ],
  "step4_causal": [
    "07:14 Manual Unlock -> Contact Open -> Auto Lock (正常因果：用户主动操作)",
    "18:22 Manual Unlock -> Contact Open -> Occupancy Detect -> AC On (正常因果：用户回家触发场景联动)",
    "21:24 LockState Change -> Occupancy Detect -> LockState Revert (疑似异常关联：状态变化原因不明，可能是系统自动检测到人接近而自动解锁，也可能是日志缺失)"
  ],
  "step5_assessment": {
    "most_likely_hypothesis": "A",
    "confidence": "high",
    "severity": "none",
    "false_positive_risk": "低。虽然 21:24 缺少显式的 Unlock 事件日志，但在智能家居生态中，Matter 设备常集成 Proximity Unlock（靠近即开）或由 Home Assistant/Zigbee2MQTT 等中间件生成的自动上锁逻辑，这些情况下原始日志可能不记录具体的 'Unlock Event' 而直接反映状态结果。结合后续完美的入住行为（开灯、开空调），判定为正常概率极高。"
  },
  "step6_decision": {
    "is_anomaly": false,
    "threat_type": "none",
    "threat_description": "未发现安全威胁，门锁状态变化符合住户正常回家及系统自动联动的特征。",
    "recommended_actions": []
  }
}
```


DF-01-FP: 空调恒温控制导致温度稳定

有微小波动（±0.2°C），不是完全固定值；且空调处于开启状态

```json
{
  "step1_evidence": [
    "2026-06-09T15:44:00 living_room_ac OnOff.OnOff = True 随后 2026-06-09T15:44:00 living_room_temp_sensor MeasuredValue = 2500 (25.00°C)：空调开启瞬间温度读数异常飙升，不符合物理规律。",
    "2026-06-09T16:14:00 living_room_temp_sensor MeasuredValue = 2501 (25.00°C)：在无人且未记录其他热源开启的情况下，客厅温度再次出现非自然的跳变至 25°C。",
    "2026-06-09T19:00:00 kitchen_temp_sensor MeasuredValue = 2352 → 19:05:00 MeasuredValue = None：厨房温度传感器在灶具开启前正常，开启后连续多次报告 None（数据丢失）。",
    "2026-06-09T19:54:00 kitchen_cook_surface OnOff.OnOff = False 但 19:55:00 kitchen_temp_sensor MeasuredValue = None：关火后传感器立即停止上报数值，表明传感器已失效。",
    "2026-06-09T14:44:00 living_room_ac 开启后，temperature_sensor 从 2547 突变至 2500，随后缓慢下降：显示传感器对空调启停反应极其敏感且数值不连贯，疑似漂移或故障。"
  ],
  "step2_hypotheses": [
    {
      "id": "A",
      "type": "normal",
      "description": "传感器存在正常的短期波动误差，或者是由于 HVAC 系统快速调节导致的瞬时读数偏差，随后稳定在合理范围。"
    },
    {
      "id": "B",
      "type": "anomaly",
      "description": "living_room_temp_sensor 和 kitchen_temp_sensor 均发生严重故障：前者表现为 sensor_drift（漂移）或 sensor_malfunction（间歇性失灵/数据跳变），后者表现为 sensor_stuck-at-None（完全失去连接或电源）。"
    }
  ],
  "step3_verification": [
    {
      "hypothesis": "A",
      "supporting": [
        "大部分时间温度变化符合日间自然曲线趋势（凌晨低、午后高）。"
      ],
      "opposing": [
        "空调开启瞬间温度没有按预期下降反而飙升到 25°C（物理上不可能瞬间达到此温差）。",
        "同一时间段内多个房间温度同时出现不合理的剧烈跳变，排除了单一设备误报的可能。",
        "厨房传感器在关键操作（开火、关火）期间完全断连（None），这是明确的故障特征而非波动。"
      ]
    },
    {
      "hypothesis": "B",
      "supporting": [
        "15:44 和 16:14 两次无原因的 25°C 跳变，明显违背热力学常识（室内升温需要时间积累，不会因空调开启瞬间达到设定值上限）。",
        "厨房温度传感器在 19:06 至 19:55 期间持续返回 None，且与灶具状态（OnOff=True）不同步，属于典型的传感器通信中断或硬件损坏。",
        "14:44 空调开启后，温度读数从 2547 直接变为 2500，这种阶跃式变化是传感器故障的典型表现。"
      ],
      "opposing": []
    }
  ],
  "step4_causal": [
      "因果 1: 用户开启客厅空调 → living_room_temp_sensor 读数突变至 25.00°C（异常关联，应为缓慢下降过程，实为传感器漂移或错误校准）。",
      "因果 2: 厨房灶具开启 → kitchen_temp_sensor 连续返回 None（异常关联，传感器未能感知热源，系传感器故障导致数据采集失败）。",
      "因果 3: 厨房灶具关闭 → kitchen_temp_sensor 继续返回 None（异常关联，传感器未恢复工作，确认为永久性或部分性故障）。"
    ],
  "step5_assessment": {
    "most_likely_hypothesis": "B",
    "confidence": "high",
    "severity": "medium",
    "false_positive_risk": "虽然部分温度波动可能被视为噪声，但结合'None'数据和明显的物理规律违背（瞬间高温），误报可能性极低。这极大概率是真实的硬件或固件故障。"
  },
  "step6_decision": {
    "is_anomaly": true,
    "threat_type": "sensor_malfunction",
    "threat_description": "living_room 区域温度传感器出现严重的间歇性故障和数据漂移，且厨房温度传感器在烹饪时段完全失效，可能导致无法准确监控室内环境及火灾风险预警失灵。",
    "recommended_actions": [
      "检查并重新校准 living_room_temp_sensor，若无效则联系厂商更换。",
      "立即检查 kitchen_temp_sensor 的供电和网络连接，确认是否因硬件损坏导致永久离线。",
      "在维修完成前，建议人工定期监测室内温度，以防发生火灾时无法自动触发报警。"
    ]
  }
}
```

Explanation: 假设A: [normal] 传感器存在正常的短期波动误差，或者是由于 HVAC 系统快速调节导致的瞬时读数偏差，随后稳定在合理范围。

Explanation: 假设B: [anomaly] living_room_temp_sensor 和 kitchen_temp_sensor 均发生严重故障：前者表现为 sensor_drift（漂移）或 sensor_malfunction（间歇性失灵/数据跳变），后者表现为 sensor_stuck-at-None（完全失去连接或电源）。

Explanation: 最可能假设: B, 置信度: high

Explanation: 误报可能性: 虽然部分温度波动可能被视为噪声，但结合'None'数据和明显的物理规律违背（瞬间高温），误报可能性极低。这极大概率是真实的硬件或固件故障。

在维修完成前，建议人工定期监测室内温度，以防发生火灾时无法自动触发报警。

Hypothesis: A

大部分时间温度变化符合日间自然曲线趋势（凌晨低、午后高）。

同一时间段内多个房间温度同时出现不合理的剧烈跳变，排除了单一设备误报的可能。

Hypothesis: B


DF-04-FP: 门锁响应延迟但最终成功锁定

未发现可疑事件：日志中所有设备状态变化（温度波动、人员进出、开关灯、门锁操作）均符合正常家庭作息逻辑，无矛盾数据。

未发现可疑事件：entrance 区域的 front_door_contact 传感器在开门和关门时响应及时，状态翻转与 LockOperation 事件时间吻合。

未发现可疑事件：未检测到 sensor_stuck, sensor_drift, lock_malfunction, intrusion 等定义的异常模式。

entrance 区域传感器工作正常，记录的是住户正常的出门和回家行为。

entrance 区域传感器存在故障或受到干扰，导致误报或漏报。

Hypothesis: A

07:13:23 门锁解锁 (LockState=2) -> 07:13:25 门接触传感器变为 False (打开)，间隔仅 2 秒，响应迅速且合理。

18:13:00 门锁解锁 (LockState=2) -> 18:13:02 门接触传感器变为 False，随后 18:13:21 客厅运动传感器触发 Occupancy=1，序列完整（开锁->开门->人进入）。

22:14:35 门锁自动上锁 (LockState=1)，前一刻 22:14:34 门接触传感器已变为 True (关闭)，逻辑自洽。

全时段无出现“门已锁但接触传感器显示打开”或“门接触传感器频繁抖动”的情况。

Hypothesis: B

传感器读数随物理动作（开关门）实时变化，无延迟或死值。 没有发现周期性错误触发或与其他传感器逻辑冲突的数据。

正常因果：用户手动解锁门锁 -> 门被推开 -> 门接触传感器检测为打开 (False)。

正常因果：用户进入室内 -> 门被关上 -> 门接触传感器检测为关闭 (True) -> 系统自动/手动上锁。

正常因果：厨房灶具开启后 -> 厨房温度上升 -> 关火后 -> 温度回落（符合热力学规律）。

entrance 区域传感器工作状态正常，未发现安全威胁。

无需采取额外措施。 继续保持常规监控。

entrance 区域传感器工作状态正常，未发现安全威胁。

Explanation: 假设A: [normal] entrance 区域传感器工作正常，记录的是住户正常的出门和回家行为。

Explanation: 假设B: [anomaly] entrance 区域传感器存在故障或受到干扰，导致误报或漏报。

Explanation: 最可能假设: A, 置信度: high

Explanation: 误报可能性: 由于日志数据显示传感器对物理状态变化的反应极其准确且及时，判定为正常的误报风险极低。

无需采取额外措施。 继续保持常规监控。

entrance 区域传感器工作正常，记录的是住户正常的出门和回家行为。

entrance 区域传感器存在故障或受到干扰，导致误报或漏报。

Hypothesis: A

全时段无出现“门已锁但接触传感器显示打开”或“门接触传感器频繁抖动”的情况。

Hypothesis: B


DF-02-FP: 夏季午后持续升温（正常日照效应）

```json
{
  "step1_evidence": [
    "2026-06-29T18:53:00 kitchen_temp_sensor | TemperatureMeasurement.MeasuredValue = None — 传感器在灶具开启期间报告空值，可能表示故障或通信中断",
    "2026-06-29T19:40:00 kitchen_temp_sensor | TemperatureMeasurement.MeasuredValue = None — 传感器再次报告空值，且此时厨房窗户已打开",
    "2026-06-29T20:15:00 living_room_temp_sensor | TemperatureMeasurement.MeasuredValue = 2261, bedroom_temp_sensor | ... = 2158, kitchen_temp_sensor | ... = 2261 — 厨房温度读数异常偏低（与前一小时相比），且与其他区域差异巨大，存在数据跳变",
    "2026-06-29T20:44:00 living_room_temp_sensor | TemperatureMeasurement.MeasuredValue = 2550 — 客厅温度瞬间从 226°C（约 22.6°C）跳升至 255°C（约 25.5°C），波动超过 2°C，不符合正常日间变化规律",
    "2026-06-29T21:44:00 living_room_temp_sensor | TemperatureMeasurement.MeasuredValue = 2510 — 客厅温度再次出现大幅跳变（从 224°C 到 251°C），随后迅速回落至 224°C，显示传感器读数不稳定",
    "2026-06-29T23:40:00 living_room_temp_sensor | TemperatureMeasurement.MeasuredValue = 2272, kitchen_temp_sensor | ... = 2266 — 凌晨时段所有房间温度突然同步升高约 2-3°C，且之后持续偏高，呈现单向漂移趋势",
    "2026-06-29T18:25:00 front_door_contact | BooleanState.StateValue = False — 门锁操作后立即检测到门开状态，符合正常开门行为，但需确认是否有人进入",
    "2026-06-29T19:39:30 kitchen_window_contact | BooleanState.StateValue = False — 厨房窗户被打开，可能导致外部热量进入，影响温度读数",
    "2026-06-29T20:14:05 kitchen_dishwasher | OperationalState.OperationalState = 1 — 洗碗机启动，属于正常家务活动",
    "2026-06-29T18:52:30 kitchen_cook_surface | OnOff.OnOff = True — 灶具开启，通常会导致厨房温度上升，但后续温度读数未体现合理上升趋势反而出现异常"
  ],
  "step2_hypotheses": [
    {
      "id": "A",
      "type": "normal",
      "description": "厨房窗户打开导致外部热空气涌入，加上日照和环境因素，使得室内温度自然上升；同时传感器因环境干扰或短暂通信问题出现偶发性空值或波动。"
    },
    {
      "id": "B",
      "type": "anomaly",
      "description": "厨房温度传感器发生故障（sensor_malfunction），表现为多次返回空值、读数剧烈跳变以及与物理环境不符的异常低温/高温读数；其他区域的温度跳变可能是系统同步错误或同一传感器问题的连带表现。"
    }
  ],
  "step3_verification": [
    {
      "hypothesis": "A",
      "supporting": [
        "19:39:30 厨房窗户确实被打开，理论上可能引入外部热量",
        "18:52:30 灶具开启，通常会提升厨房温度",
        "温度波动幅度在某些时段接近±2°C，处于正常范围边缘"
      ],
      "opposing": [
        "厨房温度在灶具开启后并未持续上升，反而在 19:40 和 18:53 出现 'None' 空值，不符合加热逻辑",
        "20:44 和 21:44 的客厅温度跳变幅度远超±2°C 的正常阈值，无法用开窗解释",
        "多房间温度同时出现非正弦曲线的单向漂移，缺乏明确的环境触发事件（如长时间阳光直射）支持",
        "传感器连续两次返回 'None' 是设备故障的典型特征，而非环境干扰"
      ]
    },
    {
      "hypothesis": "B",
      "supporting": [
        "kitchen_temp_sensor 在 18:53:00 和 19:40:00 连续报告 'None'，表明传感器可能卡死或通信失败",
        "living_room_temp_sensor 在 20:44:00 和 21:44:00 出现 >2°C 的瞬时跳变，随后迅速恢复，符合传感器噪声或校准失效特征",
        "23:40:00 起所有房间温度同步异常升高并维持高位，显示系统性漂移（sensor_drift）",
        "温度读数与已知事件（如开窗、做饭）不匹配，例如开窗后温度未显著上升反而下降或归零"
      ],
      "opposing": []
    }
  ],
  "step4_causal": [
    "开窗 → 温度上升（部分成立，但不足以解释全部异常）：19:39 开窗后温度并未按预期上升，反而出现 'None' 值，说明因果关系断裂，更可能是传感器故障导致",
    "灶具开启 → 温度上升（不成立）：18:52 开启灶具后，厨房温度在 18:53 变为 'None'，而非逐步上升，表明传感器未能正确响应热源变化",
    "传感器故障 → 读数跳变与空值（成立）：kitchen_temp_sensor 多次返回 'None' 及 living_room_temp_sensor 的剧烈跳变，直接指向 sensor_malfunction 或 sensor_drift",
    "环境传热 → 全室温度同步漂移（弱关联）：23:40 后的温度同步升高可能是建筑热惯性或外部气候突变所致，但结合之前的传感器异常，更倾向于多个传感器同时出现漂移问题"
    ]
  },
  "step5_assessment": {
    "most_likely_hypothesis": "B",
    "confidence": "high",
    "severity": "medium",
    "false_positive_risk": "较低。温度跳变幅度和多次 'None' 读数强烈指向硬件故障，而非正常环境变化。误报可能性小，除非存在未记录的极端天气突变。",
    "threat_type": "sensor_malfunction"
  },
  "step6_decision": {
    "is_anomaly": true,
    "threat_type": "sensor_malfunction",
    "threat_description": "厨房和客厅温度传感器出现故障，表现为多次返回空值、读数剧烈跳变及持续性漂移，可能导致家庭自动化系统错误判断环境状态。",
    "recommended_actions": [
      "立即检查并更换 kitchen_temp_sensor 和 living_room_temp_sensor 设备",
      "验证其他温度传感器（bedroom_temp_sensor）是否也存在类似问题，以排除系统性故障",
      "在修复前，暂时禁用依赖这些传感器的自动温控策略，改用手动监控"
    ]
  }
}
```


DF-02-FP: 夏季午后持续升温（正常日照效应）

2026-06-13T18:13:00 living_room_temp_sensor | TemperatureMeasurement.MeasuredValue = 2400 — 凌晨 18:13 温度突然从 ~2322 (23.22°C) 跳变至 24.00°C，无相关设备操作记录（如开门或开启热源）。

2026-06-13T19:13:00 living_room_temp_sensor | TemperatureMeasurement.MeasuredValue = 2450 — 约 1 小时后再次出现无源温度跳变，从 ~2280 (22.80°C) 升至 24.50°C。

2026-06-13T20:13:00 living_room_temp_sensor | TemperatureMeasurement.MeasuredValue = 2520 — 第三次无源温度跳变，从 ~2261 (22.61°C) 升至 25.20°C。

2026-06-13T21:13:00 living_room_temp_sensor | TemperatureMeasurement.MeasuredValue = 2550 — 第四次无源温度跳变，从 ~2251 (22.51°C) 升至 25.50°C。

2026-06-13T22:13:00 living_room_temp_sensor | TemperatureMeasurement.MeasuredValue = 2510 — 第五次无源温度跳变，从 ~2248 (22.48°C) 升至 25.10°C。

所有其他时间段内，living_room_temp_sensor 读数随时间平滑变化或在合理范围内波动（±0.5°C），符合正常物理规律。

传感器受到外部热辐射干扰或短暂接触高温物体导致瞬时读数偏差，随后自动恢复。

Hypothesis: A

日志中未显示空调开启、窗户打开或人员进入客厅的事件与温度跳变完全同步。

如果仅是瞬时干扰，通常不会在 1 小时间隔内重复出现 5 次且每次幅度都在 1.5°C 以上。

卧室和厨房在同一时间段内的温度变化相对平稳（例如 18:13 时卧室仅微涨至 22.18°C -> 22.24°C），而客厅却剧烈跳变，说明不是全屋环境温度同步升高。

跳变后的温度并未迅速回落至之前的趋势线上，而是维持高位一段时间后才缓慢下降，这不符合瞬时干扰的特征。

Hypothesis: B

在没有任何触发事件（如开关机、门窗动作）的情况下，传感器读数在固定时间点（每 1 小时左右，具体为 xx:13:00）出现非物理性的阶跃式上升。

累计温差巨大：从最初的 ~23°C 累积上升到最后的 ~25.5°C，若为真实加热需要大量能量输入，但日志中无对应能耗记录。

这种“阶梯状”上升模式是典型的传感器故障特征（如 ADC 漂移或内部参考电压不稳定）。

异常关联：living_room_temp_sensor 读数在特定时间点无因向上跳变 → 传感器硬件故障导致的读数漂移 (Sensor Drift)

客厅温度传感器检测到周期性无源高温跳变，表明传感器存在漂移或校准故障，可能导致室温控制失效或误触发高温报警。

暂时将空调温控逻辑切换为基于平均温度或忽略该异常读数，直到设备修复。

联系技术支持更新固件或排查硬件问题。

Explanation: 假设A: [normal] 传感器受到外部热辐射干扰或短暂接触高温物体导致瞬时读数偏差，随后自动恢复。

Explanation: 假设B: [anomaly] 传感器发生硬件故障（Sensor Drift/Stuck-at），表现为在无人干预的情况下周期性地向高值方向漂移或跳变，且幅度远超环境自然变化范围。

Explanation: 最可能假设: B, 置信度: high

Explanation: 误报可能性: 误报可能性低，因为多次重复的无源大幅跳变几乎不可能由外部环境因素引起，且与其他房间数据对比明显。

暂时将空调温控逻辑切换为基于平均温度或忽略该异常读数，直到设备修复。

联系技术支持更新固件或排查硬件问题。

传感器受到外部热辐射干扰或短暂接触高温物体导致瞬时读数偏差，随后自动恢复。

Hypothesis: A

日志中未显示空调开启、窗户打开或人员进入客厅的事件与温度跳变完全同步。

Hypothesis: B


触发间隔不规律（不是周期性的），且频率较低（几分钟一次不是几十秒一次）

```json
{
  "step1_evidence": [
    "Event: [2026-06-01T18:57:00] kitchen_temp_sensor | TemperatureMeasurement.MeasuredValue = None — 传感器在灶具开启期间突然停止报告数据",
    "Event: [2026-06-01T19:50:00] kitchen_temp_sensor | TemperatureMeasurement.MeasuredValue = None — 传感器再次停止报告数据，此时厨房窗户已打开",
    "Event: [2026-06-01T18:10:00] kitchen_temp_sensor | TemperatureMeasurement.MeasuredValue = 2520 (25.2°C) vs living_room_temp_sensor | 23.16°C (23.16°C) — 厨房温度异常偏高，远超正常日间波动范围"
  ],
  "step2_hypotheses": [
    {
      "id": "A",
      "type": "normal",
      "description": "住户在烹饪过程中导致厨房温度自然升高，且传感器因网络波动或重启短暂断连。"
    },
    {
      "id": "B",
      "type": "anomaly",
      "description": "厨房温度传感器发生硬件故障（Sensor Malfunction/Stuck），导致读数丢失（返回 None）或严重漂移，无法准确监测环境。"
    }
  ],
  "step3_verification": [
    {
      "hypothesis": "A",
      "supporting": [],
      "opposing": [
        "日志显示厨房温度从凌晨 00:00 到 18:56 持续稳定上报，数值随时间变化符合物理规律（如做饭升温），但在 18:57 和 19:50 毫无征兆地变为 None。",
        "如果是正常波动，温度值应继续存在并反映室温变化，而不是直接变成空值（None）。"
      ]
    },
    {
      "hypothesis": "B",
      "supporting": [
        "关键证据 1: [2026-06-01T18:57:00] 厨房温度传感器在灶具开启（18:56:30 开启）时，数值直接从有效值跳变为 None。这通常表示传感器内部通信中断或电源故障，而非简单的网络延迟。",
        "关键证据 2: [2026-06-01T19:50:00] 传感器再次返回 None，且发生在窗户打开后。如果传感器只是离线，恢复后应该立即报告当前真实温度，但后续日志中该传感器并未重新出现有效读数（直到日志结束也未见其恢复），表明可能是永久性故障或处于非工作态。",
        "关键证据 3: 在故障发生前（18:10），厨房温度高达 25.2°C，虽然偏高但仍在合理范围内；随后的缺失使得无法判断是否发生了过热危险。"
      ],
      "opposing": []
    }
  ],
  "step4_causal": [
    "因果关系 1: 厨房温度传感器故障 → MeasuredValue 变为 None（异常关联：设备失效导致数据缺失）",
    "因果关系 2: 无法建立因果：由于缺乏有效的温度读数，无法确认是否存在火灾风险（unattended_cooking 或 fire_risk），因为失去了监控依据。"
  ],
  "step5_assessment": {
    "most_likely_hypothesis": "B",
    "confidence": "high",
    "severity": "medium",
    "false_positive_risk": "低。传感器连续两次返回 None 且伴随高温背景，极大概率是硬件故障而非偶发网络问题。"
  },
  "step6_decision": {
    "is_anomaly": true,
    "threat_type": "sensor_malfunction",
    "threat_description": "卧室区域的厨房温度传感器发生功能故障（Sensor Malfunction），多次返回空值（None），导致家庭环境监控能力下降，存在安全隐患。",
    "recommended_actions": [
      "立即检查厨房温度传感器的电池或连接状态。",
      "联系智能家居技术支持更换故障传感器。",
      "在修复前，建议用户手动定期查看厨房实际温度，以防发生火灾等事故。"
    ]
  }
}
```

Explanation: 假设A: [normal] 住户在烹饪过程中导致厨房温度自然升高，且传感器因网络波动或重启短暂断连。

Explanation: 假设B: [anomaly] 厨房温度传感器发生硬件故障（Sensor Malfunction/Stuck），导致读数丢失（返回 None）或严重漂移，无法准确监测环境。

Explanation: 最可能假设: B, 置信度: high

Explanation: 误报可能性: 低。传感器连续两次返回 None 且伴随高温背景，极大概率是硬件故障而非偶发网络问题。

立即检查厨房温度传感器的电池或连接状态。 联系智能家居技术支持更换故障传感器。 在修复前，建议用户手动定期查看厨房实际温度，以防发生火灾等事故。

住户在烹饪过程中导致厨房温度自然升高，且传感器因网络波动或重启短暂断连。

Hypothesis: A

Hypothesis: B


触发间隔不规律（不是周期性的），且频率较低（几分钟一次不是几十秒一次）

```json
{
  "step1_evidence": [
    "异常事件 1: [2026-06-08T18:56:00] kitchen_temp_sensor | TemperatureMeasurement.MeasuredValue = None — 厨房温度传感器在灶具开启期间突然无数据",
    "异常事件 2: [2026-06-08T19:27:00] kitchen_temp_sensor | TemperatureMeasurement.MeasuredValue = None — 厨房温度传感器在窗户打开后再次无数据，且之前数值极高",
    "异常事件 3: [2026-06-08T18:00:00] kitchen_temp_sensor | TemperatureMeasurement.MeasuredValue = 2384 (23.84°C) 随后迅速飙升至 2707 (27.07°C), 2643, 2568... 直到 2707 — 极不自然的单向快速升温，远超正常烹饪范围",
    "异常事件 4: [2026-06-08T18:55:00] kitchen_cook_surface | OnOff.OnOff = True — 灶具开启，但紧接着温度传感器开始失效",
    "异常事件 5: [2026-06-08T19:26:00] kitchen_cook_surface | OnOff.OnOff = False — 灶具关闭，但温度传感器在此之前已失效"
  ],
  "step2_hypotheses": [
    {
      "id": "A",
      "type": "normal",
      "description": "住户进行了长时间的高强度烹饪（如炖煮或油炸），导致厨房温度急剧上升；随后的传感器读数丢失是因为设备重启、网络波动或用户手动重置了传感器。"
    },
    {
      "id": "B",
      "type": "anomaly",
      "description": "厨房温度传感器发生故障（sensor_malfunction），表现为在高温环境下读数漂移、饱和或彻底停止上报数据（None），无法准确反映真实温度，可能导致火灾报警系统误判或失效。"
    }
  ],
  "step3_verification": [
    {
      "hypothesis": "A",
      "supporting": [
        "日志显示 18:55 灶具开启，符合高温场景。",
        "后续有洗碗机启动（19:51），暗示正在进行家务活动。"
      ],
      "opposing": [
        "温度从 23.84°C 飙升到 27.07°C 仅用了约 25 分钟，对于普通烹饪来说升温过快且幅度过大（通常做饭只升 3-5°C）。",
        "最关键证据：在 18:56 和 19:27，当需要监控时，传感器直接返回 `None`（无数据），而不是继续报告高温。如果是正常工作，应持续报告高数值直到降温。",
        "温度曲线在失去数据前呈现出非线性的剧烈波动，不符合热力学自然冷却规律。"
      ]
    },
    {
      "hypothesis": "B",
      "supporting": [
        "传感器在极端高温时段（>27°C）连续多次返回 `None`，这是典型的传感器故障（stuck-at 或通信中断）特征。",
        "温度读数的剧烈震荡（如 18:20 的 2643 -> 18:25 的 2707 -> 18:30 的 2708）超出了正常测量误差范围，表明内部元件可能过热损坏或校准失效。",
        "在关键安全节点（灶具开启、开窗通风后）数据缺失，完全丧失了作为安全监测设备的功能。"
      ],
      "opposing": []
    }
  ],
  "step4_causal": [
    "因果关系 1: 灶具开启 + 时间推移 → 厨房温度升高（部分成立，但程度异常）：虽然开火会导致升温，但观测到的升温幅度和速度（短时间内超过 3°C 并达到 27°C+）超出了正常物理规律，提示传感器读数失真。",
    "因果关系 2: 传感器故障/过载 → 数据丢失 (None): 当环境温度过高或传感器本身出现硬件错误时，导致其无法输出有效值，这是一种直接的故障因果关联。",
    "因果关系 3: 窗户打开 → 温度下降预期未发生：如果在 19:26 关火并开窗，温度理应回落，但传感器此时已无数据，无法验证是否真的发生了危险的高温积聚，这种信息缺失本身就是由传感器故障引起的。"
  ],
  "step5_assessment": {
    "most_likely_hypothesis": "B",
    "confidence": "high",
    "severity": "medium",
    "false_positive_risk": "较低。虽然高强度烹饪可能导致局部高温，但传感器连续两次返回 `None` 以及读数的大幅非线性震荡是明确的设备故障信号，而非正常的物理现象。"
  },
  "step6_decision": {
    "is_anomaly": true,
    "threat_type": "sensor_malfunction",
    "threat_description": "厨房温度传感器在高温环境下发生严重故障，出现数据丢失和读数漂移，导致无法准确监测火灾隐患。",
    "recommended_actions": [
      "立即人工检查厨房温度及是否有烟味或异味。",
      "联系维修人员更换厨房温度传感器。",
      "在设备修复前，建议缩短对该区域的安全监控周期或依赖其他辅助手段（如烟雾报警器，尽管烟雾报警器也未在日志中明确触发报警，需确认其状态）。"
    ]
  }
}
```

Explanation: 假设A: [normal] 住户进行了长时间的高强度烹饪（如炖煮或油炸），导致厨房温度急剧上升；随后的传感器读数丢失是因为设备重启、网络波动或用户手动重置了传感器。

Explanation: 假设B: [anomaly] 厨房温度传感器发生故障（sensor_malfunction），表现为在高温环境下读数漂移、饱和或彻底停止上报数据（None），无法准确反映真实温度，可能导致火灾报警系统误判或失效。

Explanation: 最可能假设: B, 置信度: high

Explanation: 误报可能性: 较低。虽然高强度烹饪可能导致局部高温，但传感器连续两次返回 `None` 以及读数的大幅非线性震荡是明确的设备故障信号，而非正常的物理现象。

立即人工检查厨房温度及是否有烟味或异味。

联系维修人员更换厨房温度传感器。

Hypothesis: A

日志显示 18:55 灶具开启，符合高温场景。
后续有洗碗机启动（19:51），暗示正在进行家务活动。

温度曲线在失去数据前呈现出非线性的剧烈波动，不符合热力学自然冷却规律。

Hypothesis: B


DF-06-FP: 窗帘正常移动但速度慢

2026-06-14T11:00:00 - second_bedroom_temp_sensor 读数从约 2500 (25.0°C) 瞬间跳变至 2612 (26.12°C)，无对应热源事件。

2026-06-14T11:20:00 - 读数达到 2865 (28.65°C)，室内温度在短时间内上升超过 3.5°C，不符合热力学规律。

2026-06-14T11:25:00 - 读数峰值达到 2920 (29.20°C)，表明传感器可能存在 stuck-at-high 故障或校准失效。

2026-06-14T11:30:00 - 读数稳定在 2932 (29.32°C) 附近，随后长时间维持高位，直至中午才缓慢回落。

2026-06-14T11:35:00 - 即使灶具关闭且无人活动，该传感器读数仍高达 2933°C，与其他房间（如 living_room ~25.3°C）形成巨大反差。

2026-06-14T12:00:00 - 虽然读数开始下降，但仍处于 27.63°C 的高位，直到下午 14:00 左右才逐渐恢复正常水平。

对比分析：在 same time period (11:00-11:30), master_bedroom_temp_sensor and living_room_temp_sensor remained stable around 25°C, indicating the anomaly is isolated to second_bedroom_temp_sensor.

Hypothesis: A

日志中记录了 11:54 kitchen_light 和 kitchen_cook_surface 开启，说明有烹饪行为，但这是厨房而非次卧。

如果有人在次卧剧烈运动，通常会在短时间内产生热量并随后迅速消散，而该高温持续了数小时。

次卧 OccupancySensor 在整个高温期间（11:00-12:30）均报告为 0（无人）。

温度上升幅度过大（3 小时内上升近 4°C），且没有对应的 Occupancy=1 记录支持有人活动。

没有其他房间出现类似同步升温现象，排除了全室供暖系统故障的可能。

Hypothesis: B

温度读数呈现典型的单向漂移特征（持续上升后缓慢回落），符合传感器故障模式。

读数数值极高（最高达 29.20°C），对于夏季清晨/上午时段且室内无人、空调可能未开启（需确认但其他房间未启动）的环境而言，极不合理。

与同一时间段内其他所有房间的传感器读数（稳定在 25°C 左右）存在显著差异，证明是孤立事件。

故障发生在 11:00 左右，持续约 2.5 小时，期间无任何人为干预记录（如打开窗户、使用风扇等降温操作日志）。

正常因果：日照导致全天室温缓慢上升（已观察到客厅温度从 22.74°C 升至 24.84°C，属正常范围内）。

异常关联：second_bedroom_temp_sensor 读数异常飙升 → 并非由真实热源引起（因 Occupancy=0 且无其他热源记录），而是由传感器自身故障导致的虚假数据关联。

排除因果：灶具开启 (kitchen_cook_surface) → second_bedroom_temp_sensor 读数升高（物理上不可能直接传导如此高的热量到相邻卧室，且时间线不匹配）。

次卧温度传感器出现严重漂移故障，导致长时间报告虚假高温数据，可能误导自动化逻辑（如错误触发空调或报警）。

立即标记 second_bedroom_temp_sensor 为故障状态，并在系统中将其读数屏蔽或替换为邻居房间的平均值。

检查智能家居自动化规则，确保基于该传感器的“高温警报”或“空调联动”逻辑已被禁用，防止误操作。

Explanation: 假设A: [normal] 住户在次卧进行了高强度的健身运动或使用大型加热设备（如电暖器、吹风机），导致室温暂时性急剧升高。

Explanation: 假设B: [anomaly] second_bedroom_temp_sensor 发生硬件故障（Stuck-at 故障），导致读数虚假漂移，无法反映真实环境温度。

Explanation: 最可能假设: B, 置信度: high

Explanation: 误报可能性: 低。由于 occupancy sensor 明确报告无人，且其他房间温度正常，基本可以排除真实高温环境的可能性。误报风险主要在于是否曾有短暂的高温活动未被记录，但考虑到温度曲线的平滑性和持续时间，传感器故障概率远高于正常活动。

Hypothesis: A

没有其他房间出现类似同步升温现象，排除了全室供暖系统故障的可能。

Hypothesis: B

温度读数呈现典型的单向漂移特征（持续上升后缓慢回落），符合传感器故障模式。


触发间隔不规律（不是周期性的），且频率较低（几分钟一次不是几十秒一次）

2026-06-22T18:49:00 kitchen_temp_sensor | TemperatureMeasurement.MeasuredValue = None — 灶具开启后传感器读数丢失，随后在 19:30 恢复。

2026-06-22T19:30:00 kitchen_temp_sensor | TemperatureMeasurement.MeasuredValue = None — 窗户打开瞬间传感器再次报告 None，之后恢复正常。

2026-06-22T18:05:00 kitchen_temp_sensor | TemperatureMeasurement.MeasuredValue = 2463 (24.63°C) 到 T18:25:00 | 2704 (27.04°C) — 厨房温度在无人时持续快速上升，幅度异常大（>2°C in 20min）。

2026-06-22T18:20:00 kitchen_temp_sensor | TemperatureMeasurement.MeasuredValue = 2648 (26.48°C) — 温度读数超过正常日间波动范围，且无对应热源操作记录。

2026-06-22T19:29:00 kitchen_cook_surface | OnOff.OnOff = False — 灶具关闭，但此前厨房温度已处于高位且无下降趋势。

2026-06-22T18:21:24 living_room_occupancy | OccupancySensing.Occupancy = 1 — 住户进入客厅，但未立即操作厨房设备。

2026-06-22T18:48:30 kitchen_cook_surface | OnOff.OnOff = True — 灶具开启，此时厨房温度已达 27°C 以上，升温曲线陡峭。

2026-06-22T22:14:24 bedroom_window | WindowCovering.CurrentPositionLiftPercent100ths = 10000 — 卧室窗帘完全拉上，符合夜间正常行为。

2026-06-22T22:36:36 bedroom_occupancy | OccupancySensing.Occupancy = 0 — 卧室无人状态持续至深夜，属正常作息。

2026-06-22T18:00:00 kitchen_temp_sensor | TemperatureMeasurement.MeasuredValue = 2381 (23.81°C) — 初始温度合理，与后续异常形成对比。

Hypothesis: A

18:48:30 灶具被手动开启（OnOff=True），这为温度上升提供了合理解释。

卧室和客厅的 occupancy 传感器显示有人在屋内，支持住户活动的假设。

温度在灶具关闭后（19:29）开始缓慢回落，符合热力学规律。

在灶具开启前（18:00–18:48），厨房温度已从 23.81°C 升至 26.48°C，增幅达 2.67°C，远超正常日间波动或单次烹饪影响。

18:49:00 和 19:30:00 传感器连续两次报告 None，表明可能存在硬件故障而非单纯的网络问题。

即使灶具开启，若之前已有异常热源，则总升温幅度会更大，难以用单一烹饪事件解释。

Hypothesis: B

18:00–18:48 期间厨房温度在无明确热源操作下显著上升，暗示可能存在漏报的热源或传感器校准漂移。

传感器多次返回 None 值，可能是由于过热导致的永久性损坏或通信模块失效。

19:30 窗户打开时传感器再次失效，可能暗示环境变化触发了设备保护机制。

18:48:30 明确记录了灶具开启操作，这是合理的升温原因。

温度在灶具关闭后呈现下降趋势，说明没有持续的外部热源维持高温。

其他房间传感器工作正常，仅厨房传感器出现间歇性故障，降低了大规模入侵或系统崩溃的可能性。

灶具开启 → 厨房温度逐步升高（正常因果）
未知热源/传感器漂移 → 厨房温度在无操作下异常飙升（异常关联）
高温/通信干扰 → 传感器返回值变为 None（异常关联）
窗户打开 → 传感器暂时失效（可能由环境扰动引起，需进一步调查）

厨房温度传感器表现出异常行为，包括无操作下的温度骤升及多次数据丢失，可能导致火灾风险未被及时检测。

立即检查厨房是否有遗留热源或未熄灭的电器。 更换厨房温度传感器以排除硬件故障。 启用备用烟雾报警器进行交叉验证，确保消防安全。

Explanation: 假设A: [normal] 厨房温度升高是由于住户在傍晚时段进行了烹饪活动，导致温度自然上升；传感器短暂丢失数据是网络波动或重启所致。

Explanation: 假设B: [anomaly] 厨房存在未授权的长时间加热源（如忘关火、外部热源入侵），导致温度异常飙升；同时传感器可能因高温损坏或通信中断而失效。

Explanation: 最可能假设: B, 置信度: medium

Explanation: 误报可能性: 如果住户确实在 18:00–18:48 之间进行了长时间烹饪而未记录，则可能是误报；但考虑到升温幅度和传感器多次失效，风险较低。

Hypothesis: A

卧室和客厅的 occupancy 传感器显示有人在屋内，支持住户活动的假设。

温度在灶具关闭后（19:29）开始缓慢回落，符合热力学规律。

即使灶具开启，若之前已有异常热源，则总升温幅度会更大，难以用单一烹饪事件解释。

Hypothesis: B

传感器多次返回 None 值，可能是由于过热导致的永久性损坏或通信模块失效。

19:30 窗户打开时传感器再次失效，可能暗示环境变化触发了设备保护机制。

18:48:30 明确记录了灶具开启操作，这是合理的升温原因。

温度在灶具关闭后呈现下降趋势，说明没有持续的外部热源维持高温。


DF-05-FP: 烟雾报警器正常自检

有完整的自检流程（TestInProgress=true → SelfTestComplete → TestInProgress=false），不是HardwareFault

{
  "step1_evidence": [
    "未发现可疑事件：所有温度传感器读数在一天内呈现自然的昼夜波动（凌晨低、午后高），厨房温度在烹饪时段（若有）或日照影响下升高符合物理规律，未见长时间固定值、单向漂移或非正常时间的异常活动。",
    "未发现可疑事件：日志中仅包含正常的周期性温度报告，未检测到任何 DoorLockAlarm、SmokeAlarm、HardwareFaultAlert 等明确报警信号。",
    "未发现可疑事件：虽然 kitchen_smoke_alarm 在 18:45 发生了自检 (TestInProgress)，但随后立即完成并恢复正常状态 (SelfTestComplete)，这属于设备正常的维护行为，而非故障。"
  ],
  "step2_hypotheses": [
    {
      "id": "A",
      "type": "normal",
      "description": "家庭环境处于正常工作状态。温度变化是由室外环境温度变化、日照辐射以及可能存在的日常作息（如做饭导致短暂升温后回落）引起的自然热力学过程。烟雾报警器进行的自检是计划内的常规维护功能。"
    },
    {
      "id": "B",
      "type": "anomaly",
      "description": "存在传感器漂移或数据上报错误的可能性。虽然整体趋势看起来像正弦波，但如果某房间温度持续偏离其他房间且无对应热源/冷源解释，可能是传感器校准失效（Drift）。但在本日志中，多房间温度同步响应环境变化，不支持此假设。"
    }
  ],
  "step3_verification": [
    {
      "hypothesis": "A",
      "supporting": [
      "直接证据：所有温度传感器（living_room, master_bedroom, second_bedroom, kitchen）的读数随时间推移呈现出清晰的日循环模式（00:00-06:00 缓慢上升，06:00-14:00 达到峰值，14:00-23:55 逐渐下降），这与典型的住宅热惯性及日照周期完全一致。",
      "间接证据：厨房温度最高出现在下午 14:00-15:00 左右（约 25°C+），随后逐渐下降，符合夏季午后高温及室内蓄热释放的自然规律，未见因灶具开启导致的异常短时剧烈跳变（若未记录灶具开启，则排除烹饪干扰，纯看环境温度）。",
      "直接证据：kitchen_smoke_alarm 在 18:45 触发 TestInProgress -> SelfTestComplete -> ExpressedState=0，这是标准的自检流程，证明设备通信和逻辑正常。"
    ],
    {
      "hypothesis": "B",
      "supporting": [],
      "opposing": [
      "否定证据：如果传感器发生 Stuck-at 故障，读数应在数小时内保持不变，而日志显示读数每秒都在微调（例如 living_room_temp_sensor 从 2280 变到 2267 再变到 2276），证明传感器活跃工作。",
      "否定证据：如果发生 Drift（漂移），通常表现为线性单向增长或减少而不回头，但日志显示温度在午后达到峰值后必然回落，形成了完整的闭环，不符合单向漂移特征。"
    ]
  },
  "step4_causal": [
      "正常因果：室外日间气温升高 + 太阳辐射 → 室内各区域温度逐步上升至午后峰值 → 夜间散热 → 温度回落。",
      "正常因果：烟雾报警器定时启动自检程序 → 短暂进入测试状态 → 测试完成复位 → 恢复正常待命状态。"
    ]
  },
  "step5_assessment": {
    "most_likely_hypothesis": "A",
    "confidence": "high",
    "severity": "none",
    "false_positive_risk": "极低。日志数据量充足（每 5 分钟一条），覆盖了完整的 24 小时周期，且多传感器数据相关性高，排除了单一设备随机噪声导致误判的可能性。"
  },
  "step6_decision": {
    "is_anomaly": false,
    "threat_type": "none",
    "threat_description": "系统运行正常，温度波动符合自然规律，安全设备自检通过。",
    "recommended_actions": []
  }
}


触发间隔不规律（不是周期性的），且频率较低（几分钟一次不是几十秒一次）

2026-06-10T18:00:00 - kitchen_temp_sensor: 2382°C (日志中显示为 2382, 即 23.82°C? 不，单位是 0.01°C。2382 = 23.82°C。等等，让我重新检查数值范围。)

关键异常 1: 2026-06-10T18:15:00 second_bedroom_temp_sensor 读数为 2322 (23.22°C)，但同一时刻 living_room 为 2313, master_bedroom 为 2323。数值本身正常。

关键异常 3: 2026-06-10T18:25:00 kitchen_temp_sensor 读数为 2693 (26.93°C)。继续快速升温。

关键异常 4: 2026-06-10T18:30:00 kitchen_temp_sensor 读数为 2714 (27.14°C)。此时厨房灶具尚未开启 (18:51 才开启)。

关键异常 5: 2026-06-10T18:35:00 kitchen_temp_sensor 读数为 2717 (27.17°C)。温度仍在高位徘徊。

关键异常 7: 2026-06-10T18:45:00 kitchen_temp_sensor 读数为 2665 (26.65°C)。开始缓慢下降。

关键异常 9: 2026-06-10T18:51:30 kitchen_cook_surface OnOff=True。灶具在此时才开启。

关键异常 10: 2026-06-10T18:52:00 kitchen_temp_sensor 读数为 None。传感器在事件发生后立即停止报告数据。

Hypothesis: A

住户在 18:51 开启了灶具，这解释了后续的高温。

其他房间（living_room, master_bedroom）温度在同一时间段保持在 22-23°C 左右，变化不大，说明整体室温没有极端升高。

时间顺序矛盾：2026-06-10T18:00 到 18:50 之间，厨房温度从 23.8°C 持续上升至 26.2°C，而此时灶具处于关闭状态（直到 18:51 才开启）。如果仅仅是环境升温，通常不会如此剧烈且集中在厨房区域，而其他卧室和客厅温度平稳。

升温速率过快：5 分钟内上升近 2°C 远超正常环境传热速度。

事件后无响应：2026-06-10T18:52:00 之后，尽管灶具已开启，温度读数变为 None，表明传感器可能已损坏或通信中断，无法提供后续验证数据。

Hypothesis: B

在无热源（灶具关闭）的情况下，厨房温度呈现明显的单向上升趋势（23.8 -> 26.2 -> 27.1°C），不符合正常日间正弦曲线。

温度读数与其他房间差异巨大且不合理：当其他房间稳定在 22-23°C 时，厨房达到 27°C+，这在夏季清晨/上午（18:00 对应下午 6 点？不，日志时间是 UTC 还是本地？假设是当地标准时间，18:00 是傍晚。如果是傍晚，太阳下山，室内应降温。但这里厨房反常升温。）

传感器在关键事件（灶具开启）后立即返回 None，这是典型的传感器故障（sensor_malfunction）或 stuck-at 后的失效表现。

对比其他传感器：所有温度传感器在同一时间点都有读数且相互印证了室温分布，唯独厨房传感器表现出独立的异常行为模式。

异常因果：厨房温度在没有内部热源（灶具关闭）的情况下持续上升 → 可能是传感器漂移或故障导致的虚假读数，而非真实环境温度变化。

异常关联：厨房温度读数异常偏高且不稳定 → 可能导致误触发烟雾报警或其他基于温度的联动逻辑（虽然本次未触发报警，但风险存在）。

设备故障：温度传感器在 18:52 返回 None → 直接证据表明传感器硬件故障或通信模块失效。

second_bedroom 区域的温度传感器（以及 kitchen 区域的同类传感器）出现严重故障，表现为非受热源影响下的单向漂移及随后的数据丢失，可能导致环境监测失效。

立即检查并更换 second_bedroom_temp_sensor 和 kitchen_temp_sensor。

审查依赖这些传感器进行自动化控制的场景（如空调联动、高温报警），防止因数据错误导致系统误动作。

在维修期间，建议人工定期记录该区域实际温度以监控环境安全。

Explanation: 假设A: [normal] 厨房温度升高是由于外部环境温度高或阳光直射导致，随后自然回落；18:51 的灶具开启是住户正常的烹饪行为，之前的温度波动属于环境热惯性。

Explanation: 假设B: [anomaly] 厨房温度传感器存在严重的单向漂移或故障（Stuck-at 或 Drift），导致读数虚高且未及时随环境变化；更严重的是，灶具在 18:51 开启前，厨房温度已经异常升高至 27°C 以上，这可能意味着传感器失效，或者存在未检测到的热源（如电器故障），且传感器在事件后完全静默（None）。

Explanation: 最可能假设: B, 置信度: high

Explanation: 误报可能性: 低。因为其他三个房间的温度传感器在同一时间段的数据是连贯且符合物理规律的（相对稳定），而厨房传感器的异常表现为孤立的、违反热力学常识的单向漂移及随后的数据丢失，极大概率是设备故障而非环境因素。

在维修期间，建议人工定期记录该区域实际温度以监控环境安全。

Hypothesis: A

住户在 18:51 开启了灶具，这解释了后续的高温。

升温速率过快：5 分钟内上升近 2°C 远超正常环境传热速度。

Hypothesis: B


触发间隔不规律（不是周期性的），且频率较低（几分钟一次不是几十秒一次）

2026-06-18T04:25:00 second_bedroom_temp_sensor | MeasuredValue = 2420 — 温度读数异常高，远超其他房间（客厅 2412, 主卧 2419, 厨房 2425），且处于无人状态。

2026-06-18T04:30:00 second_bedroom_temp_sensor | MeasuredValue = 2415 — 在无人且无热源设备开启的情况下，温度持续高位波动，不符合正常昼夜变化规律。

2026-06-18T05:30:00 second_bedroom_temp_sensor | MeasuredValue = 2454 — 凌晨时段温度进一步升高至 24.54°C，而同期客厅仅为 24.54°C，显示该传感器可能固定在高值或严重漂移。

2026-06-18T07:00:00 kitchen_temp_sensor | MeasuredValue = None — 厨房传感器短暂丢失数据，但次卧传感器在此时仍报告数值，排除了全局网络故障。

2026-06-18T12:20:00 second_bedroom_temp_sensor | MeasuredValue = 2526 — 中午时段温度达到峰值 25.26°C，与其他房间温差显著，且此时次卧无人。

2026-06-18T16:10:45 second_bedroom_occupancy | OccupancySensing.Occupancy = 0 — 确认在温度异常期间，次卧确实无人，排除有人活动导致升温的可能性。

2026-06-18T18:14:03 living_room_occupancy | OccupancySensing.Occupancy = 1 — 住户在家期间，次卧始终无人，进一步佐证温度读数异常非人为因素。

2026-06-18T22:28:20 master_bedroom_window | CurrentPositionLiftPercent100ths = 10000 — 窗帘完全关闭，说明窗户未开，外部热量无法进入次卧。

2026-06-18T00:00:00 to 23:55:00 second_bedroom_temp_sensor | Multiple readings > 2300 — 全天大部分时间温度均高于 23°C，即使在夜间和清晨也应降温的时段也未回落，呈现单向漂移特征。

对比分析：同一时间段内，客厅、主卧、厨房温度随环境自然波动（±1-2°C），唯独次卧温度持续偏高且波动模式不同步，表明 sensor_drift 或 sensor_malfunction。

Hypothesis: A

日志中未见任何设备操作记录（如 heating_device_turn_on），但若设备为手动遥控且未在 Matter 协议上报，则无法被日志捕获。

运动传感器一直报告 Occupancy=0，可能是因为人长时间静止不动或躲在角落，未被 PIR 检测。

若真有加热设备，通常会有人员活动痕迹（如开门、灯光变化），但日志中次卧区域无任何交互事件。

温度升幅过大且持续全天，不符合单一小型加热设备的典型行为，更像系统性误差。

其他房间温度随昼夜规律波动，而次卧温度曲线完全独立，缺乏因果关联。

Hypothesis: B

温度读数与其他房间严重脱节，尤其在凌晨低温时段仍维持高温（如 05:30 达 24.54°C）。

读数呈现单向漂移趋势，不遵循日间正弦曲线，符合 stuck-at 或 drift 故障特征。

运动传感器多次确认无人，排除了人为热源可能性。

厨房传感器曾短暂失效（None），证明网络正常，问题局限于次卧传感器本身。

cause: 次卧温度持续高位 + 无人状态 → effect: 传感器读数异常（异常关联，非正常因果）

cause: 其他房间温度随昼夜波动 → effect: 环境温度自然变化（正常因果）

cause: 窗户关闭 + 窗帘拉上 → effect: 外部热量无法进入（正常物理约束，排除入侵或日晒导致升温）

cause: 运动传感器持续 0 → effect: 无人活动（正常因果，否定人为热源假设）

second_bedroom_temp_sensor 出现持续性单向漂移，读数远高于实际环境温度且与全屋趋势不符，可能导致错误的自动化决策（如误判过热触发制冷或忽略真实风险）。

立即检查次卧温度传感器是否松动、接触不良或被遮挡。

使用独立温度计测量次卧实际温度以验证传感器读数准确性。

若确认为故障，安排更换传感器并校准系统阈值，避免依赖错误数据进行安防或节能控制。

Explanation: 假设A: [normal] 住户可能在次卧放置了额外的加热设备（如电暖器）或未察觉地开启了空调制热，但由于运动传感器未能检测到微小移动或热源位置特殊，导致 occupancy=0 但温度上升。

Explanation: 假设B: [anomaly] second_bedroom_temp_sensor 发生 sensor_drift（传感器漂移）或 sensor_malfunction（传感器故障），导致读数持续偏高且与环境趋势不一致，属于硬件故障。

Explanation: 最可能假设: B, 置信度: high

Explanation: 误报可能性: 误报可能性较低，因为多时间点、多日期的数据一致性支持传感器故障；唯一的不确定性是是否存在未报告的本地加热设备，但该设备需持续运行 24 小时且无人员活动，概率极低。

立即检查次卧温度传感器是否松动、接触不良或被遮挡。

使用独立温度计测量次卧实际温度以验证传感器读数准确性。

Hypothesis: A

温度升幅过大且持续全天，不符合单一小型加热设备的典型行为，更像系统性误差。

其他房间温度随昼夜规律波动，而次卧温度曲线完全独立，缺乏因果关联。

Hypothesis: B

运动传感器多次确认无人，排除了人为热源可能性。

厨房传感器曾短暂失效（None），证明网络正常，问题局限于次卧传感器本身。


DF-06-FP: 窗帘正常移动但速度慢

2026-06-26T19:13:00 - kitchen_temp_sensor | TemperatureMeasurement.MeasuredValue = None — 传感器在灶具开启期间无数据

2026-06-26T19:48:30 - kitchen_window_contact | BooleanState.StateValue = False — 厨房窗户打开，但日志中未显示任何人员活动或异常警报

2026-06-26T20:14:04 - kitchen_dishwasher | OperationalState.OperationalState = 1 — 洗碗机启动，属于正常设备运行

Hypothesis: A

日志显示在 19:13:00 到 19:49:00 之间，温度值为 None，但在 19:50:00 立即恢复为有效数值 (2584)。

该时间段内没有其他设备报错（如 DoorLockAlarm 或 HardwareFaultAlert）。

设备在短暂中断后自动恢复正常，符合临时维护的特征。

Hypothesis: B

在温度缺失期间（19:13-19:49），厨房温度从正常的 ~23°C 迅速上升至 ~267°C (19:20:00)，这极不寻常。

然而，这种剧烈升温是由灶具 (cook_surface) 在 19:12:30 开启引起的，因此高温是烹饪的正常结果，而非传感器读数错误。

关键在于：如果传感器真的故障（stuck-at），它应该持续报告固定值或错误值，而不是突然变为 None 然后恢复。

没有证据表明传感器存在永久性漂移或卡死行为。

虽然温度波动大，但这是由明确的烹饪事件（灶具开启）解释的，并非传感器本身的问题。

传感器在烹饪结束后（19:48 关火）和冷却过程中均能正常工作，证明其功能完好。

因果 1: 用户开启灶具 (19:12:30) → 厨房温度急剧上升 (至 267°C) → 这是正常的热力学反应，非传感器故障。

因果 2: 传感器短暂失效 (19:13-19:49) → 报告 None → 可能是临时性通信丢失或重启，随后恢复报告正常降温曲线。

因果 3: 厨房窗户打开 (19:48:30) → 室内热量散失 → 配合灶具关闭，导致温度开始下降，符合物理规律。

未发现安全威胁。厨房温度传感器的短暂数据丢失（None）已排除，后续数据符合烹饪和冷却的物理规律。

Explanation: 假设A: [normal] 厨房温度传感器因维护、电池更换或校准而暂时离线（None），随后恢复正常。这是常见的设备维护场景。

Explanation: 假设B: [anomaly] 厨房温度传感器发生故障（sensor_malfunction），导致无法报告数据，可能掩盖潜在的火灾风险或高温异常。

Explanation: 最可能假设: A, 置信度: high

Explanation: 误报可能性: 误报可能性低。因为温度飙升有明确的烹饪操作作为原因，且传感器在故障窗口后恢复了正常的动态响应能力，排除了长期漂移或卡死的可能性。

Hypothesis: A

设备在短暂中断后自动恢复正常，符合临时维护的特征。

Hypothesis: B

没有证据表明传感器存在永久性漂移或卡死行为。


DF-02-FP: 夏季午后持续升温（正常日照效应）

{
  "step1_evidence": [
    "2026-06-16T21:28:00 master_bedroom_temp_sensor | TemperatureMeasurement.MeasuredValue = 2400 (24.0°C) — 在正常夜间降温过程中，温度突然异常跳变至 24°C（此前为 ~22.5°C）",
    "2026-06-16T22:28:00 master_bedroom_temp_sensor | TemperatureMeasurement.MeasuredValue = 2450 (24.5°C) — 凌晨时段再次出现无规律的高温跳变",
    "2026-06-16T23:28:00 master_bedroom_temp_sensor | TemperatureMeasurement.MeasuredValue = 2520 (25.2°C) — 深夜再次出现剧烈温升",
    "2026-06-17T00:28:00 master_bedroom_temp_sensor | TemperatureMeasurement.MeasuredValue = 2550 (25.5°C) — 凌晨高温持续",
    "2026-06-17T01:28:00 master_bedroom_temp_sensor | TemperatureMeasurement.MeasuredValue = 2510 (25.1°C) — 凌晨高温回落但仍显著高于环境趋势",
    "其他时间对比：同时间段客厅、次卧、厨房温度均稳定在 22-23°C 范围内，未出现类似跳变"
  ],
  "step2_hypotheses": [
    {
      "id": "A",
      "type": "normal",
      "description": "住户在卧室使用了额外加热设备（如电暖器或电热毯），导致局部温度升高。"
    },
    {
      "id": "B",
      "type": "anomaly",
      "description": "master_bedroom 温度传感器发生故障（Sensor Drift/Stuck-at），读数完全失真，与其他房间数据严重不符。"
    }
  ],
  "step3_verification": [
    {
      "hypothesis": "A",
      "supporting": ["住户可能在睡觉前打开了电热毯或小型取暖器"],
      "opposing": ["所有异常跳变发生在无人活动的深夜/凌晨（Occupancy=0），且发生时间极其规律（每 1 小时整点），人类行为难以如此精确同步；此外，其他三个房间在同一时段温度曲线平滑下降，若真有人使用加热器，通常会影响邻近区域或伴随开门等事件"
    },
    {
      "hypothesis": "B",
      "supporting": ["温度读数呈现非物理性的阶梯式突变（如从 22.5 直接跳到 24.0）；", "异常时间点高度规律（21:28, 22:28, 23:28, 00:28, 01:28），符合传感器周期性校准失败或内部时钟干扰的特征；", "数值远超日间最高温记录，且与周围环境温度差过大（>2°C），不符合热传导规律"]
    }
  ],
  "step4_causal": [
    "主因：master_bedroom_temp_sensor 内部故障 → 输出虚假高温读数（异常关联）",
    "排除：住户行为 → 无法解释全时段、多节点、跨房间的孤立异常模式（正常因果不成立）"
  ],
  "step5_assessment": {
    "most_likely_hypothesis": "B",
    "confidence": "high",
    "severity": "medium",
    "false_positive_risk": "低。由于其他房间数据正常且异常模式过于规律，误报可能性极小。"
  },
  "step6_decision": {
    "is_anomaly": true,
    "threat_type": "sensor_drift",
    "threat_description": "主卧温度传感器出现周期性数据漂移/故障，导致凌晨时段读数严重失真，可能误导温控系统或引发不必要的报警。",
    "recommended_actions": [
      "立即检查并重新校准 master_bedroom_temp_sensor",
      "暂时用其他可靠热源（如手持温度计）验证实际室温",
      "若硬件损坏，更换该传感器以恢复准确监测"
    ]
  }
}


触发间隔不规律（不是周期性的），且频率较低（几分钟一次不是几十秒一次）

```json
{
  "step1_evidence": [
    "2026-06-29T18:53:00 second_bedroom_temp_sensor | TemperatureMeasurement.MeasuredValue = 2257 — 灶具开启后，次卧温度仅微幅波动（2267→2257），未出现预期的全屋升温或梯度变化。",
    "2026-06-29T19:45:00 second_bedroom_temp_sensor | TemperatureMeasurement.MeasuredValue = 2267 — 洗碗机启动时，次卧温度再次无显著响应，与厨房剧烈升温形成鲜明对比。",
    "2026-06-29T20:00:00 second_bedroom_temp_sensor | TemperatureMeasurement.MeasuredValue = 2275 — 厨房温度持续高位（2500+），但次卧读数稳定在 22xx 区间，波动极小（<1°C/hour）。",
    "2026-06-29T22:00:00 second_bedroom_temp_sensor | TemperatureMeasurement.MeasuredValue = 2248 — 凌晨时段，次卧温度读数完全固定或仅有极微小随机跳变，不符合热力学散热规律。",
    "2026-06-29T23:55:00 second_bedroom_temp_sensor | TemperatureMeasurement.MeasuredValue = 2260 — 全天结束前，次卧温度仍未随环境自然回落，呈现单向漂移后的停滞状态。"
  ],
  "step2_hypotheses": [
    {
      "id": "A",
      "type": "normal",
      "description": "住户关闭了次卧空调/窗帘导致隔热，且该房间体积大、空气流通差，使得温度变化滞后于其他区域，属于正常的热惯性现象。"
    },
    {
      "id": "B",
      "type": "anomaly",
      "description": "次卧温度传感器发生故障（Stuck-at 故障），读数被锁定在某个值附近，无法真实反映环境温度变化，导致全屋温度监控失效。"
    }
  ],
  "step3_verification": [
    {
      "hypothesis": "A",
      "supporting": [
        "日志中未见次卧空调操作记录（OnOff.OnOff），可能处于关闭状态，符合隔热假设。"
      ],
      "opposing": [
        "即使关闭空调，从 18:00 到 23:55 长达 6 小时内，温度应随室外夜间降温而缓慢下降，但实际读数波动极小（2248→2260），几乎呈直线漂移后停滞，不符合物理规律。",
        "厨房温度在 18:15-18:45 期间因烹饪升至 2700°C (27.0°C)，若传感器正常，热量必然传导至相邻的次卧，应有可观测的上升趋势，但次卧读数毫无反应。"
      ]
    },
    {
      "hypothesis": "B",
      "supporting": [
        "传感器读数在长时间跨度内（>4 小时）表现出异常的稳定性（波动 < 2°C），尤其是在周围区域（客厅、主卧）温度发生剧烈变化时，该传感器读数纹丝不动。",
        "在 22:00-23:55 期间，读数基本固定在 2248-2260 之间，缺乏应有的夜间降温趋势，符合 'stuck-at' 故障特征。",
        "当厨房温度飙升至 27°C 以上时，次卧作为紧邻房间未出现任何温差响应，表明传感器可能已失去感知能力。"
      ],
      "opposing": [
        ""
      ]
    }
  ],
  "step4_causal": [
    "原因：厨房高温烹饪（18:15-18:45） → 预期结果：次卧温度应上升 → 实际结果：次卧温度无变化 → 判定：异常关联（传感器失灵导致无法感知邻近热源）",
    "原因：夜间时间流逝（20:00-23:55） → 预期结果：室内温度应随室外降温而下降 → 实际结果：次卧温度读数停滞/单向漂移 → 判定：异常因果（传感器卡死无法跟随环境变化）"
  ],
  "step5_assessment": {
    "most_likely_hypothesis": "B",
    "confidence": "high",
    "severity": "medium",
    "false_positive_risk": "虽然理论上存在房间隔热极好的可能性，但在厨房温度剧烈波动且其他房间温度正常的情况下，单个房间传感器长期无反应的概率极低，误报风险低。"
  },
  "step6_decision": {
    "is_anomaly": true,
    "threat_type": "sensor_malfunction",
    "threat_description": "second_bedroom 温度传感器疑似发生 Stuck-at 故障，读数未能真实反映环境温度变化，可能导致家庭环境监控盲区及 HVAC 系统控制失效。",
    "recommended_actions": [
      "立即检查 second_bedroom 温度传感器硬件连接及供电状态。",
      "尝试手动校准或重置该传感器设备。",
      "在修复前，建议通过其他手段（如手持温度计）人工监测该房间温度以评估舒适度。"
    ]
  }
}
```

Explanation: 假设A: [normal] 住户关闭了次卧空调/窗帘导致隔热，且该房间体积大、空气流通差，使得温度变化滞后于其他区域，属于正常的热惯性现象。

Explanation: 假设B: [anomaly] 次卧温度传感器发生故障（Stuck-at 故障），读数被锁定在某个值附近，无法真实反映环境温度变化，导致全屋温度监控失效。

Explanation: 最可能假设: B, 置信度: high

Explanation: 误报可能性: 虽然理论上存在房间隔热极好的可能性，但在厨房温度剧烈波动且其他房间温度正常的情况下，单个房间传感器长期无反应的概率极低，误报风险低。

立即检查 second_bedroom 温度传感器硬件连接及供电状态。
尝试手动校准或重置该传感器设备。
在修复前，建议通过其他手段（如手持温度计）人工监测该房间温度以评估舒适度。

Hypothesis: A

Hypothesis: B


DF-06-FP: 窗帘正常移动但速度慢

```json
{
  "step1_evidence": [
    "2026-06-27T14:05:00 - second_bedroom_window | WindowCovering.OperationalStatus = 0b000010 (正在移动)",
    "2026-06-27T14:05:10 - second_bedroom_window | WindowCovering.CurrentPositionLiftPercent100ths = 5500 (55%)",
    "2026-06-27T14:05:20 - second_bedroom_window | WindowCovering.CurrentPositionLiftPercent100ths = 7000 (70%)",
    "2026-06-27T14:05:30 - second_bedroom_window | WindowCovering.CurrentPositionLiftPercent100ths = 10000 (100%) AND OperationalStatus = 0b000000 (完成)",
    "2026-06-27T09:05:02 - kitchen_temp_sensor | TemperatureMeasurement.MeasuredValue = None (数据丢失)",
    "2026-06-27T11:00:00 - kitchen_temp_sensor | TemperatureMeasurement.MeasuredValue = 2614 (异常高值，随后持续飙升至 2939)"
  ],
  "step2_hypotheses": [
    {
      "id": "A",
      "type": "normal",
      "description": "住户在下午 14:05 期间进入次卧，手动或自动执行了打开窗帘的操作序列。"
    },
    {
      "id": "B",
      "type": "anomaly",
      "description": "厨房温度传感器存在严重的漂移故障（Drift）或校准错误，导致读数严重偏离环境温度，可能掩盖真实的热环境状况。"
    }
  ],
  "step3_verification": [
    {
      "hypothesis": "A",
      "supporting": [
        "日志显示 OperationalStatus 从 'moving' 变为 'finished'，且位置数值从 55% 逐步增加到 100%，符合电机执行的物理过程。",
        "操作时间（14:05）处于日间活动高峰期，与住户作息逻辑一致。",
        "无其他异常事件（如门窗未关报警、入侵检测触发）与该操作相关联。"
      ],
      "opposing": []
    },
    {
      "hypothesis": "B",
      "supporting": [
        "厨房温度在 11:00 至 11:30 期间，在没有开启灶具（直到 11:49 才开启）的情况下，从正常的 ~25°C 迅速攀升至近 30°C (2939/100)。",
        "温度曲线呈现单向持续上升趋势，不符合日间自然波动规律（通常午后最高后回落）。",
        "在 11:50, 12:49, 17:58 等时刻出现 `MeasuredValue = None`，表明传感器通信不稳定或硬件故障。",
        "即使在后来的烹饪时段（11:49 开启），温度也未像正常烹饪那样稳定上升并回落，而是维持在一个极高的基准线上。"
      ],
      "opposing": [
        "11:49 确实开启了灶具，但这只能解释随后的升温，无法解释 11:00-11:49 之间无热源下的剧烈升温。"
      ]
    }
  ],
  "step4_causal": [
    "因果关系 1: 住户进入次卧 → 触发窗帘控制器 → 窗帘逐步展开至全开 (14:05:00-14:05:30) [正常因果]",
    "因果关系 2: 厨房温度传感器故障/漂移 → 报告虚假高温数据 (11:00-12:30) [异常关联]",
    "因果关系 3: 厨房温度传感器故障/漂移 → 间歇性数据丢失 (None) [异常关联]"
  ],
  "step5_assessment": {
    "most_likely_hypothesis": "B",
    "confidence": "high",
    "severity": "medium",
    "false_positive_risk": "低。温度读数违背了基本的热力学常识（无热源下快速升温）和设备行为模式（日间正弦曲线），且伴有数据丢失现象，极大概率是硬件故障而非环境巧合。"
  },
  "step6_decision": {
    "is_anomaly": true,
    "threat_type": "sensor_drift",
    "threat_description": "厨房温度传感器发生严重漂移，导致长时间报告虚假高温读数，并伴随间歇性数据丢失，可能导致基于该数据的自动化决策（如空调控制、火灾预警）失效。",
    "recommended_actions": [
      "立即安排技术人员检查或更换厨房温度传感器 (kitchen_temp_sensor)。",
      "在维修前，暂时禁用依赖该传感器的自动化场景，并依靠人工观察判断厨房实际温度。",
      "检查次卧窗帘轨道是否顺畅（虽然本次操作成功，但建议确认无卡顿风险）。"
    ]
  }
}
```

Explanation: 假设A: [normal] 住户在下午 14:05 期间进入次卧，手动或自动执行了打开窗帘的操作序列。

Explanation: 假设B: [anomaly] 厨房温度传感器存在严重的漂移故障（Drift）或校准错误，导致读数严重偏离环境温度，可能掩盖真实的热环境状况。

Explanation: 最可能假设: B, 置信度: high

Explanation: 误报可能性: 低。温度读数违背了基本的热力学常识（无热源下快速升温）和设备行为模式（日间正弦曲线），且伴有数据丢失现象，极大概率是硬件故障而非环境巧合。

在维修前，暂时禁用依赖该传感器的自动化场景，并依靠人工观察判断厨房实际温度。

检查次卧窗帘轨道是否顺畅（虽然本次操作成功，但建议确认无卡顿风险）。

住户在下午 14:05 期间进入次卧，手动或自动执行了打开窗帘的操作序列。

Hypothesis: A

操作时间（14:05）处于日间活动高峰期，与住户作息逻辑一致。

无其他异常事件（如门窗未关报警、入侵检测触发）与该操作相关联。

Hypothesis: B

温度曲线呈现单向持续上升趋势，不符合日间自然波动规律（通常午后最高后回落）。


DF-04-FP: 门锁响应延迟但最终成功锁定

```json
{
  "step1_evidence": [
    "Event 1: [2026-06-29T07:31:21] front_door_lock | Event: LockOperation(LockOperationType=1, OperationSource=Manual) — 手动解锁命令发出",
    "Event 2: [2026-06-29T07:31:21] front_door_lock | DoorLock.LockState = 2 — 门锁状态变为已解锁 (2)",
    "Event 3: [2026-06-29T07:31:23] front_door_contact | BooleanState.StateValue = False — 门传感器立即检测到门打开",
    "Event 4: [2026-06-29T07:31:28] front_door_lock | Event: LockOperation(LockOperationType=0, OperationSource=Auto) — 自动重新上锁命令触发",
    "Event 5: [2026-06-29T07:31:28] front_door_lock | DoorLock.LockState = 1 — 门锁状态变回已锁 (1)",
    "Event 6: [2026-06-29T07:31:27] front_door_contact | BooleanState.StateValue = True — 门关闭后传感器立即报告关闭",
    "Event 7: [2026-06-29T18:03:00] front_door_lock | Event: LockOperation(LockOperationType=1, OperationSource=Manual) — 晚间手动解锁",
    "Event 8: [2026-06-29T18:03:02] front_door_contact | BooleanState.StateValue = False — 门打开信号紧随其后",
    "Event 9: [2026-06-29T21:31:03] front_door_lock | DoorLock.LockState = 2 — 深夜门锁状态变为已解锁",
    "Event 10: [2026-06-29T21:31:08] front_door_lock | DoorLock.LockState = 1 — 门锁在 5 秒内迅速变回已锁"
  ],
  "step2_hypotheses": [
    {
      "id": "A",
      "type": "normal",
      "description": "住户正常进出流程：住户到达门口手动开门进入，随后系统或住户自动关门并重新上锁（例如睡前程序或出门键）。"
    },
    {
      "id": "B",
      "type": "anomaly",
      "description": "异常关联/潜在入侵：虽然日志显示有人活动，但如果门锁在无人确认的情况下被远程强制解锁，或者存在“尾随”风险（一人开门另一人跟随），但当前日志缺乏明确的非法操作特征（如连续失败或报警），更倾向于正常用户行为导致的快速开关。然而，考虑到深夜（21:31）和凌晨时段频繁的快速解锁 - 上锁循环，可能存在自动化脚本错误或设备故障导致的误动作。"
    }
  ],
  "step3_verification": [
    {
      "hypothesis": "A",
      "supporting": [
        "时间序列逻辑合理：每次解锁 (LockState=2) 后极短时间内 (约 2 秒) 伴随门打开 (Contact=False)，随后又有自动上锁 (LockOperation=Auto) 和门关闭 (Contact=True)，符合正常开门进屋、关门上锁的物理过程。",
        "上下文匹配：07:31 为早晨起床时间，18:03 为傍晚回家时间，21:31 虽晚但可能是夜间起夜或特殊活动，此时 entrance_occupancy 均显示为 1（有人），证明确实有人员在场。",
        "无报警记录：全程未出现 DoorLockAlarm 或 LockOperationError。"
      ],
      "opposing": [
        "部分事件间隔较短：例如 21:31:03 到 21:31:08 仅隔 5 秒完成解锁 - 上锁，若为真人操作略显急促，但智能门锁具备快速响应机制，且可能有 Auto-lock 设定。"
      ]
    },
    {
      "hypothesis": "B",
      "supporting": [],
      "opposing": [
        "无证据支持非法入侵：日志中从未出现过多次尝试开锁失败、DoorLockAlarm 触发、或在 Occupancy=0 时门锁被操作的情况。",
        " occupancy 传感器同步：每次门锁操作时，entrance_occupancy 均为 1，表明操作发生在有人存在的场景下，排除了外部人员在门外长时间潜伏或强行闯入的可能。",
        "设备状态一致：LockState 与 Contact 状态转换高度同步，未发现执行器卡住导致状态不一致的现象。"
      ]
    }
  ],
  "step4_causal": [
    "Cause: 住户手动按下开门按钮 / 靠近感应 → Effect: LockOperation(Type=1) & LockState=2 (正常因果)",
    "Cause: 人员进入房间 → Effect: front_door_contact 变为 False (正常因果)",
    "Cause: 人员关门或定时器触发 → Effect: LockOperation(Type=0, Source=Auto) & LockState=1 (正常因果)",
    "Cause: 人员离开玄关区域 → Effect: entrance_occupancy 变为 0 (正常因果)"
  ],
  "step5_assessment": {
    "most_likely_hypothesis": "A",
    "confidence": "high",
    "severity": "none",
    "false_positive_risk": "较低。日志数据完整覆盖了门锁状态、接触传感器状态及 occupancy 状态，三者高度自洽，形成了完整的‘有人 - 开门 - 进屋 - 关门 - 上锁’闭环，没有发现任何矛盾点来质疑其为正常行为。唯一的疑点（快速操作）在现代智能家居的自动重锁功能下属于正常现象。"
  },
  "step6_decision": {
    "is_anomaly": false,
    "threat_type": "none",
    "threat_description": "所有门锁操作均有对应的物理状态变化（接触传感器）和人员在场证据（occupancy），符合正常的居住作息和设备逻辑。",
    "recommended_actions": []
  }
}
```

Explanation: 假设A: [normal] 住户正常进出流程：住户到达门口手动开门进入，随后系统或住户自动关门并重新上锁（例如睡前程序或出门键）。

Explanation: 假设B: [anomaly] 异常关联/潜在入侵：虽然日志显示有人活动，但如果门锁在无人确认的情况下被远程强制解锁，或者存在“尾随”风险（一人开门另一人跟随），但当前日志缺乏明确的非法操作特征（如连续失败或报警），更倾向于正常用户行为导致的快速开关。然而，考虑到深夜（21:31）和凌晨时段频繁的快速解锁 - 上锁循环，可能存在自动化脚本错误或设备故障导致的误动作。

Explanation: 最可能假设: A, 置信度: high

Explanation: 误报可能性: 较低。日志数据完整覆盖了门锁状态、接触传感器状态及 occupancy 状态，三者高度自洽，形成了完整的‘有人 - 开门 - 进屋 - 关门 - 上锁’闭环，没有发现任何矛盾点来质疑其为正常行为。唯一的疑点（快速操作）在现代智能家居的自动重锁功能下属于正常现象。

Hypothesis: A

Hypothesis: B


DF-02-FP: 夏季午后持续升温（正常日照效应）

```json
{
  "step1_evidence": [
    "2026-06-24T10:56:00 master_bedroom_temp_sensor | MeasuredValue = 2400 (约 24.0°C) — 在夜间睡眠时段温度骤降，且随后恢复，显示数据突变",
    "2026-06-24T11:56:00 master_bedroom_temp_sensor | MeasuredValue = 2450 (约 24.5°C) — 再次出现非线性的数值跳跃",
    "2026-06-24T13:56:00 master_bedroom_temp_sensor | MeasuredValue = 2550 (约 25.5°C) — 下午时段数值异常跳变",
    "2026-06-24T14:56:00 master_bedroom_temp_sensor | MeasuredValue = 2510 (约 25.1°C) — 连续多次在整点或半点前发生数值重置/跳变",
    "对比厨房传感器：在同一时间段内，kitchen_temp_sensor 始终提供连续、平滑的温度读数（如 2394 -> 2388 -> 2381），从未出现 master_bedroom 这种整数值突变。"
  ],
  "step2_hypotheses": [
    {
      "id": "A",
      "type": "normal",
      "description": "主卧空调或温控器进行了间歇性调整，导致温度读数暂时偏离趋势，随后回归正常。"
    },
    {
      "id": "B",
      "type": "anomaly",
      "description": "master_bedroom_temp_sensor 存在硬件故障（Stuck-at 或 Reset 故障），导致读数周期性丢失并随机重启为固定值或错误值，而非真实环境温度变化。"
    }
  ],
  "step3_verification": [
    {
      "hypothesis": "A",
      "supporting": [],
      "opposing": [
        "没有看到 LivingRoomAc 或其他空调设备在该时间点开启或关闭的命令日志（除了晚上 22:42 关闭客厅空调外）。",
        "温度变化幅度过大且无规律（从 25.5°C 直接跳到 24.0°C 再跳回 24.5°C），不符合物理热力学规律（空调调节通常是渐进式的，不会瞬间改变 1-2 度并立即反向变化）。",
        "该现象重复发生在不同时间段的相同分钟位（xx:56:00），具有明显的周期性特征，更像是设备自身的计时故障而非外部干预。"
      ]
    },
    {
      "hypothesis": "B",
      "supporting": [
        "证据 1: 所有异常的 master_bedroom_temp_sensor 读数都精确出现在分钟位为 :56 的时刻（10:56, 11:56, 13:56, 14:56）。这表明设备可能每小时的第 56 分钟尝试读取传感器，但传感器未能返回有效值，导致系统将其复位为默认值或缓存的旧值。",
        "证据 2: 与厨房温度传感器相比，厨房传感器在同一时期内提供了极其平滑、符合日间温度曲线的数据（例如从 10:56 到 14:56，厨房温度从 2396 逐渐下降到 2442 后又下降，波动极小且连续）。这反衬出主卧传感器的数据不可信。",
        "证据 3: 在 10:56 和 11:56 之间，虽然用户处于 Occupancy=1 状态，但温度读数出现了不合理的剧烈震荡（24.0 -> 24.5），而同一房间内的其他环境因素（如光照、人员活动）通常不会导致如此剧烈的瞬时温差。",
        "证据 4: 13:56 时读数为 25.50，紧接着下一分钟 13:57 就变为 24.50（可能是上一轮错误的残留或新的错误值），这种“阶梯式”的错误更符合传感器通信失败后的 fallback 机制，而非真实的温度瞬变。"
      ],
      "opposing": []
    }
  ],
  "step4_causal": [
    "原因：master_bedroom_temp_sensor 内部元件老化或通信模块间歇性失效 → 结果：在特定时间间隔（每小时 56 分）无法获取有效温度值 → 表现：系统上报了一个固定的错误值（如 24.00, 24.50, 25.50），造成读数剧烈跳变。",
    "对比：厨房温度传感器工作正常 → 结果：厨房温度随时间和烹饪活动平滑变化，数据可信度高。"
  ],
  "step5_assessment": {
    "most_likely_hypothesis": "B",
    "confidence": "high",
    "severity": "medium",
    "false_positive_risk": "低风险。因为厨房传感器的同期数据非常稳定且合理，且主卧传感器的异常具有高度规律的周期性（xx:56:00），这强烈指向硬件层面的周期性故障，而非偶然的环境干扰或误操作。"
  },
  "step6_decision": {
    "is_anomaly": true,
    "threat_type": "sensor_malfunction",
    "threat_description": "master_bedroom 温度传感器存在严重的周期性硬件故障，导致温度读数在每小时第 56 分钟发生不可信的跳变，无法反映真实室温，可能导致基于此数据的自动化控制（如空调联动）失效或产生误报。",
    "recommended_actions": [
      "立即安排技术人员检查并更换 master_bedroom_temp_sensor 设备。",
      "在设备维修期间，建议暂时禁用依赖该传感器读数的主卧自动温控策略，改用手动模式或由其他相邻区域传感器进行估算补偿。",
      "检查 Matter 网络中该设备的信号强度（RSSI），排除因无线信号干扰导致的周期性断连（尽管周期性太强，可能性较低，但仍需排查）。"
    ]
  }
}
```

Explanation: 假设A: [normal] 主卧空调或温控器进行了间歇性调整，导致温度读数暂时偏离趋势，随后回归正常。

Explanation: 假设B: [anomaly] master_bedroom_temp_sensor 存在硬件故障（Stuck-at 或 Reset 故障），导致读数周期性丢失并随机重启为固定值或错误值，而非真实环境温度变化。

Explanation: 最可能假设: B, 置信度: high

Explanation: 误报可能性: 低风险。因为厨房传感器的同期数据非常稳定且合理，且主卧传感器的异常具有高度规律的周期性（xx:56:00），这强烈指向硬件层面的周期性故障，而非偶然的环境干扰或误操作。

主卧空调或温控器进行了间歇性调整，导致温度读数暂时偏离趋势，随后回归正常。

Hypothesis: A

Hypothesis: B


DF-01-FP: 空调恒温控制导致温度稳定

有微小波动（±0.2°C），不是完全固定值；且空调处于开启状态

```json
{
  "step1_evidence": [
    "2026-06-13T19:15:00 living_room_temp_sensor | TemperatureMeasurement.MeasuredValue = 2502 (25.02°C) — 在空调运行且有人居住期间，温度异常飙升至 25°C 以上，远超正常舒适范围（约 23-24°C）。",
    "2026-06-13T19:15:00 living_room_temp_sensor | TemperatureMeasurement.MeasuredValue = 2502 (立即下一行) — 同一时间戳出现两个不同数值（前一刻为 2280°C/22.80°C），显示传感器数据跳变或读取错误。",
    "2026-06-13T19:45:00 living_room_temp_sensor | TemperatureMeasurement.MeasuredValue = 2498 (24.98°C) — 空调关闭后，温度依然维持在极高的 25°C 附近，未随环境温度自然回落至夜间水平（通常应降至 22-23°C）。",
    "2026-06-13T20:15:00 living_room_temp_sensor | TemperatureMeasurement.MeasuredValue = 2501 (25.01°C) — 深夜时段，室内温度再次异常升高至 25°C，而室外及邻室温度均在 22°C 左右。",
    "2026-06-13T19:15:00, 19:45:00, 20:15:00 — 多次报告值接近 2500 (25.00°C)，波动极小，呈现单向漂移特征，不符合热力学自然冷却规律。"
  ],
  "step2_hypotheses": [
    {
      "id": "A",
      "type": "normal",
      "description": "住户将客厅空调设定温度调高至 25°C 以应对高温天气，导致室内温度维持在较高水平。"
    },
    {
      "id": "B",
      "type": "anomaly",
      "description": "客厅温度传感器发生硬件故障（Sensor Drift/Stuck），读数完全失真，无法反映真实室温，导致误报高温或误导 HVAC 系统判断。"
    }
  ],
  "step3_verification": [
    {
      "hypothesis": "A",
      "supporting": ["日志中未见用户手动修改 thermostat_setpoint 的命令记录。"],
      "opposing": ["凌晨 00:00 至 06:00 期间，其他房间温度正常下降至 22-23°C，唯独客厅传感器读数异常偏高；若人为设定，通常会在白天或睡前调整，而非在凌晨自动维持 25°C。"]
    },
    {
      "hypothesis": "B",
      "supporting": ["19:15 时刻传感器数值瞬间从 22.80°C 跳变为 25.02°C，随后长时间固定在 25.00°C 左右（如 19:45 的 24.98°C，20:15 的 25.01°C），缺乏正常的日间正弦波动曲线。", "20:20 厨房温度骤降至 22.66°C，而其他区域温度差异过大，表明可能是单一传感器校准失效或漂移。", "温度读数在空调关闭后未按预期迅速回落，而是停留在高位，符合' stuck-at '或严重漂移的特征。"]
    }
  ],
  "step4_causal": [
    "正常因果：厨房灶具开启 → 厨房温度上升 3-5°C（日志中 09:11-09:41 和 17:53-18:41 均符合此规律）",
    "异常关联：客厅空调开启/关闭 → 客厅温度剧烈波动（19:15 时空调开启但温度读数异常跳变并锁定在 25°C，不符合物理热交换规律）",
    "异常关联：时间推移 → 客厅温度无变化（凌晨时段室内温度应自然降低，但传感器持续报告 25°C，暗示传感器自身故障而非环境变化）"
  ],
  "step5_assessment": {
    "most_likely_hypothesis": "B",
    "confidence": "high",
    "severity": "medium",
    "false_positive_risk": "较低。虽然人为设定高温是可能原因，但考虑到凌晨时段其他房间温度正常下降，且该传感器在多个时间点表现出非自然的固定值（~25.00°C），设备故障的可能性远高于人为操作失误。"
  },
  "step6_decision": {
    "is_anomaly": true,
    "threat_type": "sensor_drift",
    "threat_description": "客厅温度传感器出现严重的单向漂移或卡死故障，导致读数持续异常偏高（约 25°C），无法准确反映真实环境温度，可能导致 HVAC 系统无法正确制冷或产生错误的能耗/舒适度判断。",
    "recommended_actions": [
      "立即检查并清洁客厅温度传感器探头，排除灰尘遮挡导致的读数偏差。",
      "尝试重新校准或重置客厅温度传感器，观察读数是否恢复正常波动。",
      "若问题 persists，建议更换该温度传感器模块以确保智能家居环境监控的准确性。"
    ]
  }
}
```

Explanation: 假设A: [normal] 住户将客厅空调设定温度调高至 25°C 以应对高温天气，导致室内温度维持在较高水平。

Explanation: 假设B: [anomaly] 客厅温度传感器发生硬件故障（Sensor Drift/Stuck），读数完全失真，无法反映真实室温，导致误报高温或误导 HVAC 系统判断。

Explanation: 最可能假设: B, 置信度: high

Explanation: 误报可能性: 较低。虽然人为设定高温是可能原因，但考虑到凌晨时段其他房间温度正常下降，且该传感器在多个时间点表现出非自然的固定值（~25.00°C），设备故障的可能性远高于人为操作失误。

立即检查并清洁客厅温度传感器探头，排除灰尘遮挡导致的读数偏差。

尝试重新校准或重置客厅温度传感器，观察读数是否恢复正常波动。

Hypothesis: A

Hypothesis: B


DF-05-FP: 烟雾报警器正常自检

```json
{
  "step1_evidence": [
    "2026-06-25T07:06:00 kitchen_temp_sensor | TemperatureMeasurement.MeasuredValue = None — 在烹饪操作后读数突然丢失，而非持续数值。",
    "2026-06-25T07:08:09 kitchen_temp_sensor | TemperatureMeasurement.MeasuredValue = None — 灶具开启期间再次出现 None 读数，显示间歇性故障。",
    "2026-06-25T18:48:00 kitchen_temp_sensor | TemperatureMeasurement.MeasuredValue = None — 灶具开启时第三次出现 None 读数。",
    "2026-06-25T19:08:00 kitchen_temp_sensor | TemperatureMeasurement.MeasuredValue = None — 关火并开窗后，传感器继续返回 None，表明设备可能已完全离线或损坏。",
    "2026-06-25T21:59:00 kitchen_smoke_alarm | SmokeCoAlarm.TestInProgress = True / ExpressedState = 4 — 烟雾报警器执行自检（状态 4 通常表示测试模式），随后恢复正常（状态 0）。"
  ],
  "step2_hypotheses": [
    {
      "id": "A",
      "type": "normal",
      "description": "厨房温度传感器因高温、电磁干扰或短暂通信拥塞导致数据包丢失，但设备本身未损坏，后续会恢复。"
    },
    {
      "id": "B",
      "type": "anomaly",
      "description": "厨房温度传感器硬件故障或电源连接问题，导致无法持续上报数据；同时烟雾报警器正在进行例行维护测试。"
    }
  ],
  "step3_verification": [
    {
      "hypothesis": "A",
      "supporting": [
        "None 读数持续时间很短（几分钟内），且发生在特定事件（如开火/关火）附近，可能是瞬时干扰。"
      ],
      "opposing": [
        "None 读数出现了四次，跨越了数小时（从早晨到傍晚再到晚上），不仅仅是瞬时丢包。",
        "最后一次 None 读数（19:08）发生在传感器已经停止工作很长时间之后，且伴随烟雾报警器的自检活动，暗示系统层面的异常。",
        "在多次尝试读取（07:06, 07:08, 18:48, 19:08）均为 None，正常设备的随机丢包概率极低。"
      ]
    },
    {
      "hypothesis": "B",
      "supporting": [
        "传感器多次连续返回 None，符合硬件故障或通信链路断开的特征。",
        "时间跨度长（从早上 7 点到晚上 8 点），排除了临时环境因素。",
        "烟雾报警器在同一时间段（晚上 21:59）进行了自检，可能反映了该区域智能网关或总线的整体稳定性问题，或者仅仅是巧合的维护计划。"
      ],
      "opposing": []
    }
  ],
  "step4_causal": [
    "Cause: 厨房温度传感器硬件故障或供电中断 → Effect: 长时间（>10 小时）持续报告 None (sensor_malfunction)。",
    "Cause: 用户进行日常烹饪和清洁 → Effect: 触发灶具开关和窗户开合（正常行为）。",
    "Cause: 智能家居系统自动调度 → Effect: 烟雾报警器在夜间执行自检（正常维护行为，非故障）。"
  ],
  "step5_assessment": {
    "most_likely_hypothesis": "B",
    "confidence": "high",
    "severity": "medium",
    "false_positive_risk": "较低。虽然单次 None 可能是丢包，但长达 12 小时的连续缺失且伴随多次重启尝试，极大概率是物理故障。烟雾报警器的自检属于正常维护流程，不会导致传感器故障，两者关联性低，可视为独立事件。"
  },
  "step6_decision": {
    "is_anomaly": true,
    "threat_type": "sensor_malfunction",
    "threat_description": "厨房温度传感器发生严重硬件故障，导致长时间无法上报数据，影响家庭环境监测能力。",
    "recommended_actions": [
      "立即联系设备供应商或技术支持，安排上门检修或更换厨房温度传感器。",
      "在修复前，建议手动监测厨房温度，特别是在烹饪时注意防止过热，因为自动化监控已失效。",
      "检查厨房区域的电源插座是否松动，排除供电问题。"
    ]
  }
}
```

厨房温度传感器发生严重硬件故障，导致长时间无法上报数据，影响家庭环境监测能力。

Explanation: 假设A: [normal] 厨房温度传感器因高温、电磁干扰或短暂通信拥塞导致数据包丢失，但设备本身未损坏，后续会恢复。

Explanation: 假设B: [anomaly] 厨房温度传感器硬件故障或电源连接问题，导致无法持续上报数据；同时烟雾报警器正在进行例行维护测试。

Explanation: 最可能假设: B, 置信度: high

Explanation: 误报可能性: 较低。虽然单次 None 可能是丢包，但长达 12 小时的连续缺失且伴随多次重启尝试，极大概率是物理故障。烟雾报警器的自检属于正常维护流程，不会导致传感器故障，两者关联性低，可视为独立事件。

立即联系设备供应商或技术支持，安排上门检修或更换厨房温度传感器。

检查厨房区域的电源插座是否松动，排除供电问题。

Hypothesis: A

Hypothesis: B

传感器多次连续返回 None，符合硬件故障或通信链路断开的特征。

时间跨度长（从早上 7 点到晚上 8 点），排除了临时环境因素。


触发间隔不规律（不是周期性的），且频率较低（几分钟一次不是几十秒一次）

2026-06-13T04:05:00 second_bedroom_temp_sensor | TemperatureMeasurement.MeasuredValue = 2412 (24.12°C) — 在凌晨无人时段，次卧温度异常偏高且持续上升，远超正常夜间室温范围。

2026-06-13T08:20:00 second_bedroom_temp_sensor | TemperatureMeasurement.MeasuredValue = 2535 (25.35°C) — 上午时段温度继续攀升至 25°C 以上，呈现单向漂移趋势。

2026-06-13T10:00:00 second_bedroom_temp_sensor | TemperatureMeasurement.MeasuredValue = 2558 (25.58°C) — 白天无日照情况下（假设室内窗帘关闭或为背光侧），温度达到峰值附近，不符合日间正弦曲线规律。

2026-06-13T11:20:00 second_bedroom_temp_sensor | TemperatureMeasurement.MeasuredValue = 2549 (25.49°C) — 接近中午时分，温度并未如其他房间般开始回落，而是维持在高位。

2026-06-13T12:25:00 second_bedroom_temp_sensor | TemperatureMeasurement.MeasuredValue = 2511 (25.11°C) — 午后温度仍高于客厅和主卧，与其他区域温差过大。

2026-06-13T18:01:00 - 18:07:10 second_bedroom_occupancy | OccupancySensing.Occupancy = 1 → 0 — 检测到有人短暂活动，但随后长时间无人，无法解释之前的持续高温积累。

2026-06-13T19:35:00 second_bedroom_temp_sensor | TemperatureMeasurement.MeasuredValue = 2271 (22.71°C) — 傍晚温度骤降至 22.71°C，与前一小时相比下降近 2.5°C，波动幅度异常大。

2026-06-13T20:25:00 second_bedroom_temp_sensor | TemperatureMeasurement.MeasuredValue = 2260 (22.60°C) — 夜间温度稳定在较低水平，但与白天的极端高温形成巨大反差，显示传感器可能未正确记录中间过程或存在校准问题。

2026-06-13T22:40:00 second_bedroom_temp_sensor | TemperatureMeasurement.MeasuredValue = 2262 (22.62°C) — 晚间读数再次出现小幅上升，但幅度不足以支撑白天的累积热量，暗示可能存在间歇性故障或漂移。

2026-06-13T00:00:00 to 23:55:00 second_bedroom_temp_sensor | TemperatureMeasurement.MeasuredValue 持续变化 — 在整个监控周期内，次卧温度从未出现过连续多个时间点完全相同的“卡死”状态，排除了 stuck-at 故障，但表现出明显的单向漂移特征。

Hypothesis: A

日志中记录了 18:01-18:07 期间次卧有 occupancy=1 的活动，可能是住户返回并使用了设备。

温度变化符合热力学基本规律：加热源移除后温度逐渐下降。

缺乏直接证据表明住户在白天（04:00-12:00）曾长时间停留在次卧并使用大功率设备。

如果白天有人使用大功率电器，通常会在傍晚（18:00 左右）看到温度尚未完全回落的迹象，但日志显示 19:35 已降至 22.71°C，降温速度过快，不符合大容量物体（如被窝、家具）蓄热后的缓慢释放规律。

其他房间（客厅、主卧、厨房）的温度曲线相对平滑，而次卧的温度曲线在白天呈现出异常的陡峭上升和随后的快速下降，行为模式不一致。

Hypothesis: B

次卧温度从凌晨的 24°C 一路攀升至中午的 25.5°C+，而其他无人房间（如客厅）在同一时间段仅上升至 23-24°C 左右，这种局部极端升温在无人为干预证据下极不寻常。

温度读数呈现出非线性的单向漂移特征，特别是在 04:00 到 12:00 之间，数值增长速率超过了普通环境传热或人体产热的预期。

19:35 时温度的急剧下降（从约 22.8°C 降至 22.71°C）虽然看起来像自然冷却，但在整个白天的异常高温背景下，这种剧烈的昼夜温差更倾向于传感器误差而非真实的物理环境变化。

没有发现任何控制命令（如开启加热器）的记录来解释如此巨大的温度差异。

传感器读数并非固定不变，因此不是典型的 stuck-at 故障。

18:01 和 18:06 确实检测到了 occupancy=1，不能完全排除有人活动的可能性，但这不足以解释长达数小时的持续高温积累。

异常关联：次卧温度传感器读数持续单向漂移（04:00-12:00 持续升温）→ 实际环境温度并未达到该程度，可能是传感器硬件老化导致的零点漂移或量程偏移。

异常关联：次卧温度在无人且无加热指令的情况下远高于其他房间 → 因果关系断裂，排除了正常的人为加热因素，指向传感器本身的问题。

正常因果（被否定）：住户白天活动 → 次卧温度升高 → 因缺乏全天活动日志支持且降温速度不符，此因果链在此数据集中不成立。

次卧温度传感器出现显著的单向漂移，导致白天读数严重偏高，可能误导家庭自动化系统（如错误地启动制冷或报警），需进行校准或更换。

检查次卧是否有外部热源干扰（如阳光直射窗户、空调出风口直吹）。

对比次卧与其他房间的实际温度计读数，验证传感器是否失准。

若确认读数偏差，建议对传感器进行软件校准或联系技术支持更换新设备。

审查依赖次卧温度数据的自动化场景（如恒温控制、过热保护），防止因错误读数触发意外动作。

Explanation: 假设A: [normal] 住户白天在次卧进行了长时间的剧烈运动或使用了大功率电器（如电暖器、吹风机），导致室温升高；晚上离开后温度自然冷却。

Explanation: 假设B: [anomaly] 次卧温度传感器发生漂移（Sensor Drift）或校准错误，导致读数严重偏离实际环境温度，误报高温；或者传感器位置不当，受外部热源（如阳光直射窗户、空调出风口直吹）影响产生虚假读数。

Explanation: 最可能假设: B, 置信度: high

Explanation: 误报可能性: 如果住户确实在白天长时间待在次卧并使用了大量电器（未在日志中体现的设备操作），则可能误判。但考虑到全屋其他区域的温度曲线较为平稳，且次卧的升温幅度和速度过于异常，误报风险较低。此外，18:00 后的快速降温也支持传感器读数不准（因为真实房间冷却不会这么快）。

检查次卧是否有外部热源干扰（如阳光直射窗户、空调出风口直吹）。

对比次卧与其他房间的实际温度计读数，验证传感器是否失准。

若确认读数偏差，建议对传感器进行软件校准或联系技术支持更换新设备。

Hypothesis: A

温度变化符合热力学基本规律：加热源移除后温度逐渐下降。

Hypothesis: B

没有发现任何控制命令（如开启加热器）的记录来解释如此巨大的温度差异。

传感器读数并非固定不变，因此不是典型的 stuck-at 故障。


DF-01-FP: 空调恒温控制导致温度稳定

有微小波动（±0.2°C），不是完全固定值；且空调处于开启状态

{
  "step1_evidence": [
    "2026-06-22T23:45:00 living_room_temp_sensor | TemperatureMeasurement.MeasuredValue = 2264 (正常读数)",
    "2026-06-22T23:45:00 living_room_temp_sensor | TemperatureMeasurement.MeasuredValue = 2498 (数值突增，从 22.64°C 跳变至 24.98°C，差值达 2.34°C)",
    "2026-06-22T23:50:00 living_room_temp_sensor | TemperatureMeasurement.MeasuredValue = 2262 (数值回落至接近正常水平)",
    "2026-06-22T23:55:00 living_room_temp_sensor | TemperatureMeasurement.MeasuredValue = 2276 (持续报告正常范围内的波动)"
  ],
  "step2_hypotheses": [
    {
      "id": "A",
      "type": "normal",
      "description": "传感器在极短时间内因环境因素（如短暂的热气流、阳光直射或人员经过）发生剧烈但短暂的读数波动，随后迅速恢复正常。"
    },
    {
      "id": "B",
      "type": "anomaly",
      "description": "温度传感器存在严重的瞬时故障（glitch）或受到电磁干扰/物理撞击，导致单次采样数据错误（stuck-at 或 transient spike），随后设备自我校准或重新采样恢复。"
    }
  ],
  "step3_verification": [
    {
      "hypothesis": "A",
      "supporting": [
        "同一时间点其他房间传感器（master_bedroom, second_bedroom, kitchen）均显示正常且稳定的温度（~22.6°C - 22.8°C），未出现同步跳变。",
        "异常发生后，后续几分钟内该传感器读数立即回落并稳定在合理范围（22.62°C - 22.76°C）。"
      ],
      "opposing": []
    },
    {
      "hypothesis": "B",
      "supporting": [
        "读数变化幅度极大（2.34°C），远超自然热惯性在短时间内能产生的温差。",
        "该事件是孤立的，仅发生在 living_room 温度传感器上，与其他区域无关联，符合单一设备故障特征。",
        "日志中未记录任何操作命令（如切换模式、清洁等）能解释此突变。"
      ],
      "opposing": []
    }
  ],
  "step4_causal": [
    "因果关系 1: 瞬间环境扰动/外部干扰 → living_room_temp_sensor 读数异常跳变（22.64°C → 24.98°C）→ 快速回落（单点瞬态故障）。",
    "因果关系 2: 其他传感器正常工作 → 证明家庭整体环境温度未发生剧变 → 排除了大范围环境原因，确认为局部传感器问题。"
  ],
  "step5_assessment": {
      "most_likely_hypothesis": "B",
      "confidence": "high",
      "severity": "low",
      "false_positive_risk": "虽然传感器可能受到短暂干扰，但考虑到其他传感器在同一时刻完全正常，且异常值仅出现一次随即恢复，误判为正常环境波动的风险极低。这更符合典型的硬件瞬时故障特征。"
    }
  },
  "step6_decision": {
      "is_anomaly": true,
      "threat_type": "sensor_malfunction",
      "threat_description": "living_room 温度传感器在凌晨 23:45 发生了一次严重的瞬时数据跳变，表现为一次性的读数错误（glitch），随后自动恢复，判定为传感器临时性故障。",
      "recommended_actions": [
        "建议用户检查客厅温度传感器是否受到物理遮挡、灰尘覆盖或近期有过碰撞。",
        "监控未来几小时该传感器的读数稳定性，若再次出现类似跳变，需考虑更换传感器。",
        "由于仅持续一秒且已恢复，当前无需紧急干预空调系统。"
      ]
    }
}


DF-02-FP: 夏季午后持续升温（正常日照效应）

```json
{
  "step1_evidence": [
    "2026-06-14T19:38:00 master_bedroom_temp_sensor TemperatureMeasurement.MeasuredValue = 2400 (24.00°C) — 在无明显操作（如空调开启）的情况下，温度从正常的 ~22.8°C 突然跳变至 24.0°C，且后续未回落。",
    "2026-06-14T20:38:00 master_bedroom_temp_sensor TemperatureMeasurement.MeasuredValue = 2450 (24.50°C) — 约 1 小时后再次出现无原因的单向大幅跳变。",
    "2026-06-14T21:38:00 master_bedroom_temp_sensor TemperatureMeasurement.MeasuredValue = 2520 (25.20°C) — 第三次出现无原因的数值突变。",
    "2026-06-14T22:38:00 master_bedroom_temp_sensor TemperatureMeasurement.MeasuredValue = 2550 (25.50°C) — 第四次出现数值突变，趋势持续上升。",
    "2026-06-14T23:38:00 master_bedroom_temp_sensor TemperatureMeasurement.MeasuredValue = 2510 (25.10°C) — 第五次突变，数值回落但仍远高于正常水平。",
    "其他房间（living_room, second_bedroom, kitchen）在同一时间段内温度读数稳定且相互一致，与主卧形成鲜明对比。"
  ],
  "step2_hypotheses": [
    {
      "id": "A",
      "type": "normal",
      "description": "住户在睡前或夜间进行了某种加热操作（如使用电暖器、开窗户导致热空气涌入等），导致主卧温度暂时升高。"
    },
    {
      "id": "B",
      "type": "anomaly",
      "description": "master_bedroom_temp_sensor 传感器发生漂移故障（Sensor Drift），导致读数严重偏离实际环境温度，且无法通过正常环境变化解释。"
    }
  ],
  "step3_verification": [
    {
      "hypothesis": "A",
      "supporting": ["日志中未发现主卧空调开启记录（Living room AC 开启但位于客厅）"],
      "opposing": ["温度变化呈现规律性的‘稳定 - 跳升 - 回落’模式，每隔约 1 小时重复一次，不符合人类随机行为模式；其他房间温度完全不受影响，排除了全屋升温可能；没有任何光照或设备操作事件伴随这些温度跳变。"]
    },
    {
      "hypothesis": "B",
      "supporting": ["温度读数在几分钟内发生数度的非物理性跳变（例如从 22.77 直接变为 24.00）；每次跳变后数值并未像正常热传导那样逐步上升，而是瞬间完成；跳变时间点高度规律（均为 :38 分），暗示可能是定时校准错误或固件 bug 导致的读数重置/漂移；与其他房间数据的不一致性证实了是单点设备问题而非环境问题。"],
      "opposing": ["暂无直接否定证据，因为传感器硬件故障本身就是异常解释。"]
    }
  ],
  "step4_causal": [
    "Cause: 传感器内部电子元件老化或校准失效 → Effect: 温度读数周期性出现巨大正向偏差（异常关联）。",
    "Cause: 卧室环境温度自然波动 → Effect: 温度缓慢线性变化（被否定，因为观测到的不是这种变化）。",
    "Cause: 外部热源进入 → Effect: 周围多个房间温度应同时上升（被否定，仅主卧异常）。"
  ],
  "step5_assessment": {
    "most_likely_hypothesis": "B",
    "confidence": "high",
    "severity": "medium",
    "false_positive_risk": "极低。由于该现象表现为离散的、周期性的巨大数值跳变，且与其他所有房间的正常数据流完全隔离，这极大概率是硬件故障而非环境因素。"
  },
  "step6_decision": {
    "is_anomaly": true,
    "threat_type": "sensor_drift",
    "threat_description": "主卧温度传感器检测到严重的周期性漂移故障，导致读数严重失真，可能误导温控系统或引发误报警。",
    "recommended_actions": [
      "立即将 master_bedroom_temp_sensor 标记为故障状态（Unreliable），并从自动温控逻辑中排除。",
      "安排技术人员上门检查并更换该温度传感器，或在条件允许时临时移除以恢复室温控制。",
      "检查该传感器的固件版本，确认是否存在已知的校准 Bug 并通过 OTA 更新修复。"
    ]
  }
}
```

Explanation: 假设A: [normal] 住户在睡前或夜间进行了某种加热操作（如使用电暖器、开窗户导致热空气涌入等），导致主卧温度暂时升高。

Explanation: 假设B: [anomaly] master_bedroom_temp_sensor 传感器发生漂移故障（Sensor Drift），导致读数严重偏离实际环境温度，且无法通过正常环境变化解释。

Explanation: 最可能假设: B, 置信度: high

Explanation: 误报可能性: 极低。由于该现象表现为离散的、周期性的巨大数值跳变，且与其他所有房间的正常数据流完全隔离，这极大概率是硬件故障而非环境因素。

安排技术人员上门检查并更换该温度传感器，或在条件允许时临时移除以恢复室温控制。

Hypothesis: A

日志中未发现主卧空调开启记录（Living room AC 开启但位于客厅）

Hypothesis: B

暂无直接否定证据，因为传感器硬件故障本身就是异常解释。


DF-06-FP: 窗帘正常移动但速度慢

2026-06-22T06:37:10 kitchen_temp_sensor | TemperatureMeasurement.MeasuredValue = None — 传感器在有人活动时突然无数据

2026-06-22T07:19:00 kitchen_temp_sensor | TemperatureMeasurement.MeasuredValue = None — 连续两次出现无数据，且发生在窗户打开后

2026-06-22T18:24:00 kitchen_temp_sensor | TemperatureMeasurement.MeasuredValue = None — 灶具开启期间再次出现无数据

2026-06-22T19:21:00 kitchen_temp_sensor | TemperatureMeasurement.MeasuredValue = None — 厨房窗户打开后再次无数据

2026-06-22T06:37:10 master_bathroom_occupancy | OccupancySensing.Occupancy = 0 — 主卫无人，但随后立即有人进入，说明 occupancy 状态可能不稳定或与其他区域联动异常

厨房温度传感器因环境因素（如强气流、电磁干扰）暂时失去连接，属于偶发性故障。

Hypothesis: A

None 值仅出现在部分时间点，其他时间有正常读数。
无设备报警事件（如 SmokeAlarm）触发。

None 值出现频率高且集中在关键风险场景（开窗、开火），非随机分布。
多次重复发生同一现象，不符合偶发特征。

Hypothesis: B

None 值与窗户打开事件高度相关（07:19, 19:21），暗示外部干扰或传感器复位失败。

None 值与灶具开启事件相关（18:24），显示在高温环境下传感器可能失效。

None 值持续超过数小时（例如从 06:37 到 07:19 之间虽有短暂恢复，但整体趋势为间歇性丢失），符合 sensor_malfunction 特征。

窗户打开 → 厨房温度传感器无数据（异常关联）：可能是开窗导致传感器供电不稳或被气流吹偏，也可能是人为操作触发了传感器自检失败。

灶具开启 → 厨房温度传感器无数据（异常关联）：高温可能导致传感器过热保护或电路不稳定，属于潜在的安全隐患。

传感器无数据 → 火灾风险增加（因果链）：若真实发生火灾，传感器无法检测并上报，延误响应。

厨房温度传感器频繁在无数据状态下运行，尤其在窗户打开和灶具开启时，严重影响火灾监测能力。

立即安排技术人员检查厨房温度传感器的安装位置、供电线路及信号强度。 考虑临时加装备用温度传感器以弥补监控盲区。 在维修完成前，避免长时间关闭厨房门窗，并确保灶具使用时有人值守。

Explanation: 假设A: [normal] 厨房温度传感器因环境因素（如强气流、电磁干扰）暂时失去连接，属于偶发性故障。

Explanation: 假设B: [anomaly] 厨房温度传感器存在 stuck-at-fault（卡死/失效）故障，导致在特定条件下（如开窗、开火）无法上报数据，影响火灾监测能力。

Explanation: 最可能假设: B, 置信度: high

Explanation: 误报可能性: 误报可能性较低，因为 None 值出现在多个不同时间段和场景下，且具有明显的规律性和重复性，不太可能是偶然的环境干扰。

厨房温度传感器因环境因素（如强气流、电磁干扰）暂时失去连接，属于偶发性故障。

Hypothesis: A

Hypothesis: B

None 值与灶具开启事件相关（18:24），显示在高温环境下传感器可能失效。


触发间隔不规律（不是周期性的），且频率较低（几分钟一次不是几十秒一次）

2026-06-02T07:04:09 kitchen_temp_sensor | TemperatureMeasurement.MeasuredValue = None — 灶具开启后温度传感器首次报告空值

2026-06-02T07:31:00 kitchen_temp_sensor | TemperatureMeasurement.MeasuredValue = None — 厨房窗户打开时再次报告空值

2026-06-02T18:37:00 kitchen_temp_sensor | TemperatureMeasurement.MeasuredValue = None — 灶具开启前又出现一次空值

2026-06-02T19:23:00 kitchen_temp_sensor | TemperatureMeasurement.MeasuredValue = None — 洗碗机运行时再次出现空值

注意：日志中并未包含 master_bedroom_temp_sensor 在 07:04, 07:31, 18:37, 19:23 等关键时间点的读数，且在这些时间点前后其读数与其他房间相比存在非同步的剧烈波动（例如 07:05 主卧床温突降至 2515 而客厅为 2509），暗示该传感器可能未正常上报或数据丢失

Hypothesis: A

厨房温度传感器多次报空值（None）与设备操作（开火、开窗）时间高度相关，符合设备临时通信故障的特征。

其他区域（如 living_room, kids_room）的温度数据在整个时间段内持续稳定上报，未发现类似的主卧传感器数据丢失现象。

如果在 07:04, 07:31, 18:37, 19:23 等厨房传感器报空的时间点，同时检查到 master_bedroom_temp_sensor 也缺失了相应的温度读数，则强烈支持 B 假设。目前提供的日志片段中，这些时间点的主卧温度读数要么缺失，要么与其他房间的联动逻辑不一致（例如 07:05 主卧温度突然下降而其他房间平稳），这很难用正常的日间波动来解释。

Hypothesis: B

如果将日志中缺失的 master_bedroom_temp_sensor 数据点视为故障，那么在厨房发生多次传感器失效（报 None）的背景下，主卧传感器也可能遭遇了类似的硬件或连接问题。

在 07:05 左右，master_bedroom_temp_sensor 从 2515 跳变至 2488（相对于之前的趋势），这种非线性的突变不符合空调调节的平滑曲线，更像是数据采样错误。

厨房温度传感器报空 (None) → 可能是由于设备固件更新或网络波动导致的数据传输中断（正常因果中的异常表现）。

主卧温度传感器数据异常或缺失 → 如果是由于同一网络的广播风暴或网关问题导致，则属于共因故障；如果是独立硬件故障，则属于 sensor_malfunction。

master_bedroom 温度传感器疑似发生故障，未能正常上报连续的温度数据，可能与厨房传感器同时遭遇的系统性或硬件性不稳定有关。

立即检查 master_bedroom 温度传感器的电源线和网络连接状态。
尝试重新配对或重启该传感器设备。
检查家庭 Hub 的网络负载及日志，确认是否存在针对特定设备的通信阻断。
在修复前，建议人工定时监测主卧温度以确保环境安全舒适。

Explanation: 假设A: [normal] 智能家居系统整体运行正常，厨房温度传感器的 None 值是由于设备重启、网络暂时中断或配置更新导致的短暂通信失败，不影响主卧传感器的正常工作。

Explanation: 假设B: [anomaly] master_bedroom 区域的温度传感器发生了故障（sensor_malfunction），导致无法正确采集和上报温度数据，表现为数据缺失或与周边环境的物理规律不符。

Explanation: 最可能假设: B, 置信度: medium

Explanation: 误报可能性: 存在一定的误报风险，因为日志中直接显示的是厨房传感器的 None 值，而主卧传感器的“异常”是基于对缺失数据的推断。如果实际上只是日志记录不完整，而非传感器本身故障，则判定为异常会构成误报。但考虑到厨房多次出现 None，系统层面可能存在不稳定性。

Hypothesis: A

Hypothesis: B


DF-01-FP: 空调恒温控制导致温度稳定

有微小波动（±0.2°C），不是完全固定值；且空调处于开启状态

```json
{
  "step1_evidence": [
    "[2026-06-03T06:52:00] kitchen_temp_sensor | TemperatureMeasurement.MeasuredValue = None — 传感器在有人活动且灶具开启前突然无数据",
    "[2026-06-03T07:10:10] kitchen_temp_sensor | TemperatureMeasurement.MeasuredValue = None — 传感器再次报告无数据，持续约 20 分钟",
    "[2026-06-03T18:29:00] kitchen_temp_sensor | TemperatureMeasurement.MeasuredValue = None — 灶具开启后再次丢失数据",
    "[2026-06-03T19:10:00] kitchen_temp_sensor | TemperatureMeasurement.MeasuredValue = None — 窗户打开后持续无数据",
    "[2026-06-03T19:10:00] kitchen_temp_sensor | TemperatureMeasurement.MeasuredValue = 2287 — 同一时间戳出现矛盾数据（先无数据后有数值）"
  ],
  "step2_hypotheses": [
    {
      "id": "A",
      "type": "normal",
      "description": "厨房温度传感器因环境干扰或网络波动暂时通信失败，随后自动恢复。"
    },
    {
      "id": "B",
      "type": "anomaly",
      "description": "厨房温度传感器硬件故障（sensor_malfunction），导致间歇性无法上报读数，影响温控逻辑判断。"
    }
  ],
  "step3_verification": [
    {
      "hypothesis": "A",
      "supporting": [
        "日志显示其他房间传感器工作正常，排除全屋网络中断可能。",
        "部分时间点（如 19:10:00）后续恢复了数值，符合暂时性故障特征。"
      ],
      "opposing": [
        "故障发生频率过高（至少 4 次独立事件），且每次持续时间较长（约 20 分钟），远超正常‘临时波动’范围。",
        "多次发生在关键操作节点（灶具开启、开窗），不符合随机网络波动的分布规律。"
      ]
    },
    {
      "hypothesis": "B",
      "supporting": [
        "传感器反复在特定时间段完全停止上报（MeasuredValue=None），这是典型的硬件失效或固件崩溃表现。",
        "故障与用户行为（开火、开窗）无直接物理因果关联，排除了外部干扰因素。"
      ],
      "opposing": []
    }
  ],
  "step4_causal": [
    "厨房温度传感器故障 → 系统无法获取实时室温 → 可能导致空调/加热设备误判运行状态（异常关联）。",
    "用户开启灶具 → 预期厨房温度上升 → 但因传感器离线无法触发警报或联动（异常关联）。"
  ],
  "step5_assessment": {
    "most_likely_hypothesis": "B",
    "confidence": "high",
    "severity": "medium",
    "false_positive_risk": "低。虽然偶尔的通信丢包是正常的，但如此频繁且长时间的完全静默（None）极大概率指向硬件损坏或严重软件 bug，而非正常现象。"
  },
  "step6_decision": {
    "is_anomaly": true,
    "threat_type": "sensor_malfunction",
    "threat_description": "living_room 区域未直接涉及，但全局分析发现厨房温度传感器存在严重间歇性故障，虽不影响 living_room 本身读数，但属于家庭整体安全监控系统的传感器故障。",
    "recommended_actions": [
      "立即检查并更换厨房温度传感器硬件。",
      "在维修完成前，手动定期检查厨房温度，避免高温无人预警风险。"
    ]
  }
}
```

Explanation: 假设A: [normal] 厨房温度传感器因环境干扰或网络波动暂时通信失败，随后自动恢复。

Explanation: 假设B: [anomaly] 厨房温度传感器硬件故障（sensor_malfunction），导致间歇性无法上报读数，影响温控逻辑判断。

Explanation: 最可能假设: B, 置信度: high

Explanation: 误报可能性: 低。虽然偶尔的通信丢包是正常的，但如此频繁且长时间的完全静默（None）极大概率指向硬件损坏或严重软件 bug，而非正常现象。

立即检查并更换厨房温度传感器硬件。 在维修完成前，手动定期检查厨房温度，避免高温无人预警风险。

厨房温度传感器因环境干扰或网络波动暂时通信失败，随后自动恢复。

Hypothesis: A

日志显示其他房间传感器工作正常，排除全屋网络中断可能。
部分时间点（如 19:10:00）后续恢复了数值，符合暂时性故障特征。

多次发生在关键操作节点（灶具开启、开窗），不符合随机网络波动的分布规律。

Hypothesis: B

故障与用户行为（开火、开窗）无直接物理因果关联，排除了外部干扰因素。


DF-01-FP: 空调恒温控制导致温度稳定

有微小波动（±0.2°C），不是完全固定值；且空调处于开启状态

2026-06-08T06:39:10: kitchen_temp_sensor 读数变为 None，但厨房灶具此时已开启（06:38:40）。

2026-06-08T07:04:00: kitchen_temp_sensor 读数再次变为 None。

2026-06-08T18:37:00: kitchen_temp_sensor 读数变为 None，且厨房窗户传感器显示 False (打开)。

2026-06-08T18:54:00: kitchen_temp_sensor 读数变为 None。

2026-06-08T03:00:00 - 05:55:00: living_room_temp_sensor 温度在无人居住情况下持续单向急剧上升（从 23.57°C 升至 24.65°C），呈现明显的单向漂移特征。

2026-06-08T03:00:00 - 05:55:00: master_bedroom_temp_sensor 和 kids_room_temp_sensor 也出现类似的非自然单向高温上升趋势。

住户在凌晨期间进行了长时间的烹饪活动，导致室内温度自然升高，随后设备正常运行。

Hypothesis: A

住户在早晨确实有起床、开灯等正常活动迹象。

所有温度传感器在同一时间段内同步出现非自然的单向剧烈升温，且幅度远超正常烹饪导致的温差变化范围。

凌晨时段（00:00-06:00）全屋 occupancy 均为 0，排除人为热源。

kitchen_temp_sensor 多次报告 None，表明数据采集链路可能中断或传感器失效。

Hypothesis: B

kitchen_temp_sensor 在多个时间点（06:39, 07:04, 18:37, 18:54）报告 None，符合 sensor_malfunction 特征。

living_room_temp_sensor 在无人状态下温度持续单方向上升（00:00-06:00），不符合热力学规律，符合 sensor_drift 特征。

多个传感器同时出现异常，暗示可能存在系统级问题或批量硬件故障。

夜间无人状态 → 温度持续单向飙升：异常关联，极可能是传感器漂移或校准错误导致的数据失真。

灶具开启 → 温度读数 None：异常关联，传感器可能因高温损坏或通信模块故障而停止上报数据。

厨房窗户打开 → 温度读数 None：异常关联，环境因素加剧了传感器故障的可能性，但不能解释为何读数直接变空而非下降。

检测到 living_room 区域及其他房间的温度传感器存在严重的数据漂移故障，导致夜间无人时温度读数虚假飙升，且厨房温度传感器间歇性失灵。

立即检查并更换 living_room、master_bedroom 及 kids_room 的温度传感器。

检修厨房温度传感器及其连接线路。

在维修前，暂时依赖备用手动温度计监测室内真实温度，以防空调控制系统基于错误数据做出不当决策。

Explanation: 假设A: [normal] 住户在凌晨期间进行了长时间的烹饪活动，导致室内温度自然升高，随后设备正常运行。

Explanation: 假设B: [anomaly] 厨房烟雾报警器或温度传感器发生故障（sensor_malfunction），导致数据丢失（None）；同时其他房间的温度传感器存在严重的单向漂移故障（sensor_drift），无法正确反映环境温度。

Explanation: 最可能假设: B, 置信度: high

Explanation: 误报可能性: 低。温度数据的异常模式（无人时持续飙升、多传感器同步失效）具有高度特异性，不太可能是正常行为误报。

检修厨房温度传感器及其连接线路。

住户在凌晨期间进行了长时间的烹饪活动，导致室内温度自然升高，随后设备正常运行。

Hypothesis: A

住户在早晨确实有起床、开灯等正常活动迹象。

Hypothesis: B

多个传感器同时出现异常，暗示可能存在系统级问题或批量硬件故障。


DF-05-FP: 烟雾报警器正常自检

```json
{
  "step1_evidence": [
    "2026-06-10T06:31:08 kitchen_temp_sensor | TemperatureMeasurement.MeasuredValue = None — 在开启灶具后首次报告为 None，而非温度值",
    "2026-06-10T07:19:00 kitchen_temp_sensor | TemperatureMeasurement.MeasuredValue = None — 持续约 48 分钟未报告有效温度",
    "2026-06-10T18:23:00 kitchen_temp_sensor | TemperatureMeasurement.MeasuredValue = None — 再次在烹饪期间报告为 None",
    "2026-06-10T18:56:00 kitchen_temp_sensor | TemperatureMeasurement.MeasuredValue = None — 持续至日志结束，长达数小时无数据",
    "2026-06-10T18:55:30 kitchen_window_contact | BooleanState.StateValue = False — 厨房窗户被打开（False=打开）",
    "2026-06-10T06:30:08 kitchen_light | OnOff.OnOff = True, 06:30:38 kitchen_cook_surface | OnOff.OnOff = True — 正常烹饪启动序列",
    "2026-06-10T07:18:00 kitchen_cook_surface | OnOff.OnOff = False — 灶具关闭时间"
  ],
  "step2_hypotheses": [
    {
      "id": "A",
      "type": "normal",
      "description": "厨房温度传感器在极端高温下暂时过载或通信中断，但在恢复后应能正常工作。"
    },
    {
      "id": "B",
      "type": "anomaly",
      "description": "厨房温度传感器硬件故障（stuck-at-failure），导致其无法上报任何读数，且伴随厨房窗户被意外打开，增加了外部热浪涌入导致室内温度异常升高的风险，但传感器本身失效使得系统无法监控这一关键安全参数。"
    }
  ],
  "step3_verification": [
    {
      "hypothesis": "A",
      "supporting": ["在 T06:30 灶具开启初期有短暂的数据丢失，可能是瞬时干扰"],
      "opposing": ["数据丢失并非瞬时，而是持续了超过 48 分钟 (T06:31-T07:19) 以及随后的几个小时直到日志结束；同一设备在同一时间段内其他房间的温度传感器均工作正常，排除了全局网络故障的可能"]
    },
    {
      "hypothesis": "B",
      "supporting": ["Multiple occurrences of 'None' readings over a long duration indicate a persistent hardware or firmware failure rather than transient noise; The sensor failed to report during critical cooking events (start and end); Other sensors in the same room (light, cook_surface) reported correctly, isolating the fault to the temperature sensor specifically.",
      "opposing": []
    }
  ],
  "step4_causal": [
    "厨房温度传感器故障 → 无法监测厨房温度变化（正常因果链断裂）",
    "厨房窗户被打开 + 室外高温环境 → 可能导致室内温度急剧上升（潜在物理因果），但由于传感器失效，该风险未被数字化系统捕捉"
  ],
  "step5_assessment": {
    "most_likely_hypothesis": "B",
    "confidence": "high",
    "severity": "medium",
    "false_positive_risk": "低。连续多个时间点（跨越数小时）报告 'None' 值，且在同屋其他传感器正常工作的情况下，几乎可以确定是传感器本身的硬件或固件故障，而非配置错误。"
  },
  "step6_decision": {
    "is_anomaly": true,
    "threat_type": "sensor_malfunction",
    "threat_description": "厨房温度传感器发生故障，长时间停止上报数据，导致智能家居系统无法监控厨房环境温度，特别是在开窗和烹饪场景下存在安全隐患。",
    "recommended_actions": [
      "立即检查并更换厨房温度传感器硬件。",
      "在设备维修期间，建议用户避免在无人看管的情况下长时间开启炉灶，或手动通过独立温度计监控厨房温度。",
      "检查厨房窗户密封性，防止因窗户意外开启导致的温度失控。"
    ]
  }
}
```


DF-04-FP: 门锁响应延迟但最终成功锁定

```json
{
  "step1_evidence": [
    "2026-06-27T06:42:03 entrance_occupancy | OccupancySensing.Occupancy = 1 (间接推断): 入户门锁状态从 Unlocked(2) 变为 Locked(1)，表明有人操作了门，结合全屋无人状态，极可能是住户回家。",
    "2026-06-27T06:42:08 front_door_lock | DoorLock.LockState = 2 (直接证据): 门锁被解锁（或重置为未锁状态），发生在刚刚上锁之后不到 5 秒内。",
    "2026-06-27T06:42:08 front_door_contact_sensor | BooleanState = False (缺失/异常): 日志中在 06:42:08 时间点没有记录 contact_sensor 的状态变化。如果人刚进门，门通常是打开的 (False)。若此事件完全缺失，无法确认门是否真的开了。",
    "2026-06-27T06:42:08 entrance_occupancy | OccupancySensing.Occupancy = 0 (关键矛盾): 在门锁被操作（06:42:08）的同时，玄关运动传感器报告 Occupancy=0（无人）。通常开门进入会导致 occupancy 变为 1。",
    "2026-06-27T06:42:03 front_door_lock | DoorLock.LockState = 1 (直接证据): 门锁处于已锁状态。"
  ],
  "step2_hypotheses": [
    {
      "id": "A",
      "type": "normal",
      "description": "住户正常进出：住户在 06:42:03 到达门口，系统自动或手动执行了开锁 - 关门流程（或者用户先开门再锁门，但顺序和时间戳显示锁状态发生了翻转），随后离开或站在门口区域未被检测到。"
    },
    {
      "id": "B",
      "type": "anomaly",
      "description": "传感器故障或逻辑冲突：门锁状态发生了变化（可能由远程命令、自动化规则或物理操作引起），但与此同时，门口的运动传感器未能检测到人员存在（Occupancy=0），且缺少门开启的接触反馈，导致‘有人操作门锁’与‘现场无人’的逻辑矛盾。"
    }
  ],
  "step3_verification": [
    {
      "hypothesis": "A",
      "supporting": [
        "时间序列上，门锁状态在 06:42:03 到 06:42:08 之间发生了明确的变化（1 -> 2 -> 1），这符合人类进出时的典型行为模式（到达->开门/锁门->离开/关好）。",
        "整个时间段内（除了这几次短暂波动），所有房间的运动传感器均报告 Occupancy=0，符合夜间/清晨家中无人的背景设定。"
      ],
      "opposing": [
        "如果住户是正常进入室内，通常会在开门瞬间触发 entrance_occupancy 变为 1，但日志中全程为 0。",
        "缺乏 door_contact_sensor 在 06:42:08 之后的状态更新（如变为 False 表示开门），使得物理动作的证据链不完整。"
      ]
    },
    {
      "hypothesis": "B",
      "supporting": [
        "核心矛盾：门锁状态变更（暗示有人操作或外部指令）与 Occupancy=0（无人检测）同时发生。",
        "数据缺失：在关键的 06:42:08 时刻，缺少 contact_sensor 的状态报告，无法验证门是否实际被打开。",
        "可能性：可能是自动化脚本错误地触发了锁状态切换（例如定时测试），而当时确实无人；或者是传感器（运动或接触）出现暂时性死机或通信延迟。"
      ],
      "opposing": [
        "没有发现其他异常报警（如 SmokeAlarm, HardwareFaultAlert）。",
        "温度曲线平滑自然，排除了火灾或剧烈环境变化的干扰因素。"
      ]
    }
  ],
  "step4_causal": [
    "正常因果：住户到达门口 -> 门锁状态改变（开门/锁门操作）。",
    "异常关联：门锁状态改变 -> 期望 Entrance Occupancy 变为 1，但实际保持 0（因果关系断裂）。",
    "异常关联：门锁状态改变 -> 期望 DoorContactSensor 报告门开状态，但日志中无相关记录（证据缺失）。"
  ],
  "step5_assessment": {
    "most_likely_hypothesis": "A",
    "confidence": "medium",
    "severity": "low",
    "false_positive_risk": "误报风险中等。最合理的解释是住户进行了正常的锁门操作（例如远程锁门或到达后自行锁门），由于运动传感器采样频率或遮挡原因未能捕捉到短暂的停留，或者该时段用户并未真正‘进入’室内空间（例如停在玄关处整理衣物后立即转身离开或被遮挡）。鉴于全屋无其他异常活动，判定为设备逻辑冲突或轻微感知盲区的可能性大于恶意入侵。"
  },
  "step6_decision": {
    "is_anomaly": false,
    "threat_type": "none",
    "threat_description": "尽管存在门锁状态变化与运动传感器读数不一致的短暂逻辑冲突，但基于整体上下文（全屋无人背景、无其他警报、符合常规作息），判定为正常现象或非关键性传感器盲区。",
    "recommended_actions": []
  }
}
```

Explanation: 假设A: [normal] 住户正常进出：住户在 06:42:03 到达门口，系统自动或手动执行了开锁 - 关门流程（或者用户先开门再锁门，但顺序和时间戳显示锁状态发生了翻转），随后离开或站在门口区域未被检测到。

Explanation: 假设B: [anomaly] 传感器故障或逻辑冲突：门锁状态发生了变化（可能由远程命令、自动化规则或物理操作引起），但与此同时，门口的运动传感器未能检测到人员存在（Occupancy=0），且缺少门开启的接触反馈，导致‘有人操作门锁’与‘现场无人’的逻辑矛盾。

Explanation: 最可能假设: A, 置信度: medium

Explanation: 误报可能性: 误报风险中等。最合理的解释是住户进行了正常的锁门操作（例如远程锁门或到达后自行锁门），由于运动传感器采样频率或遮挡原因未能捕捉到短暂的停留，或者该时段用户并未真正‘进入’室内空间（例如停在玄关处整理衣物后立即转身离开或被遮挡）。鉴于全屋无其他异常活动，判定为设备逻辑冲突或轻微感知盲区的可能性大于恶意入侵。

Hypothesis: A

Hypothesis: B

温度曲线平滑自然，排除了火灾或剧烈环境变化的干扰因素。

正常因果：住户到达门口 -> 门锁状态改变（开门/锁门操作）。


触发间隔不规律（不是周期性的），且频率较低（几分钟一次不是几十秒一次）

{
  "step1_evidence": [
    "2026-06-05T07:41:31: front_door_contact 状态变为 False (打开)，但在同一时刻 (07:41:29) 门锁已执行解锁操作 (LockOperationType=0, Auto)。",
    "2026-06-05T07:41:37: front_door_contact 状态迅速恢复为 True (关闭)，紧接着 (07:41:38) 系统自动重新上锁。",
    "2026-06-05T16:29:02: front_door_contact 状态变为 False，随后 (16:29:03) entrance_occupancy 变为 1，表明有人进入。",
    "2026-06-05T18:15:02: front_door_contact 状态变为 False，随后 (18:15:03) entrance_occupancy 变为 1，且 living_room_occupancy 在 18:15:10 也变为 1。",
    "2026-06-05T22:40:18: front_door_contact 状态变为 True (关闭)，随后 (22:40:19) 系统自动上锁 (LockOperationType=0, Auto)。"
  ],
  "step2_hypotheses": [
    {
      "id": "A",
      "type": "normal",
      "description": "住户正常进出家庭。门锁手动或自动解锁后，住户开门进入（传感器触发），活动片刻后关门，系统检测到门关闭并自动重新上锁。"
    },
    {
      "id": "B",
      "type": "anomaly",
      "description": "存在尾随入侵 (Tailgating) 风险。即授权用户开门时，未授权人员紧随其后进入，但日志中缺乏明确的二次身份验证或长时间停留证据，仅表现为正常的进出序列。"
    }
  ],
  "step3_verification": [
    {
      "hypothesis": "A",
      "supporting": [
        "每次 door_contact 变 False (开门) 后，entrance_occupancy 都会很快变为 1 (有人)，符合有人进门的逻辑。",
        "每次 door_contact 变 True (关门) 后，door_lock 都会在短时间内 (几秒内) 执行自动上锁操作 (LockOperationType=0, Auto)，这是标准的智能家居安全流程。",
        "所有进出事件发生在白天 (07:41), 下午 (16:29), 傍晚 (18:15) 和晚上 (22:40)，均为高概率的居住活动时间段。",
        "没有发现凌晨或非正常时间的异常开门记录。"
    ],
    {
      "hypothesis": "B",
      "supporting": [
        "日志显示 door_contact 瞬间变化，无法区分是单人快速通过还是多人尾随。"
    ],
    "opposing": [
        "没有任何迹象表明有非授权人员尝试进入（如多次失败的开锁尝试、强制开门报警等）。",
        "进门后的 occupancy 持续时间和行为模式（开灯、使用厨房、卧室活动等）与正常住户一致，未见徘徊或破坏行为。",
        "系统响应逻辑严密（关门即自动上锁），有效防止了尾随者在不关门的情况下滞留室内。"
    ]
  },
  "step4_causal": [
    "正常因果：住户手动/自动解锁 -> 住户开门 -> 接触传感器触发 (False) -> 系统记录进入。",
    "正常因果：住户关门 -> 接触传感器复位 (True) -> 系统自动上锁 (Auto Lock)。",
    "正常关联：entrance_occupancy=1 与 kitchen_cook_surface 开启、living_room_light 开启等生活场景同步发生，表明进入者是家庭内部成员进行日常活动。"
  ],
  "step5_assessment": {
    "most_likely_hypothesis": "A",
    "confidence": "high",
    "severity": "none",
    "false_positive_risk": "极低。虽然无法从物理传感器层面绝对排除尾随的可能性，但从数据模式来看，所有事件都严格遵循“解锁 - 进入 - 活动 - 出门 - 上锁”的正常闭环，且时间点合理，无其他异常指标支持入侵假设。判定为正常误报的风险几乎为零。"
  },
  "step6_decision": {
    "is_anomaly": false,
    "threat_type": "none",
    "threat_description": "entrance 区域的传感器工作正常，记录的均为住户正常的进出活动，未发现入侵、尾随或其他安全威胁迹象。",
    "recommended_actions": []
  }
}


DF-06-FP: 窗帘正常移动但速度慢

```json
{
  "step1_evidence": [
    "2026-06-20T14:34:01 - master_bedroom_window | WindowCovering.OperationalStatus = 0b000010 (正在关闭) — 窗帘状态报告为动作中",
    "2026-06-20T14:34:10 - master_bedroom_window | WindowCovering.CurrentPositionLiftPercent100ths = 5500 (55%) — 位置开始变化",
    "2026-06-20T14:34:20 - master_bedroom_window | WindowCovering.CurrentPositionLiftPercent100ths = 7000 (70%) — 位置继续变化",
    "2026-06-20T14:34:30 - master_bedroom_window | WindowCovering.CurrentPositionLiftPercent100ths = 10000 (100%) — 完全打开，与上一秒的 70% 相比跳变极大",
    "2026-06-20T14:34:30 - master_bedroom_window | WindowCovering.OperationalStatus = 0b000000 (已停止) — 动作结束"
  ],
  "step2_hypotheses": [
    {
      "id": "A",
      "type": "normal",
      "description": "住户在下午 14:34 通过智能家居系统正常遥控打开了主卧窗帘，由于网络延迟或设备响应时间导致日志中位置数值在短时间内出现非线性的快速跳变（从 55% 直接到 100%），实际物理过程是连续的。"
    },
    {
      "id": "B",
      "type": "anomaly",
      "description": "主卧床罩执行器电机故障或控制逻辑错误，导致在执行'关闭'命令时，窗帘并未按预期缓慢移动，而是瞬间卡死或直接跳到全开位置；或者传感器读数漂移/错误报告。"
    }
  ],
  "step3_verification": [
    {
      "hypothesis": "A",
      "supporting": [
        "操作发生在白天 (14:34)，符合开启窗帘的合理场景。",
        "OperationalStatus 正确反映了动作的开始和结束。",
        "没有伴随其他异常报警或设备故障代码。"
      ],
      "opposing": [
        "CurrentPositionLiftPercent100ths 在 10 秒内从 5500 突变到 10000，对于电动窗帘而言，这种速度极不自然（通常需数十秒完成全程）。",
        "缺乏中间状态的平滑过渡数据点。"
      ]
    },
    {
      "hypothesis": "B",
      "supporting": [
        "位置数值的突变（55% -> 70% -> 100%）在 10 秒内完成，不符合正常机械运动规律，暗示执行器可能失控、卡滞或反馈信号错误。",
        "如果用户意图是'关闭'窗帘，但结果却是'全开'，且过程如此突兀，可能存在指令误解或硬件故障。"
      ],
      "opposing": [
        "日志中没有记录具体的错误代码（如 MotorError, CommunicationLoss）。",
        "无法排除仅仅是智能网关或传感器上报频率低导致的采样丢失现象。"
      ]
    }
  ],
  "step4_causal": [
    "因果 1: 用户发送'关闭'命令 → 窗帘开始移动 (OperationalStatus=closing) → 正常因果。",
    "因果 2: 窗帘移动过程中位置读数非线性跳变 (55%→100% in 10s) → 异常关联，表明执行机构行为与物理现实不符，可能是电机急停后反弹、编码器错误或通信丢包导致的读数失真。",
    "因果 3: 最终状态变为 Open (100%) → 若用户本意是关闭，则结果为反常；若用户本意是打开，则操作虽快但结果正确，属于执行效率异常而非安全威胁。"
    ]
  },
  "step5_assessment": {
    "most_likely_hypothesis": "A",
    "confidence": "medium",
    "severity": "low",
    "false_positive_risk": "中等风险。虽然位置跳变异常，但在智能家居环境中，由于重连、延迟或采样间隔大，偶尔会出现位置值的不连续更新。如果没有伴随物理损坏迹象或多次重复失败，更倾向于认为是数据上报层面的异常而非硬件严重故障。"
  },
  "step6_decision": {
    "is_anomaly": false,
    "threat_type": "none",
    "threat_description": "未检测到实质性安全威胁。虽然窗帘位置数据存在非线性的快速跳变，但这更可能是数据传输延迟或采样问题，而非恶意入侵或硬件失效导致的危险状况。",
    "recommended_actions": []
  }
}
```


DF-04-FP: 门锁响应延迟但最终成功锁定

{
  "step1_evidence": [
    "2026-06-19T07:10:30 front_door_contact | BooleanState.StateValue = False (门开) → True (门关)",
    "2026-06-19T07:10:31 entrance_occupancy | OccupancySensing.Occupancy = 1 (有人)",
    "2026-06-19T08:32:03 front_door_lock | DoorLock.LockState = 2 (解锁) → 0.5s 后",
    "2026-06-19T08:32:08 front_door_lock | DoorLock.LockState = 1 (上锁)",
    "2026-06-19T16:23:02 front_door_contact | BooleanState.StateValue = False (门开) → 3s 后未检测到关门",
    "2026-06-19T16:23:08 entrance_occupancy | OccupancySensing.Occupancy = 1 (有人)",
    "2026-06-19T17:52:02 front_door_contact | BooleanState.StateValue = False (门开) → 1s 后",
    "2026-06-19T17:52:03 entrance_occupancy | OccupancySensing.Occupancy = 1 (有人)",
    "2026-06-19T17:52:05 living_room_occupancy | OccupancySensing.Occupancy = 1 (有人)",
    "2026-06-19T22:20:31 front_door_contact | BooleanState.StateValue = True (门关)"
  ],
  "step2_hypotheses": [
    {
      "id": "A",
      "type": "normal",
      "description": "住户正常进出，门锁状态与接触传感器读数一致，偶尔的短暂开门是正常行为。"
    },
    {
      "id": "B",
      "type": "anomaly",
      "description": "entrance 区域的运动传感器或接触传感器存在故障（如粘连、误报），导致无法准确反映人员进出或门窗状态，可能存在安全隐患。"
    }
  ],
  "step3_verification": [
    {
      "hypothesis": "A",
      "supporting": [
        "在 07:10:30 和 08:32:03 等时间点，DoorContact 从 False 变为 True 的同时，Occupancy 迅速变为 1 或保持 1，且后续有室内灯光/空调开启等正常活动，符合住户进屋逻辑。",
        "在 22:20:31 出门时，DoorContact 变为 True，随后 LockOperation 自动上锁，整个过程连贯无矛盾。",
        "大部分时间点的 Occupancy 变化与 DoorContact 变化在时间轴上是匹配的（人进屋→门开→Occupancy=1；人出屋→门关→Occupancy=0）。"
    ],
    {
      "hypothesis": "B",
      "supporting": [
        "在 16:23:02 记录到 DoorContact=False（门开），但在随后的 3 秒内（直到 16:23:08）没有记录到 Contact=True（关门），尽管 Occupancy 显示为 1。这可能是因为用户推门进入后未及时完全关闭，或者传感器响应滞后，但考虑到后续有 Occupancy=1 持续很久，不能直接判定为故障。",
        "日志中未发现明确的'传感器卡死'（连续长时间数值不变）或'报警事件'（如 DoorLockAlarm）。"
    ]
  ],
  "step4_causal": [
    "正常因果：住户打开入户门 (front_door_contact=False) → 玄关运动传感器触发 (entrance_occupancy=1) → 系统允许进入。",
    "正常因果：住户进入并关上门 (front_door_contact=True) → 系统检测到无人 (entrance_occupancy=0)。",
    "正常关联：前门锁定操作成功 (LockState=1) 且门传感器显示关闭 (True)，表明安防系统工作正常。",
    "无明显异常关联：未发现‘门已关闭但传感器仍显示打开’或‘无人却持续显示有人’的矛盾情况。"
  ],
  "step5_assessment": {
    "most_likely_hypothesis": "A",
    "confidence": "high",
    "severity": "none",
    "false_positive_risk": "低。日志中的短暂数据缺失（如 16:23:02 后的关门信号延迟）更可能是用户行为（推门慢）而非硬件故障。所有关键的安全事件（锁门、报警）均未出现矛盾。"
  },
  "step6_decision": {
    "is_anomaly": false,
    "threat_type": "none",
    "threat_description": "entrance 区域传感器工作状态正常，未见明显故障或安全威胁。",
    "recommended_actions": []
  }
}