Pepperdash.Essentials.Plugins.Bluesound.Api 1.0.0

dotnet add package Pepperdash.Essentials.Plugins.Bluesound.Api --version 1.0.0
                    
NuGet\Install-Package Pepperdash.Essentials.Plugins.Bluesound.Api -Version 1.0.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Pepperdash.Essentials.Plugins.Bluesound.Api" Version="1.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Pepperdash.Essentials.Plugins.Bluesound.Api" Version="1.0.0" />
                    
Directory.Packages.props
<PackageReference Include="Pepperdash.Essentials.Plugins.Bluesound.Api" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Pepperdash.Essentials.Plugins.Bluesound.Api --version 1.0.0
                    
#r "nuget: Pepperdash.Essentials.Plugins.Bluesound.Api, 1.0.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Pepperdash.Essentials.Plugins.Bluesound.Api@1.0.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Pepperdash.Essentials.Plugins.Bluesound.Api&version=1.0.0
                    
Install as a Cake Addin
#tool nuget:?package=Pepperdash.Essentials.Plugins.Bluesound.Api&version=1.0.0
                    
Install as a Cake Tool

PepperDash Essentials Plugin Logo

Bluesound BluOS API Essentials Plugin (c) 2026

License

Provided under MIT license

Overview

PepperDash Essentials plugin for Bluesound BluOS network audio devices. Communicates with the BluOS Custom Integration API over HTTP (port 11000) to provide music service/input selection, preset/playlist management, transport controls, and volume control of the local zone.

Core feature set:

  • Select service or physical input from /Browse root menu (paginated, up to 10/page)
  • List and select saved presets/playlists (paginated, up to 10/page)
  • Play, pause, next track, previous track
  • Shuffle toggle with feedback
  • Volume control — local zone (set, up, down with feedback)
  • Now-playing feedback: track name, artist, album, album art URL
  • Online/offline detection

Device type name: bluesoundapi

Minimum Essentials version: 2.24.0


Dependencies

  • PepperDash Essentials ≥ 2.24.0 (referenced via NuGet as PepperDashEssentials)
  • Target framework: .NET 4.7.2 (Crestron 4-Series)

Device Configuration

Add a device entry to your Essentials configuration JSON. The type must be bluesoundapi. The control object uses tcpIp method with the Bluesound device's IP address and port 11000.

{
  "key": "bluesound-1",
  "name": "Bluesound Node",
  "type": "bluesoundapi",
  "group": "audioPlayer",
  "properties": {
    "control": {
      "method": "tcpIp",
      "tcpSshProperties": {
        "address": "192.168.1.100",
        "port": 11000
      }
    },
    "pollTimeMs": 30000,
    "warningTimeoutMs": 60000,
    "errorTimeoutMs": 120000,
    "volumeStepPercent": 2
  }
}
Property Type Default Description
control.tcpSshProperties.address string — IP address of the Bluesound device
control.tcpSshProperties.port int 11000 BluOS HTTP API port
pollTimeMs long 30000 How often (ms) to poll /Status
warningTimeoutMs long 60000 Unused (reserved for future monitor)
errorTimeoutMs long 120000 Unused (reserved for future monitor)
volumeStepPercent int 2 Step size for VolumeUp/VolumeDown (1–10)
defaultService string — Pin the browse root to a preferred service name (e.g. "SoundMachine"). The plugin auto-navigates into this service on load and constrains Home/Back navigation to its root level.

Bridge Configuration

Add an EISC bridge entry and reference the device key.

{
  "key": "eisc-bluesound",
  "name": "EISC Bluesound",
  "type": "eiscApiAdvanced",
  "group": "api",
  "properties": {
    "control": {
      "method": "ipidTcp",
      "ipid": "A0",
      "tcpSshProperties": {
        "address": "127.0.0.2",
        "port": 0
      }
    },
    "devices": [
      {
        "deviceKey": "bluesound-1",
        "joinStart": 1
      }
    ]
  }
}

The joinStart value offsets all join numbers in the table below.
With joinStart: 1 the join numbers are as listed. With joinStart: 101 add 100 to each join number.


Join Map

Digital Joins

Join Name Direction Description
1 IsOnline To SIMPL High when device is reachable
2 Play From SIMPL Press to resume playback
2 IsPlaying To SIMPL High when state is play or stream
3 Pause From SIMPL Press to pause playback
3 IsPaused To SIMPL High when state is pause
4 ShuffleState To/From SIMPL FB = current shuffle state · Press = toggle shuffle
5 ServiceHomePageVisible To SIMPL High when not at root browse level — shows Home button
5 NextTrack From SIMPL Press to skip to next track
6 ServiceBackPageVisible To SIMPL High when not at root browse level — shows Back button
6 PreviousTrack From SIMPL Press to go to previous track
7 VolumeUp From SIMPL Press to increment volume by step
8 VolumeDown From SIMPL Press to decrement volume by step
9 PollServiceList From SIMPL Press to re-poll the service/input list
10 PollPresetList From SIMPL Press to re-poll the preset list
11 ServiceHomePage From SIMPL Return service browse to root level
12 ServiceNextPage From SIMPL Advance service list to next page
12 ServiceNextPageVisible To SIMPL High when a next service page exists
13 ServicePreviousPage From SIMPL Go to previous service list page
13 ServicePreviousPageVisible To SIMPL High when a previous service page exists
14 ServiceBack From SIMPL Go back one level in service browse hierarchy
16 PresetHomePage From SIMPL Reset preset list to first page
17 PresetNextPage From SIMPL Advance preset list to next page
17 PresetNextPageVisible To SIMPL High when a next preset page exists
18 PresetPreviousPage From SIMPL Go to previous preset list page
18 PresetPreviousPageVisible To SIMPL High when a previous preset page exists
19 PresetBack From SIMPL Reset preset list to first page (alias for PresetHomePage)
21–30 SelectServices From SIMPL Press join 21+n to select service slot n (0-based) on current page
31–40 SelectPresets From SIMPL Press join 31+n to select preset slot n (0-based) on current page

Analog Joins

Join Name Direction Description
1 Status To SIMPL 0 = offline · 2 = online
2 VolumeLevel To/From SIMPL FB = current volume (0–100) · Set = target volume (0–100)
3 ServicePageNumber To SIMPL Current service list page number (1-based)
4 PresetPageNumber To SIMPL Current preset list page number (1-based)

Serial Joins

Join Name Direction Description
1 DeviceName To SIMPL Essentials device name
2 CurrentTrackName To SIMPL Now-playing track title
3 CurrentArtist To SIMPL Now-playing artist
4 CurrentAlbum To SIMPL Now-playing album
5 AlbumArtUrl To SIMPL Album art absolute URL (relative paths resolved to http://ip:port/...)
6 CurrentServicesMenu To SIMPL Current services menu name ("Home" at root, service name when browsing)
21–30 ServiceNames To SIMPL Service/input names for current page (slots 1–10)
31–40 PresetNames To SIMPL Preset names for current page (slots 1–10)

References


Build

cd src
dotnet build epi-bluesound-api.4Series.csproj

The build outputs a .cplz package in /output/ ready for deployment to a 4-Series processor.

Generating NuGet Package

A NuGet package is automatically generated on build. To modify package metadata, edit the following in the .csproj:

  1. PackageId — NuGet package name
  2. PackageProjectUrl — should match this repo URL
  3. AssemblyTitle — DLL file name shown on processor
Product Compatible and additional computed target framework versions.
.NET Framework net472 is compatible.  net48 was computed.  net481 was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.0 91 8/27/2026
1.0.0-request-testing.12 58 8/27/2026
1.0.0-request-testing.11 63 8/27/2026
1.0.0-request-testing.10 62 8/27/2026
1.0.0-request-testing.9 62 8/27/2026
1.0.0-request-testing.8 59 8/27/2026
1.0.0-request-testing.7 65 8/27/2026
1.0.0-request-testing.6 60 8/27/2026
1.0.0-request-testing.5 61 8/27/2026
1.0.0-request-testing.4 59 8/27/2026
1.0.0-request-testing.3 60 8/27/2026
1.0.0-request-testing.2 60 8/27/2026
1.0.0-request-testing.1 62 8/27/2026
1.0.0-initial-development.10 73 5/1/2026
1.0.0-initial-development.9 61 5/1/2026
1.0.0-initial-development.8 58 5/1/2026
1.0.0-initial-development.7 63 5/1/2026
1.0.0-initial-development.6 60 5/1/2026
1.0.0-initial-development.5 65 5/1/2026
1.0.0-initial-development.4 70 5/1/2026
Loading failed