No worries. I'll re-create just two of the thermostats, leaving one broken so we can troubleshoot when you're finished with the SSL issue.
Announcement
Collapse
No announcement yet.
Replacing a bad thermostat
Collapse
X
-
Originally posted by shill View PostThat would be the fastest approach. I would eventually like to figure out why this isn't working, but Honeywell changed their SSL config and has broken all linux/XP customers connections so that's become my priority for the moment.
Comment
-
Originally posted by shill View PostLooking at your screenshots again, none of them show the Honeywell WiFi Thermostat tab...
Sent from my LG-H932 using Tapatalk
Comment
-
Originally posted by slbuck View PostShill,
I just noticed after updating to 1.2.3 (it may have happened with 1.2.2, but I can't be sure), that the new tab is now missing from all my thermostats, not just the one that was broken before. Did something happen with the update to remove the new tab?
This may actually be a good thing if troubleshooting this helps us figure out your other one...
Comment
-
EDIT: I changed to trace logging and included the logs.
OK, I updated to 1.2.4 and the tabs are now back for the working thermostats. Here is the trace log when clicking the one that doesn't have the tab (upper level, reference ID 1775).
Also, I see that the Operating mode on my thermostats that do work shows Heat. They are set to automatic, but have been running Cool for several weeks now. Not sure where that is coming from. I've included the raw data from honeywell for one of the thermostats that is showing Heat for the operating mode.
Code:From homeseer log May-08 18:43:31 Error Calling ConfigDevice in plugin Honeywell WiFi Thermostat:Object reference not set to an instance of an object. May-08 18:43:31 Honeywell WiFi Thermostat <<<< ThermostatDevice.CurrentData(<ThermostatData>) May-08 18:43:31 Honeywell WiFi Thermostat >>>> ThermostatDevice(3449305).CurrentData() May-08 18:43:31 Honeywell WiFi Thermostat <<<< PluginLogic.GetThermostatDevice=<ThermostatDevice> May-08 18:43:31 Honeywell WiFi Thermostat Found Referenced Thermostat Device (1775) May-08 18:43:31 Honeywell WiFi Thermostat >>>> PluginLogic.GetThermostatDevice(1775) May-08 18:43:31 Honeywell WiFi Thermostat >>>> PluginLogic.ConfigDevice(1775,sbuck,6,False) From file log 5/8/2018 18:43:31.480 Trace PluginLogic.ConfigDevice - >>>> PluginLogic.ConfigDevice(1775,sbuck,6,False) 5/8/2018 18:43:31.495 Trace PluginLogic.GetThermostatDevice - >>>> PluginLogic.GetThermostatDevice(1775) 5/8/2018 18:43:31.502 Debug PluginLogic.GetThermostatDevice - Found Referenced Thermostat Device (1775) 5/8/2018 18:43:31.509 Trace PluginLogic.GetThermostatDevice - <<<< PluginLogic.GetThermostatDevice=<ThermostatDevice> 5/8/2018 18:43:31.516 Trace ThermostatDevice.CurrentData - >>>> ThermostatDevice(3449305).CurrentData() 5/8/2018 18:43:31.523 Trace ThermostatDevice.CurrentData - <<<< ThermostatDevice.CurrentData(<ThermostatData>) Data from Great room thermostat: { "success": true, "deviceLive": true, "communicationLost": false, "latestData": { "uiData": { "DispTemperature": 75, "HeatSetpoint": 70, "CoolSetpoint": 75, "DisplayUnits": "F", "StatusHeat": 2, "StatusCool": 2, "HoldUntilCapable": true, "ScheduleCapable": true, "VacationHold": 0, "DualSetpointStatus": false, "HeatNextPeriod": 88, "CoolNextPeriod": 88, "HeatLowerSetptLimit": 40, "HeatUpperSetptLimit": 80, "CoolLowerSetptLimit": 65, "CoolUpperSetptLimit": 99, "ScheduleHeatSp": 70, "ScheduleCoolSp": 78, "SwitchAutoAllowed": true, "SwitchCoolAllowed": true, "SwitchOffAllowed": true, "SwitchHeatAllowed": true, "SwitchEmergencyHeatAllowed": false, "SystemSwitchPosition": 5, "Deadband": 4, "IndoorHumidity": 47, "DeviceID": 3449263, "Commercial": false, "DispTemperatureAvailable": true, "IndoorHumiditySensorAvailable": true, "IndoorHumiditySensorNotFault": true, "VacationHoldUntilTime": 0, "TemporaryHoldUntilTime": 0, "IsInVacationHoldMode": false, "VacationHoldCancelable": true, "SetpointChangeAllowed": true, "OutdoorTemperature": 89, "OutdoorHumidity": 28, "OutdoorHumidityAvailable": true, "OutdoorTemperatureAvailable": true, "DispTemperatureStatus": 0, "IndoorHumidStatus": 0, "OutdoorTempStatus": 0, "OutdoorHumidStatus": 0, "OutdoorTemperatureSensorNotFault": true, "OutdoorHumiditySensorNotFault": true, "CurrentSetpointStatus": 2, "EquipmentOutputStatus": 0 }, "fanData": { "fanMode": 0, "fanModeAutoAllowed": true, "fanModeOnAllowed": true, "fanModeCirculateAllowed": true, "fanModeFollowScheduleAllowed": false, "fanIsRunning": false }, "hasFan": true, "canControlHumidification": false, "drData": { "CoolSetpLimit": null, "HeatSetpLimit": null, "Phase": -1, "OptOutable": false, "DeltaCoolSP": null, "DeltaHeatSP": null, "Load": null } }, "alerts": "\r\n\r\n" }
Comment
-
Originally posted by slbuck View PostEDIT: I changed to trace logging and included the logs.
OK, I updated to 1.2.4 and the tabs are now back for the working thermostats. Here is the trace log when clicking the one that doesn't have the tab (upper level, reference ID 1775).
Also, I see that the Operating mode on my thermostats that do work shows Heat. They are set to automatic, but have been running Cool for several weeks now. Not sure where that is coming from. I've included the raw data from honeywell for one of the thermostats that is showing Heat for the operating mode.
Code:From homeseer log May-08 18:43:31 Error Calling ConfigDevice in plugin Honeywell WiFi Thermostat:Object reference not set to an instance of an object. May-08 18:43:31 Honeywell WiFi Thermostat <<<< ThermostatDevice.CurrentData(<ThermostatData>) May-08 18:43:31 Honeywell WiFi Thermostat >>>> ThermostatDevice(3449305).CurrentData() May-08 18:43:31 Honeywell WiFi Thermostat <<<< PluginLogic.GetThermostatDevice=<ThermostatDevice> May-08 18:43:31 Honeywell WiFi Thermostat Found Referenced Thermostat Device (1775) May-08 18:43:31 Honeywell WiFi Thermostat >>>> PluginLogic.GetThermostatDevice(1775) May-08 18:43:31 Honeywell WiFi Thermostat >>>> PluginLogic.ConfigDevice(1775,sbuck,6,False) From file log 5/8/2018 18:43:31.480 Trace PluginLogic.ConfigDevice - >>>> PluginLogic.ConfigDevice(1775,sbuck,6,False) 5/8/2018 18:43:31.495 Trace PluginLogic.GetThermostatDevice - >>>> PluginLogic.GetThermostatDevice(1775) 5/8/2018 18:43:31.502 Debug PluginLogic.GetThermostatDevice - Found Referenced Thermostat Device (1775) 5/8/2018 18:43:31.509 Trace PluginLogic.GetThermostatDevice - <<<< PluginLogic.GetThermostatDevice=<ThermostatDevice> 5/8/2018 18:43:31.516 Trace ThermostatDevice.CurrentData - >>>> ThermostatDevice(3449305).CurrentData() 5/8/2018 18:43:31.523 Trace ThermostatDevice.CurrentData - <<<< ThermostatDevice.CurrentData(<ThermostatData>) Data from Great room thermostat: { "success": true, "deviceLive": true, "communicationLost": false, "latestData": { "uiData": { "DispTemperature": 75, "HeatSetpoint": 70, "CoolSetpoint": 75, "DisplayUnits": "F", "StatusHeat": 2, "StatusCool": 2, "HoldUntilCapable": true, "ScheduleCapable": true, "VacationHold": 0, "DualSetpointStatus": false, "HeatNextPeriod": 88, "CoolNextPeriod": 88, "HeatLowerSetptLimit": 40, "HeatUpperSetptLimit": 80, "CoolLowerSetptLimit": 65, "CoolUpperSetptLimit": 99, "ScheduleHeatSp": 70, "ScheduleCoolSp": 78, "SwitchAutoAllowed": true, "SwitchCoolAllowed": true, "SwitchOffAllowed": true, "SwitchHeatAllowed": true, "SwitchEmergencyHeatAllowed": false, "SystemSwitchPosition": 5, "Deadband": 4, "IndoorHumidity": 47, "DeviceID": 3449263, "Commercial": false, "DispTemperatureAvailable": true, "IndoorHumiditySensorAvailable": true, "IndoorHumiditySensorNotFault": true, "VacationHoldUntilTime": 0, "TemporaryHoldUntilTime": 0, "IsInVacationHoldMode": false, "VacationHoldCancelable": true, "SetpointChangeAllowed": true, "OutdoorTemperature": 89, "OutdoorHumidity": 28, "OutdoorHumidityAvailable": true, "OutdoorTemperatureAvailable": true, "DispTemperatureStatus": 0, "IndoorHumidStatus": 0, "OutdoorTempStatus": 0, "OutdoorHumidStatus": 0, "OutdoorTemperatureSensorNotFault": true, "OutdoorHumiditySensorNotFault": true, "CurrentSetpointStatus": 2, "EquipmentOutputStatus": 0 }, "fanData": { "fanMode": 0, "fanModeAutoAllowed": true, "fanModeOnAllowed": true, "fanModeCirculateAllowed": true, "fanModeFollowScheduleAllowed": false, "fanIsRunning": false }, "hasFan": true, "canControlHumidification": false, "drData": { "CoolSetpLimit": null, "HeatSetpLimit": null, "Phase": -1, "OptOutable": false, "DeltaCoolSP": null, "DeltaHeatSP": null, "Load": null } }, "alerts": "\r\n\r\n" }
Boy would this be easier if this stuff was a documented API!
Comment
-
I found this while researching the system switch position values and thought that it might help. Not sure if you have seen this or not, but it has a lot of good info. It's not an API doc for the Total Connect portal, but does help reveal the redlink protocol which is how all my Honeywell thermostats communicate to the redlink internet gateway. This gateway then communicates with the total connect portal just like the wifi thermostats do. It appears that the redlink driver spec shares some of the same data that the Total Connect portal does.Attached Files
Comment
-
Did some more digging and ended up here:
https://github.com/willdollman/perl-...mfort/issues/2
This led to here which I don't know if you've seen yet.
https://mytotalconnectcomfort.com/WebApi/Help
When it asks you to log in, enter 91db1612-73fd-4500-91b2-e63b069b185c in the Application ID box, then click Log in.
Comment
-
Just installed 1.2.5. This fixed the operating status displaying correctly. Thanks for that. Also, the new tab shows up on the bad thermostat, but I'm still unable to edit the device ID. Here are the logs and screenshot.
Code:May-13 12:20:34 Honeywell WiFi Thermostat <<<< PluginLogic.ConfigDevice=<h2>Please wait for the thermostat to perform an initial update.</h2> May-13 12:20:34 Honeywell WiFi Thermostat <<<< PluginLogic.GetThermostatDevice=<ThermostatDevice> May-13 12:20:34 Honeywell WiFi Thermostat Found Referenced Thermostat Device (1775) May-13 12:20:34 Honeywell WiFi Thermostat >>>> PluginLogic.GetThermostatDevice(1775) May-13 12:20:34 Honeywell WiFi Thermostat >>>> PluginLogic.ConfigDevice(1775,sbuck,6,False)
Comment
-
Just upgraded to 1.3.0.0 and still seeing the same message when going to the root device of a thermostat with an invalid honeywell device ID and then checking the Honeywell Wifi Thermostat tab.
"Please wait for the thermostat to perform an initial update.".
Here's the log file trace output for this invalid device.
Code:5/21/2018 21:49:25.780 Trace [3449305] CommandQueue.CheckDuplicate >>>> CommandQueue.CheckDuplicate(<ThermostatCommand>) 5/21/2018 21:49:25.780 Debug [3449305] CommandQueue.CheckDuplicate Checking for duplicate command scheduled in the future... 5/21/2018 21:49:25.780 Trace [3449305] CommandQueue.CheckDuplicate <<<< CommandQueue.CheckDuplicate=<ThermostatCommand> 5/21/2018 21:49:25.795 Debug [3449305] CommandQueue.Dequeue Retrieved Update command. 5/21/2018 21:49:25.795 Trace [3449305] CommandQueue.Dequeue <<<< CommandQueue.Dequeue=<ThermostatCommand> 5/21/2018 21:49:25.795 Debug [3449305] PluginLogic.m_objTimer_Elapsed Retrieved a command - processing... 5/21/2018 21:49:25.795 Debug [------] PluginLogic.m_objTimer_Elapsed Timer interval temporarily set to 2147483647, should not fire again for a while. 5/21/2018 21:49:25.811 Trace [3449305] ThermostatCommand.Execute >>>> ThermostatCommand.Execute() 5/21/2018 21:49:25.811 Debug [3449305] ThermostatCommand.Execute Processing Update command object 5/21/2018 21:49:25.811 Trace [3449305] ThermostatDevice.StopUpdates >>>> ThermostatDevice.StopUpdates(<Object>,<ElapsedEventArgs>) 5/21/2018 21:49:25.811 Trace [3449305] ThermostatDevice.StopUpdates <<<< ThermostatDevice.StopUpdates 5/21/2018 21:49:25.811 Trace [3449305] HWConnection.GetData >>>> HWConnection.GetData(3449305,*<ThermostatData>) 5/21/2018 21:49:25.827 Trace [3449305] HWConnection.GetData Ok to request data now. 5/21/2018 21:49:25.827 Trace [3449305] HWConnection.LoginIfNeeded >>>> HWConnection.LoginIfNeeded() 5/21/2018 21:49:25.827 Debug [3449305] HWConnection.LoginIfNeeded Last Login: 5/21/2018 21:49:22.014 5/21/2018 21:49:25.827 Debug [3449305] HWConnection.LoginIfNeeded More than 15 minutes have passed, perform login again. 5/21/2018 21:49:25.842 Trace [3449305] HWConnection.Login >>>> HWConnection.Login() 5/21/2018 21:49:25.842 Trace [3449305] HWConnection.PerformRequest >>>> HWConnection.PerformRequest(Login , *<RequestParms>) 5/21/2018 21:49:25.842 Trace [3449305] HWConnection.GetHeaders >>>> HWConnection.GetHeaders(*<CurlEasy>, String()) 5/21/2018 21:49:25.842 Trace [3449305] HWConnection.GetHeaders <<<< HWConnection.GetHeaders=User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36 Cache-Control: max-age=0 Host: mytotalconnectcomfort.com Referer: https://mytotalconnectcomfort.com/portal/xxxxxxx Content-Type: application/x-www-form-urlencoded 5/21/2018 21:49:25.842 Debug [3449305] HWConnection.PerformRequest About to perform request for Login ... 5/21/2018 21:49:25.858 Debug [------] WebClientEx.GetWebRequest Getting WebRequest for 'https://mytotalconnectcomfort.com/portal/' 5/21/2018 21:49:25.999 Debug [------] WebClientEx.GetWebResponse Getting response for 'https://mytotalconnectcomfort.com/portal/' 5/21/2018 21:49:26.764 Debug [3449305] HWConnection.PerformRequest Login result = success 5/21/2018 21:49:26.780 Trace [3449305] HWConnection.PerformRequest <<<< HWConnection.PerformRequest=<Response> 5/21/2018 21:49:26.780 Debug [3449305] HWConnection.Login Login successful. 5/21/2018 21:49:26.780 Trace [3449305] HWConnection.Login <<<< HWConnection.Login=1 5/21/2018 21:49:26.780 Trace [3449305] HWConnection.LoginIfNeeded <<<< HWConnection.LoginIfNeeded=1 5/21/2018 21:49:26.795 Trace [3449305] HWConnection.PerformRequest >>>> HWConnection.PerformRequest(GetData , *<RequestParms>) 5/21/2018 21:49:26.795 Trace [3449305] HWConnection.GetHeaders >>>> HWConnection.GetHeaders(*<CurlEasy>, String()) 5/21/2018 21:49:26.795 Trace [3449305] HWConnection.GetHeaders <<<< HWConnection.GetHeaders=User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36 Cache-Control: max-age=0 Host: mytotalconnectcomfort.com Referer: X-Requested-With: XMLHttpRequest 5/21/2018 21:49:26.795 Debug [3449305] HWConnection.PerformRequest About to perform request for GetData ... 5/21/2018 21:49:26.920 Debug [------] WebClientEx.DownloadDataIfAvailable WebClient is busy, waiting 100ms... (100) 5/21/2018 21:49:26.920 Debug [------] WebClientEx.DownloadDataIfAvailable Downloading data from 'https://mytotalconnectcomfort.com/portal/Device/CheckDataSession/3449305' 5/21/2018 21:49:26.920 Debug [------] WebClientEx.GetWebRequest Getting WebRequest for 'https://mytotalconnectcomfort.com/portal/Device/CheckDataSession/3449305' 5/21/2018 21:49:26.920 Debug [------] WebClientEx.GetWebResponse Getting response for 'https://mytotalconnectcomfort.com/portal/Device/CheckDataSession/3449305' 5/21/2018 21:49:27.092 Debug [3449305] HWConnection.PerformRequest GetData result = success 5/21/2018 21:49:27.092 Trace [3449305] HWConnection.PerformRequest <<<< HWConnection.PerformRequest=<Response> 5/21/2018 21:49:27.092 Error [3449305] HWConnection.GetData Error retrieving data: Object reference not set to an instance of an object. System.NullReferenceException: Object reference not set to an instance of an object. at HSPI_SKWARE_HW_WIFI_TSTAT.ThermostatData..ctor(String strJSonData) at HSPI_SKWARE_HW_WIFI_TSTAT.HWConnection.GetData(String strDeviceID, ThermostatData& objCurrentData) 5/21/2018 21:49:27.108 Trace [3449305] HWConnection.GetData <<<< HWConnection.GetData=Failed 5/21/2018 21:49:27.108 Trace [3449305] ThermostatCommand.ProcessUpdateResults >>>> ThermostatCommand.ProcessUpdateResults(Failed,<ThermostatData>) 5/21/2018 21:49:27.108 Trace [3449305] ThermostatDevice.UpdateValue >>>> ThermostatDevice.UpdateValue(1776,2,True) 5/21/2018 21:49:27.124 Trace [3449305] ThermostatDevice.UpdateValue <<<< ThermostatDevice.UpdateValue 5/21/2018 21:49:27.124 Error [3449305] ThermostatCommand.ProcessUpdateResults Failed to retrieve thermostat data - error occurred, will retry 5/21/2018 21:49:27.124 Trace [3449305] ThermostatDevice.ResumeUpdates >>>> ThermostatDevice.ResumeUpdates(<Object>,<ElapsedEventArgs>) 5/21/2018 21:49:27.124 Trace [3449305] ThermostatDevice.ResumeUpdates <<<< ThermostatDevice.ResumeUpdates 5/21/2018 21:49:27.124 Trace [3449305] ThermostatCommand.ProcessUpdateResults <<<< ThermostatCommand.ProcessUpdateResults 5/21/2018 21:49:27.139 Trace [3449305] ThermostatCommand.Execute <<<< ThermostatCommand.Execute
Comment
-
Ok, now that the Curl/TLS craziness is behind me, let's get to the bottom of your issue... What I can tell from this log is:
a) I need to update my log line for GetHeaders since it still has some text in it about Curl
b) There's something in the data that's coming from your device that the plugin is failing to parse. If we can figure out what that is, I can address it easily enough I imagine.
The catch is that I'm not printing the response in the log, which I should be. I did add an additional undocumented log level, basically to prevent it from spewing out all the HTML when you're on the Options page. I may have updated the response data to also use that level.
Try this:- Stop the plugin.
- Open the HSPI_SKWARE_HW_WIFI_TSTAT.ini file in your HS3\Config directory
- Change the Plugin log level to 7, then save the file.
- Start the plugin and wait for it to try to update that thermostat,
- Change the log level back to a reasonable setting (you can do this on the options page or by stopping it & editing the file).
That should print out the results of the request somewhere before/after/between these lines:
Code:5/21/2018 21:49:27.092 Debug [3449305] HWConnection.PerformRequest GetData result = success 5/21/2018 21:49:27.092 Trace [3449305] HWConnection.PerformRequest <<<< HWConnection.PerformRequest=<Response>
I can also update the plugin page to show the device id field even if it hasn't updated yet, which should fix your problem and allow you to change it. I'll put out 1.3.1 tonight for that purpose!
Comment
Comment