Comments (10)
I used mitmproxy with the desktop Air application to do just that, actually. Other $lifeEvents have kept me from exploring further unfortunately. Interestingly enough the app that runs on the device itsself has the option for a proxy server, so if it will trust a self-signed proxy server key, messages may be able to be intercepted and changed, allowing local control.
*which is all incredibly convoluted. Direct access to the rs485 would be ideal.
from infinitude.
I was able to get the consumer key and secret from the flash file and just starting to explore if I can authenticate to the server and at least read status data. But to your point it would not be direct communication with the device.
Can we issue commands directly to the device over the network? It feels almost like the actual device just "phones home" on a regular basis instead of receiving "push" updates from the server...which may make it hard, if possible at all, to talk directly to the device on demand.
from infinitude.
Yeah I think it does just poll the central server for everything. It may use long-polling to simulate push.
As far as I can tell there are three ways to programmatically control the stat (and yes, could be delayed)
- rs485 (or rs232 with rapaciously, ludicrously, ridiculously priced "SAM") (getting there -- see wiki)
- locally run simulation of carrier's service - (now have working local server)
- write client for carrier's service (meh, I think it's best to take them out of the loop)
I extracted the SWF for the app and didn't see the oAuth secret, any hints on the path for that? Option #3 above should be relatively straightforward with working oAuth.
from infinitude.
So you have to decompile the SWF file. Sothink SWF Decompiler is a good choice. The trial version worked for me. Just navigate to the SWF file and you can expand the directory tree within the SWF.
I found what i needed in MyInfinity.swf/Action/com/carrier/net/MyInfinitySession
I am new to oauth so trying to figure that all out. I used Fiddler to see the network traffic of the app and the URLs it hits to authenticate.
I think a good first step is trying to just read the status info...
from infinitude.
Any further progress? I don't know if you noticed, but the definitions for each webservice endpoint are embedded in the swf as well. I haven't had a chance to find a decompiler that outputs the oauth keys, so I only have the consumer not secret. I'm guessing that the OAuth bit might actually be the same for all 'stats since they authenticate with user/pass on top of that.
from infinitude.
No further progress. Both work and personal life picked up a bit recently. I can email you the details for oAuth if you want (really all the ruby code I have around this) if you think that would help you. I sniffed the traffic in Firebug and have what I need to get the status of each t-stat if I can figure out the oAuth part.
from infinitude.
Great, yeah stupid realLife has impeded my recent progress as well. But
sure, send me what you have and I'll check it out.
from infinitude.
I might be missing something but I don't see an email address for you.
from infinitude.
Looks like I didn't have a public email address set on my profile. Whoops, fixed. For the record, you don't either :)
from infinitude.
I know this issue is quite old, but I would also love to get my hands on this ruby code and the secret for an iOS app I am working on. 📱 Is there any chance you could forward those old emails?
from infinitude.
Related Issues (20)
- Carrier Infinity Touch unable to reach www.api.ing.carrier.com when proxying through Infinitude HOT 2
- Bryant Thermostat won't talk to Infinitude HOT 4
- Additional RS485 Decoding - Questions HOT 2
- It's not always clear to new users how Infinitude works: HOT 3
- Heat source HOT 21
- Trying to ingest JSON status api into Telegraf HOT 4
- Not working with ION Home Comfort HOT 2
- Novice trying to get off the ground... HOT 3
- Is there a way to tell if the carrier thermostat is online? HOT 1
- Question about HA yaml for infinitude sensors HOT 1
- Serial number of unit not exposed HOT 1
- Repeated messages in Syslog - Question HOT 4
- How do i figure out which stage the A/C is running at via the API? HOT 4
- Clarification on Carrier server access HOT 6
- Trying to install 3 instances of infinitude HOT 2
- Hold API confusing and unreliable. HOT 18
- Home Assistant Addon HOT 2
- Quick question: "mode" is it controllable? HOT 7
- Is it possible for infinitude to be talking to the thermostat AND still be connected to Carrier servers? HOT 1
- Thermostat reverts to old config after being changed by Carrier cloud API HOT 7
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from infinitude.