[RELEASE] ThinQ Connect Integration (Official API) for Hubitat

Devices currently there are from the old integration app. We added a dryer 6 months after the others were setup and only that was "new' to this code. None of the devices in the new (this thread) app show up in Alexa after selecting them in the Echo Skill. I just removed the old devices and renamed the existing LG skill devices and they still don't show up from hubitat.

ETA: Ok, on this one, I'm an idiot. I migrated hubs and needed to disable/enable the skill in Alexa.

I added "Get Device Profile". Can you click that and "Refresh", and paste the debug logs for both. I wonder that data does the new API sends for your Oven.

Get Device Profile
app:17272025-10-13 05:44:16.863 PM

debug

ThinQ Connect Integration apiGet(/devices/98ad7844a938019fea54be19f56666ddc30ce898520a4b9969afee08d4c841cb/profile, [extensionProperty:[info:[type:SINGLE]], notification:[push:[ERROR_HAS_OCCURRED, PREHEATING_IS_COMPLETE, TIME_TO_CLEAN, COOKING_IS_COMPLETE]], property:[[cook:[cookMode:[mode:[r, w], type:enum, value:[r:[BAKE, ROAST, CONVECTION_BAKE, CONVECTION_ROAST, CRISP_CONVECTION, OTHERS], w:[BAKE, CONVECTION_BAKE, CONVECTION_ROAST]]]], location:[locationName:UPPER], operation:[ovenOperationMode:[mode:[w], type:enum, value:[w:[PREHEATING, START, STOP]]]], remoteControlEnable:[remoteControlEnabled:[mode:[r], type:boolean, value:[r:[false, true]]]], runState:[currentState:[mode:[r], type:enum, value:[r:[PREHEATING, CLEANING, INITIAL, DONE, COOLING, COOKING_IN_PROGRESS, CLEANING_IS_DONE, PAUSED, PREHEATING_IS_DONE]]]], temperature:[[targetTemperature:[mode:[r, w], type:range, value:[r:[max:285, min:80, step:1], w:[max:285, min:80, step:1]]], unit:C], [targetTemperature:[mode:[r, w], type:range, value:[r:[max:550, min:170, step:5], w:[max:550, min:170, step:5]]], unit:F]], timer:[remainHour:[mode:[r], type:number], remainMinute:[mode:[r], type:number], remainSecond:[mode:[r], type:number], targetHour:[mode:[w], type:number], targetMinute:[mode:[w], type:number], timerHour:[mode:[w], type:number], timerMinute:[mode:[w], type:number]]]]])

Refresh
dev:15932025-10-13 05:46:24.638 PM

info

Oven CurrentState: INITIAL, Switch: on

dev:15932025-10-13 05:46:24.636 PM

debug

Oven processStateData([[cook:[cookMode:OTHERS], location:[locationName:UPPER], remoteControlEnable:[remoteControlEnabled:false], runState:[currentState:INITIAL], temperature:[targetTemperature:0, unit:F], timer:[remainHour:0, remainMinute:0, remainSecond:0]]])

app:17272025-10-13 05:46:24.632 PM

debug

ThinQ Connect Integration apiGet(/devices/98ad7844a938019fea54be19f56666ddc30ce898520a4b9969afee08d4c841cb/state, [[cook:[cookMode:OTHERS], location:[locationName:UPPER], remoteControlEnable:[remoteControlEnabled:false], runState:[currentState:INITIAL], temperature:[targetTemperature:0, unit:F], timer:[remainHour:0, remainMinute:0, remainSecond:0]]])

app:17272025-10-13 05:46:24.128 PM

debug

ThinQ Connect Integration apiGet(/devices/98ad7844a938019fea54be19f56666ddc30ce898520a4b9969afee08d4c841cb/state)

dev:15932025-10-13 05:46:24.124 PM

debug

Oven refresh()

I think their new API just doesn't properly include the information for the rangetop or is incorrectly identifying the model. Looking at the d.meglio device driver, none of the attributes are in the debug output, but I'm uncertain if this is just because they are not in your driver? FWIW, only the "frontRightState" is now the only thing being reported for any burner that is on (old driver/app) since they dumbed it down. Shame that it used to show every single burner FL/RL/Center/FR/RR.

Granted, I understand 5% of what I'm looking at here, but I am wondering if this section is something that should be included?

I DO appreciate your looking into this.

extensionProperty object
info object

Information
type string

Enum: "SINGLE" "COMBI" "DOUBLE_UL" "DOUBLE_LR"

Value Description


SINGLE Single Oven
COMBI Combination Ovens
DOUBLE_UL Double Ovens(Upper/Lower)
DOUBLE_LR Double Ovens(Left/Right)|

Sorry I have been MIA. I have been working pretty much everyday and just did not have the time to look at this. Finally did today. I reloaded the driver. Here is what is not working:

Setting the Temperature is working but I need to enter it in Celsius. Then I found on the Preferences page a toggle to use Fahrenheit. It was enabled but I went ahead and toggled it of then on again and now I can set temp in Fahrenheit. The Current Stats though still report temperatures in Celsius.

Delay Start and Delay Stop. These are the errors when doing that:
dev:2722025-11-05 15:47:44.107

error

java.lang.UnsupportedOperationException: Cannot use intdiv() on this number type: java.math.BigDecimal with value: 1 on line 608 (method setDelayStart)

dev:2722025-11-05 15:51:04.835

error

java.lang.UnsupportedOperationException: Cannot use intdiv() on this number type: java.math.BigDecimal with value: 60 on line 621 (method setDelayStop)

Here is the App log:
app:6902025-11-05 17:21:47.302

debug

ThinQ Connect Integration API POST success: 200 - [messageId:ed94d32890ad4d2ab38c24, response:[:], timestamp:2025-11-06T01:21:47.016689]

app:6902025-11-05 17:21:46.879

debug

ThinQ Connect Integration apiPost(/event/59696a4f6fbcd1e91d57903995a5a258fec0ea37c71ef35008d7bd3fdbccc3aa/subscribe, [expire:[unit:HOUR, timer:4464]])

app:6902025-11-05 17:21:46.876

debug

ThinQ Connect Integration API POST success: 200 - [messageId:1fd07619a82d4f99821808, response:[:], timestamp:2025-11-06T01:21:46.551254]

app:6902025-11-05 17:21:46.446

debug

ThinQ Connect Integration apiPost(/event/e4021498e5c0aacbf4fcac803f75c2ca85f3177419bd074ca206ba2b7d74f097/subscribe, [expire:[unit:HOUR, timer:4464]])

app:6902025-11-05 17:21:46.440

debug

ThinQ Connect Integration registerPushNotifications()

app:6902025-11-05 17:21:46.355

debug

ThinQ Connect Integration apiGet(/devices/59696a4f6fbcd1e91d57903995a5a258fec0ea37c71ef35008d7bd3fdbccc3aa/state, [airConJobMode:[currentJobMode:ENERGY_SAVING], airFlow:[windStrength:HIGH], filterInfo:[filterLifetime:0, usedTime:250], operation:[airConOperationMode:POWER_OFF], runState:[currentState:NORMAL], temperature:[currentTemperature:19, targetTemperature:22, unit:C], temperatureInUnits:[[currentTemperature:19, targetTemperature:22, unit:C], [currentTemperature:66, targetTemperature:72, unit:F]], timer:[relativeStartTimer:UNSET, relativeStopTimer:UNSET]])

app:6902025-11-05 17:21:45.996

debug

ThinQ Connect Integration apiGet(/devices/59696a4f6fbcd1e91d57903995a5a258fec0ea37c71ef35008d7bd3fdbccc3aa/state)

app:6902025-11-05 17:21:45.994

debug

ThinQ Connect Integration getDeviceStatus(59696a4f6fbcd1e91d57903995a5a258fec0ea37c71ef35008d7bd3fdbccc3aa)

app:6902025-11-05 17:21:45.949

debug

ThinQ Connect Integration apiGet(/devices/e4021498e5c0aacbf4fcac803f75c2ca85f3177419bd074ca206ba2b7d74f097/state, [airConJobMode:[currentJobMode:ENERGY_SAVING], airFlow:[windStrength:HIGH], filterInfo:[filterLifetime:153, usedTime:97], operation:[airConOperationMode:POWER_OFF], runState:[currentState:NORMAL], temperature:[currentTemperature:20, targetTemperature:22, unit:C], temperatureInUnits:[[currentTemperature:20, targetTemperature:22, unit:C], [currentTemperature:68, targetTemperature:72, unit:F]], timer:[relativeStartTimer:UNSET, relativeStopTimer:UNSET]])

app:6902025-11-05 17:21:45.601

debug

ThinQ Connect Integration apiGet(/devices/e4021498e5c0aacbf4fcac803f75c2ca85f3177419bd074ca206ba2b7d74f097/state)

app:6902025-11-05 17:21:45.599

debug

ThinQ Connect Integration getDeviceStatus(e4021498e5c0aacbf4fcac803f75c2ca85f3177419bd074ca206ba2b7d74f097)

app:6902025-11-05 17:21:45.567

debug

ThinQ Connect Integration cleanupChildDevices()

app:6902025-11-05 17:21:45.565

debug

ThinQ Connect Integration initialize()

app:6902025-11-05 17:21:45.529

debug

ThinQ Connect Integration updated()

app:6902025-11-05 17:21:43.308

debug

ThinQ Connect Integration [deviceId:59696a4f6fbcd1e91d57903995a5a258fec0ea37c71ef35008d7bd3fdbccc3aa, deviceInfo:[alias:Livingroom Air Conditioner, deviceType:DEVICE_AIR_CONDITIONER, modelName:WIN_056905_WW, reportable:true]]

app:6902025-11-05 17:21:43.304

debug

ThinQ Connect Integration [deviceId:e4021498e5c0aacbf4fcac803f75c2ca85f3177419bd074ca206ba2b7d74f097, deviceInfo:[alias:Jeremy's Air Conditioner, deviceType:DEVICE_AIR_CONDITIONER, modelName:WIN_056905_WW, reportable:true]]

app:6902025-11-05 17:21:43.292

debug

ThinQ Connect Integration apiGet(/devices, [[deviceId:e4021498e5c0aacbf4fcac803f75c2ca85f3177419bd074ca206ba2b7d74f097, deviceInfo:[alias:Jeremy's Air Conditioner, deviceType:DEVICE_AIR_CONDITIONER, modelName:WIN_056905_WW, reportable:true]], [deviceId:59696a4f6fbcd1e91d57903995a5a258fec0ea37c71ef35008d7bd3fdbccc3aa, deviceInfo:[alias:Livingroom Air Conditioner, deviceType:DEVICE_AIR_CONDITIONER, modelName:WIN_056905_WW, reportable:true]]])

app:6902025-11-05 17:21:43.139

debug

ThinQ Connect Integration apiGet(/devices)

app:6902025-11-05 17:21:43.137

debug

ThinQ Connect Integration getDevices()

app:6902025-11-05 17:21:39.684

debug

ThinQ Connect Integration apiGet(/route, [apiServer:https://api-aic.lgthinq.com, mqttServer:mqtts://a3phael99lf879-ats.iot.us-west-2.amazonaws.com:8883, webSocketServer:wss://a3phael99lf879-ats.iot.us-west-2.amazonaws.com:443/mqtt])

app:6902025-11-05 17:21:39.578

debug

ThinQ Connect Integration apiGet(/route)

app:6902025-11-05 17:21:39.577

debug

ThinQ Connect Integration getMqttServerFromApi()

app:6902025-11-05 17:21:37.128

debug

ThinQ Connect Integration apiGet(/devices, [[deviceId:e4021498e5c0aacbf4fcac803f75c2ca85f3177419bd074ca206ba2b7d74f097, deviceInfo:[alias:Jeremy's Air Conditioner, deviceType:DEVICE_AIR_CONDITIONER, modelName:WIN_056905_WW, reportable:true]], [deviceId:59696a4f6fbcd1e91d57903995a5a258fec0ea37c71ef35008d7bd3fdbccc3aa, deviceInfo:[alias:Livingroom Air Conditioner, deviceType:DEVICE_AIR_CONDITIONER, modelName:WIN_056905_WW, reportable:true]]])

app:6902025-11-05 17:21:36.629

debug

ThinQ Connect Integration apiGet(/devices)

app:6902025-11-05 17:21:36.622

debug

ThinQ Connect Integration testApiConnection()

app:6902025-11-05 17:15:06.882

debug

ThinQ Connect Integration processMqttMessage(Jeremy's Air Conditioner, [deviceId:e4021498e5c0aacbf4fcac803f75c2ca85f3177419bd074ca206ba2b7d74f097, deviceType:DEVICE_AIR_CONDITIONER, pushType:DEVICE_STATUS, report:[temperature:[currentTemperature:20, unit:C], temperatureInUnits:[[currentTemperature:20, unit:C], [currentTemperature:68, unit:F]]], serviceId:40de70e488a1891a475039f6, userList:[US2107190938841]])

app:6902025-11-05 17:06:10.339

debug

ThinQ Connect Integration processMqttMessage(Jeremy's Air Conditioner, [deviceId:59696a4f6fbcd1e91d57903995a5a258fec0ea37c71ef35008d7bd3fdbccc3aa, deviceType:DEVICE_AIR_CONDITIONER, pushType:DEVICE_STATUS, report:[temperature:[currentTemperature:19, unit:C], temperatureInUnits:[[currentTemperature:19, unit:C], [currentTemperature:66, unit:F]]], serviceId:40de70e488a1891a475039f6, userList:[US2107190938841]])

I’m having issue where the app is finding just washtower and not two separate devices so not showing on device list. Is it possible to fix this?


I opened a new issue for this : Add support for DEVICE_WASHTOWER · Issue #2 · jonozzz/hubitat-thinqconnect · GitHub

1 Like

I have a Washtower and the current app has been working for me. I even moved the integration from one of my hubs to the other and back again over the past few weeks and it found both devices every time. It does default to calling one of them "Washtower"... IIRC the washer gets named Washer and the dryer gets named Washtower when I first set it up.

I think different models work differently. In my case the api just returns one device with the data for both washer and dryer. The code needs DEVICE_WASHTOWER and needs to create two child devices. @jonozz I used Claude to create some adjustments but not sure fully working correctly. I’ll comment it GitHub issue when get a chance.

I wonder if yours is a newer model that's using the DEVICE_WASHTOWER type. I also have a tower that returns 2 types of devices like @Alan_F mentioned.

Thats a good start with Claude, I'd have to do the same, otherwise it's hard for me to test all actions/properties without having access to a real device.

Added a pull request in github. Seems to work ok for me now.