{
  "added_at": "2026-11-08",
  "additional_evidence_urls": [
    "https://github.com/kerosix/foobot-local/blob/043bfb8dba794bc829ef6f650ce905bdfbb4ac7c/docs/PROTOCOL.md",
    "https://github.com/kerosix/foobot-local/blob/043bfb8dba794bc829ef6f650ce905bdfbb4ac7c/docs/WIFI.md"
  ],
  "category": "reconstruction-cases",
  "class": "hardware",
  "description_en": "foobot-local reconstructs Foobot communication so the air-quality monitor can send readings to a local service. It documents MQTT topics, a UDP AT configuration channel and Wi-Fi provisioning recovered from the official APK; the Python service decodes readings and computes a pollution index.",
  "description_zh": "foobot-local 重建 Foobot 空气质量监测器的通信流程，使设备向本地服务发送读数。项目记录 MQTT 主题、UDP AT 配置通道，以及从官方 APK 反编译还原的 Wi-Fi 配网流程；Python 服务负责解码读数并计算污染指数。",
  "entry_url": "https://awesomerea.org/resources/foobot-local-case/",
  "entry_url_zh": "https://awesomerea.org/zh/resources/foobot-local-case/",
  "evidence_class": 2,
  "evidence_status": "observed",
  "evidence_url": "https://github.com/kerosix/foobot-local/blob/043bfb8dba794bc829ef6f650ce905bdfbb4ac7c/README.md",
  "group": "cases",
  "id": "foobot-local-case",
  "json_url": "https://awesomerea.org/resources/foobot-local-case/record.json",
  "kind": "case-study",
  "markdown_url": "https://awesomerea.org/resources/foobot-local-case/index.md",
  "markdown_url_zh": "https://awesomerea.org/zh/resources/foobot-local-case/index.md",
  "name": "foobot-local: local Foobot service and reconstructed protocols",
  "name_zh": "foobot-local：Foobot 本地服务与协议重建",
  "record_type": "resource",
  "relationship": "independent-reconstruction",
  "requirement_facets": [
    "prerequisites",
    "limits",
    "limits",
    "license"
  ],
  "requirements": [
    "A Foobot and an always-on Linux host on the same LAN, with Python 3 and dnsmasq or another configurable DNS service.",
    "The calibration constants were derived from one device; other units may need their own calibration.",
    "The device computes its ring colour from thresholds that the project has not captured.",
    "MIT license."
  ],
  "requirements_zh": [
    "需要 Foobot 设备，以及位于同一局域网、持续运行的 Linux 主机；主机需安装 Python 3 和 dnsmasq 或其他可配置的 DNS 服务。",
    "校准常数来自一台设备；其他设备可能需要重新校准。",
    "设备根据阈值计算灯环颜色，项目尚未获取这些阈值。",
    "采用 MIT 许可证。"
  ],
  "scope": "unknown",
  "targets": [
    "protocol"
  ],
  "url": "https://github.com/kerosix/foobot-local",
  "verification": "source-reviewed",
  "verified_at": "2026-11-06"
}
