Lennox iComfort S30, E30 or M30 thermostat API?

I’m not sure what you mean by “it goes back to the current set temp”. Did you mean that when you set a new temp, the set temp soon falls back to what it was previously? I’ve not seen that reported by anyone using this component before.

Just in case it isn’t clear - the attribute “temperature” is the set temp and “current_temperature” is the current room temp.

The Homekit component has received excellent support. I would suggest opening an issue on Homeassistant github to get expert help in further diagnosing your problem.

Sorry, I wasn’t very clear.

I was doing something like:

    - service: climate.set_temperature
      data:
        entity_id: climate.icomfort_e30_a91184
        temperature: 68
        hvac_mode: heat

Which should work according to docs on the Climate integration. After playing with it for a while I discovered, if I do a separate service call to set the hvac_mode and then set the temp, it totally works. Tried settting to the mode to heat_cool and then set the target_temp_high and the target_temp_low , but that doesn’t appear to work either.

Ok, I get it now - thanks for clarifying. Yep, that issue with “heat_cool” mode not working with the high/low target temps is a known issue discussed here. The homekit_controller main contributor (@jc2k) was planning on digging into it further to see exactly how an iOS client handles each mode (via a mock thermostat) when time permitted.

I just got a new hvac system and the S30 came with it so I was excited to see the S30 is supported, but I see a lot of the discussion regarding the E30. @GaryOkie or anyone else, have there been any issues with the homekit functionality of the S30?

1 Like

iComfort E30 , S30, and M30 models are exactly the same as far this HASS Homekit controller component is concerned. The functionality is quite basic, but that’s due to the limitations of the Apple Homekit API for climate control. It works quite well, and I rarely ever use the Lennox app anymore.

The only open issue I know of is pending potential support for “Heat/Cool” auto mode.

Thanks for the response. That is excellent news.

A more general question regarding the Lennox app. Is it necessary to have cloud access(i.e. bi-directional internet access)? or will the local wifi connection be good enough?

Local Wi-Fi only is fine - no cloud access required for HASS/Homekit connectivity.

However, I have my S30 connected to a guest network in order for the T-Stat to continue to have cloud access. That will allow the S30 to continue to receive updates, report faults, and to upload performance/usage data. Lennox emails monthly performance reports which I find quite interesting. And of course, cloud access is required for the iComfort app which can access almost every setting that is available directly on the thermostat - if that is ever needed remotely.

@GaryOkie I was hoping to get a little more help. I recently had to install a S30 thermostat that does not work with my SmartThings home automation. My idea was to get the S30 working with Home Assistant (which I am new to), and then use virtual switches from SmartThings over to Home Assistant and use those to control the S30.

I am VERY new to Home Assistant - just installed it on a raspberry pi about 2 days ago, That being said I can’t seem to find S30 in the HomeKit Controller.

I must be missing something simple. Any thoughts on getting the S30 into the system?

Additional information and details:
Versions:
In Home Assistant --> Configuration (on left side) --> General --> Info --> Home Assistant 0.116.3 (so I should be good SW wise for Home Assistant)

On S30 Touch Screen --> Menu --> Settings --> General --> About --> Thermostat (Control Software version = 03.70.0212) and Smart Hub (Control Software version = 03.70.0619)

You had mentioned that the Firmware needed to be newer than 3.55.626, I assume you meant SW?

Steps to install:
In Home Assistant --> Configuration (on left side) --> Integrations --> + icon (bottom right) --> HomeKit Controller --> After an installation a popup for Device Selection pops up -->I don’t see the S30 (but do see my smart bridge 2 and philips hue hub as devices to pair with).

Raspberry Pi is physically plugged into the network and the thermostat is on my 2.4GHz WiFi network (not a guest network such that the Pi should be able to see the thermostat)

I have done the same steps but have had the S30 in HomeKit WAC mode. Same results (does not appear in the drop down in the controller)

I also just noticed that you mentioned to have zeroconf: added to the configuration.yaml. Reading up on that the default_config: should include it already, however I added it to be sure. I checked in both the Homekit controller install and in the integration dashboard and did not find the iComfort S30.

I then tried adding Discovery: Enable -Homekit

This is my configuration file:

Configure a default setup of Home Assistant (frontend, api, etc)

default_config:
zeroconf:

discovery:
enable:
- homekit

homeassistant:
name: Home Assistant
latitude: XXXXX
longitude: XXXXX
unit_system: imperial
time_zone: America/New_York

Text to speech

tts:

  • platform: google_translate

group: !include groups.yaml
automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml

Steps I followed quite some time ago. I have older smart hubs, but our S30 firmware versions are the same.

If the S30 has been previously paired with HoneKit, clear the HomeKit settings before attempting to pair with HA.

Thank you so much. I did not realize you needed an iphone/ipad to kick off the process. I figured just having the S30 on the network would be enough. I entered the S30 into WAC mode, started the setup on the iPhone (oddly enough it fails on the iPhone), but it was enough to see the device come up on the Home Assistant (which at this point I had removed ZeroConf but still had default). HomeAssistant requested a Pin that the S30 was displaying and everything seemed to connect together now.

I really appreciate the help. Now I have to learn how to get SmartThings and HomeAssistant talking and just learn how to use Home assistant in general!

It used to be the case you needed an iOS device to pair the S30 via WAC mode, but that’s no longer necessary. You do need to do a Homekit reset to get the S30 to be discoverable again. Anyway, you got it working now, so great!

Well Thanks again! I made decent progress tonight. Wrote my first automation to test out if I could change basic functions and finished on the follow. I added in delays as it appears without them that commands were missed. Is this normal? Is there a better way to set the heating and cooling point (I saw the other threads about the points needing to be set separately?)

- id: '1602817380124'
  alias: Temp Test
  description: ''
  trigger:
  - platform: time
    at: '21:00'
  condition: []
  action:
  - service: climate.set_hvac_mode
    data:
      entity_id: climate.icomfort_s30
      hvac_mode: cool
  - delay: '3'
  - service: climate.set_temperature
    data:
      entity_id: climate.icomfort_s30
      temperature: 77
    entity_id: climate.icomfort_s30
  - delay: '3'
  - service: climate.set_hvac_mode
    data:
      entity_id: climate.icomfort_s30
      hvac_mode: heat
  - delay: '3'
  - service: climate.set_temperature
    data:
      entity_id: climate.icomfort_s30
      temperature: 59
    entity_id: climate.icomfort_s30
  - delay: '3'
  - service: climate.set_hvac_mode
    data:
      entity_id: climate.icomfort_s30
      hvac_mode: heat_cool
  mode: single

You mentioned that you use the home assistant UI now instead of the lennox app. What is your S30 “Card” script and how would I replace the default thermostat card that comes with HomeAssistant?

My S30 is at our lake house where it is mostly just set-and-forget to either heat or cool at a specific temp depending on the season. I have no HA automations set up for it. I also avoid using the auto (heat/cool) mode since it still isn’t supported by HA/Homekit properly. (More info on this issue can be found here)

In your automation, a delay between the service calls to set temps shouldn’t be necessary. The aforementioned issue with heat_cool mode may be the explanation why it appeared that settings were being missed. There may be others in this forum who have found workarounds to supporting heat/cool who can assist.

I prefer the custom simple-thermostat Lovelace card with up/down temp arrows instead of the circular dial. It also lets you combine readings from other sensors. You can install it via HACS.

Here’s the code I’m using:

type: 'custom:simple-thermostat'
decimals: 0
step_size: 1
control:
  hvac:
    auto:
      name: Heat/Cool
entity: climate.icomfort_s30_12345
name: Main Floor Thermostat
sensors:
  - attribute: current_humidity
    name: Humidity
    unit: '%'
  - entity: sensor.basement_humidity
    name: BaseHumidity
  - attribute: current_temperature
    entity: sensor.basement_temp
    name: BaseTemp
    unit: °F

I must be missing something I am trying to add my S30 to Homeassistant.io instance and having no luck. I have hass.io running on the same lan as my S30 thermostat. I tried resetting homekit on s30 and putting it into WAC discovery mode. Nothing shows up in integrations in hass.io.
I also tried adding homekit controller integration, but it says no devices found.

Anyone can provide any guidance?

What is the S30 firmware version?

Is this it?
Control Software Revision: 03.70.0212

Yes. You’ve got the same version as I do. It’s newer than when I first paired the thermostats. Do you have zeroconf: in your configuration.yaml file?

I do not. But I thought that that is included by default?

I figured it was already there since my chromecasts got discovered.
What are the steps for including integrating S30?

  1. S30 - reset homekit
  2. S30 put s30 into wac
  3. HASS - Add homekit Controller integration?

I used an iPhone to set the network connection (see above).