Skip to content

deckerego/tally_obs

master
Switch branches/tags
Code

TallyOBS

Official OBS Plugin Listing

Demo using the Pimoroni Unicorn pHat

OBS scripts and web dashboards to control either TallyCircuitPy or TallyPi remotely via HTTP.

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.

OBS Script

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.

OBS Plugin Settings

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.

Web Dashboard

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.

Tally Light Dashboard

Supported Tally Light Hardware

TallyOBS can use either TallyCircuitPy or TallyPi hardware. This includes (but isn't limited to):

  • 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)

In general the ESP32-S2 hardware used by TallyCircuitPy, however if you have a drawer full of Raspberry Pi's TallyPi works extrodinarily well.

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:

http://192.168.1.1:7413/set?color=AA22FF&brightness=0.3

Would set the LED array to be purple at 30% brightness. The status of the LEDs are available as:

http://192.168.1.1:7413/status

About

Tally light control for OBS, for use with tally_circuitpy or tally_pi

Resources

License

Stars

Watchers

Forks

Packages

No packages published