SkillHub

devialet

v1.0.0

Control Devialet Phantom speakers via HTTP API. Use for: play/pause, volume control, mute/unmute, source selection, and speaker status. Requires DOS 2.14+ firmware. Works with Phantom I, Phantom II, Phantom Reactor, and Dialog.

Sourced from ClawHub, Authored by JGM2025

Installation

Please help me install the skill `devialet` from SkillHub official store. npx skills add JGM2025/devialet

Devialet Speaker Control

Control Devialet speakers (Phantom, Mania) over your local network with Spotify integration.

Natural Language Commands

When the user says things like: - "Play Nines - Lick Shots on my speaker" → Search and play via Spotify - "Set speaker volume to 40" → Adjust volume - "Pause the music" → Pause playback - "What's playing?" → Check current track and status

Setup

  1. Find your speaker's IP address (check router or Devialet app)
  2. Set the DEVIALET_IP environment variable, or add to TOOLS.md: ``` ## Devialet Speaker
  3. IP: 192.168.x.x ```
  4. For Spotify integration: install Spotify desktop app, playerctl, and xdotool

Quick Usage

# Set your speaker IP
export DEVIALET_IP="192.168.x.x"

# Play a song (search and play)
./scripts/play-on-devialet.sh "Drake - God's Plan"

# Play by Spotify URI
./scripts/play-on-devialet.sh spotify:track:4YZNJOA9d8wiO5ELNY5WxC

# Pause / Resume
./scripts/play-on-devialet.sh pause
./scripts/play-on-devialet.sh resume

# Volume
./scripts/play-on-devialet.sh volume 50

# Status
./scripts/play-on-devialet.sh status

Requirements

  • Devialet speaker with DOS 2.14+ or SDOS 1.3+ firmware
  • Spotify integration (optional):
  • Spotify desktop app running and logged in
  • playerctl and xdotool installed (sudo apt install playerctl xdotool)
  • Speaker set as Spotify Connect device (select once in Spotify app)

How It Works

  1. Searches for track via Spotify desktop app (D-Bus/MPRIS)
  2. Opens track URI in Spotify
  3. Spotify Connect streams to Devialet
  4. Devialet API controls playback/volume

Direct Devialet API

For non-Spotify control (replace $DEVIALET_IP with your speaker's IP):

# Volume (0-100)
curl -X POST -H "Content-Type: application/json" 
  -d '{"volume": 50}' 
  "http://$DEVIALET_IP/ipcontrol/v1/systems/current/sources/current/soundControl/volume"

# Play/Pause
curl -X POST "http://$DEVIALET_IP/ipcontrol/v1/groups/current/sources/current/playback/play"
curl -X POST "http://$DEVIALET_IP/ipcontrol/v1/groups/current/sources/current/playback/pause"

# Mute/Unmute
curl -X POST "http://$DEVIALET_IP/ipcontrol/v1/groups/current/sources/current/playback/mute"
curl -X POST "http://$DEVIALET_IP/ipcontrol/v1/groups/current/sources/current/playback/unmute"

# Get status
curl -s "http://$DEVIALET_IP/ipcontrol/v1/devices/current" | jq .

Supported Models

  • Phantom I, Phantom II, Phantom Reactor (DOS 2.14+)
  • Dialog
  • Mania (SDOS 1.3+)

API Reference

See references/api.md for complete endpoint documentation.