Setup

WiFi configuration, OSC and Shelly endpoint setup, Shelly device gangs, and per-page PIN locks.

Tab WiFi

WiFi tab in the web UI
WiFi tab — scan results and connect form

Available Networks

Tap Scan to search for nearby WiFi networks. Detected networks appear in a list — click one to auto-fill the SSID field below.

Connect

SSIDThe network name to connect to. Auto-filled from scan results, or type manually.
PasswordThe WiFi network password.

Click Save & Restart to apply. The device restarts and attempts to join the specified network.

If you have an Ethernet cable plugged in on the 7″ (P4) board, the device prefers Ethernet over WiFi. WiFi is only brought up if the wired connection fails to get a network address within 8 seconds.

Tab Devices

Devices tab with several devices configured
Devices tab — each card shows the device's transport, IP, port, and live status

The OSC tab configures endpoint targets — up to 25 on the 4.3″ and 7″ boards or 8 on the WT32-SC01-Plus. Each endpoint can be one of three types:

Each widget on your layout sends commands to one of these endpoints. Widgets reference endpoints by their slot number (#0, #1, …). The optional built-in audio board appears automatically when it's connected — you don't add it manually.

Adding a Device

Click + Add Device at the bottom of the list. A new card appears at the bottom — the same shape as the cards already in the list. Fill in the fields and click Save.

Common Fields

FieldDescription
Device PresetQuick-fill from presets: QLab, Behringer Wing, XM32 (X32/M32), BT Esparagus, Shelly, or Generic OSC. Fills in the transport, port, heartbeat, and preamble with sensible defaults. Selecting a Shelly preset switches the transport to Shelly.
TransportHow the touchscreen talks to this device: OSC or Shelly. Different fields appear below depending on which you pick.
LabelA friendly name (e.g. “FOH Wing”, “QLab Mac”, “Living Room Lights”).
IPThe IP address of the target device.
PortNetwork port. Common values: Wing = 2222, X32/M32 = 10023, QLab = 53000, Shelly = 80.

OSC-Specific Fields

These fields appear when the transport is set to OSC:

FieldDescription
Heartbeat probeAn OSC address sent periodically to check if the device is still responding (e.g. /xinfo for Wing). Leave empty to disable.
IntervalHow often to send the heartbeat, in seconds.
Value feedbackWhen enabled, the touchscreen listens for incoming OSC from this device and updates widget states (fader positions, toggle states) in real time.
PIN / PasscodeOptional authentication for devices that require it (e.g. QLab, BT Esparagus). The passcode is sent on connect and re-sent automatically if the device reports the session has expired. Devices with a PIN are given a more lenient liveness check to cope with the occasional dropped packet during Bluetooth audio streaming.
PreambleMessages sent once when the device first responds. One message per line. Useful for telling the device which port to reply on, or subscribing to update notifications.

Shelly-Specific Fields

These fields appear when the transport is set to Shelly:

FieldDescription
PasswordThe admin password for the Shelly device, if you've set one. Leave blank if the device doesn't require a password.

State changes on the Shelly device (switch on/off, dimmer level, cover position) push back to widgets in real time — no need to refresh the page or poll.

Click the × button on a device card to remove it.

Widgets reference devices by their slot number (#0, #1, …). If you reorder or remove devices in this list, check that your widgets still point to the correct one. Saved layouts do not include the device list — the two are saved separately, so a layout can move to another touchscreen that has different IP addresses for its target devices.
Device presets also determine which widget presets are available in the Layout page. For example, selecting a Shelly preset unlocks Shelly Switch, Dimmer, and Cover widget presets; selecting Wing unlocks Wing-specific fader and mute presets.

Tab Home Assistant

HA tab in the web UI
HA tab — connection card at the top, per-device entity bindings below

Home Assistant integration uses one persistent connection to your Home Assistant install to drive any entity from a touchscreen widget. Lights, switches, scenes, scripts, media players, covers, fans, automations — anything Home Assistant can address, Venue Commander can bind.

One Connection, Many Devices

Home Assistant setup has two layers:

Setting Up the Connection

  1. In Home Assistant, open your user profile → SecurityLong-Lived Access Tokens, and create a new token. Copy it — Home Assistant will not show it again.
  2. In Venue Commander, open the HA tab.
  3. Enter the URL: typically ws://homeassistant.local:8123/api/websocket, or wss://… if you have HTTPS configured on Home Assistant.
  4. Paste the Long-Lived Access Token.
  5. If you're using wss:// with a self-signed certificate (homelab setups), tick Skip TLS validation.
  6. Tick Enabled and click Save. The connection-status indicator turns green when authentication succeeds.

Connection Fields

FieldDescription
EnabledBrings the HA WebSocket task up. When off, all HA endpoints go grey and any HA widgets are disabled.
URLFull WebSocket URL, including path. e.g. ws://homeassistant.local:8123/api/websocket or wss://ha.example.com/api/websocket.
Long-Lived Access TokenThe token you created in Home Assistant. Stored on the device alongside your WiFi password.
Skip TLS validationFor wss:// connections to a Home Assistant install with a self-signed certificate (typical for homelab setups). Only available on the 4.3″ and 7″ boards — not supported on the WT32-SC01-Plus, where you'll need to use a plain ws:// URL on a trusted network.

Binding an Entity

For each Home Assistant device:

  1. Click + Add HA Device.
  2. Give it a friendly Label (e.g. “Kitchen Sonos”).
  3. Paste the entity ID. The easiest way to find one is in Home Assistant itself: Settings → Devices & Services → Entities, or Developer Tools → States — copy the entity ID (e.g. light.kitchen_table) and paste it in.
  4. The device type (e.g. light, switch, media_player) is taken from the entity ID and determines which widget presets are available.
  5. Click Save.
There's deliberately no in-UI entity browser. Real Home Assistant installs commonly have 1,000+ entities, and scrolling through that list on a touchscreen is painful. Home Assistant's own entity browser is much better at finding what you want, and the entity ID is one copy/paste away.

Supported Domains (v1)

Widget presets are available for these HA domains:

light, switch, media_player, scene, script, automation, input_boolean, input_number, cover, fan.

Within each domain, widget addresses determine which service is called and which attribute is observed for feedback. Examples:

Info widgets can also pull any attribute by name (e.g. media_title, current_temperature, current_position) — see the Widgets section.

climate is intentionally not in v1 — thermostat control surfaces have multiple coupled attributes (target temp, mode, fan, preset) that don't fit cleanly into the 1-widget-1-action model.

Widget Liveness Border

Home Assistant widgets show a four-colour border indicating whether the target is reachable:

Amber, red, and grey all dim the widget and disable touch — you can't drive a target you can't reach.

When the touchscreen connects to Home Assistant, it asks for the current state of just the entities your widgets reference, then subscribes to live updates for those. Memory use scales with the size of your layout, not the size of your Home Assistant install.

Tab Gangs

Gangs tab with a gang configured
Gangs tab — each gang has its own sync interval and a list of Shelly members

Gangs let you synchronise multiple Shelly devices so they act as one. When you toggle a gang on or off, every member device receives an explicit command simultaneously. A periodic sync tick keeps all members in agreement and detects when devices go offline.

How Gangs Work

Creating a Gang

  1. Go to the Gangs tab and click + Add Gang.
  2. Give the gang a name (e.g. “Living Room Lights”).
  3. Set the Sync interval in seconds (how often to check and correct member states). Lower values give faster sync but more network traffic.
  4. Click + Member to add Shelly devices. For each member, select the device (from your configured Shelly devices), the type (Switch or Light), and the channel (0 for single-channel devices, 0–3 for multi-channel).
  5. Click Save to apply immediately (no restart needed).

Gang Settings

FieldDescription
NameA label for the gang, shown in the gang widget dropdown and on the touchscreen.
EnabledWhen unchecked, the gang is inactive — no sync tick runs and no commands are sent.
Sync intervalHow often (in seconds) to query member states and correct any disagreements. Default: 5 s. Range: 1–60 s.

Gang Members

FieldDescription
DeviceThe Shelly device (from the Devices tab above) to include in this gang. Only Shelly devices can be in gangs.
TypeSwitch or Light. Tells the gang what kind of Shelly device this is.
ChannelWhich channel on the Shelly device this is (0–3). Use 0 for single-channel devices. Multi-channel devices (e.g. Shelly 2PM) use 0 and 1 for their two outputs.
The first member is the primary — put your most reliable device first. The sync tick compares every other member's state against the primary and sends corrective commands to any that disagree.

Using Gangs on the Touchscreen

After creating a gang, add a Gang Toggle or Gang Toggle Button widget in the Layout page. The widget controls all members of the gang with a single touch. The coloured border shows real-time liveness:

Limits

Page PIN Locks

Page PIN Lock sub-panel on the Layout tab
Page PIN Lock — auto-return timeout and up to ten 4-digit PINs per page

Pages 1–7 can be locked behind 4-digit PINs — useful for keeping “house” controls public on page 0 while restricting engineer/admin pages. Page 0 is always public and cannot be locked.

How PIN Locks Work

Configuring PINs

  1. Go to the Layout tab and select the page you want to lock (page 1–7).
  2. Find the Page PIN Lock sub-panel.
  3. Set the auto-return timeout in minutes — how long the page stays unlocked after a successful PIN. Set to 0 to disable auto-return (the page only re-locks on reboot or manual home).
  4. Add one or more 4-digit PINs. Optionally label each with a short note (e.g. “Stage manager”, “Touring engineer”) for your own records.
  5. Click Save Layout. PINs are saved immediately and take effect on the next page switch.
PINs are stored on the device. There is no recovery mechanism if you lose all of them — you'll need to factory-reset and re-import your layout. Keep a saved copy of your layout (which includes the PINs) somewhere safe.
When the home-screensaver mode is on, an unlock timeout that fires while a locked page is showing kicks the screensaver back on too, ensuring page-0 widgets are never reachable without an explicit re-unlock.