In case you didn’t read my about page, I’m actually a system administrator for classroom equipment at a medium-sized university. We have a bit over a thousand networked devices in classrooms across the campus, with around half of them being made by Crestron (the full network is much, much, larger though). If you’re not familiar with Crestron, they’re one of the biggest names in commercial and residential AV installations, and have a wide array of devices that can be used in anything from a small conference room to a stadium.

At my university, we primarily use Crestron systems to control the classroom equipment that faculty members will use to teach (projectors, cameras, mics, etc.). We also have a few systems from other vendors, but not enough to worth mentioning at the moment.

While Crestron does have some tooling to manage a large number of devices (Fusion, XIOCloud, VC4-Server to an extent), they are often paid per device and are unfortunately quite limited in functionality. Looking at you, Fusion. This leaves system administrators to come up with their own solutions.

GUI-Based Configuration Tools

I think the majority of Crestron admins rely on the standard GUI tooling provided to them. These generally have some pretty good offerings, and are great for quick configuration of individual devices.

Toolbox

One of the main staples of Crestron device management is Crestron Toolbox, a windows application that contains a multitude of different tools that can be used to configure most of Crestron’s devices. It has built-in support for uploading programs, updating firmware, pulling logs, configuring networking, and a ton more. The only downside is that it’s a bit clunky, and can be slow as hell depending on what you’re doing. Though, for the majority of administrators, this is all you’re going to need.

Toolbox is a program that I have a love-hate relationship with. On one hand, it’s absolutely essential to manage my devices, and there are a lot of functions that can only be changed through Toolbox (at least easily). On the other, it’s a program primarily designed for managing a single device at a time, and can be slow even with that. This would be fine if I only had maybe a couple dozen devices, but it quickly gets to be unwieldy once you start scaling up. Good luck updating the firmware for 200 touch panels through Toolbox.

Webconf

The other main configuration tool that most Crestron admins will use is the built-in web interfaces found on most of Crestron’s devices, assuming it hasn’t been disabled for security. Most basic configuration can be done through this web page, such as changing network settings, performing updates, and configuring input/output routings. Though limited, these pages are fantastic for your less technically-inclined team members to make basic changes. Apart from basic configuration, I personally don’t tend to use these pages very often.

One nice part about the web configuration pages is that they offer import/export of config files, which lets you quicky copy a existing device’s settings when provisioning a new one (or make backups of your configuration if you don’t trust your junior admins).

XIOCloud

This is where we start to get into tools to manage larger numbers of devices, and no list would be complete without Crestron’s own XIOCloud, a cloud based monitoring and configuration suite for most Crestron devices. If you work in an environment with more than fifty Crestron devices, you’re likely pretty familiar with it.

XIOCloud lets you configure devices, upload programs, update firmware, manage licenses, and quite a bit more. Combined with being simple to use, it’s definitely one of the better options for managing large numbers of Crestron equipment. It even works across multiple deployment locations, as it is hosted in the cloud.

The downside of XIOCloud is that it’s a paid service from Crestron, and depending on your situation, using a cloud hosted platform is not feasible for some environments (like mine). Budgeting is also always a concern in the university sphere, so using expensive cloud infrastructure is not always possible. However, this is definitely one of the best options if you’re able to use it.

Crestron Information Tool

Now I know what you’re thinking. Why on Earth would I use Crestron’s diagnostics tool to manage my devices? But did you know that there’s more to the information tool than just the built in diagnostic scripts that True Blue Support will ask you to run on occasion?

At its core, the information tool is just a piece of software that connects to your Crestron device and runs a pre-established list of commands on the device, then returns the output to the information tool. There are command lists for nearly all of Crestron’s product line for gathering diagnostic data, but did you know that you can write custom scripts for it to run as well?

You can even select multiple devices to run the command lists on, allowing for quick configuration changes across your entire environment, and it allows you to import an Addressbook from Toolbox, so you don’t need to worry about copying over all of your hostnames and whatnot.

Shell Tools

The majority of my time is spent staring at a command line, and maybe that sounds awful, or maybe you’re just like me and you configure everything you possibly can through the terminal. If that is the case, then I have some good news for you, because there’s quite a bit you can do over SSH with Crestron devices.

Good Old Fashioned SSH

What’s not to love about SSH? It’s basically everywhere, and Crestron devices are no exception. You can either connect through your SSH client of choice, or use the built in “Console” Tool in Crestron Toolbox. Either way, you’ll have direct access to pretty much anything you would ever want to do with a Crestron device directly at your fingertips. All it takes is a couple of commands.

When you connect to the majority of Crestron devices, you will have a standard set of commands that you can use, like hostname, ipconfig, iptable, etc., but there are quite a few commands that are hidden from the usual help all list. On most systems, you can see these commands by running hidhelp all, though this seems to be disabled on the newer 4-series devices. If you would like an easier to read list of Crestron shell commands, take a look at my github repo here that has a collection of them.

Take heed when using these hidden commands, though. While they are extremely powerful, they also run the risk of breaking your system if you don’t know what you’re doing. Don’t expect assistance from Crestron Support either, as running certain commands can void your device’s warranty. These commands are hidden for a reason, after all.

It’s not all doom and gloom, though: the best part about using shell commands is that you can write scripts to quickly execute sets of commands. I personally use a mix of powershell, python, and bash to manage my devices, but it’s really up to personal preference. I’m still tweaking a few things, but I’ll probably eventually release the collection of scripts I use to manage all my devices.

Crestron Enterprise Development Kit (EDK)

If you’re a Crestron administrator that hasn’t heard of the EDK, I highly recommend you to take a peek at Crestron’s Official EDK Documentation. It basically boils down to an official collection of powershell modules to make managing a large number of Crestron devices easier, with functions to mass update devices, upload programs, and configure pretty much anything else you could think of. A good chunk of the scripts I use make use of the EDK, and it’s definitely something that I couldn’t do without.

The only downside to the EDK (beside copyright issues for sharing scripts) is that it requires a toolbox connection for most of the functions, which locks it to Windows devices. This is likely not to be an issue for most people though.

Configuration Management Tools (future maybe?)

Ansible, Puppet, Chef, and Salt do not currently have implementations for managing Crestron equipment, but it’s possible that this will change in the future. There are several projects that are aiming to create plugins for these platforms, so maybe there will be a day when we can configure Crestron devices like our other servers that we run.

So What Should You Use?

Honestly? It depends on the situation and your personal preference. If you’re a keyboard-smashing shell wizard, maybe the EDK and powershell sound appealing, but if you’re just looking to deploy consistent projects across a bunch of rooms, a combination of Webconf and Information Tool might be your best bet.

Of course there’s always the option of XIOCloud, which would be my first recommendation for anyone with a large number of devices to manage. Its simplicity and offerings are simply unmatched in the space, not that I would expect anything less than Crestron’s own paid solution. If you have a team of not-super-technical people, this is almost definitely your best bet (if you have the money to pay for it that is).

And if you only have a couple dozen devices? You can’t go wrong with the tried and true Toolbox + Webconf combo. It’s always going to be there, always going to be easy to use, and is the officially recommended configuration method by Crestron. Even if you scale up with other tools, you’re still going to find yourself opening toolbox and the web configuration pages every once in a while, so it’s definitely worth learning.

Conclusion

There are quite a few different methods for managing Crestron devices, and they are all best suited for different situations. I personally use all of the methods mentioned here, though I am admittedly less versed in XIOCloud than I probably should be. My favorite method is almost certainly using the EDK and writing scripts, but you can’t really go wrong with most of the methods listed here.

In the future, I would like to manage my environment with Ansible, and am currently in the process of writing a playbook to accomplish this. I’ll probably write a blog post about that eventually when it’s in a functional state.