A stable bridge between URC Total Control and Hi-Fi Rose RS520.
The RS520's HTTP control surface is reverse-engineered and shifts between firmware releases. urc-rose-bridge hides that behind a versioned /v1/* contract, so URC's custom IP driver — and, in Phase 4, Josh AI — never has to change when Rose ships an update.
The contract
One stable surface. Patch the bridge, not your URC project.
Every endpoint URC's IP driver hits is documented, versioned, and tested against a pinned RS520 firmware build. When Rose breaks the underlying API, you ship a new bridge binary — the URC project is untouched.
GET /v1/healthBridge uptime + Rose reachabilityGET /v1/statePower, source, volume, playingPOST /v1/power{ state: 'on' | 'off' }POST /v1/source{ input: 'OPTICAL' | 'EARC' | … }POST /v1/volume{ level } or { delta }
curl http://127.0.0.1:8088/v1/state
# { "power":"on", "source":"OPTICAL", "volume":35, "playing":true }
curl -X POST -H 'content-type: application/json' \
-d '{"input":"EARC"}' \
http://127.0.0.1:8088/v1/source
curl -X POST -H 'content-type: application/json' \
-d '{"delta":-2}' \
http://127.0.0.1:8088/v1/volumeRoadmap
Phased rollout
Probe
Scan the LAN, hit every Rose endpoint, write a JSON report. Run once per firmware update.
Bridge service
Fastify on :8088 exposing /v1/*. URC's IP driver targets this contract.
URC driver
Custom IP driver in Total Control hits /v1/* — no changes when Rose ships firmware.
Josh AI
Same /v1/* contract powers voice control via Josh AI's HTTP integration.