Skip to main content

Remote Hardware API

App Container exposes an HTTP REST control server for hardware peripherals built directly into AVstudio dedicated touch panels.

⚠️ Hardware Requirement: Hardware control endpoints (Terminal shell, GPIO & Relays, LED strip, RS-232/485 serial ports, UDP send, and RTC sleep/wake) require supported AVS-10 / AVS-15 Touch Panel hardware. Standard consumer smartphones and tablets do not feature these physical hardware interfaces.


🔌 Rear Panel Hardware Connectors

AVS Touch Panel Rear Panel Hardware Interfaces

Rear panel hardware layout showing terminal blocks, DC power input, USB-C, Gigabit PoE+ LAN, and wall mount keyholes.

Terminal / PortTerminal LabelsDescription
Relay1, COM, 2High-current relay output (normally open / normally closed contacts)
I/OGND, 1Digital Input/Output pin for contact closures or sensor triggers
IR2, GND, 1Infrared transmitter output ports for IR blasters/emitters
RS-485B, A, GNDDifferential RS-485 serial port for industrial automation bus
RS-232TX, RX, GNDFull-duplex RS-232 serial control port
DC12V DCOptional 12 VDC external power adapter jack
USB-CUSB-CUSB OTG port for flash drives, peripheral extension, or debugging
LAN (PoE)RJ-45Gigabit Ethernet network port with IEEE 802.3at PoE+ support

🔒 Authentication & Base URL

All endpoints are hosted by the container's internal web server:

http://{device-ip}:8080/api/remote/

Every HTTP request must include a Bearer authentication token in the Authorization header. You can locate or regenerate your access token inside the App Container Settings menu.

Authorization: Bearer <your-bearer-token>

🖥️ Terminal Shell Execution

Execute shell commands directly on the host operating system. Commands run asynchronously with a 30-second execution timeout.

POST /api/remote/terminal/exec
Content-Type: application/json
Authorization: Bearer <token>

{
"command": "cat /proc/version"
}

Response (200 OK)

{
"command": "cat /proc/version",
"stdout": "Linux version 5.10.198...",
"stderr": "",
"exitCode": 0,
"duration": "12ms"
}

🔌 GPIO & Relays Control

Control on-board digital inputs/outputs and relay contacts.

Trigger Relay Pulse

Trigger a relay to close for a specified duration (milliseconds) before automatically opening.

POST /api/remote/relays/pulse
Content-Type: application/json
Authorization: Bearer <token>

{
"relayIndex": 0,
"durationMs": 500
}

Response (200 OK)

{
"success": true,
"relayIndex": 0,
"state": "pulsed",
"durationMs": 500
}

Set Relay State

Directly open or close a relay output contact.

POST /api/remote/relays/state
Content-Type: application/json
Authorization: Bearer <token>

{
"relayIndex": 0,
"closed": true
}

💡 Programmable RGB LED Status Bar

Control the color, brightness, and lighting patterns of the RGB LED light bar on the touch panel bezel.

Set Static LED Color

Set the entire LED strip to a solid RGB color.

POST /api/remote/led/color
Content-Type: application/json
Authorization: Bearer <token>

{
"red": 0,
"green": 255,
"blue": 0,
"brightness": 100
}

Response (200 OK)

{
"success": true,
"mode": "static",
"color": "#00FF00",
"brightness": 100
}

Flash LED Status (Alert / Call)

Blink the LED strip in a specific color to signal incoming calls, room occupancy status, or alarm conditions.

POST /api/remote/led/flash
Content-Type: application/json
Authorization: Bearer <token>

{
"red": 255,
"green": 0,
"blue": 0,
"intervalMs": 500,
"count": 6
}

📡 RS-232 / RS-485 Serial Communication

Send and receive raw serial strings over physical serial ports to control external AV equipment, displays, projectors, or lighting controllers.

Send Serial Data

POST /api/remote/serial/send
Content-Type: application/json
Authorization: Bearer <token>

{
"port": "RS232_1",
"baudRate": 9600,
"data": "PWR ON\r\n",
"encoding": "ascii"
}

Response (200 OK)

{
"success": true,
"port": "RS232_1",
"bytesSent": 8
}

⏰ RTC Sleep & Wake Scheduling

Program Real-Time Clock (RTC) wake timers to turn on the screen or wake the panel at scheduled times for energy savings.

POST /api/remote/rtc/schedule-wake
Content-Type: application/json
Authorization: Bearer <token>

{
"wakeTimestamp": 1787140800,
"action": "screenOn"
}

📲 OEM Application Management

Remotely launch, switch to, or force-close approved native Android applications on supported AVstudio touch panel hardware.

Launch Native Android Application

POST /api/remote/apps/launch
Content-Type: application/json
Authorization: Bearer <token>

{
"packageName": "com.zoom.rtc",
"bringToFront": true
}

Response (200 OK)

{
"success": true,
"packageName": "com.zoom.rtc",
"status": "launched"
}

Return to AVstudio Touch Panel UI

POST /api/remote/apps/return-to-container
Content-Type: application/json
Authorization: Bearer <token>

Response (200 OK)

{
"success": true,
"activeView": "avstudio-container"
}

🔄 Remote System Power Commands

Reboot or shut down the touch panel hardware remotely:

POST /api/remote/system/reboot
Authorization: Bearer <token>