Case study
TCLimate: reconstructing selected TCL Home cloud controls
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.
Requirements and limitations
- 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. The inspected repository does not establish the collection report’s REA/mitmproxy attribution.
- Source guards commands using reported model/state fields, restricts target temperature to whole degrees from 16–30°C, and checks reported state after sending. Optimistic UI changes are not themselves confirmation; unsuccessful confirmation is marked. Extra controls depend on available fields and modes, rather than assuming every AC supports them.
- 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. Cloud confirmation does not independently establish airflow or compressor operation.
- 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. This source review did not run tests or devices.
- 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.
About this entry
- Type
- Case study
- Category
- Independent reconstruction cases
- Relationship
- Independent reconstruction project
- Targets
- App · Protocol
Sources reviewed
The description was reviewed against primary sources. This does not establish runtime testing, security auditing or verified compatibility.
Primary sources
- Docs/Investigation.md GitHub · umarz317/TCLimate · Revision 2a33c20
- README.md GitHub · umarz317/TCLimate · Revision 2a33c20
- Docs/Releases/v0.1.6.md GitHub · umarz317/TCLimate · Revision 2a33c20
- Package.swift GitHub · umarz317/TCLimate · Revision 2a33c20
- Scripts/build-app.sh GitHub · umarz317/TCLimate · Revision 2a33c20
- Sources/TCLCore/ACControls.swift GitHub · umarz317/TCLimate · Revision 2a33c20
- Sources/TCLCore/CloudClient.swift GitHub · umarz317/TCLimate · Revision 2a33c20
- Sources/TCLCore/EnergyReport.swift GitHub · umarz317/TCLimate · Revision 2a33c20
- Sources/TCLMenuBar/AppStore.swift GitHub · umarz317/TCLimate · Revision 2a33c20
- LICENSE GitHub · umarz317/TCLimate · Revision 2a33c20
- THIRD_PARTY_NOTICES.md GitHub · umarz317/TCLimate · Revision 2a33c20
- LICENSE GitHub · nemesa/ha-tcl-home-unofficial-integration · Revision fdba4d7