About this fork. A review and demonstrator fork of homebridge-texecom-full, offered to its maintainer to adopt. It isn't published to npm. It adds Texecom Connect support (use your SmartCom as it is) and fixes for the existing Crestron mode, all tested on a real Premier Elite. Details and evidence: docs/MAINTAINER-REVIEW.md.
🏡 Using Home Assistant? The same protocol work is available as a Home Assistant integration (installable through HACS, no Homebridge needed): metaljay/ha-texecom.
Control your Texecom Premier Elite alarm from the Apple Home app, using the SmartCom you already have.
📘 This guide is for SmartCom owners, which is most people. Using a COM port set to Crestron, a ComIP, an adapter or a serial cable instead? Jump to Already using Crestron, or connecting another way? at the bottom.
- 🛡️ An alarm in the Home app: arm Away or Night, disarm, and see when it's armed, arming or going off.
- 🚶 A sensor for every zone: motion detectors, door and window contacts, smoke and carbon monoxide.
- 🔔 Notifications and automations: get told when the alarm goes off, or turn the lights on when someone walks in.
| 🏠 | A Texecom Premier Elite panel with a SmartCom (the box the Texecom app uses) |
| 🔢 | The panel's UDL code. Texecom's default is 1234, and most panels keep it |
| 🖥️ | Homebridge, with its web page (the Homebridge UI) |
⚠️ While Homebridge is connected, the Texecom app can't connect to the SmartCom. The app's alarm notifications still reach your phone, and the Home app does everything the Texecom app does day to day.
Open your router's list of connected devices and find the SmartCom. Note its IP address (something like 192.168.1.50), and reserve that address in the router so it never changes.
In the Homebridge UI, go to Plugins, search for Homebridge Texecom and install it.
Trying this fork before its changes are published?
Open the Homebridge UI's Terminal and run:
npm install metaljay/homebridge-texecom
In Plugins, find Homebridge Texecom and open its Settings.
| Setting | What to choose |
|---|---|
| How does Homebridge reach your panel? | Texecom Connect |
| IP address | Your SmartCom's address from step 1 |
| Port | 10001 |
| UDL code | 1234, unless your installer changed it |
| Setting | What to choose |
|---|---|
| Zones and areas | Nothing: they're read from your panel, with their names |
| Buttons to show in the Home app | Only the ones your panel has a use for. ✅ Away and ✅ Night suit most homes |
| Part Arm 1 / 2 / 3 is | Match them to your panel (see Know your part arms below). Defaults: Part Arm 1 = Night, Part Arm 2 = Home |
| Advanced → Keep the panel clock right | 24, and Your time zone: e.g. Europe/London |
Click Save.
Besides a full arm (Away), your panel can have up to three part arms, each arming only some zones. Your installer chose them, so they differ from home to home. For example:
| Part arm | Might arm | Good Home app button |
|---|---|---|
| Part Arm 1 | Downstairs only, so you can move around upstairs at night | Night |
| Part Arm 2 | Just the garage, or one entry point | Home |
| Part Arm 3 | Often not set up | (none) |
Before you choose your buttons, find out what each of yours covers. Ask your installer, or look at the part-arm settings in Wintex. Then:
- tick only the buttons for part arms you actually have (on a tested panel, a part arm with nothing programmed armed every zone, like Away);
- set Part Arm 1 / 2 / 3 is so each Home app button sets the part arm you expect.
The Home app's buttons are always called Away, Night and Home; you choose which part arm sits behind Night and Home.
Restart Homebridge. Its Logs page should show:
[Texecom] Connect: logged in and subscribed to events
followed by your panel's model and a line for each zone.
The alarm and a sensor for each zone appear in the Home app by themselves, in the default room. There are no codes to scan: they're added to your Homebridge, which is already in the Home app. (Only if this is your very first Homebridge accessory: add Homebridge itself first, by scanning the QR code on the Homebridge UI's Status page.)
- 🏷️ Move each one to the right room.
- 🔔 Turn on notifications for the alarm (and for any sensors you care about).
- ⚡ Add automations, for example lights on when the hallway sees movement.
That's it. 🎉
- 🔧 Tamper and faults (Texecom Connect): the alarm shows Tampered while the panel lid or a detector is open, and Fault during a mains failure or other panel fault. The panel doesn't always report a detector's cover opening, so don't rely on Tampered alone.
- 🚨 After the alarm goes off, the SmartCom drops the connection to send its own report (seen just after the disarm), and lets the plugin back in about 2 minutes later. The plugin reconnects and catches up by itself.
- 🧩 Changing the arm buttons later makes the alarm reappear in the Home app as a new accessory (the Home app remembers an alarm's buttons). Set its room and notifications again.
- 🔌 Wintex can still connect through the SmartCom while Homebridge is connected. If the plugin re-reads zones while Wintex is connected, it can be locked out until Wintex has finished.
- 🧱 It's best to run this plugin as a child bridge, so a problem with the alarm connection can't affect your other accessories.
🛠️ Troubleshooting
| What you see | Try |
|---|---|
| "Connection error" or "Reconnecting" in the log | Check the IP address and that the port is 10001. Close the Texecom app, and check nothing else is connected to the SmartCom |
| "login rejected (check the UDL code)" | The UDL code is wrong. Try 1234; if that fails, ask your installer |
| The Home app still shows a button you unticked | The Home app remembers an alarm's buttons. Restart Homebridge; the alarm reappears as a new accessory |
⚙️ Editing config.json directly
Most people should use the settings page. To edit the config yourself, open JSON Config in the Homebridge UI and add this block inside the "platforms": [ … ] list, with a comma between it and the block before it. Don't add notes inside the config: Homebridge won't start if it isn't valid JSON.
{
"platform": "Texecom",
"protocol": "connect",
"ip_address": "192.168.1.50",
"ip_port": 10001,
"udl": "1234",
"homekit_modes": ["away", "night"],
"time_sync_interval": 24,
"time_zone": "Europe/London"
}| Setting | What to put |
|---|---|
ip_address |
Your SmartCom's address, from your router's device list |
ip_port |
10001 |
udl |
Your UDL code, in quotes. Texecom's default is "1234" |
homekit_modes |
Buttons besides Off: any of "away", "night", "stay" (shown as Home) |
time_sync_interval |
Hours between panel clock checks: 24, or 0 for off |
time_zone |
Your time zone, e.g. "Europe/London", so the clock check sets local time (Homebridge in Docker runs on UTC) |
part_arm_1 / part_arm_2 / part_arm_3 |
Which Home app mode each part arm is: "night", "stay", "away" or "" (not used). Defaults: "night", "stay", "" |
zones, areas |
Leave out: they're read from the panel |
debug |
true logs every message from the panel, for reporting problems |
🔁 Already using Crestron, or connecting another way?
This plugin started out with the Crestron protocol, and it still works. It's for you if:
- you already use this plugin with a COM port set to Crestron System (on a switched-over SmartCom, a ComIP, a serial-to-network adapter or a USB-serial cable), or
- you want to keep the Texecom app fully working on its SmartCom, and add a second connection to the panel on a spare COM port.
How it differs from Texecom Connect:
- The COM port must be set to Crestron System in the engineer menu. A SmartCom switched over no longer works with the Texecom app or its notifications.
- You list your zones and areas yourself.
- Arms from the keypad or a keyfob show as one mode you choose, because the panel doesn't say which mode it was.
- After an arm or disarm from the Home app, the panel holds back its other updates for about 30 seconds. Nothing is lost, but sensors update late.
Set the COM port to Crestron, at the keypad: enter the engineer code → "UDL/Digi Options" → press 8 for "Com Port Setup" → scroll to the port → "No" to edit → press 8 for "Crestron System" → "Yes" to save → "Menu" to leave. For a new ComIP, set it up and check it works before switching its port.
Settings: choose Crestron, enter the address and port (10001 for a SmartCom or ComIP; for an adapter, the port set on it, often 23) or a serial port, and the UDL code. Then add your zones and area, and choose your arm buttons:
| Setting | What to choose |
|---|---|
| Zones | One per zone: a name, its zone number (as on the keypad or in Wintex), what it shows as (motion, contact, smoke, CO), and a hold time (5000 for motion, 0 for contacts) |
| Areas | Usually one: area 1 (area A on the keypad) |
| Night arms / Home arms | The part arm each button sets; blank = Part Arm 1 |
| Arms from the keypad or a keyfob show as | Away suits most homes |
| Advanced → Check the panel every | 60 seconds (corrects the Home app if a message was missed) |
In config.json:
{
"platform": "Texecom",
"ip_address": "192.168.1.50",
"ip_port": 10001,
"udl": "1234",
"zones": [
{ "name": "Front door", "zone_number": 1, "zone_type": "contact", "dwell": 0 },
{ "name": "Hallway", "zone_number": 2, "zone_type": "motion", "dwell": 5000 }
],
"areas": [
{ "name": "House", "area_number": 1 }
],
"homekit_modes": ["away", "night"],
"night_part_arm": 1
}Other Crestron settings: serial_device (e.g. "/dev/ttyUSB0", instead of ip_address) with baud_rate (19200); home_part_arm; default_arm_state ("away", "night" or "stay"); remote_users (keyfob user numbers, shown as Away); status_poll_interval (seconds, default 60); trigger_from_zones (leave false).
npm install
npm run lint
npm testThe tests run against fake panels, so no panel is needed. tools/ has the probes and test scripts used on the real panel.
Original plugin by Kieran Jones, maintained by Max Christian and Chris Posthumus. Texecom Connect support builds on texecom-connect (Apache-2.0) and texecom2mqtt (MIT); see lib/connect/NOTICE. Other projects that informed this fork are credited in the review.



