This is an adaptation of the Home Assistant lennoxs30 custom component and lennoxs30api Python library by PeteRager. It should work on Lennox iComfort S30, E30, S40, and M30 smart thermostats, but I've only tested it on the S30, which is the one thermostat that doesn't seem to be supported in other Lennox Hubitat apps.
BLE Devices: Support for S40 BLE temperature/humidity sensors
Equipment Diagnostics: View equipment information and modify parameters
Cloud & Local: Connect via Lennox cloud or local LAN
Installation
HPM search for "Lennox iComfort" or import from repo (README)
Untested
The upstream project works with iComfort S30, E30, S40, and M30, but since I only have an S30, I haven't tested the other thermostats.
Diagnostic Level 2 hasn't been fully tested on the S30. There's a Parameter Safety Child Switch that acts as a safety lock when changing equipment parameters, but it hasn't been tested.
Ventilation, and Humidity Modes are untested. My system lacks ventilation and humidification features.
To do
The debug logging and Device State Variables are quite verbose right now, and I plan to tidy things up.
@mpiekart the main issue I encountered was excessive logging on the S30. I have not tested this on an S40 but your results may be better on the newer hardware. You can follow the manual driver and app import method described here - but consider this an early beta: Hubitat/LennoxiComfort at main · rbyrbt/Hubitat · GitHub
@robby much appreciated! I'll give it a try when I have some time to mess around with it & report back. I currently have it setup as a generic Matter thermostat, which appears to respond well enough for displaying indoor temp, making temp adjustments, & toggling between modes. Equipment status & any fan functions have not worked thus far.
Thank you both @mpiekart@GETDATE!!
Fixed in v1.1.6 - Incorporates TX-RX/rbyrbt-Hubitat#1 and extends the cached-value correction to the parent driver and child sensor temperature paths.
Hi - I just installed the package in HPM and have a couple of basic questions.
As background, I have two S30 thermostats for the two HVAC units in my house. I’ve completed the installation and configuration of the thermostats. I’m using the “connection type = local LAN” option to connect. I don’t see any way to set the temps or modes.
I’m experienced with zwave thermostats and I have a basic zwave thermostat in my garage for the winter heater. It uses the basic “Generic Z-Wave Plus Thermostat” driver. Under commands I see boxes with Fan Mode, Thermostat mode, and heat and cooling set points. I have rules that monitor the temp in my garage every hour and if it drops below 40*. it fires the heater for 15 minutes and shuts down. All good.
Here is a screen shot of the generic thermostat driver Commands page:
As you can see there is no way to set the functions of the thermostat. What am i missing?
When I try to create a new rule and use the “Control …Thermostats” / “Set Thermostats” I don’t see the new Lennox thermostats in the list. I do see a “Zone 1” thermostat in the list but have no idea what that is.
@bryan1 you’re in the parent device. Expand (or click to Child devices tab) to select “Zone 1” from there, toggle “Show common commands first” and it should look something like this. It may take up to a minute for child devices to be discovered.
I changed from the LAN connection to the Lennox Cloud per your recommendation. IMHO, that also helps if/when the network reboots and potentially resets the IP address of your thermostat. There is no way to put in a static IP into the thermostat that I could find.
I still have two issues - one major and one minor. The major one is that one thermostat (Thermostat - Front (245)) shows a Zone1 child that has the settings for temp and mode and the other (Thermostat - Bedrooms (235)) doesn’t show a Zone1 device. Here are the two screen shots from “Child Devices” from the parent node.
I’ve waited for 15 minutes to allow things to populate.
The minor issue is that “Lennox Allergy Defender” child device is showing up on the Bedroom #235 thermostat and isn’t showing on the Front #245 thermostat. The function is enabled on the Front #245 thermostat physical device. It does show as true in the “current state” pane for #245, just no child device. From the parent #245 device:
@bryan1 for the missing bedroom zone, check the Lennox iComfort Manager app under Apps > Lennox iComfort Manager > Manage Child Devices. Then verify the Zone 1 switch is enabled.
If the Manage Child Devices window instead shows it is still refreshing devices, open a new window with live logs enabled. Then navigate to your parent device in a separate window and click "Clear Message Queue" and "Refresh" buttons. Monitor the live logs for warnings about large responses. Continue clicking the clear message queue and refresh buttons until warnings go away and child devices and zones refresh. This process may also fix the missing allergen defender on the other device (check the app first, then parent device to clear and refresh).
For static IPs, check your router's settings to reserve specific IPs by the thermostat's MAC address.
OK, in the app the thermostat that wasn’t showing Zone 1 had all the zones checked. The log for that thermostat kept showing the “Large Retrieve response (83357 chars, 1 message(s)) - advancing cursor; consider removing unused child devices to reduce RequestData size.”. So I went back into the app and unchecked zones 2,3,&4. At that point the log reported “Creating zone thermostat: Zone 1 (Zone 0)” and the child appeared. I did clear the queue a couple of times until the log showed no queued messages and then refreshed again.
So, I think I’m good. The Allergy Defender is still not showing, but I’ll work on that later and see if I can get that to pop up.
Hi - I've got two S30 thermostats and both are experiencing the same problem. I'm able to see the thermostats and all the settings from the thermostats in Hubitat. But when i try and modify anything it sends out the command but then the device page reverts back to the current setting. For example, I change the cooling setpoint from 74 to 72 on the device/commands page. The status changes from 74 to 72 and then it reverts back to 74. I also tried to use the thermostat scheduler build in app and that doesn't seem to be able to change it either. I change the cool set point to 60 and the app shows 60 but the thermostat still shows 74.
I am familiar with controlling thermostats having successfully set up custom rules to check the temperature in my garage on a Honeywell unit. If the temp is below 40 it fires up that heater for 15 minutes and sleeps till the next hour check. That works fine. I would like to be able to create rules to control the S30 thermostats.