Lennox iComfort Binding development

2019-02-27 13:18:23.953 [ome.event.ItemCommandEvent] - Item ‘Thermostat_Fan_Mode’ received command CIRCULATE
2019-02-27 13:18:23.957 [nt.ItemStatePredictedEvent] - Thermostat_Fan_Mode predicted to become CIRCULATE
2019-02-27 13:18:23.962 [vent.ItemStateChangedEvent] - Thermostat_Fan_Mode changed from AUTO to CIRCULATE
2019-02-27 13:18:24.322 [vent.ItemStateChangedEvent] - Thermostat_Cool_Point changed from 69.80 °F to 21.20 °F
2019-02-27 13:18:24.330 [vent.ItemStateChangedEvent] - Thermostat_Heat_Point changed from 66.20 °F to 19.40 °F
2019-02-27 13:19:14.868 [vent.ItemStateChangedEvent] - Thermostat_Fan_Mode changed from CIRCULATE to AUTO
2019-02-27 13:19:14.879 [vent.ItemStateChangedEvent] - Thermostat_Cool_Point changed from 21.20 °F to 69.80 °F
2019-02-27 13:19:14.882 [vent.ItemStateChangedEvent] - Thermostat_Heat_Point changed from 19.40 °F to 66.20 °F

Seems there is still a units issue?

Operation mode has no drop-down arrow to select Away or Home

Found a typo on the away item so it’s working now. The sitemap looks better with your changes too. I’m still trying to figure out why the thermostat temp on the sitemap is in celsius.

I see, you have “demo” in away item. For units: do you have units in both places set to F? In Open Hab Regional settings set to Imperial and in Thermostat system itself?
Can you run the following URL’s for me against your system?
https://services.myicomfort.com/DBAcessService.svc/GetGatewayInfo?gatewaysn={yourgatewayID}&tempunit=0
https://services.myicomfort.com/DBAcessService.svc/GetTStatInfoList?gatewaysn={yourgatewayID}&tempunit=0

Insert your gateway ID, just run it from any browser, it will prompt you for your iComfort credentials.

Thanks!

Regional settings are Imperial US, and in the thermostat itself. Here’s the output from the first url:
{“Cool_Set_Point_High_Limit”:99.00,“Cool_Set_Point_Low_Limit”:60.00,“Daylight_Savings_Time”:1,“Heat_Cool_Dead_Band”:3.00,“Heat_Set_Point_High_Limit”:90.00,“Heat_Set_Point_Low_Limit”:40.00,“Pref_Language_Nbr”:0,“Pref_Temp_Unit”:“0”,“ReturnStatus”:“SUCCESS”,“SystemID”:“xxxxx5”}

and the second

{“ReturnStatus”:“SUCCESS”,“tStatInfo”:[{“Away_Mode”:0,“Central_Zoned_Away”:2,“ConnectionStatus”:“GOOD”,“Cool_Set_Point”:71.00,“DateTime_Mark”:"/Date(1551316658573+0000)/",“Fan_Mode”:0,“GMT_To_Local”:-21600,“GatewaySN”:“xxxxxxx760”,“Golden_Table_Updated”:true,“Heat_Set_Point”:67.00,“Indoor_Humidity”:53,“Indoor_Temp”:68.00,“Operation_Mode”:3,“Pref_Temp_Units”:“0”,“Program_Schedule_Mode”:“0”,“Program_Schedule_Selection”:0,“System_Status”:0,“Zone_Enabled”:1,“Zone_Name”:“Zone 1”,“Zone_Number”:0,“Zones_Installed”:1}]}

==> /var/log/openhab2/openhab.log <==
2019-02-28 08:58:05.336 [ERROR] [org.apache.felix.fileinstall ] - Failed to install artifact: /usr/share/openhab2/addons/org.openhab.binding.icomfortwifi-2.5.0_d.jar
org.osgi.framework.BundleException: A bundle is already installed with the name “org.openhab.binding.icomfortwifi” and version “2.5.0.qualifier”

Not sure why I’m seeing this. I used the same procedure replacing the jar as before and restarted twice. There is indeed only the 2.5.0_d jar file in the /usr/share/openhab2/addons folder.

openhab> bundle:list | grep -i icomfort*
227 x Active x 80 x 2.5.0.qualifier x iComfortWiFi Binding

Is the .qualifier correct?

I fixed the temp display problem by adding the :Temperature dimension to the item. I still see this in the log when I change a setpoint:

==> /var/log/openhab2/events.log <==
2019-02-28 11:33:46.235 [ome.event.ItemCommandEvent] - Item ‘Thermostat_Heat_Point’ received command 65.2 °F
2019-02-28 11:33:46.269 [nt.ItemStatePredictedEvent] - Thermostat_Heat_Point predicted to become 65.2 °F
2019-02-28 11:33:46.276 [vent.ItemStateChangedEvent] - Thermostat_Heat_Point changed from 66.20 °F to 65.2 °F
2019-02-28 11:33:46.462 [vent.ItemStateChangedEvent] - Thermostat_Cool_Point changed from 70.70 °F to 22.10 °F
2019-02-28 11:33:46.469 [vent.ItemStateChangedEvent] - Thermostat_Heat_Point changed from 65.2 °F to 18.50 °F

Any idea why the backend doesn’t reflect the correct units?

Your JSON looks fine which is good!
The second issue I guess is that framework thinks that this version is already installed even when file name is the same, so technically you’re still testing the version with units conversion and not native one. I’ve re-compiled JAR with version 2.5.4 (instead of a character) and updated manifest. The code is the same:

With the last update the units seem fixed:
2019-03-03 16:22:58.496 [ome.event.ItemCommandEvent] - Item ‘Thermostat_Heat_Point’ received command 67.5 °F
2019-03-03 16:22:58.510 [nt.ItemStatePredictedEvent] - Thermostat_Heat_Point predicted to become 67.5 °F
2019-03-03 16:22:58.514 [vent.ItemStateChangedEvent] - Thermostat_Heat_Point changed from 68.0 °F to 67.5 °F
2019-03-03 16:22:58.517 [GroupItemStateChangedEvent] - gTemperature changed from 71.3 to 71.2 through Thermostat_Heat_Point

The Operation Mode in PaperUI still has no selection for away/home though.

Thanks for your efforts :grinning:

Operation mode and Away mode are two different settings, Operation mode is to set heating or cooling or both, Home / Away is the separate setting, you have to have two controls for them.

My confusion is why there is no control for Away mode in PaperUI. It does appear in the items & sitemap (once I fixed the typo there).

Not sure, must be something in your setup, check that you have channel linked, check in things and items.

New release, please check here:

Just downloaded the jar to try out this addon. The binding shows up in PaperUI and I can add a Thing. However, I get a communication error. It from the logs, it shows an Authentication Failure.

2019-05-11 04:58:11.841 [hingStatusInfoChangedEvent] - 'icomfortwifi:account:8bac7c39' changed from INITIALIZING to OFFLINE (COMMUNICATION_ERROR): Authentication failed

I can login to my iComfort account via Lennox’s website and through the mobile app using the same credentials.

Any ideas?

Sorry, I just realized that my thermostat is an S30 and its not supported yet.

Any plans to add Program Settings? I currently have “Summer”,“Winter”,“Spring/Fall”. I just installed so will play around with it some more but looks promising.

Sorry, kind of switched to other projects (+new job), was busy. I can definitely have, a look on the Program Settings option. Trying to make it work with Google Assistant at the moment, however thermostat support itself is broken now. Will provide update when I have something, let me know if you see any bugs worth fixing.

Thanks!

Just downloaded your latest, and will report any bugs I find. Thanks!

1 Like

I have a new version released on GitHab 2.5.7b which is built and compatible with OpenHAB version 2.5.3-2.5.4 and is using a new build system. Version of the file is now tight to the version of OpenHAB, update would require cleaning OpenHAB cache.

Main reason for this version was compatibility with Google Assistant. Whoever interested please test and report any bugs.

Thank you!

Use 2.5.8 with some bug fixes.

I’m seeing the connection cycle on / off with an error:

2020-04-12 19:49:22.832 [hingStatusInfoChangedEvent] - ‘icomfortwifi:account:iComfort’ changed from OFFLINE (COMMUNICATION_ERROR): Index: 0, Size: 0 to ONLINE
2020-04-12 19:49:22.833 [hingStatusInfoChangedEvent] - ‘icomfortwifi:thermostat:iComfort:CC14A0xxxx’ changed from OFFLINE (BRIDGE_OFFLINE) to ONLINE
2020-04-12 19:49:22.843 [hingStatusInfoChangedEvent] - ‘icomfortwifi:account:iComfort’ changed from ONLINE to OFFLINE (COMMUNICATION_ERROR): Index: 0, Size: 0
2020-04-12 19:49:22.848 [hingStatusInfoChangedEvent] - ‘icomfortwifi:thermostat:iComfort:CC14A0xxxx’ changed from ONLINE to OFFLINE (BRIDGE_OFFLINE)
2020-04-12 19:50:23.146 [hingStatusInfoChangedEvent] - ‘icomfortwifi:account:iComfort’ changed from OFFLINE (COMMUNICATION_ERROR): Index: 0, Size: 0 to ONLINE
2020-04-12 19:50:23.150 [hingStatusInfoChangedEvent] - ‘icomfortwifi:thermostat:iComfort:CC14A0xxxx’ changed from OFFLINE (BRIDGE_OFFLINE) to ONLINE
2020-04-12 19:50:23.156 [hingStatusInfoChangedEvent] - ‘icomfortwifi:account:iComfort’ changed from ONLINE to OFFLINE (COMMUNICATION_ERROR): Index: 0, Size: 0
2020-04-12 19:50:23.160 [hingStatusInfoChangedEvent] - ‘icomfortwifi:thermostat:iComfort:CC14A0xxxx’ changed from ONLINE to OFFLINE (BRIDGE_OFFLINE)

John, cannot comment on that, I don’t have any connection issues, no changes to that routine in the new version. Can you try to create a bridge through thing file and see what is happening?