SAMPLE REPORT · This is what AuditRTI produces from a real .apex file in about 3 seconds. Customer names and locations have been replaced with placeholders.
← Back to drivers

Audit β€” Sample_Home.apex

Generated by AuditRTI v8.27 · 63 checks · Each finding cites the Integration Designer User Manual page where the rule originates.

Project

Schemav139 (current / System Manager)
Tool versionAuditRTI v8.27
Rooms16
Controllers9
Driver instances18
Source groups34
Activities147
Pages92
Macros / steps1,284 / 4,791
Variables612
Buttons3,408
Bitmaps419
Tags1,021

Findings overview

4
Errors
5
Warnings
2
Notes
8
Auto-fixable

One-click fixes available

8 of 11 findings can be fixed automatically. The tool writes a timestamped .bak backup of your .apex before touching anything.

Errors

6 event rows reference a macro that no longer exists. Auto-fixable

Check ID: EVENT_REF_DELETED_MACRO · Manual reference: implicit (FK integrity)

What this means

These event triggers (processor events, room events, source on/off events) point at macros that were deleted. When the trigger fires β€” scheduled time, source change, sense input β€” nothing runs. The trigger looks programmed in ID11 but is silently dead.

How to fix

Auto-fix clears the dead macro reference. The event row itself stays in place so its trigger configuration is preserved β€” you can re-program it in ID11 when ready.

Affected items

Writes Sample_Home.apex.bak.20260512_103004 before changes.

43 page links target a page that no longer exists. Auto-fixable

Check ID: PAGELINK_REF_DELETED_PAGE · Manual reference: implicit (FK integrity)

What this means

A button is configured to navigate to a page that has been deleted. When the user presses it, nothing happens β€” the controller is told to jump somewhere that doesn't exist, so it stays put. Usually leftover from page reorganization or source-device removal.

How to fix

Auto-fix removes the dead page-link entry from each button. The button itself stays β€” you can re-target it to a current page in ID11. If the navigation isn't needed any more, the button is already cleaned up.

Affected items

…and 36 more.

3 Activities have Checked = 1 but no PagelinkMacroId β€” picker tap is a silent no-op. Auto-fixable

Check ID: ACTIVITY_CHECKED_NO_PAGELINK_MACRO · Manual reference: p. 312 (Activity rows)

What this means

These activities show up in the Source Picker (Checked=1) but tapping them does nothing β€” there's no PagelinkMacroId set, so the controller has no page to navigate to. This is one of the most common silent bugs: looks programmed but isn't.

How to fix

Auto-fix generates a one-step Type-8 PageLink macro pointing at the canonical page for that source group, then wires it into the Activities row. If you'd rather hide the activity instead, manually flip Checked=0 in ID11 (System Manager β†’ Activity row).

Affected items

1 Variable feed binding uses Driver DeviceId instead of SourceGroup DeviceId.

Check ID: VARIABLE_DEVICEID_IS_DRIVER · Manual reference: p. 245 (Object data binding)

What this means

The Variables.DeviceId column is the binding scope β€” the SourceGroup (ControlType=6) a page must be bound to for the variable to apply. The Driver instance (ControlType=1) ID belongs inside the ObjectData string, not in the DeviceId column. Wrong here = the feed silently fails to render.

How to fix

This one needs hands-on review β€” manually swap DeviceId from the driver instance to the matching SourceGroup. The audit can't auto-fix because the right SourceGroup depends on which page the feed should render on. See manual p. 245 for the canonical example.

"For Variable feeds, DeviceId is the SourceGroup the page is bound to (ControlType 6), not the Driver instance (ControlType 1). The Driver DeviceId is encoded inside the ObjectData string." (p. 245)

Affected items

Warnings

96 macros are not reachable from any button, activity, or event. Auto-fixable

Check ID: MACRO_NEVER_CALLED · Manual reference: implicit (dead code)

What this means

These macros exist in the project but nothing references them β€” no button has the macro's tag, no Activity / RoomEvent / SourceEvent / Event row points at them. They probably got orphaned during project reorganization or device removal. They never run; they just add noise.

How to fix

Auto-fix deletes the unreachable macros. The cascade clears their MacroSteps and sub-table rows so nothing is left behind. If you suspect a macro should be reachable but isn't β€” open Tag Manager and check whether you forgot to put its tag on a button before deleting.

Affected items

…and 91 more.

121 Layers have PageId=NULL β€” orphan graphics that bloat the processor download. Auto-fixable

Check ID: LAYER_PAGE_NULL · Manual reference: p. 78 (Layers)

What this means

Layers must belong to a page. These 121 don't β€” they render nowhere but still get packed into the binary uploaded to the XP processor. On big projects this can push the download past the firmware size limit, with the cryptic "file too large" error.

How to fix

Auto-fix cascade-deletes the orphan layers along with their child buttons (1,475 here) and any bitmaps referenced only from those orphan layers (88 here). Layers/buttons/bitmaps used elsewhere are preserved.

Affected items

…and 118 more. Cascade impact: 1,475 dead buttons + 88 dead bitmaps will also be cleaned.

24 picker tiles don't end their macro with a Hide-All-Menus step. Auto-fixable

Check ID: OVERLAY_POPUP_TILE_NO_HIDE_ALL · Manual reference: p. 392 (Menus / Overlays)

What this means

The stock ID11 picker templates (Source Picker, Room Picker) don't include a Hide-All-Menus step at the end of their tile macros. Result: the overlay stays open on top of the activity page after the user picks something. Universal gap β€” this finding fires on 23 of 24 reference projects we've scanned.

How to fix

Auto-fix appends a Hide-All-Menus (MenuType 111 β€” Hide Sources Overlay) step to each tile's macro. The picker closes cleanly after selection.

"After a source is selected from the overlay, the overlay should be dismissed so the activity page is fully visible." (p. 392)

8 controllers are missing entries in ControllerRoomList β€” Room Picker won't show all rooms. Auto-fixable

Check ID: CONTROLLER_ROOM_LIST_INCOMPLETE · Manual reference: p. 156 (Controllers)

What this means

ControllerRoomList tells each panel which rooms appear in its Room Picker. Adding rooms after the template's starter set doesn't auto-backfill β€” these 8 panels (iPads, Android, T2x) are missing 4–11 rooms each.

How to fix

Auto-fix backfills the missing rows for every panel Γ— every room (excludes XP processors and Alexa).

4 SourceGroups still have the driver's default generic name ("Camera 1", "Switch 2", etc.).

Check ID: SOURCEGROUP_GENERIC_NAME · Manual reference: p. 198 (Source Groups)

What this means

The Devices.Name on a ControlType=6 row appears verbatim in the System Manager activity list on every controller. Default driver-spawned names like "Camera 1" or "Switch 2" tell the end user nothing β€” they should be renamed to the actual fixture ("Kitchen Camera", "Front Doorbell", "Pool Pump").

How to fix

No auto-fix β€” the right name is job-specific and only you know what each device is for. Open ID11 β†’ Project Tree β†’ click the source group β†’ rename.

Affected items

12 custom-tagged buttons have no macro assigned.

Check ID: BUTTON_CUSTOM_TAG_NO_MACRO · Manual reference: p. 245 (Custom Tags)

What this means

Job-custom tags (the "Context: Action" colon-convention ones like "Zone 1: Run Now") aren't part of the standard RTI tag library β€” they need an integrator-written macro. These 12 buttons have the tag set but no macro behind it, so they're dead.

How to fix

No auto-fix β€” the macro content depends entirely on what the button is supposed to do. Open the button in ID11 β†’ Macros tab β†’ write the steps.

Notes

172 tags exist in the project but are not used anywhere. Auto-fixable

Check ID: ORPHAN_TAG · Manual reference: p. 263 (Tag Manager)

What this means

Tags listed in Tag Manager that no button, macro, variable, page link, or list item references. Leftover from deleted devices, experimentation, or imported source bundles. They don't break anything but pollute Tag Manager and confuse future maintenance.

How to fix

Auto-fix removes them in one batch. Or in ID11: Edit β†’ Tag Manager β†’ set filter to "Show Orphaned Tags" β†’ select all β†’ Delete.

"Tags can be sorted by type using the tag filter at the bottom of the tag manager… Show All Tags, Show Orphaned Tags, Show Referenced Tags…" (p. 263)

340 interactive buttons are smaller than 64px on the short side.

Check ID: BUTTON_TOO_SMALL · Manual reference: p. 398 (Touch targets)

What this means

Buttons under 64 pixels are hard to press accurately, especially on touchscreens or for clients with motor impairment. End-user frustration over tiny press targets is a top callback cause post-install.

How to fix

No auto-fix β€” re-sizing buttons is a design decision you make in ID11 against the page layout. The manual's rule of thumb: β‰₯ 64 pixels with roughly a 1.25 : 0.75 aspect ratio. On handheld remotes and in-wall keypads, make press targets as large as the screen allows.

"Small buttons are difficult to press and can frustrate the user experience. As a rule of thumb, buttons should be greater than 64 pixels and have a 1.25 to .75 ratio in size." (p. 398)