r/HomeKit • u/ssaisusheel • 1h ago
How-to Split IKEA ALPSTUGA's bundled Air Quality tile into separate Temp / Humidity / CO2 sensors in HomeKit — no DIRIGERA hub needed
Posting this in case it saves someone else the rabbit hole I just went down.
The problem: IKEA's ALPSTUGA (Matter-native air quality sensor) paired directly to Apple Home — no DIRIGERA hub — shows up as a single combined "Air Quality" tile. Temperature, humidity, and CO2 are all measured by the device but never surface individually in Home app, because Apple's native Air Quality HomeKit service just doesn't carry those as sub-values.
What doesn't work:
- Tapping into the tile — no hidden temp/humidity readout, unlike some other air quality tiles.
- Homebridge's own "Matter support" (2.0+) and the Matterbridge project — both only go outward (exposing Homebridge accessories to Matter controllers), not inward (reading an existing Matter device's individual clusters).
- Without a DIRIGERA hub, there's no vendor REST API to just poll directly either.
The fix — run your own second Matter controller:
Matter supports "multi-admin" — a device can be joined to more than one controller/fabric at once without removing it from your existing one (Apple Home, in this case). So:
- Install python-matter-server (https://github.com/home-assistant-libs/python-matter-server) (same engine Home Assistant's Matter integration uses) — it can run right on the same machine as Homebridge, no separate box needed. Needs Python 3.12+.
- Put the ALPSTUGA back into pairing mode by opening its settings page in the Home app and clicking "Turn on pairing mode."
- Commission it into your new controller using its setup code, via python-matter-server's built-in web dashboard → Commission Node → "Commission existing device" (since it's already network-joined, no BLE needed).
- Once commissioned, the controller exposes each sensor's native Matter cluster individually — Temperature Measurement, Relative Humidity Measurement, Carbon Dioxide Concentration Measurement — fully separated.
Bridging that into Homebridge:
Wrote a small script that reads those three values from the Matter controller and makes them available locally for Homebridge to pick up.
Installed the Homebridge plugin homebridge-http-sensors-switches (https://www.npmjs.com/package/homebridge-http-sensors-switches) (generic JSON-polling plugin — not ALPSTUGA-specific, works with any HTTP JSON source) and pointed it at that script's output.
Homebridge publishes this as its own child bridge with two accessories — Temp/Humidity and CO2 — each requiring its own pairing (normal for Homebridge child bridges, same as any other plugin running isolated). Add it in Home app: + → Add Accessory → "I Don't Have a Code or Can't Scan" → Enter Code Manually, using the setup code Homebridge generates for that bridge.
Once paired, the two tiles show live data pulled straight from the Matter controller. Set both the matter-server and the bridge script up as systemd services so they survive reboots.
Built this with Claude walking me through the whole thing i.e., commissioning, scripting the bridge, and the Homebridge config.