Skip to content

Repository files navigation

LG AC Smart Diagnosis Local

Current version: 1.3.0 · Read the release notes

LG AC Smart Diagnosis Local desktop website

An unofficial, fully local replacement for the discontinued LG A/C Smart Diagnosis Android app.

Listen to the diagnosis tones from an LG air conditioner with an iPhone or computer, verify the LG packet, and see the result in a clean one-page website. No account, cloud upload, telemetry, or internet connection is required after setup.

What it does

  • Requests microphone permission when the website opens.
  • Uses one large Start listening button.
  • Finds LG's acoustic sync signal and stops automatically after the complete packet.
  • Corrects the acoustic bitstream with LG's recursive FEC method.
  • Accepts a result only after LG's CRC matches.
  • Shows temperatures, mode, fan command, compressor state/frequency, current, voltages, fan speed, and EEV pulses.
  • Decodes existing PCM WAV files with Upload recording.
  • Saves the original WAV and a PNG result screenshot together.
  • Displays a desktop QR code for opening the website on an iPhone.
  • Works entirely on the local network.

Verified model and accuracy

The decoder has been verified with real recordings from an LG RS-Q19ENZE (2023 split AC), including recordings made close to the indoor unit and from farther away.

The website displays the exact values carried by the validated LG packet. For example, input current is transmitted in 0.1 A steps, so 2.0 A is the exact packet value but not a hidden hundredths-level measurement.

Other LG models may use compatible packets, but they have not all been physically tested. Please open an issue with a recording and model number if you test another model.

Start on Windows

Requirements

  • Windows 10 or Windows 11
  • Python 3.11 or newer from python.org
  • The computer and iPhone connected to the same private Wi-Fi network

Run the website

  1. Download this repository and extract it.
  2. Open PowerShell inside the extracted folder.
  3. Run:
powershell -ExecutionPolicy Bypass -File .\start.ps1

The first run creates a private Python environment, installs the pinned dependencies, and creates a local HTTPS certificate. Later runs reuse those files.

The terminal prints two addresses:

PC:     https://localhost:8443
iPhone: https://<your-computer-LAN-IP>:8443

Keep the PowerShell window open while using the website. If Windows Firewall asks, allow access on Private networks only.

First-time iPhone certificate setup

iPhone microphone access requires HTTPS. The project creates its own local certificate authority so the audio never needs a public web server.

  1. Start the project once so the certs folder is created.
  2. Open a second PowerShell window in the project folder.
  3. Run:
powershell -ExecutionPolicy Bypass -File .\scripts\serve_ca.ps1
  1. On the iPhone, open the printed http://<LAN-IP>:8080/lg-ac-local-ca.cer address in Safari.
  2. Allow the profile download.
  3. Open Settings → General → VPN & Device Management and install the profile.
  4. Open Settings → General → About → Certificate Trust Settings and enable full trust for LG AC Local CA.
  5. Stop the temporary certificate server with Ctrl+C.
  6. Open the desktop website and scan its iPhone QR code.

The private CA key remains inside the ignored local certs folder and is never included in this repository. If the computer's LAN IP changes, rerun scripts\setup_https.ps1 and restart the server.

Diagnose the air conditioner

  1. Put the indoor unit into LG Smart Diagnosis/service diagnosis mode according to its manual.
  2. Open the website on the iPhone and allow microphone access.
  3. Tap Start listening.
  4. Start the AC diagnosis tones.
  5. Keep the phone near the indoor unit until the website stops automatically.
  6. Review the CRC-verified result.
  7. Tap Save result to store the original audio and result screenshot on the PC.

You can also tap Upload recording and select an existing PCM WAV file. Uploaded WAV bytes are preserved unchanged.

Saved diagnosis history

The default Windows folder is:

Documents\LG AC DIGNOSIS LOCALWEBSITE\DAIGNOES HISTORY\
└─ YYYY-MM-DD\
   └─ hh-mm-ss AM or PM\
      ├─ Original Audio.wav
      └─ Result Screenshot.png

Every save receives its own AM/PM time folder. If two saves happen during the same second, the later folders receive (2), (3), and so on.

Example decoded result screenshot

Change the save folder

Open settings.json in Notepad. Its default content is:

{
  "save_folder": ""
}

An empty value uses the default Documents history folder. To choose another location, enter an absolute path and use doubled backslashes:

{
  "save_folder": "D:\\LG AC Diagnosis History"
}

Save the file and restart start.ps1. The application creates the folder automatically.

Advanced users can temporarily override the setting in PowerShell:

$env:LG_AC_SAVE_DIR = 'D:\LG AC Diagnosis History'
.\start.ps1

The LG_AC_SAVE_DIR environment variable takes priority over settings.json.

Run the tests

.\.venv\Scripts\python.exe -m pip install -r requirements-dev.txt
.\.venv\Scripts\python.exe -m pytest -q

The test suite covers CRC, recursive FEC, audio synthesis/decoding, API persistence, exact uploaded-audio preservation, and same-second history folder handling.

macOS and Linux

Python 3 is required:

./scripts/setup_https.sh
./start.sh

The website and decoder are cross-platform, although the supplied iPhone certificate-installation steps and save-folder examples focus on Windows.

Project layout

backend/       FastAPI server, streaming capture, persistence, QR generation
decoder/       LG packet, FEC, CRC, thermistor, and audio decoder
frontend/      One-page microphone/upload/result website
scripts/       Local HTTPS certificate setup and CA bootstrap helpers
tests/         Decoder and API verification
docs/          Protocol notes, research notes, and repository images
settings.json  User-editable diagnosis history location

The repository deliberately excludes generated certificates/private keys, recordings, saved results, APK files, decompiled app evidence, virtual environments, and local reports.

Technical notes

  • 8-FSK acoustic symbols
  • 4-symbol packet synchronization
  • Recursive systematic convolutional decoding with 0x13 feedback and 0x1D parity
  • Four terminating bits
  • Native LG CRC validation
  • Fixed user and service packet lengths

See the acoustic protocol notes for the detailed signal and packet model.

Privacy and network safety

  • Audio and results remain on the computer and local network.
  • There are no cloud requests, accounts, analytics, or telemetry.
  • Do not port-forward ports 8443 or 8080 to the internet.
  • Use the temporary port 8080 certificate server only for installing the public CA certificate, then stop it.
  • Keep the generated certs folder private.
  • On shared Wi-Fi, set the optional LG_AC_PIN environment variable before starting the server.

Disclaimer

This is an independent community project and is not affiliated with or endorsed by LG Electronics. LG and product names are trademarks of their respective owners. Use it as a diagnostic aid, not as a substitute for qualified electrical or refrigeration service.

License

MIT License. You may use, copy, modify, and share the source code. See LICENSE.

About

Offline LG AC Smart Diagnosis decoder for desktop and iPhone: local acoustic capture, CRC/FEC verification, audio history, and result screenshots.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages