Denon AVR Control
Use this skill to control a Denon receiver on the local network.
Quick start
- 1. Identify the receiver host or IP address.
- Start with a read/query action before making changes.
- Use
scripts/denon_avr.py for normal operations. - If a model-specific command is missing, read
references/commands.md and use --raw.
Default workflow
Query status
Run:
CODEBLOCK0
Power
CODEBLOCK1
Volume
CODEBLOCK2
Inputs
CODEBLOCK3
Mute
CODEBLOCK4
Transport choice
Prefer the default TCP transport first:
CODEBLOCK5
If the receiver only responds on the HTTP control endpoint:
CODEBLOCK6
Raw commands
Use raw mode for model-specific features or when the canned arguments are not enough:
CODEBLOCK7
Read references/commands.md for the common command families.
Local computer playback
If the user wants to play local audio files on the computer itself, use scripts/local_audio_jukebox.py together with this receiver-control skill.
Read references/local-playback.md when the task is to:
- - scan a local directory for songs
- play a random song or a short random queue
- play tracks that match a user query
- build a simple playlist from user-provided terms
- stop or inspect the local player state
This workflow plays audio on the local computer, so that machine's system output must already be routed to the receiver if sound should come out of the receiver.
Experimental DLNA push mode
If the user wants the Denon itself to fetch and play a local file over the LAN, use scripts/dlna_push.py.
Read references/dlna-push.md when the task is to:
- - scan a folder for audio files before choosing one
- push a random local track directly to the Denon renderer
- push a track chosen by user query
- push a specific file path to the Denon
- stop the remote playback and shut down the temporary HTTP server
- support the same approach on Windows and macOS
This mode is more cross-platform than local-output playback because it uses Python + HTTP + UPnP/DLNA. It is still experimental and currently strongest for single-track push.
Real DLNA media server mode
If ad-hoc URL push is unreliable on a receiver, use scripts/simple_dlna_server.py instead.
Read references/dlna-server.md when the task is to:
- - expose one or more user-chosen music directories as a real discoverable DLNA MediaServer
- let the user decide the music path(s) instead of assuming a fixed folder
- let the Denon browse the library through its Local Music / HEOS path
- support a more Windows-friendly and standards-based setup
- avoid raw one-off URL playback hacks
This mode provides SSDP discovery, a device description, a ContentDirectory service, a ConnectionManager service, and direct HTTP media serving.
Prefer this mode for cross-platform local-library playback.
Guardrails
- - Query first when you do not know current state.
- Send one mutating action at a time unless the user explicitly wants a batch.
- Treat input names and sound modes as model-dependent; if a friendly alias fails, switch to
--raw. - If the user did not provide the receiver address, ask for the IP/hostname or discover it only if they explicitly want network scanning.
Denon AVR 控制
使用此技能控制本地网络上的Denon接收器。
快速开始
- 1. 确认接收器的主机名或IP地址。
- 在进行更改前,先执行读取/查询操作。
- 使用 scripts/denon_avr.py 进行常规操作。
- 如果缺少特定型号的命令,请阅读 references/commands.md 并使用 --raw 参数。
默认工作流程
查询状态
运行:
bash
python3 skills/denon-avr-control/scripts/denon_avr.py --host --status
电源
bash
python3 skills/denon-avr-control/scripts/denon_avr.py --host --power on
python3 skills/denon-avr-control/scripts/denon_avr.py --host --power off
音量
bash
python3 skills/denon-avr-control/scripts/denon_avr.py --host --volume 35.5
python3 skills/denon-avr-control/scripts/denon_avr.py --host --volume-up 3
python3 skills/denon-avr-control/scripts/denon_avr.py --host --volume-down 2
输入源
bash
python3 skills/denon-avr-control/scripts/denon_avr.py --host --input tv
python3 skills/denon-avr-control/scripts/denon_avr.py --host --input game
python3 skills/denon-avr-control/scripts/denon_avr.py --host --input heos
静音
bash
python3 skills/denon-avr-control/scripts/denon_avr.py --host --mute on
python3 skills/denon-avr-control/scripts/denon_avr.py --host --mute off
传输方式选择
优先使用默认的TCP传输方式:
bash
python3 skills/denon-avr-control/scripts/denon_avr.py --host --status
如果接收器仅响应HTTP控制端点:
bash
python3 skills/denon-avr-control/scripts/denon_avr.py --host --transport http --status
原始命令
当预设参数不足或需要使用特定型号功能时,使用原始模式:
bash
python3 skills/denon-avr-control/scripts/denon_avr.py --host --raw PW? --raw MV? --raw SI?
阅读 references/commands.md 了解常用命令系列。
本地电脑播放
如果用户希望在电脑上播放本地音频文件,请将此接收器控制技能与 scripts/localaudiojukebox.py 配合使用。
当任务需要以下操作时,请阅读 references/local-playback.md:
- - 扫描本地目录中的歌曲
- 播放随机歌曲或短随机队列
- 播放与用户查询匹配的曲目
- 根据用户提供的条件构建简单播放列表
- 停止或检查本地播放器状态
此工作流程在本地电脑上播放音频,因此如果需要通过接收器输出声音,该电脑的系统输出必须已路由至接收器。
实验性DLNA推送模式
如果用户希望Denon自行通过局域网获取并播放本地文件,请使用 scripts/dlna_push.py。
当任务需要以下操作时,请阅读 references/dlna-push.md:
- - 在选择文件前扫描文件夹中的音频文件
- 将随机本地曲目直接推送到Denon渲染器
- 推送用户查询选择的曲目
- 将特定文件路径推送到Denon
- 停止远程播放并关闭临时HTTP服务器
- 在Windows和macOS上支持相同方法
此模式比本地输出播放更具跨平台性,因为它使用Python + HTTP + UPnP/DLNA。该模式仍处于实验阶段,目前最适合单曲推送。
真实DLNA媒体服务器模式
如果接收器上的临时URL推送不可靠,请改用 scripts/simpledlnaserver.py。
当任务需要以下操作时,请阅读 references/dlna-server.md:
- - 将一个或多个用户选择的音乐目录暴露为真实可发现的DLNA媒体服务器
- 让用户决定音乐路径,而非假定固定文件夹
- 让Denon通过其本地音乐/HEOS路径浏览库
- 支持更符合Windows习惯且基于标准的设置
- 避免原始的临时URL播放技巧
此模式提供SSDP发现、设备描述、ContentDirectory服务、ConnectionManager服务以及直接HTTP媒体服务。
对于跨平台的本地库播放,优先选择此模式。
安全准则
- - 在不知道当前状态时,先进行查询。
- 除非用户明确要求批量操作,否则一次只发送一个变更操作。
- 将输入名称和声音模式视为型号相关;如果友好别名失败,请切换到 --raw 参数。
- 如果用户未提供接收器地址,请询问IP/主机名,或仅在用户明确要求网络扫描时进行发现。