Driver Type
Categories
- Recent Updates
- Access Control
- Amplifier
- A/V Receiver
- Climate and Pool Control
- Disc Player / Changer
- Display
- DSP
- DVR
- Irrigation / Sprinklers
- Lighting Control
- Matrix Switch
- Media Server and Player
- Multi-Room A/V
- Networking
- Power and Rack Management
- Security
- Surveillance
- Teleconferencing
- Training
- Tuner
- Utility
- Video Projector
Driver Type
Categories
- Recent Updates
- Access Control
- Amplifier
- A/V Receiver
- Climate and Pool Control
- Disc Player / Changer
- Display
- DSP
- DVR
- Irrigation / Sprinklers
- Lighting Control
- Matrix Switch
- Media Server and Player
- Multi-Room A/V
- Networking
- Power and Rack Management
- Security
- Surveillance
- Teleconferencing
- Training
- Tuner
- Utility
- Video Projector
Hubitat Bridge
By: Joe Liggero
Updated: June 16, 2026
Version: 1.0
Hubitat Bridge brings your Hubitat Elevation hub onto RTI with full two-way control — entirely over the hub's LOCAL Maker API, so there's no cloud account and no internet dependency. State is push-driven over Hubitat's eventsocket (no constant polling), and every control reports live status back to your panels.
It natively maps 12 device domains into RTI source groups:
• Lights & dimmers — on/off, level, color, color temperature
• Switches with power / energy metering
• Locks
• Shades, blinds & garage doors — open/close/stop, position, tilt
• Fans — speed and level
• Thermostats — setpoints, modes, fan modes, with one-touch mode buttons
• Buttons — pushed/held/released/double-tapped events
• Valves
• Sirens
• Sensors — temperature, humidity, illuminance, power, battery, contact, motion, water, smoke, CO and more
• Media players — transport, volume, mute, and live now-playing (title / artist / album)
Plus whole-hub control: Hubitat Modes (Home/Away/Night/Day) and Hubitat Safety Monitor (HSM) arm/disarm.
Every command and state variable carries its official RTI button tag, so dropping a templated Play, Light On, Stat Heat, or Volume button onto a panel auto-binds it — true drag-and-drop programming, no hand-wiring. Up to 100 devices per processor; one license covers every instance on that processor.
Setup takes a couple of minutes: install the free Maker API app on your Hubitat hub, add your devices to it, and paste the Base URL + access token into the driver. A 120-minute MAC-locked free trial lets you evaluate the full driver before buying.
Requires: Hubitat Elevation hub (C-7 / C-8) with the Maker API app, on the same LAN as an RTI XP-series processor.
Hubitat Bridge v1.0
Custom Control Drivers LLC
Connects RTI XP processors to a Hubitat Elevation hub through Hubitat's local Maker API. Device discovery and commands use plain HTTP (port 80); live state arrives over the hub's local eventsocket WebSocket, so the panel updates the instant a device changes — no polling lag. Exposes up to 100 Hubitat devices across 12 domains as addressable RTI sources, with auto-binding to standard templated buttons (lighting, climate). Hub Mode and Hubitat Safety Monitor (HSM) are fully two-way.
No cloud account, no TLS, no extra hardware — everything runs on your LAN.
Requirements
A Hubitat Elevation hub (C-7, C-8, C-8 Pro) on the same LAN as the RTI processor
The built-in Maker API app installed on the hub (free, ships with Hubitat)
RTI XP-3, XP-6, or XP-8 processor
Hub on wired Ethernet strongly recommended (Wi-Fi adds latency and drops)
Up to 100 Hubitat devices total exposed to the bridge. See Supported Scale below.
Supported Scale
The supported configuration is up to 100 Hubitat devices total across all domains. The driver is tested at this scale.
The per-domain caps (40 lights, 30 switches, 40 sensors, etc. — see Adding devices) are upper bounds on what fits in the configuration UI. The 100-device total is the supported real-world ceiling for one driver instance. For typical installs running other drivers alongside, 40–60 configured devices is the recommended target. Only configure the devices you actually plan to control or display; leave unused slots blank.
A single device may be placed in more than one slot — for example a multisensor in both a Sensor slot (for its temperature/humidity readings) and a Binary Sensor slot (for its motion). State updates fan out to every slot holding that device id.
Hubitat setup (about 2 minutes)
1. Install Maker API
On the hub: Apps → Add Built-In App → Maker API.
2. Select devices
In the Maker API app, under Select Devices, add every Hubitat device you want available in RTI, then click Done. (You can come back and add more later.)
3. Copy the URL and token
Re-open the Maker API app. Near the bottom it lists URLs. Copy the "Local URL" base — it looks like:
http://192.168.1.100/apps/api/4
and copy the access_token value (a long hex string). You'll paste both into the driver. The trailing /devices you see in the sample URLs is optional — the driver adds the right path itself.
4. Turn OFF Hub Login Security (important for live updates)
The eventsocket that pushes live state is blocked when Hub Login Security is enabled. On the hub: Settings → Hub Login Security → set to Disable (or leave it off). If you must keep Login Security on, the driver still issues commands and reads state on connect/refresh, but it will not receive live push updates.
That's it — no port forwarding, no certificates.
Driver setup
Connection & Licensing
Hub Base URL — paste the Local URL from Maker API, e.g. http://192.168.1.100/apps/api/4
Access Token — paste the access_token from Maker API
License Key — leave blank for the 2-hour trial
Reconnect Backoff Max (s) — maximum delay between reconnect attempts. Default 30, range 5–300.
Startup Delay (s) — seconds to wait after boot before first connecting. Default 0. On a heavily-loaded processor running many drivers, set this to 20–40 so the initial device sync stays off the boot storm and panels come up responsive first. Range 0–300.
Debug Level — Off / Errors / Verbose / Trace. Use Trace while setting up to see HTTP and socket traffic in the System Log; drop to Off for normal operation.
Finding a device's numeric ID
The driver addresses devices by their numeric Hubitat device id (not the name). Two easy ways to get it:
1. Discover Devices — after the driver connects, run System Commands → Discover Devices. It prints every Maker-API device as id=… label=… type=… to the RTI System Log. Set Debug Level to Errors or higher to see it.
2. From the hub UI — open the device on the hub; the number at the end of the browser URL (…/device/edit/42) is the id.
Adding devices
Each domain has its own slot grid (Lights, Switches, Locks, …). Slots reveal one at a time — fill slot 1's Device ID and slot 2 appears.
Device ID — the numeric Hubitat device id (e.g. 42).
Name — the friendly label shown in RTI's variable picker, function dropdowns, and event lists. It also acts as the source name when you assign the device to an RTI room.
Note: renaming a source in the workspace tree only changes its label there. The Device ID and Name fields above are independent and must be filled in here directly. This is by design.
Caps per domain: Lights 40, Switches 30, Locks 10, Covers/Shades 20, Buttons 10, Thermostats 10, Sensors 40, Binary Sensors 40, Fans 20, Valves 10, Sirens 5, Speakers 10. Global cap: 100 devices total.
Auto-binding workflow
Each configured device becomes an addressable RTI source. To use templated buttons:
1. In your panel project, open a panel room.
2. Add the source for that room (e.g. add the source named after your thermostat to the hallway page).
3. Drag a templated button from RTI's library — Stat Heat, Stat Cool, Light Level, etc. RTI auto-binds via sourceid + buttontag, no manual variable picking needed.
Supported button tags
The driver tags its commands and feedback with RTI's standard button tags, so templated buttons and displays auto-bind — drag a tagged button onto a page that has the matching source assigned and it just works.
Lighting — Light On, Light Off, Light, Light Level, Light Temperature Level, Light Hue Level, Light Saturation Level
Switches / loads — Power On, Power Off, Power, Watts (power-meter feedback)
Shades / covers — Shade Up, Shade Down, Shade Stop, Shade Level
Climate — Stat Off / Heat / Cool / Auto (one-touch modes), Stat Heat Up / Down, Stat Cool Up / Down, and feedback Stat Mode, Stat Temp In, Stat Heat Setpoint, Stat Cool Setpoint, Stat Setpoint, Stat Operating State, Stat Fan State / Auto / On / Cycle
Speaker / Media — Play, Pause, Stop, Play/Pause, Skip Forward, Skip Back, Volume Up, Volume Down, Volume, Mute On / Off / Mute, and now-playing NP Title / Artist / Album
Security (HSM) — Arm Away, Arm Stay, Disarm; feedback Armed State
Other feedback — Connection State, Volts (sensors), Fan Level
Locks, valves, sirens, buttons, and Hub Mode have no standard RTI command tag — use their named commands/events directly.
Domains
Every configured device exposes an Available / Unavailable pair and per-slot transition events for clean macro triggers (e.g. "if Front Door Locked then…"). Numeric readings RTI cannot represent as floats (power, temperature, energy) are exposed as exact text so nothing is truncated.
Lights — On / Off / Toggle / Flash, Set Brightness (0–100), Set Color Temperature (Kelvin), Set Hue, Set Saturation, Set Color (HSL). Readback: State, Brightness, Hue, Saturation, Color Temperature, Color Name, Color Mode. Hue and Saturation are 0–100 percent (Hubitat's scale), not degrees.
Switches — On / Off / Toggle. Readback: State, plus Power (W) and Energy (kWh) for metering plugs. Tip: a Hubitat Scene, Rule, or virtual switch appears as a switch — put it in a Switch slot and use Turn On to activate it from a panel button or macro.
Locks — Lock / Unlock. Readback: State (Locked / Unlocked / Unknown), Locked, Unlocked. Events: Locked, Unlocked.
Covers / Shades — Open / Close / Stop, Set Position (0–100), Set Tilt, Start Opening, Start Closing. Readback: State, Open, Closed, Opening, Closing, Position, Tilt. Works with window shades, blinds, and garage/door controllers.
Buttons — for scene controllers and remotes. The driver fires a per-slot Button Pushed / Held / Released / Double-Tapped event the instant Hubitat reports it, and writes Last Button (which number) and Last Action (what happened). Wire the event to a macro and read Last Button inside the macro to branch — this keeps the event list small instead of one event per button number. Push Button is also available as a command.
Thermostats — Set Mode (Off / Heat / Cool / Auto / Emergency Heat), one-touch Mode: Off / Heat / Cool / Auto buttons, Set Heating Setpoint, Set Cooling Setpoint, Set Fan Mode (Auto / On / Circulate), and ±1° Heat/Cool nudge commands. Readback: Current Temp, Heating/Cooling Setpoint, Setpoint, Mode (+ Mode is Off/Heat/Cool/Auto booleans), Fan Mode, Operating State (+ Action is Idle/Heating/Cooling). Temperatures use whatever scale your hub reports (°F or °C); the driver does not convert.
Sensors (read-only) — bring any numeric Hubitat reading into RTI: temperature, humidity, illuminance, power, energy, battery, CO₂, air quality index, pressure, voltage. Each slot exposes the named readings plus Last Value, Last Unit, and Last Value + Unit (a pre-joined string for one-button display, e.g. 72.4 °F). Bind any of these to a button's text for a live readout. Sensors are display-only — there are no commands.
Binary Sensors (read-only) — motion, contact (door/window), water/leak, smoke, carbon monoxide, presence, acceleration. Each slot exposes the matching boolean (Motion, Contact Open, Water, Smoke, CO Detected, Presence, Acceleration) plus a unified State (1 = active/open/wet, 0 = clear/closed/dry), On, and Off. Per-slot Activated / Cleared events fire on transitions for macro triggers.
Fans — On / Off, Set Speed (Off / Low / Medium-Low / Medium / Medium-High / High / On / Auto), Set Level (0–100), Cycle Speed. Readback: Speed, Speed Level, State, Level.
Valves — Open / Close. Readback: State, Open, Closed.
Sirens / Alarms — Off / Siren / Strobe / Both. Readback: Alarm, Is Off / Siren / Strobe / Both, Active. Events: Activated, Turned Off.
Speakers / Media Players (Sonos and any MusicPlayer device) — full transport and now-playing, not just volume:
Transport: Play, Pause, Stop, Play/Pause Toggle, Next Track, Previous Track.
Volume: Volume Up, Volume Down, Set Volume (0–100), Mute, Unmute, Mute Toggle.
Voice: Speak (TTS) and Announce (speaks then resumes playback — for doorbell/alert ducking).
Now-Playing readback: Title, Artist, and Album (parsed live from the player's track data, with NP Title/Artist/Album button tags for templated panels), plus a combined Track line, Status, and Playing / Paused / Stopped booleans with Started Playing / Paused / Stopped events for macros.
Commands map to the device's MusicPlayer capability; a player that doesn't support a given command (e.g. a basic notifier with no transport) simply ignores it. For anything exotic (play a specific URI, restore a saved track), use Send Raw Command.
Hub Mode & Hubitat Safety Monitor
The driver tracks and controls the hub itself:
Hub Mode — readback (Hub Mode string + Is Home/Away/Night/Day booleans) and control: Set Hub Mode by name, or the one-touch Mode: Home / Away / Night / Day commands. Fires a Hub Mode Changed event.
HSM — readback (HSM Status, Armed, Armed Away/Home/Night, Disarmed, Alert) and control: Arm Away / Arm Home / Arm Night / Disarm / Cancel Alerts. Fires per-state events plus an HSM Alert event when an intrusion/leak/smoke alert triggers.
Universal escape hatch
Send Raw Command lets you call any Maker API command this driver doesn't expose natively. Provide the numeric Device ID, the Command name exactly as Hubitat lists it (e.g. setLevel, refresh, a custom capability command), and an optional Value. Fire-and-forget — confirm the result via the device's readback variables or events.
Troubleshooting
The driver recovers automatically from network outages, hub reboots, and switch/router resets — it reconnects with backoff once the hub is reachable again, and re-pulls all device state on reconnect. No manual intervention is needed.
The Last Error sysvar shows the most recent failure. Common values:
"Maker API Base URL not configured" — paste the Local URL into Hub Base URL
"Could not reach the Hubitat hub at host:80" — hub off, wrong IP, or network/firewall issue
"eventsocket upgrade failed (HTTP …). If Hub Login Security is ON, disable it for the websocket." — exactly that: turn off Settings → Hub Login Security
"Eventsocket timed out — reconnecting" — no traffic for ~2 minutes; the driver auto-reconnects
If live updates stop but commands still work, the eventsocket dropped — check Hub Login Security (above) and that the hub is on a stable wired connection. Force Reconnect re-establishes it immediately.
The License Status sysvar shows the license state, separate from Last Error:
"Licensed" — valid license key installed
"Trial: N min remaining" — trial running; the counter persists across reboots
"Trial expired — license required" — no license; commands stop accepting until a key is pasted
System Commands:
Discover Devices — prints all Maker-API devices (id / label / type) to the System Log. Run it to find device ids.
Refresh All Devices — re-pulls current state for every configured device. Use after adding devices in Maker API.
Force Reconnect — drops and re-opens the eventsocket immediately. Use after configuration changes.
Set Debug Level to Trace to see HTTP and socket traffic in the System Log; set it to Off for normal operation.
License
Runs on a 2-hour trial when no license key is installed. The trial counter persists across reboots and counts cumulative runtime, so you can evaluate at your own pace. Paste a valid license key in the License Key field to bypass the trial. Licenses are bound to the processor.
Support
Custom Control Drivers LLC — customcontroldrivers.com. Found an issue? Email support@customcontroldrivers.com with your hub model and firmware.
120-minute free trial is built into the driver — no signup required. The driver runs unlocked for 120 cumulative minutes of operation; after that, a valid license key bound to your processor's MAC address is required to continue use.
Licenses are $149 USD, one-time fee, per RTI XP processor. Purchase and instant license-key delivery at https://customcontroldrivers.com/drivers/hubitat-bridge
After purchase, paste the license key into the driver's "License Key" configuration field. The driver verifies offline and unlocks immediately — no restart required.