Operator guide · Nx → Xibo Bridge · Open the dashboard

Show a golf group's replay on the club screens

How to connect a new site, add a camera feed, and choose which Xibo layout and screens its clips appear on — from the bridge dashboard, without changing any server settings.

For: site and signage operatorsNeeds: Xibo admin, Nx admin, dashboard passwordTime: about 30 minutes per new feed
0

How it works

A camera sees a group arrive on the tee. The Nx recorder tells the bridge. When the group leaves, the bridge cuts a clip of the last few minutes, puts it into Xibo, and tells the club screen to play it. The screen then goes back to its normal content.

What the screen does

The screen normally plays its always-running layout (your ads or club content). When a clip is ready, the bridge sends a trigger code. The always-running layout has an action listening for that code, which switches the screen to the event layout. The event layout plays the clip once, then the screen returns to its normal schedule.

Words used in this guide

Site

One Nx recorder (one golf club). It has its own password, the webhook secret, that its Nx rules use.

Feed

One trigger camera at a site, and the camera the clip is cut from. Each feed has its own Start and End addresses.

Target

Where a feed's clip is shown: an event layout, its placeholder video, and the screens. A feed can have several.

Event layout

A Xibo layout that holds the replay video. It is identified by its layout code.

Placeholder video

A video in the Xibo library that the bridge replaces with each new clip. Identified by its media ID.

Trigger code

A word the bridge sends to the screen, such as hole1. It must match the action on the always-running layout.

1

Before you start

Have these ready. The first four are needed once per club; the last two for every new feed.

  • The bridge dashboard address and its password, from your administrator.
  • An admin login for the Xibo CMS.
  • The Nx server address, plus an Nx user and password with access to the cameras.
  • The Xibo display (screen) is switched on and shows as logged in in the CMS.
  • A short MP4 to use as the placeholder video. Any clip works; it is replaced by the first replay.
  • Nx admin access, to add two event rules per trigger camera.
2

Set up Xibo

Do 2.2 to 2.5 once for each target: usually once per group of screens that shows its own replay. The screenshots are from the club's own CMS (Xibo 4.5). Click any picture to see it full size.

Already done once for the whole CMS: the bridge's API application (Administration → Applications). You don't need to touch it when adding sites or feeds.

2.1 Sign in to the CMS

  1. Open the CMS address in a browser, for example https://cms.glfn.com.au, and sign in with an admin account.

The Xibo sign-in page.

2.2 Upload the placeholder video

  1. Library → Media → Add Media

    Upload a short MP4 and give it a clear name, such as hole2-clip. Any clip works: the first replay replaces it.

  2. Find it in the list and note the number in the ID column. This is the placeholder media ID.

The ID goes up with every replay. Xibo gives each new clip a new media ID, so the library will show a higher number than the one you typed into the dashboard. That's normal: the bridge reads the current video from the event layout each time. Only enter the ID once, when you set up the target.

Library → Media. The highlighted row is the Hole 1 placeholder, nx-motion-clip. Its media ID is 139.

Every target needs its own placeholder video. The bridge overwrites that video with each new clip, so two targets sharing one would overwrite each other's replay. The dashboard refuses a shared one.

2.3 Create the event layout

This is the layout the screen switches to when a replay is ready.

  1. Design → Layouts → Add Layout

    The designer opens on a blank 1920×1080 layout. Name it, for example Hole 2 replay.

  2. In the left toolbar, open Video. Click the placeholder video's card, then click the canvas to place it. Drag the handles to size it; leave Scale type on Aspect.

  3. Leave its duration alone. The panel says "This video will play for 99 seconds": that is the placeholder's own length. The bridge updates it to each replay's length, so don't set a fixed duration in the Advanced tab.

The designer. Left: Video panel with the placeholder card. Centre: the video on the canvas. Right: its settings, showing it plays for the video’s own length.
  1. Click the layout's name at the bottom left of the canvas. In Edit Layout, fill in Code Identifier, for example hole2replay. This is the layout code. It stays the same when the layout is edited and republished, so the bridge always finds it. Save.

  2. ≡ Options menu (top right) → Publish

    Publish the layout. A screen can't show a draft.

Edit Layout. Code Identifier is the layout code you give the bridge.
≡ menu → Publish. Publish again after every change.

Want the replay framed by your branding? Make the video region smaller and put your logo, sponsor or hole name in other regions. The whole event layout shows while the clip plays.

2.4 Add the trigger to the always-running layout

The screen only reacts to a trigger code if the layout currently playing has an action waiting for it. So this action goes on your always-running layout (at Parkwood, Main Layout), not on the event layout.

  1. Design → Layouts → your always-running layout → Design

    If a published layout opens read-only, choose Checkout to get an editable draft.

  2. Press Interactive Mode at the top so it reads ON. Click the layout's name at the bottom left to select the whole layout, then press Add an Action on the right.

  3. Fill in the action as in the table, press Save, then ≡ → Publish.

Interactive Mode ON. With the layout selected, Add an Action appears on the right.
Action fieldSet it to
Action TypeNavigate to Layout
Trigger TypeWeb hook
Trigger CodeA word for this targetExample: hole2. You enter the same word as the feed target's trigger code in step 5.
TriggerThe always-running layout itself (it is selected already)
Layout CodeThe event layout's Code Identifier from 2.3Example: hole2replay
A filled-in action. This was made on a throwaway demo layout, so its Trigger and Layout Code both show the demo. On your always-running layout, Trigger is that layout and Layout Code is the event layout’s code.

If the screen's schedule rotates through several layouts, add the same action to each of them. Otherwise a replay only appears when that one layout happens to be on screen.

2.5 Put the event layout on the screen

  1. Displays → the screen's ⋮ menu → Assign Layouts

    Add the event layout, so the player downloads it in advance.

  2. Note the number in the display's ID column, and check that it shows as logged in (a green tick). This is the display ID.

  3. ⋮ menu → Trigger a web hook

    Optional test: enter the trigger code (for example hole2) and send. The screen should switch to the event layout. If it does, Xibo is ready.

Displays → ⋮. Both of the entries you need are in this menu: Assign Layouts and Trigger a web hook.
Assign Layouts. Pick the event layout and save.
Trigger a web hook. A quick test of 2.4 before the bridge is involved.

What to copy into the dashboard

From 2.2

Placeholder media ID

139
From 2.3 and 2.4

Layout code and trigger code

hole2replay · hole2
From 2.5

Display IDs

4,5
3

Connect Xibo in the dashboard

Open the bridge dashboard, sign in with its password, and go to the Settings tab. The Xibo CMS row is at the top; Sites and Feeds sit side by side below it.

Sign in with the dashboard password.
Test connection on the Xibo row. You want green ticks.
Settings. Xibo on top, one card per site on the left, one card per feed on the right. Secrets are blurred in this picture.

You do this once. The Xibo connection is shared by every site and feed. To change it: press Edit on the Xibo row, press Test connection, then Save. Changes apply from the next clip, with no restart.

Edit Xibo. Normally you’d only change the CMS URL. Leave the client secret blank to keep the saved one.
FieldWhat to enter
CMS URLThe CMS addressExample: https://cms.glfn.com.au
Client ID / Client secretFrom the CMS's API application. Set once; leave the secret blank to keep it.
Settle delay (ms)How long the screen gets to download a new clip before switching to it. Leave at 20000 (20 s) unless screens show the previous clip.
Gap between clips (ms)A new clip waits until the previous one has finished playing, plus this. Default 20000 (20 s).
Everything elseLeave as it is.
4

Add a site

A site is one Nx recorder. Add one for each club.

  1. Settings → Sites → + Add site

    Fill in the fields below.

  2. Press Test connection. It lists the cameras on that recorder. Recording means footage is there to cut; Online — not recording right now is normal outside the camera's recording schedule (for example at night), but check it before relying on that camera.

  3. Press Add site.

  4. On the new site card, press Show & copy next to Webhook secret. Keep it for the Nx rules in step 6.

+ Add site. Example values for a second club.
Test connection signs in to Nx and lists its cameras.
FieldWhat to enter
Site IDA short name in lowercase, digits and dashes. It becomes part of every web address for this site and cannot be changed later.Example: parkwood
NameThe club's name, as you want to see it.Example: Parkwood
Nx server URLThe Nx address the bridge reaches it on, usually the Nx Cloud relay address.Example: https://yourclub.relay.glfn.com.au
Sign in withLocal Nx user for a user made on the Nx server itself. Choose Nx Cloud account (nxvms.com) when the login only works on nxvms.com, not directly on the server.Example: Collier Park uses Nx Cloud
Nx username / passwordA login that can view the cameras' recordings. For Nx Cloud, this is the email and password used on nxvms.com. When editing, leave the password blank to keep it.
EnabledTicked. Untick to pause the whole site.
The site card. The webhook secret is the password for every Nx rule at this site.

Rotate makes a new webhook secret. Every Nx rule at that site stops working until you paste the new secret into it. Only rotate if the secret has leaked.

5

Add a feed

A feed is one trigger camera, the camera its clip is cut from, and the screens the replay goes to. This is where you choose the layout, the video and the screens from step 2.

  1. Settings → Feeds → + Add feed

    Choose the site first. The camera lists fill in from that site's recorder.

  2. Fill in the feed fields, then one target for each event layout this feed should show on.

  3. Press Test feed. It checks that the cameras have recent footage, that the layout exists and which video it plays, and whether each screen is online.

  4. Press Add feed. The new feed card shows its Start and End addresses with copy buttons.

+ Add feed, filled in for a Hole 2 example. The target row at the bottom is where the Xibo numbers from step 2 go.

Feed fields

FieldWhat to enter
SiteThe recorder this camera is on.
Feed IDLowercase, digits and dashes. Part of this feed's web addresses; cannot be changed later.Example: hole-2
NameHow you want to see it.Example: Hole 2
Trigger cameraThe camera whose Nx rules call this feed. For reference only; it doesn't change what is recorded.
Footage cameraThe camera the replay is cut from.
Inset cameraOptional. A second view shown small in a corner. Leave as none for a single view.
Inset cornerWhich corner the inset sits in.

Target fields

Use + Add target for another event layout. Screens that show the same layout go in one target's display IDs.

FieldWhat to enter
NameWhere it plays.Example: Clubhouse TV
Layout codeThe event layout's Code Identifier (2.3).Example: hole2replay
Placeholder media IDThe placeholder video's ID (2.2). Must not be used by any other target.Example: 139
Display IDsThe screens' IDs (2.5), separated by commas.Example: 4,5
Trigger modewebhook. This uses the action you added in 2.4.
Trigger codeThe same word as the action's Trigger Code in 2.4.Example: hole2
Target IDA short name for this target within the feed.Example: club
Layout ID (if no code)Leave blank when you use a layout code.

The three things that must line up: the target's layout code matches the event layout's Code Identifier; the target's trigger code matches the action's Trigger Code; and the action's Layout Code points at the same event layout.

The feed card. Copy the Start and End addresses from here for the Nx rules.
Test feed results. Red here means a camera had no footage in the last 10 minutes: this was taken at night, outside the recording schedule.
6

Create the Nx rules

The recorder tells the bridge when motion starts and stops on the trigger camera. Each feed needs two rules. The addresses have this shape; copy the real ones from the feed card.

STARThttps://your-dashboard/webhook/site-id/feed-id/start ENDhttps://your-dashboard/webhook/site-id/feed-id/end
  1. Nx Witness client → System Administration → Event Rules → Add

    Create the start rule as below, then the end rule.

  2. Select only this feed's trigger camera in each rule. A rule covering several cameras sends them all to one feed.

SettingStart ruleEnd rule
EventThe camera's motion or analytics event (for example loitering) on the trigger camera
OccursWhen event startsWhen event stops
Interval of action15 secondsOff
ActionDo HTTP(S) Request
URLThe feed's Start addressThe feed's End address
MethodPOST
LoginAnything, for example nx
PasswordThe site's webhook secret from step 4

The end rule is required. A clip is only made once the group has stopped moving; without the end rule every session waits ten minutes and then clips everything up to that point.

7

Test it end to end

  1. Control → Feed: your new feed → Trigger via webhook

    This switches the screen to the event layout without making a clip. If the screen changes, the Xibo side is wired correctly. If not, see Troubleshooting.

Control tab. Pick the feed, then trigger the screen by hand.
The result appears under the buttons.
  1. Walk in front of the trigger camera for a minute, then leave.

  2. Events tab

    You should see Motion start from Nx — feed name when you arrive and Motion END from Nx when you leave.

  3. About a minute or two after you leave, a Job success row appears and the screen plays the replay: up to the last three minutes before you left, plus 20 seconds after.

  4. Clips tab

    Every replay is kept here to watch back, even if something failed on the Xibo side.

Events tab. Newest first; each motion start, end and job appears here.
Clips tab. Every replay the bridge has cut.

Normal behaviour you may notice: a group that starts and stops several times within a minute becomes one replay. If a replay is still playing when the next one is ready, the next waits until it finishes plus 20 seconds, and the Events tab says "Waiting … the previous clip is still playing". Replays play in order and none is skipped.

8

Change things later

Everything here takes effect from the next replay. Nothing needs restarting.

To…Do this
Show a feed on another screen with the same layoutFeed card → Edit → add the display ID to the target's Display IDs. Assign the event layout to that screen too (2.5).
Show a feed on a screen with a different layoutDo 2.2 to 2.5 for the new screen, then Feed card → Edit → + Add target.
Use a different event layout or videoFeed card → Edit → change the target's Layout code or Placeholder media ID.
Add another camera at the same club+ Add feed on the same site, then two new Nx rules (step 6) with the new feed's addresses.
Add another club+ Add site, then feeds, then its Nx rules. The Xibo connection is shared.
Pause a feed or a whole siteEdit it and untick Enabled. Its motion events are ignored until you tick it again.
Change the Nx passwordSite card → Edit → enter the new password. Leave it blank to keep the current one.
Replace a leaked webhook secretSite card → Rotate, then paste the new secret into every Nx rule at that site.

Site and feed IDs can't be renamed, because they are part of the Nx rules' addresses. To rename one, add a new site or feed and point the Nx rules at its addresses, then delete the old one.

9

Troubleshooting

What you seeWhat to do
Nothing in the Events tab when someone walks pastThe Nx rule isn't firing or can't reach the bridge. In Nx, check the rule is enabled and look at the Nx event log for the HTTP result.
Nx event log shows 401Wrong password in the rule. Paste the site's current webhook secret again (Show & copy on the site card).
Events tab: Webhook for unknown site or unknown feedThe address in the Nx rule has a typo. Copy it again from the feed card.
Motion start rows appear but no replay is ever madeThe end rule is missing or points at the wrong address. Check the End rule (step 6).
Feed test: no footage in the last 10 minutesThat camera isn't recording at the moment. Normal outside its recording schedule (for example at night). If it happens during play hours, check the camera's recording schedule in Nx.
Feed test: display OFFLINEThe screen's player isn't connected to the CMS. Check the screen is on and online, then test again.
Feed test: layout DRAFTPublish the event layout in Xibo.
Xibo test: HTTP 403, or no displays visibleThe CMS's API application (Administration → Applications) is owned by a user without enough rights. Have a Super Admin own it, or give its owner access to the layouts, library and displays.
Job success, but the screen doesn't changeThe trigger action is missing from the layout that was on screen (2.4), the trigger codes don't match, or the event layout isn't assigned to the screen (2.5). Try Control → Trigger via webhook to check.
The screen shows the previous replay, not the new oneThe screen needs longer to download. Raise Settle delay in the Xibo settings, for example to 30000.
A replay cuts another offCheck Gap between clips isn't set to a negative or tiny value; the default is 20000.
The dashboard refuses a feed: media … is already usedEach target needs its own placeholder video (2.2). Upload another and use its ID.