Resi cues connection errors are amber (check option amber): 'Poll failed' is not the stream down
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
+2
-1
@@ -2489,7 +2489,8 @@
|
||||
},
|
||||
{
|
||||
"conn": "resi-studio-cues",
|
||||
"type": "conn"
|
||||
"type": "conn",
|
||||
"amber": true
|
||||
},
|
||||
{
|
||||
"name": "CLOUD",
|
||||
|
||||
@@ -294,6 +294,8 @@ field("tiles[].checks[].service_only", "bool", False, "Legacy: only during a ser
|
||||
"are armed all day).", "Keys", advanced=True)
|
||||
field("tiles[].checks[].debounce_seconds", "int", None, "Wait before this check's fault shows.", "Keys", advanced=True,
|
||||
lo=0, hi=60)
|
||||
field("tiles[].checks[].amber", "bool", False, "A Companion connection whose errors show amber, not red (a cloud helper "
|
||||
"like Resi cues: its trouble is not the stream being down).", "Keys", advanced=True)
|
||||
field("tiles[].checks[].ignore_warning", "bool", False, "Ignore Companion's yellow warning state.", "Keys")
|
||||
field("tiles[].checks[].optional", "bool", False, "A HyperDeck that may have no disk (grey, no alarm).", "Keys")
|
||||
field("tiles[].checks[].disk_service_only", "bool", True, "NO DISK only during a service.", "Keys", advanced=True)
|
||||
@@ -480,7 +482,7 @@ field("ready.mic_positions", "dict", {}, "Other PCO positions and the mic they n
|
||||
# fields: the keys that type reads; subs: the sub-check names it returns (fix tables use them);
|
||||
# identity: what it is about; module: the Companion module its connection is expected to use.
|
||||
CHECKS = {
|
||||
"conn": {"fields": ["conn", "service_only", "ignore_warning"], "subs": ["conn"], "identity": ["conn"], "module": None,
|
||||
"conn": {"fields": ["conn", "service_only", "ignore_warning", "amber"], "subs": ["conn"], "identity": ["conn"], "module": None,
|
||||
"question": "Is a device answering?", "words": "A Companion connection is good."},
|
||||
"hyperdeck": {"fields": ["conn", "optional", "disk_service_only", "full_minutes", "low_minutes", "rec_sync", "ip"],
|
||||
"subs": ["conn", "disk", "rec"], "identity": ["conn"], "module": "bmd-hyperdeck",
|
||||
|
||||
@@ -273,6 +273,9 @@ def check_conn(chk, snap, ctx):
|
||||
c = snap.conns.get(chk["conn"], {})
|
||||
if chk.get("ignore_warning") and res.level == WARN and c.get("enabled") and c.get("category") == "warning":
|
||||
res = Result(OK)
|
||||
if chk.get("amber") and res.level == ERR and c.get("enabled"):
|
||||
# A cloud helper (Resi cues): its error is not the stream being down (2026-10-25: "Poll failed").
|
||||
res = Result(WARN, res.msg, service_only=res.service_only)
|
||||
return [("conn", res)]
|
||||
|
||||
|
||||
|
||||
@@ -355,6 +355,9 @@ class TestChecks(unittest.TestCase):
|
||||
tiles, _ = run_steps(sp.Engine(CONFIG), self.snap, self.now, 4)
|
||||
self.assertEqual(tiles["resi"]["x"], "RESI\nRATE LIMITED")
|
||||
self.assertNotEqual(level(tiles["resi"]), "err")
|
||||
self.snap.conns["resi-studio-cues"]["message"] = "Poll failed" # its other error: amber too ("amber" on its check)
|
||||
tiles, _ = run_steps(sp.Engine(CONFIG), self.snap, self.now, 4)
|
||||
self.assertNotEqual(level(tiles["resi"]), "err")
|
||||
|
||||
def test_resi_audio_silent(self):
|
||||
"""An input stuck at the meter floor (2026-10-25: the Resi AJA passed no Dante audio and nothing said so):
|
||||
|
||||
Reference in New Issue
Block a user