ssut / wideq-js

A Node.JS(TypeScript) port of wideq, a reverse-engineered client for the LG SmartThinQ API
https://ssut.github.io/wideq-js/
MIT License
18 stars 7 forks source link

WideQ

npm version Build Status

A Node.JS port of wideq.

# To get started
$ npm install wideq

Why WideQ.js

wideq.js is a pure javascript rewrite of the original wideq library (written in Python). It has a great support for working with SmartThinQ devices, but I wanted to connect it to HomeBridge without python processes, so this is why I've created wideq.js.

Highlights

CLI Usage

$ wideq
Usage: WideQJS [options] [command]

Options:
  -v, --version            output the version number
  -c, --country <type>     Country code for account (default: "US")
  -l, --language <type>    Language code for account (default: "en-US")
  -t, --token <type>       Refresh token (optional)
  -s, --state-path <type>  State file path (default: "wideq-state.json")
  -h, --help               output usage information

Commands:
  auth                     Authenticate
  ls                       List devices
  monitor <deviceId>       Monitor any device, displaying generic information about its status.

$ wideq ls
00000000-0000-0000-0000-000000000000: 제습기 (DEHUMIDIFIER DHUM_056905_WW)

$ wideq monitor 00000000-0000-0000-0000-000000000000
polling...
no status
polling...
no status
polling...
- mode: @AP_MAIN_MID_OPMODE_SMART_DEHUM_W
- windStrength: @AP_MAIN_MID_WINDSTRENGTH_DHUM_HIGH_W
- isAirRemovalOn: true
- targetHumidity: 50
- currentHumidity: 50
- isOn: true

Implementation Status

Device Implementation Status Control
Dehumidifier :heavy_check_mark: :heavy_check_mark: :heavy_check_mark:
AC :heavy_check_mark: :warning: needs testing :warning: needs testing
Refrigerator :heavy_check_mark: :heavy_check_mark: :heavy_check_mark:
Dishwasher :heavy_check_mark: :warning: needs testing :x:
Dryer :heavy_check_mark: :warning: needs testing :x:
Washer :heavy_check_mark: :warning: needs testing :x:

Credits

This is like a slightly modified(ported) version of wideq. Some APIs could be very different.