Carrier Infinity

Im curious about Infinitude - has anyone used it to be able to catch "freeze frame" type data?
 
Background: had an Infinity system installed over the summer (new AC, new furnace).  After firing up the furnace once the gas line was run, all was well.  A month later when we actually needed heat, I noticed the furnace would intermittently trip the high limit....at one point it did it enough times to cause the controller to bump it to max heat until the system was reset.
 
Contractor came out, tweaked the gas pressure settings a bit (lowered it to keep the temp rise to the lower end of the allowed range).  Worked fine for a month, now it tripped again over the weekend.
 
What I would like is a way to log all of the data before during and after this happens, or even better yet just freeze frame the values when the limit is tripped.  Static pressure (as calculated by the sytem), blower RPM, CFM, blower power draw, zone position, etc.
 
Has anyone done this?  Is it possible to interpret the zone positions as well? (Im thinking my issue is duct related, but with 2 zones if Im not sitting there right when it happens, I dont know the state of the system when it occurs)
 
Thanks in advance.
 
-Chris
 
@sycto
 
Hi Alex,
 
Many thanks for your reply. Yes, I'd love to work with you to try and figure this out... though to be honest I'm new to all of this, so you'll have to pardon my ignorance.
 
Where to begin? ;)
 
Kind regards,
 
 
Mark
 
Ah. Well with the infinitude and code on github... i think. https://github.com/nebulous/infinitude
 
I know the code is supposed to have a sort of REST interface.  But it isn't document and I have almost zero coding skills so haven't managed to work out from the code what the HTTP URIs and syntaz are say for retrieving status of zones, temps, etc.  Let alone how to send commands for set points etc.
 
If you have any coding skills it would be good if you could look over the code and point me to the right sections and help me figure it out, if not then i guess we are a case of the blind leading the blind!!!
 
I guess first questions:
  1. Do you have a carrier infinity wireless / wifi touch thermostat?
  2. If you want to start connecting to it via infinitude have you got all the hardware you need?
  3. I can definitely  help you get the basics up and running - this is good guy for running infinitude on Pi https://github.com/nebulous/infinitude/wiki/Installing-Infinitude-on-Raspberry-PI-(raspbian)  
Scyto
 
Oh also did you get your Sam's?  i have an ideal on how to use those and an autelis controller with the ISY - never tried it as the two SAMs i bought off ebay for 50 bucks were DoA :-(
 
Sorry again for the delayed reply. While I do have a programming background, I haven't written any code in about 6-7 years... so we might need to enlist the help of others!
 
In response to your questions:
  1. Do you have a carrier infinity wireless / wifi touch thermostat? Yes, I have the SYSTXCCITC01-A themostat
  2. If you want to start connecting to it via infinitude have you got all the hardware you need? I think so...
  3. I can definitely  help you get the basics up and running - this is good guy for running infinitude on Pi https://github.com/n...n-Raspberry-PI-(raspbian) OK, I'll try installing infinitude on my Pi over the next day or so!
And yes, I've got the SAMs—although I haven't had a chance to hook them up yet.
 
Latecomer to the party here.
 
I bought a home recently that came with a "non-touch/non-wifi" Carrier system and have been using Infinitiude/BryBus with success.
 
Does anyone have any captures or examples code of how the SAM interacts with the Thermostat?
 
scyto said:
I know the code is supposed to have a sort of REST interface.  But it isn't document and I have almost zero coding skills so haven't managed to work out from the code what the HTTP URIs and syntaz are say for retrieving status of zones, temps, etc.  Let alone how to send commands for set points etc.
"sort of" rest interface is accurate :) but if Infinitude works to control your thermostat, any HA controller that supports basic http-style controls should be able to control Infinitude.
 
The closest thing to documentation of the REST(ish) interface is this conversation on github: https://github.com/nebulous/infinitude/issues/2
 
 
Set current activity thusly:
    /api/yourZoneIdMostLikely1/hold?activity=(home|away|sleep|wake|manual)&until=HH:MM&hold=(on|off)
 
Edit settings for each activity like so:
    /api/yourZoneIdMostLikely1/activity/(home|away|sleep|wake|manual)?htsp=99&clsp=60&fan=(high|med|low|off)
 
 
So, for example if I would like to set the `manual` activity to heat with a setpoint of 65deg and hold manual mode until 3pm here are the calls(expressed with GET params for easy viewing, though it would be best to use POST in your controller if possible)
 
In my case I have only one zone, so all api calls will begin with `/api/1/` where 1 is my only zone id. Infinitude is running on my local network at hostname `pogotude`


http://pogotude/api/1/activity/manual/?htsp=65
http://pogotude/api/1/hold?activity=manual&until=15:00

 

The first entry edits the heat setpoint in the `manual` comfort profile to 65
The second entry sets the current profile to `manual` until 3pm (15:00)
 
hope that helps. 
 
*edit: status and configuration are available as either xml or json depending on your controller's preferences at /status.(xml|json) and /systems.(xml.json)


http://pogotude/status.xml
http://pogotude/systems.xml

or

http://pogotude/status.json
http://pogotude/systems.json

 
 
I have been following this for a while now and decided to put a Pi together to do this. I have it seeing the data from the thermostat, but can't get the serial part working (I suspect this is the fact I bought the cheap RS485 adapter and going to buy the better one).
 
I am having issues with the http commands and asking for clarity. I can get it to change... sometimes. Is the commands going directly to the thermostat, or are they going back to the cloud service to be sent to the stat?
 
Also, what I am noticing is that I can change between sleep and home... if I add a hold until time, or turn hold on|off, but how would I just change between the two without having to do anything else?
 
Also is there an http command to turn the stat on and off (change mode)? What I am trying to do is use this to interface with homeseer automation software and want to have the stat turned off if I have the windows opened for longer than 2 minutes, and turn back on when everything is closed up.
 
Appreciate any help on this and also appreciate the efforts by all on this up to this point. I by no means have any ability to code and I am glad others can do this!!
 
waynehead99 said:
I have been following this for a while now and decided to put a Pi together to do this. I have it seeing the data from the thermostat, but can't get the serial part working (I suspect this is the fact I bought the cheap RS485 adapter and going to buy the better one).
 
Are you able to see serial data in a serial terminal application such as minicom? That's the simplest first item to check before getting into brybus or infinitude serial debugging.
Some incantation like 

minicom -D /dev/ttyUSB0 -b 38400

 
 
I am having issues with the http commands and asking for clarity. I can get it to change... sometimes. [Are] the commands going directly to the thermostat, or are they going back to the cloud service to be sent to the stat?
Are you speaking of Infinitude /api/* http commands? If so, they're going to your local implementation of Infinitude, which if your thermostat is configured to use, your thermostat will collect updates from. Depending on whether you have Infinitude configured to pass calls to Carrier's cloud service, Carrier may also be notified of the change.
 
Also, what I am noticing is that I can change between sleep and home... if I add a hold until time, or turn hold on|off, but how would I just change between the two without having to do anything else?
As far as I'm aware the only ways to change the current running mode are to hold, or to modify the schedule. Schedule modification is possible via the web interface, but is outside the scope of the simple Infinitude api
 
Also is there an http command to turn the stat on and off (change mode)? What I am trying to do is use this to interface with homeseer automation software and want to have the stat turned off if I have the windows opened for longer than 2 minutes, and turn back on when everything is closed up
To switch between heat/cool/etc? No, but that's a good idea. If you file a github issue I'll write it.
 
Speaking of which, I'm pleased that people are using Infinitude and am happy to help when I can, but as evidenced by this tardy reply, I'm not likely to see requests on this forum very quickly. Github is the best way to reach me about Infinitude, plus this thread isn't exclusively about Infinitude, but the Carrier serial bus in general. Which I would very much like to hear more about - especially from those who have SAMs or SAM emulation working. It's a lot to wade through, but I think some people actually have done so. If I can duplicate then I'll put serial control in Infinitude rather than just passive monitoring.
 
It appears this topic is still somewhat ongoing.
I emailed Nebulous last week to make initial contact.
Anyway, got my Raspberry up and going with one of the cheep USB/485 converts and currently capturing data.
I can recognize some of the pattern matches mentioned in this forum, but I'm light years behind you guys. Gonna try to catch up as best as I can.
 
A bit more about who's behind this post. I'm a senior software developer working at Rockwell Collins. Primarily write networking and control code. Only stating this so you won't have to go software 101 on me.
 
Enough for now, but thought I'd ask one question to help me get synch'd up and caught up some.
 
I was trying to find where in the capture I  might find the temperature set point. Ya know form the Thermostat. And the commands sent to the furnace to start heat cycle.
Also, is all the data two's compliment? When and if I find the temp set will it be 2's compliment also?
 
Thaks Al Harper
 
skidmark said:
It appears this topic is still somewhat ongoing.
I emailed Nebulous last week to make initial contact.
Anyway, got my Raspberry up and going with one of the cheep USB/485 converts and currently capturing data.
I can recognize some of the pattern matches mentioned in this forum, but I'm light years behind you guys. Gonna try to catch up as best as I can.
 
A bit more about who's behind this post. I'm a senior software developer working at Rockwell Collins. Primarily write networking and control code. Only stating this so you won't have to go software 101 on me.
 
Enough for now, but thought I'd ask one question to help me get synch'd up and caught up some.
 
I was trying to find where in the capture I  might find the temperature set point. Ya know form the Thermostat. And the commands sent to the furnace to start heat cycle.
Also, is all the data two's compliment? When and if I find the temp set will it be 2's compliment also?
 
Thaks Al Harper
 
1.  The heat and cool set points should be in table 0x3B, row 3 on the thermostat.  I don't have the exact offsets handy, but I can post java code if that'd be helpful for you.
 
2.  I don't think you send commands to the furnace directly, rather you write back the same table and row to the thermostat with the set point adjusted (and likely a hold duration).  I'm still working on this.
 
3.  I don't think everything is two's compliment.  Some values seemed to be unsigned bytes or shorts.
 
4.  I think it's just an unsigned byte.
 
Intrepd said:
1.  The heat and cool set points should be in table 0x3B, row 3 on the thermostat.  I don't have the exact offsets handy, but I can post java code if that'd be helpful for you.
 
2.  I don't think you send commands to the furnace directly, rather you write back the same table and row to the thermostat with the set point adjusted (and likely a hold duration).  I'm still working on this.
 
3.  I don't think everything is two's compliment.  Some values seemed to be unsigned bytes or shorts.
 
4.  I think it's just an unsigned byte.
 
Thanks much! Yea, send me any and all java code your willing to. Been doing java a long time also. It would be VERY helpful!!!
Al
 
 
skidmark /  intrepd - did you identify a reliable RS485 to USB adapter for the pi - mine was working find but is now flaky as crap with infinitude... (seems ok with brybus mind you).  But i will replace it if you have identified rock solid one?
--edit---
 
another thought - what speed do you set the adapter to under linux / whats you preferred way of doing that?
 
Back
Top