RDA MSG Board

v1.0.2

Send scrolling text messages to RDA MSG Board via HTTP/JSON. Use for notifications, alerts, or status updates on physical LED matrix.

0· 489·1 current·2 all-time
byRocco De Angelis@rdeangel

Install

OpenClaw Prompt Flow

Install with OpenClaw

Best for remote or guided setup. Copy the exact prompt, then paste it into OpenClaw for rdeangel/rda-msg-board.

Previewing Install & Setup.
Prompt PreviewInstall & Setup
Install the skill "RDA MSG Board" (rdeangel/rda-msg-board) from ClawHub.
Skill page: https://clawhub.ai/rdeangel/rda-msg-board
Keep the work scoped to this skill only.
After install, inspect the skill metadata and help me finish setup.
Required env vars: MSG_BOARD_IP, MSG_BOARD_USER, MSG_BOARD_PASS
Required binaries: python3
Use only the metadata you can verify from ClawHub; do not invent missing requirements.
Ask before making any broader environment changes.

Command Line

CLI Commands

Use the direct CLI path if you want to install manually and keep every step visible.

OpenClaw CLI

Bare skill slug

openclaw skills install rda-msg-board

ClawHub CLI

Package manager switcher

npx clawhub@latest install rda-msg-board
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Benign
medium confidence
Purpose & Capability
Name/description, required binaries (python3), and required env vars (MSG_BOARD_IP, MSG_BOARD_USER, MSG_BOARD_PASS) align with the delivered scripts which POST JSON to a device HTTP API. Profile support via boards.yaml and optional PyYAML is consistent with the skill's stated features.
Instruction Scope
SKILL.md restricts runtime actions to running the included Python scripts and references only profile files (boards.yaml) and the device API. It explicitly warns about command injection and instructs safe argv usage. The instructions do not ask the agent to read unrelated system files or transmit data to unexpected endpoints.
Install Mechanism
No install spec is provided (instruction-only with included scripts). That keeps disk/write risk minimal; the shipped Python scripts are small and their behavior matches the described functionality. No external downloads or archive extraction are specified.
Credentials
The three environment variables requested (MSG_BOARD_IP, MSG_BOARD_USER, MSG_BOARD_PASS) are relevant as fallback credentials for direct connections. SKILL.md notes they are only needed if not using profiles; declaring them as required in metadata may be stricter than necessary but not inconsistent with purpose.
Persistence & Privilege
The skill is not always-enabled and uses normal user invocation/autonomous invocation defaults. It does not request system-wide config modification or other skills' credentials.
Assessment
This skill appears to do what it claims: it runs local Python scripts to POST JSON to the IP you provide (or to a saved profile). Before installing: (1) verify you trust the skill source or inspect the included scripts (they are small and readable); (2) prefer using a local boards.yaml profile rather than exporting credentials into shared environment variables; (3) ensure MSG_BOARD_IP points to your trusted local device (don't direct it at unknown third-party hosts, since credentials are sent via Basic Auth); (4) if you will use the manager script, install PyYAML from a trusted source; and (5) avoid running untrusted code on sensitive hosts. Because the skill's provenance/homepage is not provided, treat the package like any third-party script and review it before use.

Like a lobster shell, security has layers — review code before you run it.

Runtime requirements

📟 Clawdis
Binspython3
EnvMSG_BOARD_IP, MSG_BOARD_USER, MSG_BOARD_PASS
esp32vk97f8cgaksyj11mfq6pwgejrjh81p9vdesp8266vk97f8cgaksyj11mfq6pwgejrjh81p9vdhome-assistantvk97f8cgaksyj11mfq6pwgejrjh81p9vdlatestvk97f8cgaksyj11mfq6pwgejrjh81p9vdled-matrixvk97f8cgaksyj11mfq6pwgejrjh81p9vdmqttvk97f8cgaksyj11mfq6pwgejrjh81p9vdmsg-boardvk97f8cgaksyj11mfq6pwgejrjh81p9vd
489downloads
0stars
3versions
Updated 2mo ago
v1.0.2
MIT-0

Message Board Controller

Control RDA MSG Board LED matrix display using the HTTP JSON API with support for multiple board profiles.

AI Usage

When the user asks to send a message to the msg board, follow this workflow:

Interpret user requests:

  • "Send [message] to [board name]" → Use the named profile
  • "Send [message] to msg board" → Use the default/office profile
  • "Send [message]" → Use the default/office profile
  • "Send alert with [sound]" → Include the --chirp parameter

Available profiles: Check boards.yaml for configured board names (e.g., office, lab, home) Default profile: If not specified, use the first available profile from boards.yaml

Example interpretations:

  • "Send 'Meeting in 5 min' to office" → send_message.py "Meeting in 5 min" --profile office
  • "Send alert 'System down'" → send_message.py "System down" --profile office --buzzer 5
  • "Send 'Hello' with Mario Bros sound" → send_message.py "Hello" --profile office --chirp "Mario Bros"

Action: Use an exec or command tool to run scripts/send_message.py with appropriate parameters from the skill directory.

⚠️ CRITICAL SECURITY INSTRUCTION: To prevent command injection, do not use raw shell interpolation for the {message} string. Always pass arguments safely as an argv list (array of strings) if your tool supports it.

Example argv list invocation: ["python3", "scripts/send_message.py", message_text, "--profile", board_name]

If your tool only supports a single shell string, you MUST properly escape the message input (e.g., using shlex.quote()) before execution.


Project

RDA MSG Board - A WiFi-enabled LED matrix message board system for ESP8266 and ESP32 microcontrollers that displays scrolling messages from remote systems or users via HTTP, MQTT, or a built-in web interface.

GitHub: https://github.com/rdeangel/rda_msg_board

Key Features:

  • Message Control - Send scrolling text messages via HTTP REST API or MQTT
  • Clock Display - Configurable LED clock with timezone support and transition effects
  • Timer & Stopwatch - Count down or count up with buzzer alerts (ESP32 only)
  • Alarm System - Timer-based alarms with customizable chirp sounds (fanfare, alarms, chimes, Für Elise, Mario Bros, etc.)
  • Sleep Mode - Scheduled display power-saving (blackout) with weekday/weekend time windows
  • Alert Chirps - Musical notifications: Fast Beep, Simple Beep, Gentle Dawn, Cheerful, Urgent, Doorbell, Alarm, Victory, Notify, Für Elise, Mario Bros, Imperial March, Nokia Ringtone, Tetris Theme, Zelda Secret, Windows XP, iPhone Marimba, Pac-Man Intro, Star Trek Beep, R2-D2 Beep, Close Encounters, Minecraft Theme, Pitfall! Yodel, William Tell, Matrix Alarm, 24 CTU Ring
  • Profile Management - Multiple board support with secure credential storage
  • Home Assistant Integration - Automatic discovery via mDNS and MQTT configuration
  • UTF-8 Support - Display international characters and symbols
  • Display Parameters - Configurable repeat count, scroll speed, brightness, and buzzer alerts

Communication Methods:

  • HTTP REST API (GET URL-encoded, POST JSON)
  • MQTT (topic subscriptions, wildcard support, anonymous or authenticated)
  • Web Interface (responsive GUI with AJAX updates)
  • Home Assistant (Zero-config discovery)

Requirements

Optional (for profile support)

  • PyYAML: pip install pyyaml (enables profile-based configuration)

Environment Variables (fallback)

These are only needed if not using profiles:

VariableDescriptionDefault
MSG_BOARD_IPDevice IP or HostnameRequired
MSG_BOARD_USERWeb Interface Usernameadmin
MSG_BOARD_PASSWeb Interface Passwordmsgboard

Board Profiles

Profiles are stored in boards.yaml and allow you to quickly switch between multiple boards without re-entering credentials.

Setup (First Time)

  1. Copy sample configuration:
cp boards.yaml.sample boards.yaml
  1. Edit with your board details:
nano boards.yaml
# or use: python3 scripts/manage_boards.py add office --ip 192.168.1.88 --user admin --pass msgboard
  1. Verify the profile:
python3 scripts/manage_boards.py list
  1. Send a message using the profile:
python3 scripts/send_message.py "Hello World" --profile main

Managing Profiles

List all configured boards:

python3 scripts/manage_boards.py list

Add a new board:

python3 scripts/manage_boards.py add office --ip 10.0.0.50 --user rda --pass secure123

Remove a board profile:

python3 scripts/manage_boards.py remove office

Update existing profile:

python3 scripts/manage_boards.py add main --ip 192.168.1.101 --force

Usage

Using Profiles (Recommended)

Send a message to a named profile:

python3 scripts/send_message.py "Hello World" --profile main
python3 scripts/send_message.py "Alert: High CPU" --profile office --buzzer 5 --brightness 10

List available profiles:

python3 scripts/send_message.py --list-profiles

Direct Connection (Ad-hoc)

Override profile or use direct connection:

python3 scripts/send_message.py "Hello World" --ip 192.168.1.100 --user admin --pass msgboard
python3 scripts/send_message.py "Test" --profile main --ip 192.168.1.101  # Override IP

Alerts & Notifications

Send a high-priority alert with buzzer sounds and high brightness:

python3 scripts/send_message.py "ALERT: System Failure" --profile main --buzzer 10 --brightness 15 --delay 20

Configuration Options

OptionDescriptionDefault
--profile <name>Board profile name (from boards.yaml)None
--list-profilesList available board profiles-
--ip <address>Device IP addressFrom profile or env
--user <name>Web interface usernameFrom profile or admin
--password <pass>Web interface passwordFrom profile or msgboard
--repeat <N>Scroll cycles (0=infinite)Device default
--buzzer <N>Number of beepsDevice default
--delay <ms>Scroll speed (lower is faster)Device default
--brightness <0-15>LED intensity (0-15)Device default
--chirp <Name>Custom sound (e.g., 'Mario Bros')Device default

Available Chirps

All available options: Silent, Fast Beep, Simple Beep, Gentle Dawn, Cheerful, Urgent, Beep, Quick Tap, Double, Triple, Doorbell, Alarm, Victory, Notify, For Elise, Mario Bros, Imperial March, Nokia Ringtone, Tetris Theme, Zelda Secret, Windows XP, iPhone Marimba, Pac-Man Intro, Star Trek Beep, R2-D2 Beep, Close Encounters, Minecraft Theme, Pitfall! Yodel, William Tell, Matrix Alarm, 24 CTU Ring.

Stop Display

To clear the display immediately:

python3 scripts/send_message.py "" --profile main

Troubleshooting

  • Status 204: The board returns HTTP 204 on success. This is normal.
  • Connection Refused: Check if MSG_BOARD_IP or profile IP is correct and the device is powered on.
  • Profile not found: Use --list-profiles to see available profiles.
  • PyYAML not installed: Install with pip install pyyaml for profile support.
  • Cannot load profiles: Ensure boards.yaml exists (copy from boards.yaml.sample) and has valid YAML syntax.

Comments

Loading comments...