[Release] Lennox iComfort S30

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.

Features

  • Manager App: Guided setup wizard, multi-system dashboard, centralized configuration
  • Full Thermostat Control: Temperature, mode, fan, and schedule management
  • Multi-Zone Support: Automatically creates child devices for each zone
  • Humidity Control: Humidification and dehumidification setpoints
  • Ventilation Control: On/off and timed ventilation modes
  • Away Mode: Manual and Smart Away mode control
  • Sensors: Outdoor temperature, WiFi signal, alerts, IAQ (if equipped)
  • 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.


Removed from HPM while doing more testing.

Watching, just installed a S40 yesterday & came across your thread. Thank you for your efforts on this for the community.

@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.

@robby great work! I am a metric system user and encountered a small issue but I was able to create and test the patch. Temperature displays excessive decimal places (e.g. 21.5000000000000000°C) · Issue #1 · rbyrbt/Hubitat

Thank you for putting this together.

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:

Here is the Command page for the Lennox driver:

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.

From the log it appears that is one of the Lennox thermostats. When i press Run Rule I get this from the log:

Thanks

@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.

FWIW - I have noticed when doing a Local LAN connection it can take much longer to retrieve child devices vs going through Lennox Cloud.

Gotcha - I was looking at the parent.

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:

Thanks. I’m here to help debug if that would help.

@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.

Thanks!!!

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.

Thanks