Skip to main content

American Standard Home / Trane Home (Nexia)

GEM controls American Standard Home, Trane Home and legacy Nexia thermostats — the Trane XL824 / XL850 / XL1050 and American Standard Gold / Platinum models — through the same cloud service the homeowner's phone app uses. You sign in with the account email and password; there is no activation code to fetch from the thermostat.

One GEM device covers the whole house. Every Nexia zone in the account becomes its own GEM climate zone with its own temperature, heat and cool setpoints, and mode. That matters on a zoned system: a single XL1050 can drive several dampered zones, and each one shows up separately.

Cloud, not a local protocol

There is no LAN path to these thermostats — the GEM server needs outbound HTTPS. It works reliably, but a service change on the vendor's side can break it until the driver is updated. Keep local hardware (relays, BACnet, Modbus) for anything that must run with the internet down.

Pick the right brand

The service split by brand, and the old mynexia.com host no longer signs in accounts that have been migrated — it answers with "you'll need to download American Standard Home". Set the Brand attribute to match the app the homeowner actually uses:

BrandServiceApp
asair (default)asairhome.comAmerican Standard Home
tranetranehome.comTrane Home
nexiawww.mynexia.comLegacy Nexia accounts that were never migrated

If sign-in fails telling you to download a different app, that message names the brand you should be using. Switch the attribute and save.

Prerequisites

  • A working account with the thermostats enrolled and online — confirm they respond in the phone app before adding them to GEM.
  • The account email and password.
  • Outbound HTTPS from the GEM server.
Signing in registers a device on the account

Each sign-in adds an entry to the homeowner's connected-devices list in their app, and revokes the previous entry for that brand. GEM stores the credentials it gets back and reuses them across restarts, so this normally happens once. If the homeowner signs the same account into another integration that also uses username/password, the two will keep revoking each other — give each integration its own account login if you can.

Add the house

  1. Open System → Devices and click Add Device.
  2. For Driver, choose American Standard Home / Trane Home (Nexia).
  3. Subsystem pre-selects Climate. Leave it there.
  4. Name the device for the house (e.g. driftwood_hvac), not for one thermostat.
  5. Under Authentication, enter the Account Email and Account Password (stored encrypted). Leave Mobile ID and API Key blank — GEM fills them in after signing in.
  6. Under Connection, set the Brand. Leave House ID blank unless the account holds more than one house; GEM discovers it and saves it.
  7. Save. GEM signs in, finds the house, and creates one climate zone per Nexia zone.

Zones are named from the thermostat and zone names in the app. A single-zone thermostat is named after the thermostat itself (the cloud's internal NativeZone placeholder is never shown); on a zoned system you get names like Kitchen and Kitchen Upstairs.

To map zones by hand instead, turn off Auto-create Zones and set each zone's address to the Nexia zone id. Run discover to list them.

How you control it

Commands are addressed to a zone, so the normal path is the zone's climate control in a UI, or a macro/trigger/schedule targeting the zone.

CommandArgumentValuesWhat it does
setpointsetpoint, modewhole number; mode = heat or coolSets one side of the zone's setpoint pair. With mode omitted it follows the zone's current mode
system_modemodeoff, heat, cool, autoSets the zone's mode
fan_modemodeauto, on, circulateSets the fan mode — thermostat-level, see below
run_modemoderun_schedule, permanent_holdFollow the thermostat's schedule, or hold the current setpoints
get_statusRefreshes the whole house now instead of waiting for the next poll
discoverLists every thermostat and zone with its id, model, mode and readings
sign_inForces a fresh sign-in. Only needed if the stored credentials were lost

Setpoints are whole numbers in the thermostat's own scale (°F on a typical North American install) — GEM passes them through without converting.

Setpoints are clamped, and the pair is kept apart

Each thermostat reports its own limits (typically heat 55–90, cool 60–99) and a minimum separation between the heat and cool setpoints (usually 3°). The cloud enforces the separation by silently moving the other setpoint, and it does not range-check at all — it will accept a cool setpoint of 120.

So GEM does both checks before sending: a value outside the reported limits is clamped, and if the new setpoint would crowd the other side, the other side moves to preserve the separation. Both adjustments are written to the device log, so if a setpoint lands somewhere other than what you asked for, the log says why. A wider separation can be set per zone with the deadband attribute or on the Climate subsystem; a narrower one than the equipment allows is ignored.

Setpoints only stick if the zone is holding

A zone following its schedule will revert your setpoint at its next scheduled transition. Send run_mode = permanent_hold first (or as part of the same macro) to make a change persist. Zones that don't run a schedule don't expose run mode at all, and the command reports that rather than pretending to work.

Fan mode belongs to the thermostat

Fan mode is a property of the thermostat, not the zone. On a zoned system, changing it from one zone changes it for every zone on that thermostat. This is how the equipment works, not a GEM limitation.

Live status

Every poll (default 60 seconds — one request covers the entire house) refreshes each zone:

ReadingMeaning
temperatureCurrent measured temperature in the zone
setpointThe active setpoint — the cool side in Cool and Auto, the heat side in Heat
heat_setpoint / cool_setpointThe two setpoints individually
system_modeheat, cool, auto, or off
fan_modeauto, on, or circulate
run_moderun_schedule or permanent_hold, on zones that have a schedule
system_statusWhat the equipment is doing (Cooling, Damper Open, System Idle, …)
humidityIndoor humidity, where the thermostat measures it
min / maxSetpoint limits reported by the equipment
system_modes / fan_modesThe modes this equipment actually offers, written once so a control can build its picker from the hardware rather than a fixed list

These are stored as zone attributes, so they carry history and can drive attribute triggers. The house's outdoor temperature is stored on the device as outdoor_temperature. A thermostat that drops offline marks its zones disconnected rather than freezing at a stale reading.

Known limitations

  • Cloud-only. No LAN path; a vendor service change can break the integration.
  • Fan mode is per thermostat, so zones sharing a thermostat share a fan mode.
  • Whole-degree setpoints.
  • One account per device. An account with several houses needs one GEM device per house, each with its House ID set.
  • Sign-in is exclusive per brand — a second integration signing into the same account revokes GEM's credentials, and GEM's next sign-in revokes theirs.

Troubleshooting

SymptomCheck
Sign-in fails saying to download a different appThe account was migrated to another brand. Set Brand to match the app the homeowner uses.
Device offline, log shows mobile device is not validThe stored registration was revoked, usually because the same account was signed into another integration. GEM re-signs in automatically, at most once a minute. If it repeats, the account is being shared.
Device offline, log shows missing username/password attributeFill in both authentication fields and save.
No zones were createdConfirm the Climate subsystem exists and Auto-create Zones is on. Run discover to see what the account reports.
A setpoint landed somewhere elseIt was clamped to the thermostat's limits, or the other side moved to keep the minimum separation. The device log records the adjustment.
A setpoint reverted a few hours laterThe zone is following its schedule. Send run_mode = permanent_hold.
run_mode reports the zone doesn't support itThat zone has no schedule to hold or resume — expected on some single-zone systems.
Changing fan mode on one zone changed anotherExpected: zones on the same thermostat share one fan.
One zone shows disconnected while others are fineThat thermostat is offline. Confirm it in the app — it is a Wi-Fi or power problem at the thermostat.

See also