Skip to content

Commit

Permalink
Providing a readme
Browse files Browse the repository at this point in the history
  • Loading branch information
mthiel committed Dec 5, 2024
1 parent 9f24f2f commit 6f5624b
Show file tree
Hide file tree
Showing 3 changed files with 199 additions and 92 deletions.
189 changes: 98 additions & 91 deletions com.mthiel.denon-controller.sdPlugin/manifest.json
Original file line number Diff line number Diff line change
@@ -1,92 +1,99 @@
{
"Name": "Denon Receiver Network Control",
"Version": "0.7.2.0",
"Author": "Matthew Thiel",
"Actions": [
{
"Name": "Volume Control",
"UUID": "com.mthiel.denon-controller.volume",
"Icon": "imgs/actions/volume/volume2",
"Tooltip": "Displays the current volume and allows for adjustment.",
"PropertyInspectorPath": "ui/action.html",
"Controllers": [ "Keypad", "Encoder" ],
"DisableAutomaticStates": true,
"Encoder": {
"layout": "$B1",
"TriggerDescription": {
"Push": "Mute/Unmute",
"Rotate": "Adjust Volume",
"Touch": "Mute/Unmute"
}
},
"States": [
{
"Name": "Unmute",
"Image": "imgs/actions/volume/volume2"
},
{
"Name": "Mute",
"Image": "imgs/actions/volume/volumeMute"
}
]
},
{
"Name": "Power Control",
"UUID": "com.mthiel.denon-controller.power",
"Icon": "imgs/actions/power/powerOn",
"Tooltip": "Turns the receiver on or off.",
"PropertyInspectorPath": "ui/action.html",
"Controllers": [ "Keypad" ],
"DisableAutomaticStates": true,
"States": [
{
"Name": "On",
"Image": "imgs/actions/power/powerOn"
},
{
"Name": "Off",
"Image": "imgs/actions/power/powerOff"
}
]
},
{
"Name": "Source Control",
"UUID": "com.mthiel.denon-controller.source",
"Icon": "imgs/actions/source/source",
"Tooltip": "Displays the current source and allows for selection.",
"PropertyInspectorPath": "ui/action.html",
"Controllers": [ "Keypad" ],
"DisableAutomaticStates": true,
"States": [
{
"Name": "Source",
"Image": "imgs/actions/source/source"
}
]
}
],
"Category": "Receiver Control",
"CategoryIcon": "imgs/plugin/category-icon",
"CodePath": "bin/plugin.js",
"Description": "Uses the network interface on many Denon/Marantz receivers to control basic functions. Requires a receiver with HEOS support.",
"Icon": "imgs/plugin/marketplace",
"SDKVersion": 2,
"Software": {
"MinimumVersion": "6.4"
},
"OS": [
{
"Platform": "mac",
"MinimumVersion": "10.15"
},
{
"Platform": "windows",
"MinimumVersion": "10"
}
],
"Nodejs": {
"Version": "20",
"Debug": "enabled"
},
"UUID": "com.mthiel.denon-controller"
{
"Name": "Denon Receiver Network Control",
"Version": "0.7.2.0",
"Author": "Matthew Thiel",
"Actions": [
{
"Name": "Volume Control",
"UUID": "com.mthiel.denon-controller.volume",
"Icon": "imgs/actions/volume/volume2",
"Tooltip": "Displays the current volume and allows for adjustment.",
"PropertyInspectorPath": "ui/action.html",
"Controllers": [
"Keypad",
"Encoder"
],
"DisableAutomaticStates": true,
"Encoder": {
"layout": "$B1",
"TriggerDescription": {
"Push": "Mute/Unmute",
"Rotate": "Adjust Volume",
"Touch": "Mute/Unmute"
}
},
"States": [
{
"Name": "Unmute",
"Image": "imgs/actions/volume/volume2"
},
{
"Name": "Mute",
"Image": "imgs/actions/volume/volumeMute"
}
]
},
{
"Name": "Power Control",
"UUID": "com.mthiel.denon-controller.power",
"Icon": "imgs/actions/power/powerOn",
"Tooltip": "Turns the receiver on or off.",
"PropertyInspectorPath": "ui/action.html",
"Controllers": [
"Keypad"
],
"DisableAutomaticStates": true,
"States": [
{
"Name": "On",
"Image": "imgs/actions/power/powerOn"
},
{
"Name": "Off",
"Image": "imgs/actions/power/powerOff"
}
]
},
{
"Name": "Source Control",
"UUID": "com.mthiel.denon-controller.source",
"Icon": "imgs/actions/source/source",
"Tooltip": "Displays the current source and allows for selection.",
"PropertyInspectorPath": "ui/action.html",
"Controllers": [
"Keypad"
],
"DisableAutomaticStates": true,
"States": [
{
"Name": "Source",
"Image": "imgs/actions/source/source"
}
]
}
],
"Category": "Receiver Control",
"CategoryIcon": "imgs/plugin/category-icon",
"CodePath": "bin/plugin.js",
"Description": "Uses the network interface on many Denon/Marantz receivers to control basic functions. Requires a receiver with HEOS support.",
"Icon": "imgs/plugin/marketplace",
"SDKVersion": 2,
"Software": {
"MinimumVersion": "6.4"
},
"OS": [
{
"Platform": "mac",
"MinimumVersion": "10.15"
},
{
"Platform": "windows",
"MinimumVersion": "10"
}
],
"Nodejs": {
"Version": "20",
"Debug": "enabled"
},
"UUID": "com.mthiel.denon-controller"
}
3 changes: 2 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
{
"scripts": {
"build": "rollup -c",
"watch": "rollup -c -w --watch.onEnd=\"streamdeck restart com.mthiel.denon-controller\""
"watch": "rollup -c -w --watch.onEnd=\"streamdeck restart com.mthiel.denon-controller\"",
"pack": "streamdeck pack --no-update-check com.mthiel.denon-controller.sdPlugin"
},
"type": "module",
"devDependencies": {
Expand Down
99 changes: 99 additions & 0 deletions readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
# Denon Receiver Network Control for Stream Deck

A Stream Deck plugin that provides network control of Denon/Marantz receivers with HEOS support.

## Features

- **Volume Control**: Display and adjust volume levels, with mute/unmute functionality
- Works with both standard Stream Deck buttons and Stream Deck+ dials
- Shows real-time volume level on dials
- Visual feedback for mute state

- **Power Control**: Turn your receiver on/off with visual power state feedback

- **Input Source Selection**: Quick access to switch between input sources
- Supports all standard Denon/Marantz input sources
- ~~Zone 2 can mirror Main Zone source~~ (Coming soon)

- **Multi-Zone Support**: Control Main Zone and Zone 2 independently

## Requirements

- Stream Deck Software 6.4 or later
- macOS 10.15 or later
- Windows 10 or later
- Denon or Marantz receiver with HEOS support
- Receiver must be on the same network as your computer

## Installation

### Install from the Elgato Marketplace (Coming soon)
*TBD: Currently only installable by building from source.*

<!--
1. Download the plugin from the Stream Deck Store
2. Double-click the downloaded file to install
3. Stream Deck software will automatically install the plugin
-->

### Download and install locally (Probably coming soon)
*TBD: Currently only installable by building from source.*


## Usage

1. Add any of the receiver control actions to your Stream Deck
2. When first configuring an action:
- The plugin will automatically search for compatible receivers on your network
- Select your receiver from the dropdown list
- Choose the zone you want to control
- Configure action-specific settings

### Available Actions

#### Volume Control
- Use as a button to toggle mute or set specific volume levels
- On Stream Deck+:
- Turn dial to adjust volume
- Push/touch to toggle mute
- Shows current volume level on dial display

#### Power Control
- Toggle power state
- Explicitly set power on or off
- Visual feedback shows current power state

#### Input Source Control
- Quick selection of input sources
- ~~Option to mirror Main Zone source in Zone 2~~ (Coming soon)

## Development

This plugin is built using:
- Node.js 20
- Stream Deck SDK v2
- @elgato/streamdeck SDK
- *Process currently only tested on MacOS 15*

To build from source:

```
npm install
npm run build
npm run pack
```

For development with auto-reload:

```
npm install
npm run watch
```

## Troubleshooting

If your receiver isn't detected:
1. Ensure your receiver has HEOS support and is enabled
2. Verify your receiver is on the same network as your computer
3. Check that no firewall is blocking network discovery
4. Try refreshing the receiver list in the action settings

0 comments on commit 6f5624b

Please sign in to comment.