Rather than having the lights hit a web gateway hosted by OBS, TallyOBS reaches out directly to the tally lights and controls them over HTTP. This does not use the websocket plugin and there is no need to open up any firewall holes to your OBS production box - instead the script pushes out commands directly to your lights.
An OBS script in both Python and Lua is provided that maps preview/program/idle status to AV input sources. You can chose the color and brightness for the status of your input sources, and map each input source to the IP addresses or hostnames of your tally light web interface. If you want to interacet with multiple lights, a comma-separated list of addresses can be provided.
You must have installed the correct version of Python for OBS to properly load Python plugins. Details for setting up OBS, installing the interface, and configuring settings are available at OBS.md.
If you are having trouble identifying your lights by hostname, you can use either the HTML dashboard page or the scripts/find_lights.sh command-line script to search your network for available lights. Either option will provide you with an IPv4 address for each light found which can be used to setup the OBS plugin.
Supported OBS Plugin Runtime
TallyOBS is available in both Lua and Python
form, however the Python version is recommended given its native threading
abilities and HTTP support. Given the lack of HTTP client libraries, the Lua
plugin relies on an OS call to
curl in order to call the remote tally lights.
A web dashboard is provided in scripts/dashboard.html as a single HTML page that you can load directly in a browser - no server needed. Enter in the IPv4 network you would like to search, and the page will quickly crawl the network looking for API endpoints listening on port 7413. If it finds any tally lights, it will display the IPv4 address, current color, and brightness which can be changed directly in the dashboard.
Supported Tally Light Hardware
- Raspberry Pi Zero W (all versions)
- Raspberry Pi (all versions)
- ODT's PixelWing ESP32-S2 RGB Matrix
- Other hardware supported by CircuitPython (testing underway with Adafruit Featherwing hardware)
The Tally Light API
Both TallyCircuitPy and TallyPi share a common standard for controlling their LED arrays. An HTTP interface is provided with each that allows for color control and brightness to be specified remotely. As an example:
Would set the LED array to be purple at 30% brightness. The status of the LEDs are available as: