Open level99 opened 3 years ago
Looks like LG broke something. That is what they are sending back as the MQTT server to connect to. I'll try to figure out what they changed, but it might take a few days.
@dcmeglio Same here, just updated and the MQTT server is now: ssl://common-ats.iot.eic.lgthinq.com:8883 Doing a nslookup on this records is empty :-(
@dcmeglio, just has a small look at this issue and it look like the "-ats.iot" is no longer needed, it has cnames to the real servers:
❯ nslookup common.iot.eic.lgthinq.com
Server: 192.168.6.1
Address: 192.168.6.1#53
Non-authoritative answer:
common.iot.eic.lgthinq.com canonical name = a3phael99lf879-ats.iot.eu-west-1.amazonaws.com.
Name: a3phael99lf879-ats.iot.eu-west-1.amazonaws.com
Address: 52.214.111.159
Name: a3phael99lf879-ats.iot.eu-west-1.amazonaws.com
Address: 34.248.103.106
Name: a3phael99lf879-ats.iot.eu-west-1.amazonaws.com
Address: 52.214.177.3
Name: a3phael99lf879-ats.iot.eu-west-1.amazonaws.com
Address: 52.213.20.15
Name: a3phael99lf879-ats.iot.eu-west-1.amazonaws.com
Address: 18.203.11.44
Name: a3phael99lf879-ats.iot.eu-west-1.amazonaws.com
Address: 54.76.241.140
Name: a3phael99lf879-ats.iot.eu-west-1.amazonaws.com
Address: 52.215.9.95
Name: a3phael99lf879-ats.iot.eu-west-1.amazonaws.com
Address: 18.202.48.17
I have applied the below changes to the app but it still getting to cert errors :-( apps/ThinQ_Integration.groovy
@@ -191,12 +191,7 @@ def prefMain() {
state.thinq1Url = apiGatewayResult.thinq1Uri
state.empSpxUri = apiGatewayResult.empSpxUri
state.rtiUri = apiGatewayResult.rtiUri
- if (!mqttResult.mqttServer.contains("-ats.iot")) {
- def mqttServerParts = mqttResult.mqttServer.split(".iot.")
- state.mqttServer = mqttServerParts[0]+'-ats.iot.'+mqttServerParts[1]
- }
- else
- state.mqttServer = mqttResult.mqttServer
+ state.mqttServer = mqttResult.mqttServer
}
Errors event when using the ignoreSSLIssues param
Lost connection to MQTT, retrying in 15 seconds MqttException (0) - javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
Yeah I'm rather confused. It seemed like the fact that they added those CNAME records should resolve the issues. For example (you're in EU so the servers are different forme) if you hardcode state.mqttServer to = "a3phael99lf879-ats.iot.eu-west-1.amazonaws.com" I bet it works. But if we use the cname of common.iot.eic.lgthinq.com it does not work. I really don't understand what is wrong here but I'm not sure it's fixable if the ignoreSSLIssues makes no difference either...
Was checking to see if the host existed yet (it does not) and had a copy/paste error where I captured the extra char '/' and apparently that version exists... feels like some typo on LGs end when updating DNS ?
$ host common-ats.iot.aic.lgthinq.com Host common-ats.iot.aic.lgthinq.com not found: 3(NXDOMAIN)
$ host /common-ats.iot.aic.lgthinq.com /common-ats.iot.aic.lgthinq.com has address 3.95.113.154
The issue isn't that the host doesn't exist. The correct host is common.iot.aic.lgthinq.com which does exist. The problem is Hubitat won't accept the certificate when we use their new host. The Hubitat team is working on a fix. The fix requires a Hubitat change.
Also, no idea what that IP is that you posted but that is not the IP of their server.
Hi is there a fix for this?
I decided to change the log level to warn. Went into the application, changed the log level and clicked Next/Next/Done. Changed nothing else and the integration immediately stopped working. I now get errors in the log:
dev:3232021-07-13 02:42:06.319 pm warnDryer Lost connection to MQTT, retrying in 15 seconds MqttException (0) - java.net.UnknownHostException: common-ats.iot.aic.lgthinq.com app:3372021-07-13 02:42:00.487 pm errorgroovy.lang.MissingMethodException: No signature of method: java.util.LinkedHashMap.$() is applicable for argument types: (java.lang.String) values: [{targetKeyValue}] Possible solutions: is(java.lang.Object), any(), get(java.lang.Object), get(java.lang.Object), get(java.lang.Object), max(groovy.lang.Closure) on line 1094 (refreshV1Devices)
The unknown host error is correct. There is no such host (common-ats.iot.aic.lgthinq.com). I'm not sure where it's getting this bad host info from.
I tried removing the app completely and reinstalling but the issue remains. I am using cloud integration for SSL cert.