If anyone is looking for something similar it's worth looking into A somewhat less complex solution that preserves all functionality. Use the IR receiver plus a broadlink IR Hub. You can meet all the goals here, run it all locally the only downside is no 2 way communication. So if you do change the thermostat via the wall it won't be reflected in your app.