Getting started
SMGS Hub needs macOS 14 or later. It's built from source with Swift 6 and bundled as a regular .app, signed ad hoc and carrying its own icon.
cd macos
swift test # unit tests
./scripts/bundle.sh # builds SMGSHub.app
open SMGSHub.app
On first launch the window asks you to sign in once with the mobile number your ACs are registered to. The session is saved and renewed silently from then on, so this walkthrough starts after sign-in.
The screenshots on this page were taken from the app's built-in demo account (three sample ACs), so no real phone number or device ids appear here. Every screen, label and behaviour is the real app. Use the Light / Dark switch at the top to see each screenshot in either appearance.
Adding your ACs
Right after you sign in, SMGS Hub lists every AC registered to your account so you don't have to go looking for the + button. Everything starts ticked; untick anything you don't want on this Mac and press Add.
- Open the sheet any time with the + in the sidebar header or ⌘N. It only lists ACs that aren't already added; if they all are, it says All set.
- Brand-new units are still set up in the manufacturer's phone app first. Once they're on your account they show up here.
- Adding an AC selects it straight away and fetches its live state.
The window at a glance
The window has no title bar of its own: a flush sidebar on the left lists your ACs, and the right side is the instrument for the one you've selected. Drag anywhere along the top rows to move the window; double-click there to zoom, exactly like a normal title bar.
1
2
3
4
5
6
7
8
9
10
- 1AC rows. Set point in the mode's colour, name, online dot and a one-line summary.
- 2Add and hide sidebar. ⌘N adds an AC; ⌃⌘S collapses the sidebar.
- 3Account footer. Who's signed in, with Settings and Sign Out.
- 4Header. AC name, room, and what it's doing right now ("Cooling", "Drying", "Off").
- 5Status pill. Online / Offline / Can't connect, when it last updated, and a spinner while a command is in flight.
- 6Controls / Usage. Switch between the instrument and the energy report (⇧⌘1 / ⇧⌘2).
- 7Info chips. Room and outdoor temperature, plus the timer only when one is set.
- 8The dial. The ring fills with the set point across the AC's range.
- 9− / +. Nudge the temperature one degree at a time.
- 10Control dock. Fan, Mode, Power, Functions and Timer, each showing its current value.
Sidebar
Each row leads with a temperature badge tinted in the AC's current mode, so you can read every room's state at a glance. A running AC shows its set point; one that's off or unreachable shows a dash.
- Summary line: Cool · fan auto · swing while running, Off when off, or Offline · last seen 3 min ago when the unit has dropped off Wi-Fi.
- Select a row to show that AC; the selection is a soft fill in the mode colour rather than the system highlight, so the colour always means the same thing as the dial.
- Reorder by dragging rows. The order is remembered and is also the order in the menu bar widget.
- Right-click a row for Rename… and Remove from Mac…. ⌫ removes the selected AC. Removing only affects this Mac: the AC stays on your account and you can add it back any time.
The thermostat dial
The dial is a 270° ring that fills from the AC's lowest to highest set point (usually 17–30 °C) in a gradient of the current mode's colour, with a soft glow while the AC is running.
- Large numerals show the target. In Fan mode the AC ignores the target, so the dial shows
--. - Mode line underneath: Cooling · Fan auto.
- Tags for whatever's switched on: Swing, Light, Eco, Sleep, Instacool, Self Clean, FC1–FC5.
- − / + change the target one degree per click. The number moves immediately; the command goes to the AC once you stop clicking (about 0.6 s), so five quick clicks send one change, not five.
- The dial is a single accessible control: VoiceOver reads "23 degrees Celsius, Cooling" and swipe up/down adjusts it.
The control dock
The floating bar under the dial holds everything else. Each button shows its current value and opens a popover anchored to itself. Power sits in the middle in warm orange, the only place that colour is used.
- Power turns the AC on or off (⌘P). It's the only control that works whenever the AC is online.
- Picking a mode or fan speed closes the popover and applies it immediately. ⌘1–⌘4 pick Auto, Cool, Dry and Fan without opening anything.
- Every change shows on screen instantly. If the AC rejects it, the app re-reads the AC's real state and explains what went wrong in a banner.
Functions
| Function | What it does |
|---|---|
| Eco | Energy-saving cooling. Cool mode only; not with Sleep. |
| Light | The AC's display light on or off. |
| Sleep | Gentle night profile. Cool mode only; not with Eco. |
| Instacool | Maximum cooling fast. Cool mode; locks the set point. |
| Self Clean | Dries and cleans the coil. Cool or Dry; locks everything else while it runs. |
| Step | Moves the vertical louver to its next fixed position (stops vertical swing). |
| Flexicool | Caps cooling capacity to save power: FC1–FC5. Tap the active level to turn it off. |
| Swing | Opens separate vertical and horizontal swing switches (horizontal only if the unit has it). |
Timer
The timer counts down in the AC's own 30-minute steps, up to 24 hours. Its meaning follows the power state: while the AC is running it switches it off; while it's off it switches it on. It's the one control besides Power that works while the AC is off.
Why a control is greyed out
SMGS Hub mirrors the Carrier app's rules so you can never send a combination the AC would refuse. Dimmed controls explain themselves in a tooltip.
| Control | Available when | Tooltip when it isn't |
|---|---|---|
| Everything | The AC is online | The AC is offline |
| Temperature | On, not Fan mode, Instacool off | (− / + dim; dial shows -- in Fan mode) |
| Mode, Functions | The AC is on | Turn the AC on first |
| Fan speed | On, in Cool or Fan, with Eco and Sleep off | Fan speed is automatic in Auto and Dry mode · fixed while Eco or Sleep is on |
| Eco / Sleep | Cool mode, and not both at once | Eco can't run with Sleep |
| Instacool, Flexicool | Cool mode | Instacool works in Cool mode |
| Self Clean | Cool or Dry, with Eco and Instacool off | Self Clean works in Cool or Dry mode |
| Timer | Any time, except during Self Clean | Not available during Self Clean |
Colour language
Every surface that signals state (ring, glow, row badge, dock highlight, chart bars) draws from one tint per mode. Grey means the AC isn't actually running. Warm orange is reserved for Power, and green only ever means online.
State changes cross-fade over about half a second. With Reduce Motion turned on in macOS, they switch instantly instead.
Offline & errors
When an AC loses its Wi-Fi, its row says Offline · last seen …, the dial and dock dim, and a banner explains what to check. If it's the cloud service that can't be reached instead, the banner says so, so you know whether the problem is the AC or the connection.
--; nothing can be sent until it's back.Usage & cost
The Usage tab turns the AC's own energy meter into a report for the last week, 30 days or 12 months, and prices it the way your electricity bill actually works.
Reading the report
- Headline: total kWh for the period and what it costs, with the effective price per unit.
- Chart: one bar per day (per month for Year). Hover a bar for the exact figure; days the AC didn't run show a flat tick instead of a gap.
- Cards: peak day, how many days it ran (and the average on those days), and the projected two-month bill (or the average per day on a flat rate).
- Meter restarts: the AC's meter occasionally restarts from a lower value. An ⓘ appears when that happened; usage is summed from increases only, so it never goes negative.
Tamil Nadu slabs
Domestic (LT I-A) bills are charged every two months on slabs, and the first 200 units are free as long as the household stays within 500 units. SMGS Hub stacks this AC's projected units on top of everything else on your meter (set in Settings), so its cost is the extra it actually adds to your bill.
The strip shows where the AC lands: 0–200 free, 201–400 at ₹4.70, 401–500 at ₹6.30. If the AC pushes the household past 500 units, an orange warning explains that 100 of the free units are lost and the higher slabs apply.
Settings
Open with ⌘,, the gear in the sidebar footer, or the gear in the menu bar widget.
- Account: who's signed in, and Sign Out…. Signing out asks first, because it also removes your ACs from this Mac and forgets the saved sign-in; you'll need a new OTP to come back.
- Appearance: System, Light or Dark for the window.
- Electricity cost: Tamil Nadu domestic slabs (enter roughly what your EB bill shows for two months without this AC) or a flat price per unit.
- Open at login: start SMGS Hub with your Mac so the menu bar widget is always there.
Keyboard shortcuts
| Action | Window | Menu bar widget |
|---|---|---|
| Power on / off | ⌘P | P |
| Temperature up / down | ⌘↑ / ⌘↓ | ↑ / ↓ |
| Auto / Cool / Dry / Fan | ⌘1–⌘4 | 1–4 |
| Controls / Usage tab | ⇧⌘1 / ⇧⌘2 | – |
| Add an AC | ⌘N | – |
| Show / hide sidebar | ⌃⌘S | – |
| Remove selected AC | ⌫ | – |
| Settings | ⌘, | Gear in the footer |
| Open the window | – | ⌘O |
| Quit | ⌘Q | ⌘Q |
How it stays live
SMGS Hub talks to the Jio Smart Living cloud that the Carrier app is built on: a REST API for sign-in, account and energy history, and a secure MQTT connection for commands and live state.
- Pushed updates: when anyone changes an AC (the remote, the phone app, another Mac), the cloud pushes it and the window and widget update within moments.
- Polling: every 15 seconds the app also re-reads each AC, as a safety net.
- Optimistic commands: your change is shown immediately and rolled back with an explanation if the AC refuses it. A temperature you're still adjusting is never overwritten by a refresh.
- One sign-in: the session renews itself in the background; it's kept privately on the Mac, readable only by your user account.
- Diagnostics:
SMGSHub.app/Contents/MacOS/SMGSHub --diagnoseprints what the account returns, with ids masked, without opening any UI.