Barco ClickShare
LAN integration for Barco ClickShare wireless-presentation base units — the CX-Series (CX-20 / CX-30 / CX-50) and the legacy CSE / CSC series. Drives the on-LAN ClickShare REST API ("XAPI") on TCP 4001 (HTTPS) to read room sharing state, enumerate paired Buttons, and remotely toggle standby / wake / reboot for nightly room shutdowns.
What this driver is for
A ClickShare base unit sits behind the room display and accepts wireless projection from up to ~4 simultaneous laptops. Each base unit is a single "room" — GEM treats it as one device. The two day-to-day signals an integrator typically wants are:
- "Is anyone presenting right now?" — surfaced as a zone state of
present/absentfrom thesharingActiveXAPI leaf. Useful for room-occupancy automations and AV-routing rules. - "Put the unit to sleep / wake it up" — surfaced as the
standby/wakeupcommands. Useful for nightly shutdown macros and morning-start scenes.
The driver does not initiate sharing (only the ClickShare Button or the ClickShare desktop app can do that). It also does not handle Button pairing — that requires physical access to the base unit and is a one-time installer step.
Prerequisites
| Item | Notes |
|---|---|
| ClickShare base unit on the LAN | Reachable from the GEM controller; needs HTTPS on port 4001 open. |
| REST API enabled on the unit | On by default for CX-series. CSE-series legacy units have it OFF by default — enable it under ClickShare Configurator → System → REST API. |
| Integrator account password | CX-series: random factory password printed on a sticker on the device. CSE-series: ships as integrator / integrator; change it during commissioning. |
| Firmware roughly 2020 or later | Driver targets the v1.13 API prefix. Older CSE firmware uses v1.11 — see api_version below. |
Setup
-
Verify reachability. From a browser on the LAN visit
https://<base-unit-ip>:4001/and accept the self-signed certificate. You should see the ClickShare Swagger landing page — that confirms the REST API is enabled and the integrator credentials work. -
Add the device in GEM.
- Navigate to
/admin/devices→ Add Device. - Driver:
barco_clickshare. - Set
ip(base-unit address) andpassword(the integrator-account password). - Leave
usernameon the defaultintegratorunless your installer changed the API role name.
- Navigate to
-
Pin the API version (only if your unit reports a different prefix).
- CX-series and current-firmware units:
api_version=v1.13(default). - Legacy CSE on older firmware:
api_version=v1.11. - If neither works the unit's
/swaggerpage in step 1 lists the exact prefix it uses.
- CX-series and current-firmware units:
-
(Optional) Add a zone for presence.
- Subsystem:
av(or any subsystem you use to flag rooms as occupied). - Driver-device: the ClickShare row from step 2.
- Address can be left blank — the base unit has a single sharing state, and any zone bound to this device reflects it.
- On every status poll the zone's
stateattribute is updated topresentwhile a ClickShare Button or app is actively projecting, andabsentotherwise.
- Subsystem:
-
Wire to your nightly automation. A common macro is:
- Off-hours: send
standbyto every ClickShare device when the room mode flips to After-Hours. - Start of day: send
wakeupto every ClickShare device when the room mode flips to In-Session.
- Off-hours: send
Attributes
Device attributes
| Name | Required | Default | Description |
|---|---|---|---|
ip | yes | — | LAN IP or hostname of the base unit. |
password | yes | — | Integrator-account password (stored encrypted). |
username | no | integrator | API account on the base unit. Barco uses integrator for the API role on all current firmware. |
port | no | 4001 | TCP port for the ClickShare REST API. Older firmware also exposed 4000 over plain HTTP. |
protocol | no | https | https or http. Leave on https unless the unit is configured to expose plain HTTP. |
api_version | no | v1.13 | URL segment between the host and /Configuration/. CX/current = v1.13, legacy CSE = v1.11. |
status_interval | no | 15000 | How often (ms) to poll sharing + standby state. Faster than 5 s is overkill and visible on the base unit's CPU. |
request_timeout | no | 8000 | Per-request HTTP timeout in ms. |
Zone attributes (managed by the driver)
| Name | Description |
|---|---|
state | present while a Button or app is sharing, absent otherwise. |
standby | true while the base unit is in eco / network standby. |
Commands
| Name | Args | Description |
|---|---|---|
on / wakeup | — | Wake the base unit from standby. |
off / standby | — | Put the base unit into eco / network standby. |
reboot | — | Restart the base unit. Unit is unreachable for ~60-90 s; the driver flags it as disconnected during the reboot window and reconnects on the next poll. |
get_status | — | Read the current sharing state + standby state without waiting for the next poll. |
get_info / get_devices | — | Read the device-info block (model, serial, firmware). |
get_buttons | — | List paired ClickShare Buttons (serial + firmware). Useful for verifying which Buttons survive a swap. |
Zone address format
The base unit has a single sharing state, so zone addresses are not used
for routing. Leave zone.address blank — the driver simply mirrors the
sharing / standby state onto every zone bound to the device.
If you create more than one zone on the same base unit, they will all reflect the same sharing state — that's by design.
Known limitations
- No share initiation. The XAPI does not expose a way to start a presentation; only a physical Button or the ClickShare desktop / mobile app can do that.
- No Button pairing. The
Buttons/Pairendpoints require a physical button press on the base unit during the pairing window and cannot be driven remotely. - No source switching. Some integrators expect ClickShare to act as an HDMI source switcher; it doesn't — the unit always presents one output and the XAPI doesn't switch inputs.
- CX-series only verified. This driver was developed against the
CX-series REST API reference; the legacy CSE Swagger is materially the same
but uses the
v1.11prefix and some endpoint casing differs. The driver tries CamelCase first and falls back to camelCase, but if you hit an unfamiliar shape, setapi_versionper your unit's/swaggerpage.
Troubleshooting
| Symptom | What to check |
|---|---|
connect error: login HTTP 401 | Wrong integrator password. CX-series ships with a random password on the sticker; verify there are no leading or trailing spaces. If the account is locked, log into the web Configurator and clear it before retrying. |
connect error: ECONNREFUSED on :4001 | REST API not enabled on the unit. Log into the ClickShare Configurator → System → REST API and turn it on. CSE-series legacy units have it off by default. |
get_status returns HTTP 404 | API version mismatch. Override api_version — try v1.11 for legacy CSE or whatever the unit's /swagger page reports. |
Sharing state stays absent even during a presentation | Confirm sharingActive is exposed by your firmware — visit the unit's /v1.13/Configuration/System/Sharing/sharingActive/value URL from a browser while sharing and look at the JSON. Some old firmware revs use /Session/active instead; the driver tries that as a fallback but you may need a vendor upgrade. |
| Standby toggles but the unit wakes itself a few seconds later | Check the Power Management profile in the ClickShare Configurator — if it's set to Always-On, the unit will refuse to stay in standby. Switch the profile to Eco or Networked Standby. |
See also
- Integrations overview for the protocol-level pages.
- Mersive Solstice — the other commercial wireless-presentation driver.