2026-10-08 09:00:56 -04:00
{
2026-10-13 16:00:41 -04:00
"site" : {
2026-10-14 14:17:31 -04:00
"id" : "na" ,
"name" : "North Attleboro" ,
"ingest_name" : "NA Ingest" ,
"ingest_hostname" : "na-ingest.local" ,
"ingest_ips" : [
"10.1.1.1" ,
"10.6.3.222"
],
2026-10-13 16:23:59 -04:00
"live_services" : [],
2026-10-14 20:02:47 -04:00
"editing_code" : "7381"
2026-10-13 16:00:41 -04:00
},
2026-10-14 14:17:31 -04:00
"companion" : {
"host" : "127.0.0.1" ,
"port" : 8000
},
2026-10-08 09:00:56 -04:00
"page" : 19 ,
"page_name" : "19\\nStatus" ,
2026-10-14 14:17:31 -04:00
"nav_keys" : [
"pagenum"
],
2026-10-08 09:52:21 -04:00
"nav_hold_ms" : 1000 ,
2026-10-08 09:58:59 -04:00
"nav_tap_page" : 1 ,
2026-10-14 14:17:31 -04:00
"variables" : {
"state" : "sp_state" ,
"heartbeat" : "sp_hb" ,
"command" : "sp_cmd"
},
2026-10-08 09:00:56 -04:00
"service_windows" : [
2026-10-14 14:17:31 -04:00
{
"days" : [
"mon" ,
"tue" ,
"wed" ,
"thu" ,
"fri" ,
"sat" ,
"sun"
],
"start" : "00:00" ,
"end" : "23:59"
}
2026-10-08 09:00:56 -04:00
],
"debounce_seconds" : 3 ,
2026-10-14 14:17:31 -04:00
"flap" : {
"count" : 3 ,
"window_seconds" : 600
},
2026-10-08 09:00:56 -04:00
"network" : {
"interface" : "en0" ,
"gateway" : "10.1.0.1" ,
"burst_connections" : 4 ,
"burst_groups" : 3 ,
"burst_window_seconds" : 10 ,
2026-10-08 18:38:19 -04:00
"remember_seconds" : 300
2026-10-08 09:00:56 -04:00
},
"alert_webhook" : "" ,
2026-10-14 14:17:31 -04:00
"timing" : {
"fix_cooldown_seconds" : 60 ,
"alert_after_seconds" : 30
},
2026-10-13 16:00:41 -04:00
"page_hold_ms" : 2000 ,
2026-10-14 14:17:31 -04:00
"spotify" : {
"playlist" : "spotify:playlist:2uTpJVYQLFnKF1WnSOuco8" ,
"name" : "Christian EDM 2026" ,
"open_wait" : 8 ,
"play_wait" : 3
},
2026-10-08 11:34:44 -04:00
"ssh_key" : "~/.ssh/id_status_panel" ,
2026-10-14 14:17:31 -04:00
"dante_switches" : [
"10.66.1.100" ,
"10.66.1.102"
],
2026-10-08 11:34:44 -04:00
"hosts" : {
2026-10-13 16:23:59 -04:00
"ingest" : {
"self" : true ,
"name" : "NA Ingest" ,
"os" : "mac" ,
"role" : "the watchdog, Companion, the settings page, lobby captions, transcription" ,
"runs" : [
{
"kind" : "launchagent" ,
"label" : "org.waterschurch.status-panel" ,
"name" : "the watchdog"
},
{
"kind" : "launchagent" ,
"label" : "org.waterschurch.status-settings" ,
"name" : "the settings page"
},
{
"kind" : "app" ,
"process" : "Companion" ,
"name" : "Companion 5.0.7" ,
"http" : "http://127.0.0.1:8000/api/connections"
},
{
"kind" : "app" ,
"process" : "Companion Satellite" ,
"name" : "Companion Satellite" ,
"watched" : false
},
{
"kind" : "launchagent" ,
"label" : "org.waterschurch.resi-propresenter" ,
"name" : "the Resi bridge"
},
{
"kind" : "launchagent" ,
"label" : "org.waterschurch.lobby-captions" ,
"name" : "lobby captions"
},
{
"kind" : "launchagent" ,
"label" : "org.waterschurch.lobby-captions-display" ,
"name" : "the caption screen"
},
{
"kind" : "app" ,
"process" : "ProdCom" ,
"name" : "ProdCom (transcription)" ,
"http" : "http://127.0.0.1:24480/api/v1/ping"
},
{
"kind" : "app" ,
"process" : "ProdDash" ,
"name" : "ProdDash" ,
"http" : "http://127.0.0.1:24500/"
},
{
"kind" : "app" ,
"process" : "Spotify" ,
"name" : "Spotify"
},
{
"kind" : "app" ,
"process" : "ATEM Software Control" ,
"name" : "ATEM Software Control"
},
{
"kind" : "daemon" ,
"process" : "DanteVirtualSoundcard" ,
"name" : "Dante Virtual Soundcard" ,
"dante_name" : "STUDIO-A-Ingest"
},
{
"kind" : "helper_dvs" ,
"name" : "the DVS helper"
},
{
"kind" : "folder" ,
"path" : "~/Library/CloudStorage/GoogleDrive-media@waterschurch.org/Shared drives/Waters Creative/Production Team/Backup/NA/ATEM" ,
"name" : "Google Drive (the saved switcher files)"
},
{
"kind" : "launchagent" ,
"label" : "org.waterschurch.checklist-build-runner" ,
"name" : "Gitea runner (not the panel)" ,
"watched" : false
},
{
"kind" : "launchagent" ,
"label" : "org.waterschurch.checklist-drive-backup" ,
"name" : "checklist backup (not the panel)" ,
"watched" : false
},
{
"kind" : "launchagent" ,
"label" : "org.waterschurch.checklist-weekly-health" ,
"name" : "checklist health (not the panel)" ,
"watched" : false
},
{
"kind" : "disabled" ,
"label" : "org.waterschurch.translate" ,
"name" : "Church Translate (must NOT run here)"
}
],
"networks" : [
{
"iface" : "en0" ,
"use" : "LAN"
},
{
"iface" : "en1" ,
"use" : "LAN"
},
{
"iface" : "en17" ,
"use" : "Dante"
},
{
"iface" : "en20" ,
"use" : "Netgear management"
}
]
},
"prop" : {
"ssh" : "napropresenter@10.1.14.225" ,
"name" : "ProPresenter Mac" ,
"os" : "mac" ,
"role" : "ProPresenter, its stage and Prop TV pages, Dante sound card" ,
"runs" : [
{
"kind" : "sshd"
},
{
"kind" : "app" ,
"process" : "ProPresenter" ,
"name" : "ProPresenter (newest installed)" ,
"http" : "http://10.1.14.225:1025/"
},
{
"kind" : "daemon" ,
"process" : "DanteVirtualSoundcard" ,
"name" : "Dante Virtual Soundcard" ,
"dante_name" : "NA-ProPresenter-Mac"
},
{
"kind" : "helper_dvs" ,
"name" : "the DVS helper"
},
{
"kind" : "midi_session" ,
"name" : "NA ProP"
}
]
},
"tracks" : {
"ssh" : "waterschurchmedia@10.1.3.227" ,
"name" : "Tracks Mac" ,
"os" : "mac" ,
"role" : "Ableton (tracks and FX lighting cues), Dante sound card" ,
"runs" : [
{
"kind" : "sshd"
},
{
"kind" : "app" ,
"process" : "Live" ,
"name" : "Ableton Live 11 Suite"
},
{
"kind" : "daemon" ,
"process" : "DanteVirtualSoundcard" ,
"name" : "Dante Virtual Soundcard" ,
"dante_name" : "NA-Tracks"
},
{
"kind" : "helper_dvs" ,
"name" : "the DVS helper"
},
{
"kind" : "midi_session" ,
"name" : "NA Tracks"
}
]
},
"translation" : {
"ssh" : "studio@10.1.7.39" ,
"name" : "NA Translation" ,
"os" : "mac" ,
"role" : "Church Translate, Dante sound card" ,
"runs" : [
{
"kind" : "sshd"
},
{
"kind" : "app" ,
"process" : "Church Translate" ,
"name" : "Church Translate"
},
{
"kind" : "launchagent" ,
"label" : "org.waterschurch.translate.engine" ,
"name" : "the translation engine" ,
"watched" : false
},
{
"kind" : "daemon" ,
"process" : "DanteVirtualSoundcard" ,
"name" : "Dante Virtual Soundcard" ,
"dante_name" : "NA-Translation"
},
{
"kind" : "helper_dvs" ,
"name" : "the DVS helper"
}
]
},
"studiob" : {
"ssh" : "studiob@10.1.13.175" ,
"name" : "Studio B Mac Studio" ,
"os" : "mac" ,
"role" : "Pro Tools" ,
"runs" : [
{
"kind" : "sshd"
},
{
"kind" : "app" ,
"process" : "Pro Tools" ,
"name" : "Pro Tools"
},
{
"kind" : "helper_solo" ,
"label" : "org.waterschurch.status-panel.solo-mode" ,
"name" : "the Pro Tools solo-mode helper"
},
{
"kind" : "midi_session" ,
"name" : "Studio B Mac Studio" ,
"peer_of" : "NA Tracks"
}
]
},
"lighting" : {
"ssh" : "media@10.1.10.206" ,
"name" : "Lighting PC" ,
"os" : "windows" ,
"role" : "Vista, Resolume Arena, rtpMIDI" ,
"pingable" : false ,
"notes" : "Keep the network profile on Public: rtpMIDI's Bonjour rules only allow Public." ,
"runs" : [
{
"kind" : "sshd"
},
{
"kind" : "task" ,
"name" : "Start Vista" ,
"exe" : "Vista.exe"
},
{
"kind" : "task" ,
"name" : "Start Arena" ,
"exe" : "Arena.exe"
},
{
"kind" : "task" ,
"name" : "Start rtpMIDI" ,
"exe" : "rtpMIDI.exe"
},
{
"kind" : "service" ,
"name" : "rtpMIDIService"
},
2026-10-14 12:18:36 -04:00
{
"kind" : "midi_session" ,
"name" : "Lighting PC" ,
"peer_of" : "NA Ingest"
},
2026-10-13 16:23:59 -04:00
{
"kind" : "artnet" ,
"name" : "Vista Art-Net" ,
"source" : "10.1.10.206"
}
],
"manual_done" : {
"public_profile" : {
"by" : "Chris" ,
"on" : "2026-10-08"
},
"vista_autoload" : {
"by" : "Chris" ,
"on" : "2026-10-08"
}
}
},
"livestream" : {
"ssh" : "media@10.1.9.126" ,
"os" : "windows" ,
"mac" : "6c:24:08:d7:fb:57" ,
"wake_broadcast" : "10.1.255.255" ,
"name" : "LiveStream PC" ,
"role" : "OBS (YouTube)" ,
"runs" : [
{
"kind" : "sshd"
},
{
"kind" : "task" ,
"name" : "Start OBS" ,
"exe" : "obs64.exe" ,
2026-10-14 20:02:47 -04:00
"elevated" : true ,
"args" : "--disable-shutdown-check"
2026-10-13 16:23:59 -04:00
}
],
"manual_done" : {
"bios_wol" : {
"by" : "Chris" ,
"on" : "2026-10-08"
}
}
},
"bibletv" : {
"ssh" : "media@10.6.7.13" ,
"os" : "windows" ,
"name" : "Bible TV PC" ,
"role" : "the Bible app on the sanctuary TV" ,
"pingable" : false ,
"notes" : "Wi-Fi only; Ethernet recommended. Wi-Fi power saving is off." ,
"runs" : [
{
"kind" : "sshd"
},
{
"kind" : "task" ,
"name" : "Start BibleApp" ,
"exe" : "Bible App.exe" ,
"at_logon" : true
},
{
"kind" : "web" ,
"url" : "http://10.6.7.13:8080/" ,
"name" : "the Bible app's web page"
}
],
"manual_done" : {
"wifi_power" : {
"by" : "Chris" ,
"on" : "2026-10-11"
}
}
}
2026-10-08 11:34:44 -04:00
},
2026-10-13 16:23:59 -04:00
"gear" : {},
2026-10-08 11:34:44 -04:00
"fixes" : {
2026-10-14 14:17:31 -04:00
"propresenter" : {
"host" : "prop" ,
"short" : "PROPRES" ,
"label" : "restart ProPresenter (newest installed)" ,
"run" : "APP=$(ls -d /Applications/ProPresenter*.app | sort -V | tail -1); pkill -TERM -x ProPresenter; i=0; while pgrep -xq ProPresenter && [ $i -lt 20 ]; do sleep 0.5; i=$((i+1)); done; pgrep -xq ProPresenter && pkill -KILL -x ProPresenter; sleep 1; open \"$APP\"" ,
"template" : "mac_restart" ,
"params" : {
"host" : "prop" ,
"process" : "ProPresenter" ,
"app" : "$APP" ,
"newest_of" : "/Applications/ProPresenter*.app" ,
"wait_seconds" : 10 ,
"force" : true
},
"kind" : "ssh"
},
"ableton" : {
"host" : "tracks" ,
"short" : "ABLETON" ,
"label" : "start Ableton if it is not running, with the set it last had open" ,
"run" : "pgrep -xq Live || { L=$(ls -td ~/Library/Preferences/Ableton/Live*/ | head -1); S=$(grep -a 'info: Loading document \"' \"${L}Log.txt\" | grep -v '/Templates/' | tail -1 | sed -E 's/^.*Loading document \"(.*)\"[^\"]*$/\\1/'); if [ -n \"$S\" ] && [ -f \"$S\" ]; then open -a 'Ableton Live 11 Suite' \"$S\"; else open -a 'Ableton Live 11 Suite'; fi; }" ,
"template" : "ableton" ,
"params" : {
"host" : "tracks" ,
"app" : "Ableton Live 11 Suite" ,
"restart" : false
},
"kind" : "ssh"
},
"translate" : {
"host" : "translation" ,
"short" : "TRANSLATE" ,
"label" : "start Church Translate if it is not running" ,
"run" : "pgrep -xq 'Church Translate' || open -a 'Church Translate'" ,
"template" : "mac_start" ,
"params" : {
"host" : "translation" ,
"process" : "Church Translate" ,
"app" : "Church Translate"
},
"kind" : "ssh"
},
"dvs_prop" : {
"host" : "prop" ,
"short" : "DVS" ,
"label" : "restart Dante Virtual Soundcard on the ProPresenter Mac (its engine restarts; audio to and from that Mac drops for 5-10 s)" ,
"run" : "sudo -n /usr/local/sbin/status-panel-dvs-start && open -g -a 'Dante Virtual Soundcard'" ,
"template" : "dvs" ,
"params" : {
"host" : "prop"
},
"kind" : "ssh"
},
"dvs_tracks" : {
"host" : "tracks" ,
"short" : "DVS" ,
"label" : "restart Dante Virtual Soundcard on the Tracks Mac (its engine restarts; audio to and from that Mac drops for 5-10 s)" ,
"run" : "sudo -n /usr/local/sbin/status-panel-dvs-start && open -g -a 'Dante Virtual Soundcard'" ,
"template" : "dvs" ,
"params" : {
"host" : "tracks"
},
"kind" : "ssh"
},
"dvs_translation" : {
"host" : "translation" ,
"short" : "DVS" ,
"label" : "restart Dante Virtual Soundcard on NA Translation (its engine restarts; audio to and from that Mac drops for 5-10 s)" ,
"run" : "sudo -n /usr/local/sbin/status-panel-dvs-start && open -g -a 'Dante Virtual Soundcard'" ,
"template" : "dvs" ,
"params" : {
"host" : "translation"
},
"kind" : "ssh"
},
"dvs_ingest" : {
"kind" : "local" ,
"short" : "DVS" ,
"label" : "restart Dante Virtual Soundcard on NA Ingest, then ProdCom (it keeps a dead DVS input otherwise)" ,
"run" : "sudo -n /usr/local/sbin/status-panel-dvs-start && open -g -a 'Dante Virtual Soundcard' || exit 1; sleep 5; pkill -TERM -x ProdCom; i=0; while pgrep -xq ProdCom && [ $i -lt 20 ]; do sleep 0.5; i=$((i+1)); done; pgrep -xq ProdCom && pkill -KILL -x ProdCom; sleep 1; open -g /Applications/ProdCom.app" ,
"template" : "dvs" ,
"params" : {
"host" : "ingest" ,
"then_process" : "ProdCom" ,
"then_app" : "/Applications/ProdCom.app"
}
},
"bridge" : {
"kind" : "local" ,
"short" : "BRIDGE" ,
"label" : "restart the Resi bridge" ,
"run" : "launchctl kickstart -k gui/$(id -u)/org.waterschurch.resi-propresenter || launchctl bootstrap gui/$(id -u) ~/Library/LaunchAgents/org.waterschurch.resi-propresenter.plist" ,
"template" : "helpers" ,
"params" : {
"labels" : [
"org.waterschurch.resi-propresenter"
]
}
},
"captions" : {
"kind" : "local" ,
"short" : "CAPTIONS" ,
"label" : "restart lobby captions (server and display)" ,
"run" : "s=0; { launchctl kickstart -k gui/$(id -u)/org.waterschurch.lobby-captions || launchctl bootstrap gui/$(id -u) ~/Library/LaunchAgents/org.waterschurch.lobby-captions.plist; } || s=1; { launchctl kickstart -k gui/$(id -u)/org.waterschurch.lobby-captions-display || launchctl bootstrap gui/$(id -u) ~/Library/LaunchAgents/org.waterschurch.lobby-captions-display.plist; } || s=1; exit $s" ,
"template" : "helpers" ,
"params" : {
"labels" : [
"org.waterschurch.lobby-captions" ,
"org.waterschurch.lobby-captions-display"
]
}
},
"bibleapp" : {
"host" : "bibletv" ,
"short" : "BIBLE APP" ,
"label" : "restart the Bible app on the Sanctuary TV PC (Windows: cmd.exe)" ,
"run" : "taskkill /F /T /IM \"Bible App.exe\" >nul 2>&1 & ping -n 3 127.0.0.1 >nul & schtasks /Run /TN \"\\StatusPanel\\Start BibleApp\" >nul && ping -n 9 127.0.0.1 >nul && tasklist /NH /FI \"IMAGENAME eq Bible App.exe\" | find /I \"Bible App.exe\" >nul" ,
"template" : "win_restart" ,
"params" : {
"host" : "bibletv" ,
"task" : "Start BibleApp" ,
"exe" : "Bible App.exe"
},
"kind" : "ssh"
},
"obs" : {
"host" : "livestream" ,
"short" : "OBS" ,
"label" : "start OBS on the LiveStream PC if it is not running (wakes the PC if it is off), then reconnect Companion" ,
"reconnect" : true ,
"run" : "tasklist /NH /FI \"IMAGENAME eq obs64.exe\" | find /I \"obs64.exe\" >nul || (schtasks /Run /TN \"\\StatusPanel\\Start OBS\" >nul && ping -n 9 127.0.0.1 >nul && tasklist /NH /FI \"IMAGENAME eq obs64.exe\" | find /I \"obs64.exe\" >nul)" ,
"template" : "win_start" ,
"params" : {
"host" : "livestream" ,
"task" : "Start OBS" ,
"exe" : "obs64.exe"
},
"kind" : "ssh"
},
"arena" : {
"host" : "lighting" ,
"short" : "ARENA" ,
"label" : "start Resolume Arena on the Lighting PC if it is not running, then reconnect Companion" ,
"reconnect" : true ,
"run" : "tasklist /NH /FI \"IMAGENAME eq Arena.exe\" | find /I \"Arena.exe\" >nul || (schtasks /Run /TN \"\\StatusPanel\\Start Arena\" >nul && ping -n 9 127.0.0.1 >nul && tasklist /NH /FI \"IMAGENAME eq Arena.exe\" | find /I \"Arena.exe\" >nul)" ,
"template" : "win_start" ,
"params" : {
"host" : "lighting" ,
"task" : "Start Arena" ,
"exe" : "Arena.exe"
},
"kind" : "ssh"
},
"vista" : {
"host" : "lighting" ,
"short" : "VISTA" ,
"label" : "start Vista on the Lighting PC if it is not running (a running Vista is never closed)" ,
"run" : "tasklist /NH /FI \"IMAGENAME eq Vista.exe\" | find /I \"Vista.exe\" >nul || (schtasks /Run /TN \"\\StatusPanel\\Start Vista\" >nul && ping -n 9 127.0.0.1 >nul && tasklist /NH /FI \"IMAGENAME eq Vista.exe\" | find /I \"Vista.exe\" >nul)" ,
"template" : "win_start" ,
"params" : {
"host" : "lighting" ,
"task" : "Start Vista" ,
"exe" : "Vista.exe"
},
"kind" : "ssh"
},
"rtpmidi_start" : {
"host" : "lighting" ,
"short" : "RTPMIDI" ,
"label" : "start rtpMIDI on the Lighting PC if it is not running (service, then tray app). A running rtpMIDI is never restarted: that drops every session." ,
"run" : "(sc query rtpMIDIService | find \"RUNNING\" >nul || net start rtpMIDIService) && (tasklist /NH /FI \"IMAGENAME eq rtpMIDI.exe\" | find /I \"rtpMIDI.exe\" >nul || schtasks /Run /TN \"\\StatusPanel\\Start rtpMIDI\")" ,
"template" : "win_service" ,
"params" : {
"host" : "lighting" ,
"service" : "rtpMIDIService" ,
"task" : "Start rtpMIDI" ,
"exe" : "rtpMIDI.exe"
},
"kind" : "ssh"
},
"midi_reconnect" : {
"kind" : "midi_connect" ,
"short" : "RECONNECT" ,
"label" : "reconnect the peer to the network MIDI session it dropped out of (like Connect in Audio MIDI Setup); the address is where it was last seen, else the check's \"address\"" ,
"template" : "midi_connect" ,
"params" : {}
},
"caption_screen" : {
"kind" : "local" ,
"short" : "CAPTION SCREEN" ,
"label" : "restart the lobby caption screen (display app only)" ,
"run" : "launchctl kickstart -k gui/$(id -u)/org.waterschurch.lobby-captions-display || launchctl bootstrap gui/$(id -u) ~/Library/LaunchAgents/org.waterschurch.lobby-captions-display.plist" ,
"template" : "helpers" ,
"params" : {
"labels" : [
"org.waterschurch.lobby-captions-display"
]
}
},
"solo_afl" : {
"host" : "studiob" ,
"short" : "PT SOLO" ,
"label" : "set Pro Tools on the Studio B Mac Studio back to Solo Mode AFL + Latch (clicks Options > Solo Mode)" ,
"run" : "touch \"$HOME/Library/Application Support/status-panel/solo-mode.fix\"; sleep 3; ! grep -q '\"bad\":true' \"$HOME/Library/Application Support/status-panel/solo-mode.json\"" ,
"template" : "solo_afl" ,
"params" : {
"host" : "studiob"
},
"kind" : "ssh"
},
"atem_audio" : {
"kind" : "atem" ,
"part" : "audio" ,
"short" : "ATEM AUDIO" ,
"label" : "set the switcher's audio inputs back to the restore file (Resi on input 16 on, the rest as saved)" ,
"template" : "atem" ,
"params" : {}
},
"atem_camera" : {
"kind" : "atem" ,
"part" : "camera" ,
"short" : "ATEM CAMERA" ,
"label" : "set the cameras' settings back to the restore file (only what differs)" ,
"template" : "atem" ,
"params" : {}
},
"atem_midi" : {
"kind" : "local" ,
"short" : "ATEM MIDI" ,
"restart_ok" : true ,
"label" : "turn off MIDI control in ATEM Software Control (quits and reopens the app; the switcher is not affected)" ,
"run" : "was=$(pgrep -f \"ATEM Software Control.app/Contents/MacOS\"); pkill -TERM -f \"ATEM Software Control.app/Contents/MacOS\"; i=0; while pgrep -fq \"ATEM Software Control.app/Contents/MacOS\" && [ $i -lt 20 ]; do sleep 0.5; i=$((i+1)); done; defaults write \"com.blackmagic-design.ATEM Software Control\" midiEnabled -bool false; [ -z \"$was\" ] || open -g -a \"ATEM Software Control\"; [ \"$(defaults read \"com.blackmagic-design.ATEM Software Control\" midiEnabled)\" = 0 ]" ,
"template" : "atem_midi_off" ,
"params" : {}
},
"spotify_play" : {
"kind" : "spotify" ,
"short" : "SPOTIFY" ,
"label" : "play the Christian EDM 2026 playlist in Spotify on NA Ingest (opens Spotify if it is closed)" ,
"template" : "spotify" ,
"params" : {}
},
"proddash" : {
"kind" : "local" ,
"short" : "PRODDASH" ,
"label" : "restart ProdDash (its launcher stops its server cleanly)" ,
"run" : "pkill -TERM -x ProdDash; i=0; while pgrep -xq ProdDash && [ $i -lt 20 ]; do sleep 0.5; i=$((i+1)); done; open -g /Applications/ProdDash.app" ,
"template" : "mac_restart" ,
"params" : {
"host" : "ingest" ,
"process" : "ProdDash" ,
"app" : "/Applications/ProdDash.app" ,
"wait_seconds" : 10 ,
"force" : false ,
"background" : true
}
},
"prodcom" : {
"kind" : "local" ,
"short" : "PRODCOM" ,
"label" : "restart ProdCom (transcription; lobby captions blank for 5-15 s)" ,
"run" : "pkill -TERM -x ProdCom; i=0; while pgrep -xq ProdCom && [ $i -lt 20 ]; do sleep 0.5; i=$((i+1)); done; pgrep -xq ProdCom && pkill -KILL -x ProdCom; sleep 1; open -g /Applications/ProdCom.app" ,
"template" : "mac_restart" ,
"params" : {
"host" : "ingest" ,
"process" : "ProdCom" ,
"app" : "/Applications/ProdCom.app" ,
"wait_seconds" : 10 ,
"force" : true ,
"background" : true
}
},
"ableton_restart" : {
"host" : "tracks" ,
"short" : "ABLETON" ,
"label" : "restart Ableton on the Tracks Mac and reopen the set it had open (unsaved changes are lost; Live may ask to recover on the Tracks Mac)" ,
"conn" : "ableton" ,
"reconnect" : true ,
"timeout" : 60 ,
"run" : "L=$(ls -td ~/Library/Preferences/Ableton/Live*/ | head -1); S=$(grep -a 'info: Loading document \"' \"${L}Log.txt\" | grep -v '/Templates/' | tail -1 | sed -E 's/^.*Loading document \"(.*)\"[^\"]*$/\\1/'); pkill -TERM -x Live; i=0; while pgrep -xq Live && [ $i -lt 30 ]; do sleep 0.5; i=$((i+1)); done; pgrep -xq Live && pkill -KILL -x Live; sleep 1; if [ -n \"$S\" ] && [ -f \"$S\" ]; then open -a 'Ableton Live 11 Suite' \"$S\"; else open -a 'Ableton Live 11 Suite'; fi" ,
"template" : "ableton" ,
"params" : {
"host" : "tracks" ,
"app" : "Ableton Live 11 Suite" ,
"restart" : true ,
"wait_seconds" : 15
},
"kind" : "ssh"
},
"translate_restart" : {
"host" : "translation" ,
"short" : "TRANSLATE" ,
"label" : "restart Church Translate on NA Translation (and its translation server)" ,
"timeout" : 60 ,
"run" : "pg=$(ps -o pgid= -p \"$(pgrep -x 'Church Translate' | head -1)\" 2>/dev/null | tr -d ' '); pkill -TERM -x 'Church Translate'; i=0; while pgrep -xq 'Church Translate' && [ $i -lt 30 ]; do sleep 0.5; i=$((i+1)); done; pgrep -xq 'Church Translate' && pkill -KILL -x 'Church Translate'; [ -n \"$pg\" ] && [ \"$pg\" != \"$(ps -o pgid= -p $$ | tr -d ' ')\" ] && kill -KILL -- -\"$pg\" 2>/dev/null; sleep 1; open -a 'Church Translate'" ,
"template" : "mac_restart" ,
"params" : {
"host" : "translation" ,
"process" : "Church Translate" ,
"app" : "Church Translate" ,
"wait_seconds" : 15 ,
"force" : true ,
"stop_children" : true
},
"kind" : "ssh"
},
"tascam_reconnect" : {
"kind" : "reconnect" ,
"conn" : "tascam" ,
"short" : "TASCAM" ,
"verify_seconds" : 20 ,
"hung_note" : "HUNG - POWER\nCYCLE IT" ,
"label" : "reconnect Companion to the Tascam; if it still does not answer but pings, its control port has hung: power-cycle it at the rack" ,
"template" : "reconnect" ,
"params" : {}
},
"hyperdeck" : {
"kind" : "hyperdeck" ,
"short" : "HYPERDECK" ,
"verify_seconds" : 15 ,
"hung_note" : "STILL OFFLINE\nHOLD AGAIN" ,
"label" : "turn Companion's connection to that HyperDeck off and on (what gets a restarted deck green); never reboots the deck" ,
"template" : "hyperdeck" ,
"params" : {}
2026-10-14 20:02:47 -04:00
},
2026-10-14 20:28:43 -04:00
"ready_recheck" : {
"kind" : "ready" ,
"action" : "recheck" ,
"short" : "CHECK" ,
"label" : "look at this weekend's checklist again now"
},
"ready_lineup" : {
"kind" : "ready" ,
"action" : "lineup_sync" ,
"short" : "LINEUP" ,
"label" : "re-sync the Band Lineup board from Planning Center"
},
"ready_led_cross" : {
"kind" : "ready" ,
"action" : "led_cross" ,
"short" : "CROSS" ,
"label" : "put Resolume back on the Service deck and play the cross background again"
},
"ready_copy_tracks" : {
"kind" : "ready" ,
"action" : "copy_tracks" ,
"short" : "COPY" ,
"never_auto" : true ,
"label" : "copy this weekend's Ableton project to the locations that do not have it yet"
},
"ready_ltc" : {
"kind" : "ready" ,
"action" : "ltc_to_pco" ,
"short" : "LTC" ,
"label" : "write each song's timecode from the tracks into its LTC note in Planning Center"
},
2026-10-14 20:02:47 -04:00
"tascam_power" : {
"kind" : "local" ,
"template" : "outlet_cycle" ,
"short" : "TASCAM PWR" ,
"timeout" : 300 ,
"reconnect" : true ,
"conn" : "tascam" ,
"label" : "power-cycle the Tascam through its smart plug when its control port does not answer (off 45 s, on, wait for it to come back), then reconnect Companion; its Dante card only comes back from the unit's own power button; never while a HyperDeck is recording" ,
"run" : "/usr/bin/python3 \"$HOME/Library/Application Support/status-panel/settings/outlet.py\" cycle tascam --ping 10.1.11.74 --dante STUDIO-B-Tascam --wait 45" ,
"params" : {
"outlet" : "tascam" ,
"address" : "10.1.11.74" ,
"wait_seconds" : 45 ,
"dante" : "STUDIO-B-Tascam"
}
2026-10-15 11:33:40 -04:00
},
"digico_relay" : {
"kind" : "local" ,
"short" : "DIGICO" ,
"label" : "restart the DiGiCo relay (Companion and the tablets to the FOH console)" ,
"run" : "launchctl kickstart -k gui/$(id -u)/org.waterschurch.digico-relay || launchctl bootstrap gui/$(id -u) ~/Library/LaunchAgents/org.waterschurch.digico-relay.plist" ,
"template" : "helpers" ,
"params" : {
"labels" : [
"org.waterschurch.digico-relay"
]
}
2026-10-15 12:40:24 -04:00
},
"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"
}
2026-10-14 14:17:31 -04:00
}
2026-10-08 11:34:44 -04:00
},
2026-10-11 10:54:59 -04:00
"atem" : {
"host" : "10.1.10.2" ,
"node" : "/Applications/Companion [0-9]*.app/Contents/Resources/node-runtimes/node22/bin/node" ,
"library" : "~/Library/Application Support/companion/modules/bmd-atem-*/node_modules/atem-connection" ,
2026-10-14 20:02:47 -04:00
"reference" : "atem-reference.xml" ,
"source_folder" : "~/Library/CloudStorage/GoogleDrive-media@waterschurch.org/Shared drives/Waters Creative/Production Team/Backup/NA/ATEM"
2026-10-11 10:54:59 -04:00
},
2026-10-11 07:05:05 -04:00
"auto_fix" : {
2026-10-14 14:17:31 -04:00
"windows" : [
2026-10-14 20:02:47 -04:00
{
"days" : [
"wed"
],
"end" : "21:00" ,
"start" : "16:00"
},
2026-10-14 14:17:31 -04:00
{
"days" : [
"sun"
],
2026-10-14 20:02:47 -04:00
"end" : "13:30" ,
"start" : "06:30"
2026-10-14 14:17:31 -04:00
}
],
"after_seconds" : 20 ,
"max_tries" : 2 ,
"retry_seconds" : 90 ,
"pause_after_network_seconds" : 60 ,
2026-10-11 07:05:05 -04:00
"restart_connections" : true ,
2026-10-14 14:17:31 -04:00
"fixes" : [
"hyperdeck" ,
"tascam_reconnect" ,
"midi_reconnect" ,
"rtpmidi_start" ,
"vista" ,
"arena" ,
"obs" ,
"ableton" ,
"translate" ,
"dvs_prop" ,
"dvs_tracks" ,
"dvs_translation" ,
"solo_afl" ,
"atem_audio" ,
"atem_camera" ,
"atem_midi" ,
"spotify_play"
2026-10-14 20:28:43 -04:00
],
"while_muted" : [
"spotify_play"
2026-10-14 14:17:31 -04:00
]
2026-10-11 07:05:05 -04:00
},
2026-10-15 12:40:24 -04:00
"failover" : {
"windows" : [
{
"days" : [
"sun"
],
"start" : "06:30" ,
"end" : "13:30"
}
],
"after_seconds" : 2 ,
"note_seconds" : 900
},
2026-10-08 18:08:29 -04:00
"restart_page" : {
2026-10-14 14:17:31 -04:00
"page" : 20 ,
"page_name" : "20\\nRestart" ,
"jump_pos" : [
2 ,
6
],
"back_pos" : [
2 ,
6
],
2026-10-08 18:08:29 -04:00
"keys" : [
2026-10-14 14:17:31 -04:00
{
"id" : "rs_dvs_prop" ,
"label" : "DVS PROP" ,
"pos" : [
0 ,
1
],
"fix" : "dvs_prop"
},
{
"id" : "rs_dvs_tracks" ,
"label" : "DVS TRACKS" ,
"pos" : [
0 ,
2
],
"fix" : "dvs_tracks"
},
{
"id" : "rs_dvs_transl" ,
"label" : "DVS TRANSL" ,
"pos" : [
0 ,
3
],
"fix" : "dvs_translation"
},
{
"id" : "rs_dvs_ingest" ,
"label" : "DVS INGEST" ,
"pos" : [
0 ,
4
],
"fix" : "dvs_ingest"
},
{
"id" : "rs_propres" ,
"label" : "PROPRESENTER" ,
"pos" : [
1 ,
1
],
"fix" : "propresenter"
},
{
"id" : "rs_ableton" ,
"label" : "ABLETON" ,
"pos" : [
1 ,
2
],
"fix" : "ableton_restart" ,
"watch" : [
"ableton" ,
"conn:ableton"
]
},
{
"id" : "rs_translate" ,
"label" : "TRANSLATE" ,
"pos" : [
1 ,
3
],
"fix" : "translate_restart" ,
"watch" : [
"translate"
]
},
{
"id" : "rs_spotify" ,
"label" : "SPOTIFY" ,
"pos" : [
1 ,
4
],
"fix" : "spotify_play"
},
{
"id" : "rs_prodcom" ,
"label" : "PRODCOM" ,
"pos" : [
2 ,
1
],
"fix" : "prodcom"
},
{
"id" : "rs_proddash" ,
"label" : "PRODDASH" ,
"pos" : [
2 ,
2
],
"fix" : "proddash"
},
{
"id" : "rs_captions" ,
"label" : "CAPTIONS" ,
"pos" : [
2 ,
3
],
"fix" : "captions" ,
"watch" : [
"caption_screen"
]
},
{
"id" : "rs_bridge" ,
"label" : "BRIDGE" ,
"pos" : [
2 ,
4
],
"fix" : "bridge"
},
{
"id" : "rs_tascam" ,
"label" : "TASCAM" ,
"pos" : [
3 ,
1
],
"fix" : "tascam_reconnect" ,
"watch" : [
"conn:tascam"
]
2026-10-15 12:40:24 -04:00
},
{
"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"
2026-10-14 14:17:31 -04:00
}
2026-10-08 18:08:29 -04:00
]
},
2026-10-14 20:28:43 -04:00
"ready_page" : {
"page" : 24 ,
"page_name" : "24\\nReady" ,
"back_pos" : [
3 ,
0
],
"keys" : [
{
"id" : "rd_tracks" ,
"label" : "TRACKS" ,
"pos" : [
0 ,
1
],
"checks" : [
{
"type" : "ready" ,
"item" : "tracks" ,
"fix" : "ready_recheck"
}
]
},
{
"id" : "rd_foh" ,
"label" : "FOH MIX" ,
"pos" : [
0 ,
2
],
"checks" : [
{
"type" : "ready" ,
"item" : "mix_foh" ,
"fix" : "ready_recheck"
}
]
},
{
"id" : "rd_boh" ,
"label" : "BOH MIX" ,
"pos" : [
0 ,
3
],
"checks" : [
{
"type" : "ready_manual" ,
"item" : "mix_boh"
}
]
},
{
"id" : "rd_lights" ,
"label" : "LIGHTS" ,
"pos" : [
0 ,
4
],
"checks" : [
{
"type" : "ready" ,
"item" : "lights" ,
"fix" : "ready_recheck"
}
]
},
{
"id" : "rd_midi" ,
"label" : "MIDI" ,
"pos" : [
0 ,
5
],
"checks" : [
{
"type" : "midi_peer" ,
"host" : "tracks" ,
"session" : "NA Tracks" ,
"peer" : "Lighting PC" ,
"tag" : "FX LIGHTS" ,
"fix" : "midi_reconnect" ,
"address" : "10.1.10.206:5004"
},
{
"type" : "midi_peer" ,
"host" : "tracks" ,
"session" : "NA Tracks" ,
"peer" : "SuperRack-LiveBox" ,
"tag" : "TRK LIVEBOX" ,
"fix" : "midi_reconnect" ,
"address" : "10.1.13.140:5004"
},
{
"type" : "midi_peer" ,
"host" : "tracks" ,
"session" : "NA Tracks" ,
"peer" : "Studio B Mac Studio" ,
"tag" : "TRK STUDIO B" ,
"fix" : "midi_reconnect" ,
"address" : "\tStudio B Mac Studio\tlocal."
},
{
"type" : "remote" ,
"host" : "tracks" ,
"cmd" : "pgrep -xq Live" ,
"msg" : "ABLETON NOT RUNNING" ,
"fix" : "ableton" ,
"template" : "mac_program" ,
"params" : {
"host" : "tracks" ,
"process" : "Live"
}
}
]
},
{
"id" : "rd_prop" ,
"label" : "PROP" ,
"pos" : [
1 ,
1
],
"checks" : [
{
"type" : "ready" ,
"item" : "prop" ,
"fix" : "ready_recheck"
}
]
},
{
"id" : "rd_timecode" ,
"label" : "TIMECODE" ,
"pos" : [
1 ,
2
],
"checks" : [
{
"type" : "ready" ,
"item" : "timecode" ,
"fix" : "ready_ltc"
}
]
},
{
"id" : "rd_bg" ,
"label" : "BKGDS" ,
"pos" : [
1 ,
3
],
"checks" : [
{
"type" : "ready" ,
"item" : "backgrounds" ,
"fix" : "ready_recheck"
}
]
},
{
"id" : "rd_cross" ,
"label" : "LED CROSS" ,
"pos" : [
1 ,
4
],
"checks" : [
{
"type" : "ready" ,
"item" : "led_cross" ,
"fix" : "ready_led_cross"
}
]
},
{
"id" : "rd_lineup" ,
"label" : "LINEUP TV" ,
"pos" : [
2 ,
1
],
"checks" : [
{
"type" : "ready" ,
"item" : "lineup" ,
"fix" : "ready_lineup"
}
]
},
{
"id" : "rd_trk_out" ,
"label" : "TRACKS OUT" ,
"pos" : [
3 ,
1
],
"checks" : [
{
"type" : "ready" ,
"item" : "track_bundle" ,
"fix" : "ready_copy_tracks"
}
]
},
{
"id" : "rd_prop_out" ,
"label" : "PROP OUT" ,
"pos" : [
3 ,
2
],
"checks" : [
{
"type" : "ready" ,
"item" : "prop_bundle" ,
"fix" : "ready_recheck"
}
]
},
{
"id" : "rd_all" ,
"label" : "READY" ,
"pos" : [
3 ,
7
],
"kind" : "ready"
}
]
},
"ready" : {
"interval_seconds" : 120 ,
"due" : [
{
"days" : [
"sat"
],
"start" : "12:00" ,
"end" : "23:59"
},
{
"days" : [
"sun"
],
"start" : "00:00" ,
"end" : "13:30"
}
],
"reset_day" : "mon" ,
"pco_credentials" : "~/Library/Application Support/ProdDash/modules.json" ,
"pco_module" : "pco-plan" ,
"pco_service_type" : "275974" ,
"skip_songs" : [],
"ltc_note" : "LTC" ,
"prop_url" : "http://10.1.14.225:1025" ,
"prop_lists" : [
{
"match" : "announcement" ,
"kind" : "count" ,
"short" : "MC"
},
{
"match" : "baptism" ,
"kind" : "names" ,
"short" : "BAPTISM"
},
{
"match" : "dedication" ,
"kind" : "names" ,
"short" : "DEDICATION"
}
],
"tracks_host" : "tracks" ,
"projects" : "~/Library/CloudStorage/GoogleDrive-media@waterschurch.org/Shared drives/Waters Creative/Ableton/Projects" ,
"site_folder" : "NA" ,
"folder_format" : "{date} {loc} Project" ,
"ltc_track" : "LTC" ,
"lighting_track" : "LIGHTING CUES" ,
"locations" : [
"AB" ,
"SC"
],
"remote_timeout" : 90 ,
"lineup_url" : "http://127.0.0.1:24500/api/modules/band-lineup" ,
"lineup_teams" : [
"Band" ,
"Communication"
],
"lineup_skip_positions" : [],
"resolume_url" : "http://10.1.10.206:8080" ,
"resolume_deck" : "Service" ,
"led_clip" : "" ,
"prop_bundle_host" : "prop" ,
"prop_bundle_folder" : "~/Library/CloudStorage/GoogleDrive-media@waterschurch.org/Shared drives/Location Assets/ProPresenter" ,
"prop_bundle_pattern" : "*.probundle" ,
"vocal_positions" : [
"Vocalist" ,
"[Leader]"
],
"mic_positions" : {
"MC" : "MC" ,
"Speaker" : "TIM"
}
},
2026-10-08 09:00:56 -04:00
"tiles" : [
2026-10-14 14:17:31 -04:00
{
"id" : "all" ,
"label" : "ALL" ,
"pos" : [
0 ,
1
],
"kind" : "master"
},
{
"id" : "rec" ,
"label" : "REC" ,
"pos" : [
0 ,
2
],
"members" : [
"hd1" ,
"hd2" ,
"hd3" ,
"hd4" ,
"hd5" ,
"hd6" ,
"tascam"
]
},
{
"id" : "audio" ,
"label" : "AUDIO" ,
"pos" : [
0 ,
3
],
"members" : [
"x32" ,
2026-10-15 11:33:40 -04:00
"digico" ,
2026-10-15 12:40:24 -04:00
"dante" ,
"stb_audio"
2026-10-14 14:17:31 -04:00
]
},
{
"id" : "rf" ,
"label" : "RF" ,
"pos" : [
0 ,
4
],
"members" : [
"axient1" ,
"axient2" ,
"ulxd" ,
"psm1" ,
"psm2" ,
"psm3"
]
},
{
"id" : "show" ,
"label" : "SHOW" ,
"pos" : [
0 ,
5
],
"members" : [
"midi" ,
"apps" ,
"vista" ,
"spotify"
]
},
{
"id" : "video" ,
"label" : "VIDEO" ,
"pos" : [
0 ,
6
],
"members" : [
"atem" ,
"led" ,
"arena"
]
},
{
"id" : "stream" ,
"label" : "STREAM" ,
"pos" : [
0 ,
7
],
"members" : [
"obs" ,
"resi"
]
},
{
"id" : "hd1" ,
"label" : "HD1" ,
"pos" : [
1 ,
1
],
"hold_always" : "hyperdeck" ,
"checks" : [
{
"type" : "hyperdeck" ,
"conn" : "HyperDeck_1" ,
"fix" : {
"conn" : "hyperdeck"
}
}
]
},
{
"id" : "hd2" ,
"label" : "HD2" ,
"pos" : [
1 ,
2
],
"hold_always" : "hyperdeck" ,
"checks" : [
{
"type" : "hyperdeck" ,
"conn" : "HyperDeck_2" ,
"optional" : true ,
"fix" : {
"conn" : "hyperdeck"
}
}
]
},
{
"id" : "hd3" ,
"label" : "HD3" ,
"pos" : [
1 ,
3
],
"hold_always" : "hyperdeck" ,
"checks" : [
{
"type" : "hyperdeck" ,
"conn" : "HyperDeck_3" ,
"fix" : {
"conn" : "hyperdeck"
}
}
]
},
{
"id" : "hd4" ,
"label" : "HD4" ,
"pos" : [
1 ,
4
],
"hold_always" : "hyperdeck" ,
"checks" : [
{
"type" : "hyperdeck" ,
"conn" : "HyperDeck_4" ,
"optional" : true ,
"fix" : {
"conn" : "hyperdeck"
}
}
]
},
{
"id" : "hd5" ,
"label" : "HD5" ,
"pos" : [
1 ,
5
],
"hold_always" : "hyperdeck" ,
"checks" : [
{
"type" : "hyperdeck" ,
"conn" : "HyperDeck_5" ,
"fix" : {
"conn" : "hyperdeck"
}
}
]
},
{
"id" : "hd6" ,
"label" : "HD6" ,
"pos" : [
1 ,
6
],
"hold_always" : "hyperdeck" ,
"checks" : [
{
"type" : "hyperdeck" ,
"conn" : "HyperDeck_6" ,
"fix" : {
"conn" : "hyperdeck"
}
}
]
},
{
"id" : "tascam" ,
"label" : "TASCAM" ,
"pos" : [
1 ,
7
],
"hold_always" : "tascam_reconnect" ,
"checks" : [
{
"type" : "tascam" ,
"conn" : "tascam" ,
"fix" : "tascam_reconnect"
},
{
"type" : "ping" ,
"conn" : "tascam" ,
"host" : "10.1.11.74" ,
2026-10-14 20:02:47 -04:00
"name" : "TASCAM" ,
"fix" : "tascam_power"
2026-10-14 14:17:31 -04:00
}
]
},
{
"id" : "x32" ,
"label" : "X32" ,
"pos" : [
2 ,
1
],
"checks" : [
{
"type" : "conn" ,
"conn" : "x32"
}
]
},
2026-10-15 11:33:40 -04:00
{
"id" : "digico" ,
"label" : "DIGICO" ,
"checks" : [
{
"type" : "conn" ,
"conn" : "DiGiCo_FOH" ,
"tag" : "DIGICO"
},
{
"type" : "launchd" ,
"label" : "org.waterschurch.digico-relay" ,
"name" : "RELAY" ,
"fix" : "digico_relay"
},
{
"type" : "ping" ,
"host" : "10.1.60.100" ,
"name" : "DIGICO"
}
]
},
2026-10-15 12:40:24 -04:00
{
"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"
}
}
]
},
2026-10-14 14:17:31 -04:00
{
"id" : "dante" ,
"label" : "DANTE" ,
"pos" : [
2 ,
2
],
"checks" : [
{
"type" : "dante" ,
"conn" : "audinate-dantecontroller" ,
"fix" : {
"NA-ProPresenter-Mac" : "dvs_prop" ,
"NA-Tracks" : "dvs_tracks" ,
"NA-Translation" : "dvs_translation" ,
"STUDIO-A-Ingest" : "dvs_ingest" ,
"*" : "dante-auto"
},
"devices" : {
"FOH-DiGiCo-DMI-1" : "DMI-1" ,
"FOH-DiGiCo-DMI-2" : "DMI-2" ,
"BOH-WING" : "WING" ,
"BOH-DQ-Rack" : "DQ RACK" ,
"BOH-AD4Q-A" : "AD4Q-A" ,
"BOH-AD4Q-B" : "AD4Q-B" ,
"STUDIO-A-X32" : "STA X32" ,
"STUDIO-A-Resi-AJA-SDI" : "RESI AJA" ,
"STUDIO-A-Ingest" : "INGEST" ,
"NA-Translation" : "TRANSL" ,
"STUDIO-B-RedNet-TNX" : "STB TNX" ,
"STUDIO-B-TB" : "STB TB" ,
"STUDIO-B-TB-MON" : "STB TB MON" ,
"STUDIO-B-MON" : "STB MON" ,
"STUDIO-B-SOLO-MON" : "STB SOLO" ,
"STUDIO-B-Tascam" : "STB TASCAM" ,
"NA-Tracks" : "TRACKS" ,
"FOH-SuperRack-LiveBox" : "SUPERRACK" ,
"NA-ProPresenter-Mac" : "PROP MAC"
}
}
]
},
{
"id" : "midi" ,
"label" : "MIDI" ,
"pos" : [
2 ,
3
],
"checks" : [
{
"type" : "midi_peer" ,
"session" : "NA Ingest" ,
"peer" : "Lighting PC" ,
"tag" : "LIGHT PC" ,
"fix" : "midi_reconnect" ,
"address" : "10.1.10.206:5004"
},
{
"type" : "midi_peer" ,
"session" : "NA Ingest" ,
"peer" : "SuperRack-LiveBox" ,
"tag" : "SUPERRACK" ,
"fix" : "midi_reconnect" ,
"address" : "10.1.13.140:5004"
},
{
"type" : "midi_peer" ,
"host" : "tracks" ,
"session" : "NA Tracks" ,
"peer" : "Lighting PC" ,
"tag" : "FX LIGHTS" ,
"fix" : "midi_reconnect" ,
"address" : "10.1.10.206:5004"
},
{
"type" : "midi_peer" ,
"host" : "tracks" ,
"session" : "NA Tracks" ,
"peer" : "SuperRack-LiveBox" ,
"tag" : "TRK LIVEBOX" ,
"fix" : "midi_reconnect" ,
"address" : "10.1.13.140:5004"
},
{
"type" : "midi_peer" ,
"host" : "tracks" ,
"session" : "NA Tracks" ,
"peer" : "Studio B Mac Studio" ,
"tag" : "TRK STUDIO B" ,
"fix" : "midi_reconnect" ,
"address" : "\tStudio B Mac Studio\tlocal."
},
{
"type" : "midi_peer" ,
"host" : "prop" ,
"session" : "NA ProP" ,
"peer" : "Lighting PC" ,
"tag" : "PROP LIGHTS" ,
"fix" : "midi_reconnect" ,
"address" : "10.1.10.206:5004"
},
{
"type" : "conn" ,
"conn" : "lighting-midi" ,
"tag" : "COMPANION MIDI"
},
{
"type" : "mdns" ,
"instance" : "Lighting PC" ,
"name" : "LIGHT PC MIDI" ,
"fix" : "rtpmidi_start"
},
{
"type" : "mdns" ,
"instance" : "NA Tracks" ,
"name" : "TRACKS MIDI"
},
{
"type" : "midi_rx" ,
"source" : "Network NA Ingest Listen" ,
"name" : "TRACKS IN"
}
]
},
{
"id" : "spotify" ,
"label" : "SPOTIFY" ,
"hold_always" : "spotify_play" ,
"checks" : [
{
"type" : "spotify" ,
"fix" : "spotify_play"
}
]
},
2026-10-14 20:02:47 -04:00
{
"id" : "ready" ,
"label" : "READY" ,
"pos" : [
2 ,
7
],
"kind" : "ready"
},
2026-10-14 14:17:31 -04:00
{
"id" : "vista" ,
"label" : "VISTA" ,
"pos" : [
2 ,
5
],
"checks" : [
{
"type" : "artnet" ,
"source" : "10.1.10.206" ,
"max_silence_seconds" : 5 ,
"fix" : "vista"
}
]
},
{
"id" : "apps" ,
"label" : "APPS" ,
"pos" : [
2 ,
4
],
"checks" : [
{
"type" : "conn" ,
"conn" : "Propresenter-API" ,
"tag" : "PROPRES" ,
"fix" : "propresenter" ,
"ignore_warning" : true
},
{
"type" : "remote" ,
"host" : "prop" ,
"cmd" : "pgrep -xq ProPresenter" ,
"msg" : "PROPRES NOT RUNNING" ,
"fix" : "propresenter" ,
"template" : "mac_program" ,
"params" : {
"host" : "prop" ,
"process" : "ProPresenter"
}
},
{
"type" : "conn" ,
"conn" : "ableton" ,
"tag" : "ABLETON"
},
{
"type" : "remote" ,
"host" : "tracks" ,
"cmd" : "pgrep -xq Live" ,
"msg" : "ABLETON NOT RUNNING" ,
"fix" : "ableton" ,
"template" : "mac_program" ,
"params" : {
"host" : "tracks" ,
"process" : "Live"
}
},
{
"type" : "remote" ,
"host" : "translation" ,
"cmd" : "pgrep -xq 'Church Translate'" ,
"msg" : "TRANSLATE NOT RUNNING" ,
"fix" : "translate" ,
"template" : "mac_program" ,
"params" : {
"host" : "translation" ,
"process" : "Church Translate"
}
},
{
"type" : "ping" ,
"host" : "10.1.3.227" ,
"name" : "TRACKS MAC"
},
{
"type" : "http" ,
"url" : "http://10.1.14.225:1025/" ,
"msg" : "PROP TV DOWN" ,
"interval_seconds" : 5 ,
"fix" : "propresenter"
},
{
"type" : "http" ,
"url" : "http://10.6.7.13:8080/" ,
"msg" : "BIBLE APP DOWN" ,
"interval_seconds" : 5 ,
"fix" : "bibleapp"
},
{
"type" : "conn" ,
"conn" : "BibleTV" ,
"tag" : "BIBLE OSC"
},
{
"type" : "remote" ,
"host" : "studiob" ,
"cmd" : "! grep -q '\"bad\":true' \"$HOME/Library/Application Support/status-panel/solo-mode.json\"" ,
"msg" : "PT SOLO NOT AFL" ,
"fix" : "solo_afl" ,
"template" : "helper_flag" ,
"params" : {
"host" : "studiob"
}
},
{
"type" : "remote" ,
"host" : "studiob" ,
"cmd" : "f=\"$HOME/Library/Application Support/status-panel/solo-mode.json\"; [ $(( $(date +%s) - $(stat -f %m \"$f\") )) -lt 20 ] && grep -q '\"trusted\":true' \"$f\"" ,
"msg" : "PT SOLO CHECK OFF" ,
"template" : "helper_fresh" ,
"params" : {
"host" : "studiob"
}
}
]
},
{
"id" : "service" ,
"label" : "ALARMS" ,
"pos" : [
3 ,
0
],
"kind" : "service"
},
{
"id" : "atem" ,
"label" : "ATEM" ,
"pos" : [
3 ,
1
],
"checks" : [
{
"type" : "conn" ,
"conn" : "ATEM"
},
{
"type" : "atem" ,
"part" : "audio" ,
"msg" : "ATEM AUDIO WRONG" ,
"fix" : "atem_audio"
},
{
"type" : "atem" ,
"part" : "camera" ,
"msg" : "ATEM CAMERA WRONG" ,
"fix" : "atem_camera"
},
{
"type" : "pref" ,
"domain" : "com.blackmagic-design.ATEM Software Control" ,
"key" : "midiEnabled" ,
"want" : "0" ,
"msg" : "ATEM SW MIDI ON" ,
"fix" : "atem_midi"
}
]
},
{
"id" : "obs" ,
"label" : "OBS" ,
"pos" : [
3 ,
2
],
"checks" : [
{
"type" : "conn" ,
"conn" : "OBS-Youtube" ,
"service_only" : true ,
"fix" : "obs"
}
]
},
{
"id" : "resi" ,
"label" : "RESI" ,
"pos" : [
3 ,
3
],
"checks" : [
{
"type" : "conn" ,
"conn" : "RESI_Decoder" ,
"tag" : "DECODER"
},
{
"type" : "ping" ,
"host" : "10.1.10.203" ,
"name" : "DECODER"
},
{
"type" : "ping" ,
"host" : "10.1.10.202" ,
"name" : "ENCODER"
},
{
"type" : "http" ,
"url" : "http://10.1.10.202/" ,
"msg" : "ENCODER WEB DOWN" ,
"interval_seconds" : 10
},
{
"type" : "conn" ,
"conn" : "resi-studio-cues"
},
{
"type" : "http" ,
"url" : "https://central.resi.io/" ,
"name" : "CLOUD"
}
]
},
{
"id" : "net" ,
"label" : "NET" ,
"pos" : [
3 ,
4
],
"kind" : "network"
},
{
"id" : "ingest" ,
"label" : "INGEST" ,
"pos" : [
3 ,
5
],
"checks" : [
{
"type" : "launchd" ,
"label" : "org.waterschurch.resi-propresenter" ,
"name" : "BRIDGE" ,
"fix" : "bridge"
},
{
"type" : "launchd" ,
"label" : "org.waterschurch.lobby-captions" ,
"name" : "CAPTIONS" ,
"fix" : "captions"
},
{
"type" : "launchd" ,
"label" : "org.waterschurch.lobby-captions-display" ,
"name" : "CAPTION SCREEN" ,
"fix" : "caption_screen"
},
{
"type" : "http" ,
"url" : "http://127.0.0.1:24480/api/v1/ping" ,
"msg" : "PRODCOM DOWN" ,
"interval_seconds" : 5 ,
"fix" : "prodcom"
},
{
"type" : "process" ,
"match" : "/Applications/ProdDash.app/Contents/MacOS/ProdDash" ,
"name" : "PRODDASH" ,
"fix" : "proddash"
},
{
"type" : "http" ,
"url" : "http://127.0.0.1:24500/" ,
"msg" : "PRODDASH DOWN" ,
"interval_seconds" : 10 ,
"fix" : "proddash"
},
{
"type" : "disk" ,
"path" : "/" ,
"warn_gb" : 25 ,
"err_gb" : 8
}
]
},
{
"id" : "led" ,
"label" : "LED" ,
"pos" : [
3 ,
6
],
"checks" : [
{
"type" : "conn" ,
"conn" : "VX1000" ,
"tag" : "VX1000"
},
{
"type" : "conn" ,
"conn" : "UHDJr" ,
"tag" : "UHDJR"
},
{
"type" : "ping" ,
"host" : "10.1.14.116" ,
"name" : "VX1000"
},
{
"type" : "ping" ,
"host" : "10.1.14.115" ,
"name" : "UHDJR"
}
]
},
{
"id" : "arena" ,
"label" : "ARENA" ,
"pos" : [
3 ,
7
],
"checks" : [
{
"type" : "conn" ,
"conn" : "arena" ,
"fix" : "arena"
}
]
},
{
"id" : "axient1" ,
"label" : "AXIENT 1" ,
"checks" : [
{
"type" : "shure" ,
"conn" : "Axient_1" ,
"channels" : 4
},
{
"type" : "ping" ,
"conn" : "Axient_1" ,
"host" : "10.1.1.101" ,
"name" : "AXIENT 1"
}
]
},
{
"id" : "axient2" ,
"label" : "AXIENT 2" ,
"checks" : [
{
"type" : "shure" ,
"conn" : "Axient_2" ,
"channels" : 4
},
{
"type" : "ping" ,
"conn" : "Axient_2" ,
"host" : "10.1.1.102" ,
"name" : "AXIENT 2"
}
]
},
{
"id" : "ulxd" ,
"label" : "ULXD" ,
"checks" : [
{
"type" : "shure" ,
"conn" : "ULXD-4" ,
"channels" : 1
},
{
"type" : "ping" ,
"conn" : "ULXD-4" ,
"host" : "10.1.1.106" ,
"name" : "ULXD"
}
]
},
{
"id" : "psm1" ,
"label" : "PSM 1" ,
"checks" : [
{
"type" : "psm" ,
"conn" : "PSM_1" ,
"channels" : 2
},
{
"type" : "ping" ,
"conn" : "PSM_1" ,
"host" : "10.1.1.103" ,
"name" : "PSM 1"
}
]
},
{
"id" : "psm2" ,
"label" : "PSM 2" ,
"checks" : [
{
"type" : "psm" ,
"conn" : "PSM_2" ,
"channels" : 2
},
{
"type" : "ping" ,
"conn" : "PSM_2" ,
"host" : "10.1.1.104" ,
"name" : "PSM 2"
}
]
},
{
"id" : "psm3" ,
"label" : "PSM 3" ,
"checks" : [
{
"type" : "psm" ,
"conn" : "PSM_3" ,
"channels" : 2
},
{
"type" : "ping" ,
"conn" : "PSM_3" ,
"host" : "10.1.1.105" ,
"name" : "PSM 3"
}
]
}
2026-10-08 09:00:56 -04:00
]
}