Audio failover: press FOH Backup by itself when Studio B dies; Companion button presses as fixes

A new fix kind "companion_press" presses any Companion button over its HTTP API (page, row, col).
A fix marked "failover" runs by itself within seconds of its check failing: inside the "failover"
windows (Sunday 06:30-13:30), even while ALARMS is muted, once per fault, never back the other way.
The hidden STB AUDIO key (inside AUDIO) watches Studio B's ping every second, Pro Tools over SSH
every 2 s and its Dante device; each check's fix is the FOH Backup press. The keys say ON FOH BACKUP
until STREAM STB on the Restart page switches back. Settings page: the press builder, the failover
tick and undo, the Failover calendar, help entry "A fallback button".

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
2026-10-15 12:40:24 -04:00
co-authored by Claude Fable 5.1
parent 422e92f814
commit 14fce2cf9a
13 changed files with 855 additions and 67 deletions
+104 -1
View File
@@ -809,6 +809,38 @@
"org.waterschurch.digico-relay"
]
}
},
"stream_foh_backup": {
"kind": "companion_press",
"page": 4,
"row": 0,
"col": 5,
"short": "FOH BACKUP",
"label": "press the FOH Backup button in Companion (page 4, row 0, column 5): the stream audio comes from the FOH DiGiCo (DMI-2 63/64) and the X32 takes snippet 8",
"template": "companion_press",
"params": {
"page": 4,
"row": 0,
"col": 5,
"button": "FOH Backup"
},
"failover": true,
"undo": "stream_studio_b"
},
"stream_studio_b": {
"kind": "companion_press",
"page": 4,
"row": 0,
"col": 6,
"short": "STUDIO B",
"label": "press the Studio B button in Companion (page 4, row 0, column 6): the stream audio comes from Studio B (RedNet TNX 63/64) and the X32 takes snippet 1",
"template": "companion_press",
"params": {
"page": 4,
"row": 0,
"col": 6,
"button": "Studio B"
}
}
},
"atem": {
@@ -863,6 +895,19 @@
"spotify_play"
]
},
"failover": {
"windows": [
{
"days": [
"sun"
],
"start": "06:30",
"end": "13:30"
}
],
"after_seconds": 2,
"note_seconds": 900
},
"restart_page": {
"page": 20,
"page_name": "20\\nRestart",
@@ -1004,6 +1049,24 @@
"watch": [
"conn:tascam"
]
},
{
"id": "rs_stream_stb",
"label": "STREAM STB",
"pos": [
3,
2
],
"fix": "stream_studio_b"
},
{
"id": "rs_stream_foh",
"label": "STREAM FOH",
"pos": [
3,
3
],
"fix": "stream_foh_backup"
}
]
},
@@ -1350,7 +1413,8 @@
"members": [
"x32",
"digico",
"dante"
"dante",
"stb_audio"
]
},
{
@@ -1577,6 +1641,45 @@
}
]
},
{
"id": "stb_audio",
"label": "STB AUDIO",
"checks": [
{
"type": "ping",
"host": "10.1.13.175",
"name": "STUDIO B",
"interval_seconds": 1,
"failures": 2,
"debounce_seconds": 1,
"fix": "stream_foh_backup"
},
{
"type": "remote",
"host": "studiob",
"cmd": "pgrep -xq 'Pro Tools'",
"msg": "PRO TOOLS NOT RUNNING",
"interval_seconds": 2,
"debounce_seconds": 1,
"fix": "stream_foh_backup",
"template": "mac_program",
"params": {
"host": "studiob",
"process": "Pro Tools"
}
},
{
"type": "dante",
"conn": "audinate-dantecontroller",
"devices": {
"STUDIO-B-RedNet-TNX": "STB TNX"
},
"fix": {
"STUDIO-B-RedNet-TNX": "stream_foh_backup"
}
}
]
},
{
"id": "dante",
"label": "DANTE",