reverse-engineered client for the LG SmartThinQ API
:warning: New users of LG SmartThinq: This library only works with v1 of the LG SmartThinq API. Work is currently underway to support the v2 API, and the discussion can be found here. If you recently created a LG SmartThinq account, this library will likely return 0 devices when you execute the
A library for interacting with the "LG SmartThinq" system, which can control heat pumps and such. I reverse-engineered the API from their mobile app.
To try out the API, there is a simple command-line tool included here, called
example.py. To use it, provide it with a country and language code via the
$ python3 example.py -c US -l en-US
LG accounts seem to be associated with specific countries, so be sure to use the one with which you originally created your account. For Korean, for example, you'd use
-c KR -l ko-KR.
On first run, the script will ask you to log in with your LG account. Logging in with Google does not seem to work, but other methods (plain email & password, Facebook, and Amazon) do.
By default, the example just lists the devices associated with your account. You can also specify one of several other commands:
ls: List devices (the default).
mon: Monitor a device continuously, printing out status information until you type control-C. Provide a device ID obtained from listing your devices.
mon, but only for AC devices---prints out specific climate-related information in a more readable form.
set-temp: Set the target temperature for an AC or refrigerator device.
set-temp-freezer: Set the target freezer temperature for a refrigerator.
turn: Turn an AC device on or off. Use "on" or "off" as the second argument.
ac-config: Print out some configuration information about an AC device.
This project uses the Black code formatting tool. Before submitting pull requests, please run Black to ensure consistent formatting.
If you like, you can install a git hook to automatically run Black and flake8 every time you commit. Install the pre-commit tool and type
pre-commit installto use it.