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

Rear panel hardware layout showing terminal blocks, DC power input, USB-C, Gigabit PoE+ LAN, and wall mount keyholes.
| Terminal / Port | Terminal Labels | Description |
|---|---|---|
| Relay | 1, COM, 2 | High-current relay output (normally open / normally closed contacts) |
| I/O | GND, 1 | Digital Input/Output pin for contact closures or sensor triggers |
| IR | 2, GND, 1 | Infrared transmitter output ports for IR blasters/emitters |
| RS-485 | B, A, GND | Differential RS-485 serial port for industrial automation bus |
| RS-232 | TX, RX, GND | Full-duplex RS-232 serial control port |
| DC | 12V DC | Optional 12 VDC external power adapter jack |
| USB-C | USB-C | USB OTG port for flash drives, peripheral extension, or debugging |
| LAN (PoE) | RJ-45 | Gigabit 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>