Carrier Infinity

Yeah sorry about that, a friend noticed that the JSON interface wasn't working so I fixed it.  The x86 release also doesn't work due to endian issues with the CRC-16 library I used initially.  I'll roll a new release soon.
 
 
will1604 said:
OK - looks like the build at the Download URL was the initial release. Built from source and I'm getting JSON back from the API. Very nice.
 
I'd like to give infinitive a go, but I have a 2 zoned system. How much guinea pigging would I need to be to get that working?
 
rhodges said:
I'd like to give infinitive a go, but I have a 2 zoned system. How much guinea pigging would I need to be to get that working?
 
I'll need to reread the protocol dumps I have to give you a better answer on that.  I'm not familiar with how a two zoned system works.  Do you have two thermostats and two separate HVAC systems all on the same ABCD bus, or does a single thermostat control everything somehow?
 
The only real guinea pigging would be feedback on your end regarding what's happening on your thermostat when sending specific messages, primarily to verify expected behavior.  I could also probably whip up something to give you the ability to send single messages from the command line.  
 
2 thermostats, 1 system. There is a zone controller, which is really just a damper that shuts off the flow of air to all the ducts on a zone. When Zone 1 comes on, Zone 2 closes. If both zones "come on", then the damper opens and air flows in both (and it might ramp the fan up inside, it is a variable speed fan).
 
I think the 2nd thermostat is more of a dummy thermostat. It even looks like crap. I can control (and read) everything from the main unit.
 
I just setup infinitude without the RS485 connection. I plan on hooking that up this weekend some time.
 
bwally said:
Hi acd,
you may have noticed i have been seeking a solution to monitor a carrier infinity single zone system without a SAM. the purpose is to prevent a financial disaster i experienced last year when the compressor went down and the system ran on emergency/aux heat all winter.
 
i have successfully installed and running your infinitive software on a Pi 2 Model B V1.1 and it runs great. I don't have an RS485 adapter but i was able to at least test with a standard USB to Serial adaptor. (for now)
Currently i would require just 1 feature and that would be email notification the system has gone into Emergency/Aux mode.
 
Ultimately, i would like to get the full SAM emulation working and integrated into a Control4 system. The current Control4 driver is looking for the data on a serial port. It would be great to rework the Control4 driver (written in LUA) to look for your data via IP ... that would be awesome!
 
Do you think there is a way to get the notification of Emergency/Aux mode from infinitive? Perhaps we can use IFTTT?

FYI ... i'm running the latest Raspian Pixel ... soooo nice!

thanks!
steve
 
Steve,
 
Still experimenting - but I posted a fork to infinitive which makes the stage available via its REST API. Higher stages (3 and 4) on a heat pump system seem to correspond to aux heat on. 
 
Will1604
 
I'm playing around with infinitude after not using it for a while. I noticed once I pointed my thermostat to it, I no longer get updates to carrier.  24 hours now and counting. I have tried a couple of different values in pass_req. I don't see any errors when I run it in debug mode. I see a lot of GET "status.json" and POST /systems/XXXXX/status".
 
I think this is why I stopped using it a while back. Am I doing something wrong, or expecting something wrong?
 
Edit:
I do see things like this sometimes:
 
[Sat Dec 17 03:33:36 2016] [debug] GET "/systems/XXXXXXX/utility_events".
[Sat Dec 17 03:33:36 2016] [debug] Template "not_found.development.html.ep" not found.
[Sat Dec 17 03:33:36 2016] [debug] Rendering template "not_found.html.ep" from DATA section.
[Sat Dec 17 03:33:36 2016] [debug] 404 Not Found (0.026696s, 37.459/s).
 
Edit 2:
I am seeing this:
 

[Sat Dec 17 04:39:11 2016] [debug] No cache for systems-XXXXXXX-status. Make Carrier request
 
This in the res-systems-XXXXX-config.txt
 

HTTP/1.1 404 Not Found
Date: Sat, 17 Dec 2016 04:13:40 GMT
Content-Length: 0
 
Edit 3:
If I use the use the Advanced Rest Client from google and issue a GET with information from the req.txt file, I get values back.
 
Edit 4:
I think this can be discarded. I think I got something messed up and I am not able to resolve the url on my pi.  I'll confirm later.
 
Nope, nevermind. I can take the data from the req.txt file and issue a curl request and I get data back. So something isn't playing nice in infinitude.
 
Edit 5:
....and this is the line that is causing me problems: 
$o_url->scheme('https');
 
If I change it to http it works fine. When I execute it with curl -v it also works http or https. I even pulled the latest Mojolicious. I wonder if there is another package I need to update.
 
If it matters, I am running in it an docker.
 
Edit 6:
Woot, figured it out. I needed to update IO::Socket::SSL


 
sudo apt-get install libssl-dev
 
cpanm Net::SSLeay
cpanm IO::Socket::SSL
 
Now to wipe it all out and start from scratch with my notes.
 
acd said:
I'll need to reread the protocol dumps I have to give you a better answer on that.  I'm not familiar with how a two zoned system works.  Do you have two thermostats and two separate HVAC systems all on the same ABCD bus, or does a single thermostat control everything somehow?
 
The only real guinea pigging would be feedback on your end regarding what's happening on your thermostat when sending specific messages, primarily to verify expected behavior.  I could also probably whip up something to give you the ability to send single messages from the command line.  
 
Hi acd,
the recording you have are coming from a zoned system. There is only 1 thermostat on each system, the smart sensor for zone 2, or remote sensors are just that; sensors that feed the data to the primary thermostat. Look for the strings s1z1... and s1z2... where Z1 is first zone and Z2 is the second. You should be able to tease our the command differences. Let me know if you need more reading to get the meaning.
 
I have a PC reading data from my Carrier Infinity thermostat (old non-touch version) over a RS485 connection using the BryBus routines.  I am now trying to update (ie write) some of the parameters but not getting anywhere.  I can form the frame, send it out on the bus and get an acknowledgement response from the stat but none of the values change.  In an earlier post (Feb 2014) az1324 said he thought that the first three data bytes of a write request were probably some sort of mask to determine which bytes in the register to overwrite.  I'm just mirroring those three bytes from a read request and I suspect that is my problem.  Does anyone have a copy of the SAM messages mentioned in the previous post, or details on how to form the write frame?
 
Many thanks.
 
lleo said:
Hi acd,
the recording you have are coming from a zoned system. There is only 1 thermostat on each system, the smart sensor for zone 2, or remote sensors are just that; sensors that feed the data to the primary thermostat. Look for the strings s1z1... and s1z2... where Z1 is first zone and Z2 is the second. You should be able to tease our the command differences. Let me know if you need more reading to get the meaning.
 
Okay cool.  If anyone with a 2 zoned system wants to try and get this going, I'd love to arrange some remote access to your rPi so I can verify proper behavior of Infinitive.  Send me a DM or email me (address can be found on the github link).
 
After being on a hiatus for awhile I find myself trying to catch up on the progress.
It seems AZ1324 Posted on 24 February 2014 something about sending some logs or decoded data streams via a PM.
Not gonna suggest anyone me sensitive info which I guess was the reason for the PM, but could anyone share whatever it was that AZ1324 published? Assuming any part of it could be shared.
 
Thanks!
 
Al, responded in PM as well, but to document publicly:
 
As for the decoding of the above frame, I can't help you with meaning, but can with framing
 
references:
https://github.com/nebulous/infinitude/wiki/Infinity-serial-protocol
https://github.com/nebulous/infinitude/wiki/Infinity---known-devices
https://github.com/nebulous/infinitude/wiki/Infinity---interpreting-data
 
from thermostat 2001
to furnace 4001
15 bytes in length 0f
2 bytes padding 0000
response 06
register 00 03 02 which depending on your device, table 3 may be called RLCSMAIN or INGUI
payload 04 11 00 00 04 14 00 00 04 02 00 00
 
 
I can tell you that particular register in my fancoil *never* changes, but is refreshed a few times per minute. In my case the payload is always:
04 11 00 00 04 1C 00 00 04 13 00 00
 
hopefully that helps, and if you figure anything out please let us know!
 
Thanks for the info.
 
I'm working on the continuing effort to crack the protocol as I can. I've added a couple of java primitives to record the tables and rows and log every time something changes. It's been a little helpful.
 
I got a very good friend of mine that's been in service with Carrier for many many years. He'd tell me anything I wanted to know. Even he doesn't have access to the secrets.
 
I need to ask him if I can get a brother-in-law deal on a SAM. I'll let ya know if anything positive comes out of it.
 
Al
 
I don't know if anyone else is still actively trying to crack the Carrier Infinity project using java, but I am, using Nebulous's java project.
I've started a new java utility class that tracks each and every message by table and row and creates a log entry ( using log4j2 ) whenever there is a change.
Makes for monitoring a bit more easier, at least for me. If anyone else is doing this and wants a copy let me know.
 
Al
 
In all the documentation and code snippets I've studied it appears the outside unit ( the condenser ) is referred to as the HEATPUMP. Whether it's truly a heat pump or the traditional AC condenser unit, that's the impression I'm getting. Is my assumption correct?
 
Also, does anyone know what the frame(s) look like that return the OAT (outside air temp ) to the TStat? What would the table/row address be?
 
Thanks Al
 
Back
Top