Middleware is the piece of software we load onto AV controllers and processors so that the room hardware can participate fully in an Innomate-controlled space. It is typically deployed to the device that sits closest to the rest of the room gear, such as a Crestron CP4 or RMC, an Extron control processor, an Extron TLP touch panel, or an AMX controller.
What middleware is for:
Middleware serves three purposes depending on where it is deployed and what the room requires: Passthrough, Monitor and Control, and Custom UI.
Passthrough
Many rooms contain devices that are not reachable over the main control network. They sit on an isolated serial bus, an IR loop, or a local IP segment behind the controller. The controller or processor is the only device with a physical connection to them.
Middleware running on that controller relays commands from the room engine out through the local ports to the unreachable devices, and relays responses back. This is how displays, projectors, microphone mixers, blind controllers, and DSPs become reachable to the rest of the control stack.
Monitor and Control
Some devices expose a vendor API, but that API does not cover everything the hardware can report or do. Firmware-level state such as lamp hours, fan speed, input detection, button health, brightness, and error conditions is often only available through a proprietary event channel that the published API ignores.
Middleware subscribes to those internal channels, normalises the events, and exposes them through a consistent interface. This is how the fleet monitoring tools know a device is unhealthy before the end user notices, and how the room engine can control features the vendor API does not cleanly support.
Custom UI
On touch panels and control processors that support on-device runtimes, middleware is the user interface itself. It renders the panel home screen, handles button presses, drives source selection, and talks back to the room engine over the network.
This is how an end user in a teaching space, meeting room, or auditorium interacts with the room. The panel runs Innomate code end-to-end, and the rest of the control stack never has to be exposed to the user.
Supported Platforms
Middleware is packaged and deployed differently for each vendor family. Each vendor has its own runtime, its own deployment tool, and its own certification or signing requirements.
| Vendor | Typical target device | Deployment tool |
|---|---|---|
| Extron | TLP Pro, IPCP control processor | ControlScript Deployment Utility, Global Scripter |
| Crestron | CP4, RMC, DMPS | Crestron Toolbox, Webui |
| AMX | NX controller, Modero touch panel | NetLinx Studio |
Deployment Guides:
The remainder of this page documents deployment for each supported vendor. Guides for additional platforms will be added as they come online.
Extron (ControlScript Deployment Utility)
Deploying middleware to an Extron controller or touch panel uses the vendor’s ControlScript Deployment Utility. Each site is shipped a deployment bundle containing one project per room. Every project has the same internal layout; the only value that differs between rooms is the address of the target device.
Before you start
Make sure you have the ControlScript Deployment Utility installed. Make sure you are on a network that can reach the target device and that you have the admin credentials for the device.
Step-by-step deployment
Step 1. Pick the project
Unzip the project files and open deployment.json. Update the LAN field to the ip address/hostname of the touch panel you’re deploying to.
Step 2. Open the ControlScript Deployment Utility
Launch the ControlScript Deployment Utility. On the main screen, click Browse and select the project file inside the room’s project folder(Should be named {tenant}-middleware.json. The utility reads the project file and loads the rest of the project automatically.
Step 3. Check the certification
Look for the Last Certified timestamp next to the Certify Project button. If a timestamp is shown, the project is certified and can be deployed. If no timestamp is shown, or the utility reports that the project is not certified, sign in with a ControlScript-certified Extron account and click Certify Project. Under normal operation this step is not required because the shipped projects are already certified.
Step 4. Enter the device credentials
Click Project Credentials. The dialog lists the target device with its address already filled in from the project. Enter the admin username and password for the device and click Save. Credentials are held in memory for the session only and are not written back into the project.
Step 5. Deploy
Click Deploy to push the full project to the device. Use Deploy Code Only for a faster push when the user interface layout has not changed and you are only updating behaviour. The Messages panel at the bottom of the utility reports progress. A successful deployment reports that the hardware was found, that the credentials are valid, that the hardware matches the project, and finally that the deployment completed.
Step 6. Verify on the device
The device reboots into the new software within about thirty seconds. Confirm that the expected home screen appears on the touch panel, or that the controller comes back online and responds to commands from the room engine. If telemetry for the room starts flowing back to the monitoring dashboard, the deployment is live.
Troubleshooting
| Symptom | Likely cause | Fix |
|---|---|---|
| Hardware not found | The device address is unreachable from your network. | Check the address in the room list. Ping the address. Confirm you are on the correct network or VPN. |
| Wrong credentials | The admin password has been changed. | Retrieve the current credentials from your network manager and enter them again in Project Credentials. |
| Project not certified | The certification file is missing, or your Extron account is not certified. | Sign in with a certified account and click Certify Project, or contact us for support |
| Hardware mismatch | The device type does not match the project. | A package built for one model will not deploy to a different model, please contact us for support. |
| Device boots to a blank screen | The layout file did not make it to the device. | Run Deploy rather than Deploy Code Only to re-push the full project including the layout. |