{
  "added_at": "2026-10-18",
  "additional_evidence_urls": [
    "https://github.com/umarz317/TCLimate/blob/2a33c2013dbf3f297238131ca9eb6e287b2beb67/README.md",
    "https://github.com/umarz317/TCLimate/blob/2a33c2013dbf3f297238131ca9eb6e287b2beb67/Docs/Releases/v0.1.6.md",
    "https://github.com/umarz317/TCLimate/blob/2a33c2013dbf3f297238131ca9eb6e287b2beb67/Package.swift",
    "https://github.com/umarz317/TCLimate/blob/2a33c2013dbf3f297238131ca9eb6e287b2beb67/Scripts/build-app.sh",
    "https://github.com/umarz317/TCLimate/blob/2a33c2013dbf3f297238131ca9eb6e287b2beb67/Sources/TCLCore/ACControls.swift",
    "https://github.com/umarz317/TCLimate/blob/2a33c2013dbf3f297238131ca9eb6e287b2beb67/Sources/TCLCore/CloudClient.swift",
    "https://github.com/umarz317/TCLimate/blob/2a33c2013dbf3f297238131ca9eb6e287b2beb67/Sources/TCLCore/EnergyReport.swift",
    "https://github.com/umarz317/TCLimate/blob/2a33c2013dbf3f297238131ca9eb6e287b2beb67/Sources/TCLMenuBar/AppStore.swift",
    "https://github.com/umarz317/TCLimate/blob/2a33c2013dbf3f297238131ca9eb6e287b2beb67/LICENSE",
    "https://github.com/umarz317/TCLimate/blob/2a33c2013dbf3f297238131ca9eb6e287b2beb67/THIRD_PARTY_NOTICES.md",
    "https://github.com/nemesa/ha-tcl-home-unofficial-integration/blob/fdba4d7a0b8213f4f68a74b4ce0f932343802b6b/LICENSE"
  ],
  "category": "reconstruction-cases",
  "description_en": "Implements selected TCL Home air-conditioner controls and electricity reporting in a native macOS menu-bar app. It adapts earlier community protocol work and documents an Android-module investigation to recover a separate statistics request. Reported validation checks cloud state, not independent physical operation or complete device equivalence.",
  "description_zh": "在原生 macOS 菜单栏应用中实现选定的 TCL Home 空调控制与用电量报告。项目改编既有社区协议实现，并记录通过调查 Android 模块恢复另一条统计请求的过程。报告的验证检查云端状态，不等于独立核实设备实际运行或完整设备等价性。",
  "entry_url": "https://awesomerea.org/resources/tclimate-cloud-controls-case/",
  "entry_url_zh": "https://awesomerea.org/zh/resources/tclimate-cloud-controls-case/",
  "evidence_url": "https://github.com/umarz317/TCLimate/blob/2a33c2013dbf3f297238131ca9eb6e287b2beb67/Docs/Investigation.md",
  "group": "cases",
  "id": "tclimate-cloud-controls-case",
  "json_url": "https://awesomerea.org/resources/tclimate-cloud-controls-case/record.json",
  "kind": "case-study",
  "markdown_url": "https://awesomerea.org/resources/tclimate-cloud-controls-case/index.md",
  "markdown_url_zh": "https://awesomerea.org/zh/resources/tclimate-cloud-controls-case/index.md",
  "name": "TCLimate: reconstructing selected TCL Home cloud controls",
  "name_zh": "TCLimate：重建选定的 TCL Home 云端控制",
  "record_type": "resource",
  "relationship": "independent-reconstruction",
  "requirement_facets": [
    "prerequisites",
    "attribution",
    "scope",
    "testing",
    "scope",
    "license"
  ],
  "requirements": [
    "Reviewed v0.1.6 beta requires macOS 14+, internet access and a TCL account with already-paired ACs. Building needs Swift 6.0+, Xcode Command Line Tools and a persistent signing certificate for the packaged app. Pairing still uses TCL Home; local LAN control and direct Google sign-in are absent.",
    "The protocol implementation credits nemesa’s MIT-licensed Home Assistant integration. The electricity API was reportedly identified through Android Flutter-module inspection and a successful request capture; original packages, captures and detailed investigation logs are not included in the repository.",
    "Source guards commands using reported model/state fields, restricts target temperature to whole degrees from 16–30°C, and checks reported state after sending. Unsuccessful confirmation is marked. Extra controls depend on available fields and modes.",
    "Author validation covers a Pakistan account and two Split AC-1 units: authentication, discovery, reported state, power, temperature and daily electricity. Modes, fan, airflow and other optional controls lack physical validation; other regions/models remain unverified.",
    "Energy parsing preserves genuine zeros, excludes invalid readings and leaves missing days as gaps; a seven-day total requires all seven readings. No persistent energy history or cost estimate is implemented. Offline tests are reported but absent from the reviewed tree/package targets.",
    "MIT covers project code, with attribution retained for the earlier integration. Official services and third-party material retain separate terms. This is an unofficial cloud-dependent client, not recovered TCL source or firmware; APIs may change independently of the app."
  ],
  "requirements_zh": [
    "审阅版本为 v0.1.6 beta，需要 macOS 14+、互联网连接及已配对空调的 TCL 账号。构建需要 Swift 6.0+、Xcode Command Line Tools，以及供应用打包使用的固定签名证书。配对仍通过 TCL Home 完成；未实现局域网控制或直接使用 Google 登录。",
    "协议实现明确归功于 nemesa 的 MIT 许可 Home Assistant 集成。文档报告通过检查 Android Flutter 模块及一次成功请求的抓包确定用电量 API；原始安装包、抓包及详细调查日志未收录在仓库中。",
    "源码根据设备上报的型号／状态字段限制命令，将目标温度限定为 16–30°C 的整数，并在发送后核对上报状态。未确认的命令会被标记。额外控制项取决于可用字段与模式。",
    "作者验证覆盖一个巴基斯坦账号和两台 Split AC-1：认证、发现、上报状态、电源、温度及每日用电量。模式、风速、风向和其他可选控制缺少实物验证；其他地区／型号仍未经验证。",
    "用电量解析保留真实零值、排除无效读数，并将缺失日期留为空缺；七日总量需具备全部七天的读数。未实现持久用电历史或费用估算。文档报告了离线测试，但所审阅文件树／包目标未包含这些测试。",
    "MIT 覆盖项目代码，并保留既有集成的署名。官方服务及第三方材料保留各自条款。这是依赖云端的非官方客户端，并非恢复 TCL 源码或固件；API 可独立于应用发生变化。"
  ],
  "targets": [
    "app",
    "protocol"
  ],
  "url": "https://github.com/umarz317/TCLimate",
  "verification": "source-reviewed",
  "verified_at": "2026-10-18"
}
