Dave,
The web commands are really easy:
http://192.168.0.176:8888/press/bank/1/9 will select button 1.9 as per the image. In this case it's a MACRO that makes a wipe transition to Input 1 on the ATEM
http://192.168.0.176:8888/press/bank/1/1/6 will select button 1.13 and select a "cut" to color bars in my example image
The actual button function is a configuration in the "Companion" app which is here:
https://bitfocus.io/companion/
The basic config is easy:
Install the software on your desired platform (Linux, Windows, Mac)
There is a web server interface on port 8888 or you can use the host machine
You then add your device or "instances" in otherwords the platform
Under "presets" there are actions that you drag to the appropriate button on the "virtual" Elgato StreamDeck (you don't actually need a Streamdeck, but you can add one). You can customize presets and make your own, but for the ATEM world I use ATEM macros, might be a slideshow or the brief display of a lower third graphic.
Of course you could add an "OBS" if you wanted or a presentation switch, Cisco conference bridge, about 240 integrations. I coudl even add my KNX Smart Home as an instance through Home Assistant (I run GB3JV telemetry repeater via ModBus and I built the dashboard in Home Assistant)
I've also added OBS, You need to install the OBS Websocket plug-in, when you connect Companion to OBS it automatically copies your OBS set-up to Companion, so you have per-configured buttons that you can drag and drop onto the virtual StreamDeck instance.
Here is a video showing it:
https://youtu.be/57OAIE600G0
If you buy a StreamDeck, you get physical buttons with mini TFT screens that you can put your own Icons onto. In my picture the third row is the OBS instance.
So all I need to implement a repeater controller is the ability to send a web command to the REST API
I've tested with Telnet and Web.
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Other alternatives:
TCP/UDP Remote control
Remote triggering can be done by sending TCP (port 51234) or UDP (port 51235) commands.
Commands:
PAGE-SET <page number> <surface id>
Make device go to a specific page
PAGE-UP <surface id>
Page up on a specific device
PAGE-DOWN <surface id>
Page down on a specific surface
BANK-PRESS <page> <bank>
Press and release a button (run both down and up actions)
BANK-DOWN <page> <bank>
Press the button (run down actions)
BANK-UP <page> <bank>
Release the button (run up actions)
Examples
Set the emulator surface to page 23
PAGE-SET 23 emulator
Press page 1 bank 2
BANK-PRESS 1 2
OSC Remote control
Remote triggering can be done by sending OSC commands to port 12321.
Commands:
/press/bank/<page> <bank>
Press and release a button (run both down and up actions)
/press/bank/ <page> <bank> <1>
Press the button (run down actions and hold)
/press/bank/ <page> <bank> <0>
Release the button (run up actions)
/style/bgcolor/ <page> <bank> <red 0-255> <green 0-255> <blue 0-255>
Change background color of button
/style/color/ <page> <bank> <red 0-255> <green 0-255> <blue 0-255>
Change color of text on button
/style/text/ <page> <bank> <text>
Change text on a button
Examples
Press button 5 on page 1 down and hold
/press/bank/1/5 1
Change button background color of button 5 on page 1 to red
/style/bgcolor/1/5 255 0 0
Change the text of button 5 on page 1 to ONLINE
/style/text/1/5 ONLINE
RossTalk
Remote triggering can be done by sending RossTalk commands to port 7788.
Commands:
CC <page>:<button>
Press and release button
Examples
Press and release button 5 on page 2
CC 2:5
Log
Presets
Import / Export
Preset categories for Blackmagic Design:ATEM (atem)