infinitude icon indicating copy to clipboard operation
infinitude copied to clipboard

Support new MQTT interface introduced in firmware 4.17

Open mamarley opened this issue 2 years ago • 24 comments

The release notes for the newly-released firmware version 4.17 for the Infinity thermostat (https://www.myinfinitytouch.carrier.com/Content/docs/v0417-20220427.pdf) have "Updated cloud connection interface to MQTT improving the response time between mobile and wall control from approximately 45-60 seconds to 2-5 seconds" as the first line of the "Feature Enhancements" section. I haven't tried yet, but I suspect this will completely break Infinitude. :(

mamarley avatar May 26 '22 10:05 mamarley

ooh, interesting. I need to get a usb key setup with old/new firmware to try it out. Need to make sure I'm able to downgrade if everything falls apart. MQTT is a much smarter way of doing thermostat control, so hopefully Infinitude will be able to support it as well.

nebulous avatar Jun 02 '22 15:06 nebulous

I flashed the new firmware on my parents' thermostat. It does completely break the monitoring and control functionality, but it still appears to use the old API for time, weather, and update checking. I'm not sure if the MQTT data is sent over the configured proxy or not, but I certainly would hope so. In any case, it looks like the proxy hack will still be necessary because there is no way to control which server it uses for MQTT.

mamarley avatar Jun 02 '22 16:06 mamarley

I flashed the new firmware on my parents' thermostat. It does completely break the monitoring and control functionality, but it still appears to use the old API for time, weather, and update checking. I'm not sure if the MQTT data is sent over the configured proxy or not, but I certainly would hope so. In any case, it looks like the proxy hack will still be necessary because there is no way to control which server it uses for MQTT.

maybe do a test and configure the thermostat to use a non existent proxy and see if the control info flows or not - if it does then we know MQTT bypasses the proxy....

scyto avatar Jun 09 '22 18:06 scyto

I'm not sure if the MQTT data is sent over the configured proxy or not, but I certainly would hope so.

Infinitude only proxies http requests and MQTT would most-sanely be done via a websocket (though considering Carrier's past experience with api design choices who knows 🤷‍♂️) upgrade.

But I, like @scyto above would love to know if the 'stat is still operational via Carrier's app when the proxy is set to Infinitude (or to a non-existent proxy value).

nebulous avatar Jun 13 '22 15:06 nebulous

Really worried about this.and breathlessly waiting for an update here... The energy tracking feature in the new firmware sounds delightful. The inability to control the thermostat locally is a deal breaker - as in I'm rewiring my thermostats if that happens.

brettonw avatar Jun 18 '22 04:06 brettonw

If you care about it that much, just don't upgrade the FW (it doesn't happen automatically, at least not until 4.17 is already installed). But please, please don't rewire your thermostats. If you use Infinity equipment without the Infinity thermostat, you wasted your money on the equipment.

mamarley avatar Jun 18 '22 10:06 mamarley

+1 for this feature as well... Looks like they bypass the proxy for the MQTT communications. MQTT is also over SSL which I haven't had any luck yet with getting a "transparent proxy" working via my router to intercept the traffic. They may have certificate pinning going on within their firmware (which is a good practice). I really wish they'd open up their full API.

ChrisMurf2900 avatar Jun 25 '22 13:06 ChrisMurf2900

If they're pinning the cert and bypassing the proxy, we are essentially dead in the water, yes? No interception possible, and likely no local control?

secabeen avatar Jun 27 '22 22:06 secabeen

If they aren’t using a web socket and are pinning the cert, then it would be difficult to intercept traffic without decompiling the bin. Though I wouldn’t assume either of those suppositions. I also expect the new firmware might fall back to the atom protocol if mqtt can’t connect. I have one of the older models so I can’t even install the new firmware to test it out. But worst case scenario downgrading the firmware should work - assuming it’s possible to get older bins(anyone who has a copy or a link to a copy could help out there) And of course the ultimate and probably best way to control is via rs485, but I have limited hardware and time for that. Though I have gotten an esp8266 board at least speaking the protocol.

On Jun 27, 2022, at 6:55 PM, Ted Cabeen @.***> wrote:

 If they're pinning the cert and bypassing the proxy, we are essentially dead in the water, yes? No interception possible, and likely no local control?

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you commented.

nebulous avatar Jun 28 '22 00:06 nebulous

The new firmware does not appear to fall back to the old protocol if the new protocol fails to connect. I inadvertently tested this with my setup after upgrading. I of course had the proxy configured for infinitude, but I also had a firewall rule allowing the thermostat only to connect to the proxy (not to anything on the Internet, thereby blocking the new protocol). The thermostat still requested time and weather through the old protocol, but nothing else.

mamarley avatar Jun 28 '22 02:06 mamarley

The energy tracking feature in the new firmware sounds delightful.

@brettonw FWIW energy tracking data is available to Infinitude (see http://infinitudeIP/energy.json) with older versions of firmware at least. A vacation mode editor and energy tracking feature have been on the long list of Infinitude feature requests for a while now, but if you use Home Assistant, a REST sensor should be able to make use of the above linked data.

nebulous avatar Jun 28 '22 13:06 nebulous

The energy tracking feature in the new firmware sounds delightful.

@brettonw FWIW energy tracking data is available to Infinitude (see http://infinitudeIP/energy.json) with older versions of firmware at least. A vacation mode editor and energy tracking feature have been on the long list of Infinitude feature requests for a while now, but if you use Home Assistant, a REST sensor should be able to make use of the above linked data.

Woah! I didn't know that. I remember seeing the Energy Tracking in the request or todo list for Infinitude so I didn't think it was available. I'll be adding it to my Home Assistant sensor today!

I guess I'll be holding on to this firmware as well. I really want monitoring in HA more than control, so maybe I'll be able to get my serial adapter working so I could log it directly from the feed.

@mamarley Since you have a "real world" use case of the new firmware breaking what used to work with a mandatory proxy, you might try contacting Carrier to see if some feedback might be enough to get some future changes to the behavior regarding fallback or MQTT going through the proxy.

MallocArray avatar Jun 28 '22 13:06 MallocArray

energy tracking data is available to Infinitude (see http://infinitudeIP/energy.json) with older versions of firmware at least. A vacation mode editor and energy tracking feature have been on the long list of Infinitude feature requests for a while now, but if you use Home Assistant, a REST sensor should be able to make use of the above linked data.

Thanks for bringing that up. I have looked at this data and it was good enough when I was getting started on tracking my energy usage. It gives day 1, day 2, month 1, month 2, year 1, and year 2 data for comparison purposes. Unfortunately it isn't at the level that I'm looking for now, and doesn't seem to be very accurate. I think it is just using the preset information about efficiency, not actually measuring power usage.

TL/DR: I was hoping for real-time power tracking split out for the blower and compressor.

Details: This discussion probably belongs in a different issue, but I thought it would be useful for other people to hear how I am solving this issue in Home Assistant, and to hear if there is a better way.

I have two separate Infinity units, one for upstairs and one for downstairs.

I've split out their power usage manually... I pull the api/status json to get the compressor state (off, stage 1, stage 2), and I manually measured the compressor power draw when in different states with a handheld Fluke meter (a bit of a challenge to get the compressor into the different states). I use a template sensor to report a power draw based on this information (assuming it's constant). I'm assuming the compressor is on when the thermostat says "running" or "heating" (I look for "ing" in the current mode).

I did a similar thing for the blower, assuming it is on when the compressor is on. This is not 100% true, but the Carrier tech told me the blower will only run for 90 seconds after the compressor shuts off, so it's close to true. I haven't measured the power draw on the blower yet, just assumed it's around 300W.

My total for the 4 pieces of information is within about 5% of the report coming from my whole home meter minus everything else I know about my house, so I'm happy enough with it for right now.

I'll have to do something different in the winter when I start caring about gas usage. The energy.json report may be all I can get, but if I track on/off times through a day, I might be able to divide a one day usage report by the actual time in use to get a "typical" consumption number.

Home Assistant doesn't make this process easy unless you just bought kWh meters for everything. I'm stubborn and 1) won't use ESPHome (just don't have any knowledge there), and 2) won't buy any product that puts information outside the local intranet.

brettonw avatar Jun 28 '22 14:06 brettonw

For those who are curious, apparently with the latest 4.18 version, they backed out the MQTT implementation (also interesting, the 4.17 version is no longer available for download online, it's back to 4.05). After doing some tinkering with my transparent proxy settings, I WAS able to intercept the SSL communications coming from the thermostat. Which is when I found out they took out MQTT. At that point I pointed my thermostat back to infinitude for the proxy, and then I was back in business. Not sure when they'll try to go back to the MQTT implementation, but thought some folks might be interested in the latest there.

ChrisMurf2900 avatar Jul 04 '22 14:07 ChrisMurf2900

Just out of curiosity, from where are you getting 4.18? I was just at my parents' house last weekend and their system was not notifying about an update and I can't find 4.18 online anywhere.

mamarley avatar Jul 04 '22 15:07 mamarley

I believe a couple weeks ago I got a notification of an update on the thermostat screen. I didn't pay much attention to what the update was when I saw it, other then just clicked on install. When I found out that I wasn't seeing any MQTT traffic, I checked the version on the thermostat and proceeded to check online for release notes on 4.18 (which I was unable to find). The specific version it's showing is: 131626-04.18 Sorry I can't be of more help on where to find that version.

ChrisMurf2900 avatar Jul 04 '22 15:07 ChrisMurf2900

I've had a hard time finding previous versions of firmware, so PSA: hang onto any versions of firmware that you download just in case.

nebulous avatar Jul 05 '22 13:07 nebulous

I've split out their power usage manually... I pull the api/status json to get the compressor state (off, stage 1, stage 2), and I manually measured the compressor power draw when in different states with a handheld Fluke meter (a bit of a challenge to get the compressor into the different states). I use a template sensor to report a power draw based on this information (assuming it's constant). I'm assuming the compressor is on when the thermostat says "running" or "heating" (I look for "ing" in the current mode).

I did a similar thing for the blower, assuming it is on when the compressor is on. This is not 100% true, but the Carrier tech told me the blower will only run for 90 seconds after the compressor shuts off, so it's close to true. I haven't measured the power draw on the blower yet, just assumed it's around 300W.

Not sure if the data aggregated by the infinity systems is accurate enough. My understanding is that they use a fixed value (e.g. compressor uses 2.5KW) and the runtime to determine usage. This is often far off from reality.

I am using a greeneye monitor with 15 second intervals to get a more accurate picture. There are similar (and maybe cheaper) devices as well. My Blower uses up to 425 W, the rest is system standby consumption. Data is passed into Home Assistant and then into Influx/Grafana. I am considering adding some monitoring for my gas meter as well once the winter comes along.

image

sarahmva avatar Jul 27 '22 03:07 sarahmva

Indeed, after measuring my furnace multiple times I now use 700W as the multiplier.

brettonw avatar Jul 27 '22 03:07 brettonw

@nebulous On the comment about previous firmware versions. The latest Carrier thermostat firmware can be downloaded here: https://legacy.myinfinitytouch.carrier.com/Infinity/Downloads 4.31: https://cacbdpapps.net/marketing/eula/Infinity_System_Control_V0431_EULA.html 4.05: https://cacbdpapps.net/marketing/eula/Infinity_System_Control_V0405_EULA.html 3.94: https://cacbdpapps.net/marketing/eula/Infinity_System_Control_V0394_EULA.html 3.62: https://cacbdpapps.net/marketing/eula/Infinity_System_Control_V0362_EULA.html

For Bryant thermostats Latest: https://legacy.myevolutionconnex.bryant.com/Evolution/Downloads 4.31: https://cacbdpapps.net/marketing/eula/Evolution_Connex_V0431_EULA.html 4.05: https://cacbdpapps.net/marketing/eula/Evolution_Connex_V0405_EULA.html 3.94: https://cacbdpapps.net/marketing/eula/Evolution_Connex_V0394_EULA.html 3.62: https://cacbdpapps.net/marketing/eula/Evolution_Connex_V0362_EULA.html

If you have the ICP ION variant of the thermostat you can get all the previous firmware versions here https://airquest.hvacpartners.com/products/detail/SYST0101CW 4.31: https://cacbdpapps.net/marketing/eula/ICP_Ion_V0431_EULA.html 4.05: https://cacbdpapps.net/marketing/eula/ICP_Ion_V0405_EULA.html 3.94: https://cacbdpapps.net/marketing/eula/ICP_Ion_V0394_EULA.html

For the Carrier & Bryant firmware it appears you can get access to their API with this legal agreement https://www.shareddocs.com/hvac/docs/1010/Public/07/sw_openapi_gs_2019.pdf https://carrier.hvacpartners.com/products/detail/SYSTXCCITC01-B

LukeSkaff avatar Aug 31 '22 13:08 LukeSkaff

Thanks for those links @LukeSkaff ! Do you have any idea if Bryant firmware is able to be downgraded? I stumbled upon this project after building a new house with a Bryant unit, only to find out that I must have bought at an unlucky time because mine came with 4.17 and it's not giving me an option to upgrade :(

JonGilmore avatar Oct 02 '22 17:10 JonGilmore

Yes, I’m not updating unless we find out that the local control can continue to be used…

At the risk of sounding ranty, there’s a reason I’d consider rewiring…

The system was installed in the house by a previous owner as a selling point - 2 separate systems for each floor, and probably not done right. They don’t work very well and I can’t quite get the insight I’d like into how to improve it. I can’t even find a servicer who actually understands how to configure the things. What is so special about these systems? Is it just the two speed controls? FWIW I am running 30+kwh/day on cooling two 1200 sq ft spaces, and it’s only June.

Among other problems, the thermostat location for the upstairs is just wrong for the air dynamics in the house. I looked into remote sensors, but carrier only has wired options. The appropriate location is 50’ away in this finished house.

I need nebulous, because my solution is to run an elaborate automation in home assistant to treat the upstairs system like an on/off switch driven by a temperature gauge in the other room. To make this work, I built my own gauge reporting 0.1 degree temperature accuracy once per minute (and that doesn’t draw wifey’s ire by looking like a satanic eyeball sitting on my dresser).

On Jun 18, 2022, at 6:34 AM, Michael Marley @.***> wrote:

 If you care about it that much, just don't upgrade the FW (it doesn't happen automatically, at least not until 4.17 is already installed). But please, please don't rewire your thermostats. If you use Infinity equipment without the Infinity thermostat, you wasted your money on the equipment.

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you commented.

brettonw avatar Oct 11 '22 08:10 brettonw

Yeah, it does sound like your system(s) was/were installed wrong. You mention that you think the thermostat is in the wrong place and, in all likelihood, it is. As far as I am concerned, there simply isn't a good place to put a single thermostat in a multi-room space of any significant size. The problem is that the thermostat usually ends up getting put in a central hallway or something in the middle of the house. The problem with that is that all the heat load, both from external sources and from internal activities, tends to be placed on the edges of the space, as far away from the thermostat as possible. Combine that with bang-bang constant air volume (CAV) control that often provides no ventilation when the compressor is off and it can take quite some time for the thermostat to react to changes in temperature in the rooms in which people actually spend time.

The place where the Infinity control really shines is in combination with inverter-driven outdoor units (the 25VNA4 and the 25VNA8) in combination with Infinity zoning. When you have an ODU with 5 stages (25VNA8) or fully variable (25VNA4) combined with a variable-speed AHU (all modern Infinity AHUs have this) and modulating zone dampers (this means the position of the dampers is variable rather than being full-on or full-off) with a zone thermostat in each room (or at least much closer to them), you can achieve a much better method of control. Under this paradigm, instead of switching on when the temperature gets too high and off when it gets too low, the system runs more or less continuously and supplies enough cold air to each zone to keep it at temperature without cycling. The constant provision of cold air keeps rooms from getting stuffy and is also ideal for dehumidification. It is, as far as I am aware, pretty much as close as you can get to a commercial-style variable air volume (VAV) system as you can get with residential equipment.

mamarley avatar Oct 11 '22 11:10 mamarley

I'm not sure if you need my help to do something more elegant, since I have kludges on top of hacks on top of duct tape in a single zone system with assorted Home Assistant/esphome mods. One of the most effective hacks thusfar is installing a 6 inch inline duct booster in the basement feeding one of my upstairs registers from ambient basement air. Setup a speed controller connected to esphome/home assistant to run it. Worked far better than I could have expected, even with only 240cfm it worked better than just running the house blower all the time. I worry about feature creep, but Infinitude could probably stand to expose some rs485-only data in json - blower motor speed in particular - to get a more accurate idea of running state. I have a separate booster fan in another duct also running esphome with a temp/humidity/pressure sensor that can detect running state fairly well too, so that's also an option. You can see the temperature and humidity values spike very detectably when the system is actually conditioning, but unfortunately the pressure sensor can't reliably detect a change in duct pressure, so I don't use that. image

nebulous avatar Oct 11 '22 16:10 nebulous

Edit: I looked at other open issues and see that people are having trouble with 4.31 so I guess I'll stick with 4.05, though it looks like people are able to downgrade.

I see there have been 2 additional firmware releases. Neither mention MQTT anymore.
Was anyone able to confirm if downgrade is an option or know if these newer versions work with Infinitude? https://www.myinfinitytouch.carrier.com/Content/docs/v0431-20221128.pdf

Version 4.31 (November 2022) 
Version 4.31 software includes the following updates to the Series B Carrier® Infinity® System 
Control: 
 Data rate limiting until app usage is active. 
 Reminder alerting homeowners that they must download and use the new mobile app 
(Pop up message reminding users to transition from the legacy app to the newer app). 
 System monitor – feature added to alert any potential issues with temperature control 
 Enable/disable for system monitor (provide an option to turn on or off this feature) 
 Ability to clear stored Wi-Fi credentials (existing control with new homeowner) 
 New Vertex coils added to coil selection screen for refrigerant charging 
Version 4.22 (August 2022) 
Version 4.22 software includes the following updates to the Series B Carrier® Infinity® System 
Control: 
 Updated cloud connection interface to improve the response time between mobile app 
and 
 Added QR code generation & display support for wall control models. 
 Added QR Code feature to access consumer site and release notes directly from mobile 
device. 
 Updated UI Help text for Quiet Mode and Capacity Limiting screens. 
 Changed reminder Icon to reminders & alerts where the user can now set Low and High 
temperature and humidity alert (fault codes 187 – 191) this "trip point" will then send a 
notification to the end user for an out-of-range condition. 
 Added ability to reset equipment reminders via mobile app. 
 Updated Filter check logic to operate based on pressure monitor status. 
 Addressed the issue to report consistent Energy tracking information between wall 
control display and mobile app. 
 Updates to reflect the accurate Carrier® Infinity® 24/26 ODU configuration when installed 
with FE4ANF005 model fan coil. 

MallocArray avatar Dec 27 '22 16:12 MallocArray

Updated cloud connection interface to improve the response time between mobile app

This could be MQTT.

--ted

On December 27, 2022 10:01:20 AM CST, MallocArray @.***> wrote:

I see there have been 2 additional firmware releases. Neither mention MQTT anymore. > Was anyone able to confirm if downgrade is an option or know if these newer versions work with Infinitude?

https://www.myinfinitytouch.carrier.com/Content/docs/v0431-20221128.pdf


Version 4.31 (November 2022) >
Version 4.31 software includes the following updates to the Series B Carrier® Infinity® System >
Control: >
 Data rate limiting until app usage is active. >
 Reminder alerting homeowners that they must download and use the new mobile app >
(Pop up message reminding users to transition from the legacy app to the newer app). >
 System monitor – feature added to alert any potential issues with temperature control >
 Enable/disable for system monitor (provide an option to turn on or off this feature) >
 Ability to clear stored Wi-Fi credentials (existing control with new homeowner) >
 New Vertex coils added to coil selection screen for refrigerant charging >
Version 4.22 (August 2022) >
Version 4.22 software includes the following updates to the Series B Carrier® Infinity® System >
Control: >
 Updated cloud connection interface to improve the response time between mobile app >
and >
 Added QR code generation & display support for wall control models. >
 Added QR Code feature to access consumer site and release notes directly from mobile >
device. >
 Updated UI Help text for Quiet Mode and Capacity Limiting screens. >
 Changed reminder Icon to reminders & alerts where the user can now set Low and High >
temperature and humidity alert (fault codes 187 – 191) this "trip point" will then send a >
notification to the end user for an out-of-range condition. >
 Added ability to reset equipment reminders via mobile app. >
 Updated Filter check logic to operate based on pressure monitor status. >
 Addressed the issue to report consistent Energy tracking information between wall >
control display and mobile app. >
 Updates to reflect the accurate Carrier® Infinity® 24/26 ODU configuration when installed >
with FE4ANF005 model fan coil. >

-- > Reply to this email directly or view it on GitHub:

https://github.com/nebulous/infinitude/issues/148#issuecomment-1366009682

You are receiving this because you commented.

Message ID: @.***>

secabeen avatar Dec 27 '22 16:12 secabeen

Data rate limiting until app usage is active.

also reads to me as potentially "don't have the stat send anything but an alive message until the new version of the app is installed which uses a different interface"

nebulous avatar Dec 27 '22 16:12 nebulous

Can confirm 4.31 is connecting to mqtt.res.carrier.io port 8883 (MQTT over TLS) even though the proxy is set. Not getting anything from the thermostat in Infinitude. :(

Not sure if anyone has had the patience, but I'm trying to see if it eventually falls back to the proxy if the MQTT doesn't make it. Currently blocking at the firewall and it appears to be using some sort of backoff timer between retries.

mattster98 avatar Jan 26 '23 19:01 mattster98

@mattster98 any news on fallback with 8883 blocked? It's nice to see Carrier joining the 21st century using mqtt to control IoT devices, but it is rather annoying that in so doing they're making it harder for people who'd like to control their IoT devices 😄 I'd also be interested to know if there are any configuration options for setting the mqtt hostname. Perhaps in the "secret" service menu?

nebulous avatar Feb 01 '23 02:02 nebulous

Sadly, no. I gave it a few days and gave up.

There is the "MyInfinity server address" which is set to www.api.ing.carrier.com:80

It does list a MyInfinity Data Server and a MyInfinity OTA Server separately on the remote access status, but I can't find a hostname setting anywhere. Nothing in the secret service menu.

mattster98 avatar Feb 01 '23 02:02 mattster98