Conversation
Transform the CLI-only Denon remote into a full web application: - Express + WebSocket backend with persistent telnet connection - Mobile-first responsive single-page frontend - Real-time status updates (power, volume, input, surround mode) - Input sources: Bluetooth, CD, Tuner, USB, Network, AUX, Spotify, etc. - Bluetooth input selection and pairing mode support - Playback controls (play/pause/stop/skip/repeat/shuffle) - Volume slider + up/down + mute - Tone controls (bass/treble) - Sound modes (stereo, direct, music, movie, etc.) - Sleep timer - Raw command input for advanced use - Docker + docker-compose for easy deployment - Original CLI preserved via `npm run cli` https://claude.ai/code/session_013iwz3TLcQm7Dj3f2MY12xp
- Add SSDP/UPnP discovery to find Denon receivers on the network - Add TCP port 23 subnet scan as fallback discovery method - Add discovery UI overlay with scan button and manual IP entry - Auto-discover on startup when DENON_HOST is not set - Add /api/discover and /api/connect?host= endpoints - Allow connecting to a different host from the web UI - Remove vorpal (abandoned, core-js@2 deprecation warnings) - Remove colors (supply chain risk) - Rewrite CLI using Node.js built-in readline (zero extra deps) - Dependencies reduced from 110 packages to 70, 0 vulnerabilities https://claude.ai/code/session_013iwz3TLcQm7Dj3f2MY12xp
…nd code quality - Use textContent instead of innerHTML for discovery device list (XSS fix) - URL-encode input source in setInput() to handle USB/IPOD correctly - Validate numeric inputs in volume/sleep endpoints, return 400 for NaN - Validate CLI volume argument and show error for non-numeric input - Fix connectDenon race condition by removing listeners from old client - Refactor scanSubnet to plain async function (remove Promise anti-pattern) - Use npm ci with package-lock.json for deterministic Docker builds - Run Node process as non-root user in Dockerfile - Fix help command to show aliases inline instead of as separate entries - Clarify mute command description and btpair redundancy - Update README DENON_HOST default to reflect actual null/auto-discover - Improve docker-compose comment about host network mode for discovery Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
Glad it was helpful after all these years! I see that in your PR you're basically renaming the package and removing all references to AVR-X1000. Can you make sure you dont touch these, and still leave support for those commands? I dont have the AV receiver anymore, but would be nice to still have that support in there. Maybe we can go with an facade pattern if they are very different? Otherwise, having this PR around is already useful for others to learn from. Thanks! |
|
Of course, you're right ! I'm still tweaking a few things on my branch for the N7 , but I'll include back the AVR-X1000 too! |
|
Yeah, that might be a better idea, to have it in a separate repo. I will happily link to yours from the documentation page of course when you send me the CL for that :-) |
Hi!
Thanks for the great work. I've asked an LLM (Opus 4.6) to code a web interface and add support for my old CEOL N7 functionalities. I thought I'd open a pull request here just in case you were still interested all those years later. No worries if you're not -- and in any case, thanks for that super helpful repo!