Install AVR 3808 telnet

From xPL
Jump to: navigation, search

The Denon AV receivers can be controlled via a serial port or via Ethernet.

Install xPL audio-video controller

Install CPAN Net::Telnet:

su
perl -MFile::Find=find -MFile::Spec::Functions -Tlw -e 'find { wanted => sub { print canonpath $_ if /\.pm\z/ }, no_chdir => 1 }, @INC' 2> /dev/null | grep -i telnet
apt install libnet-telnet-perl

Download the AVR controller script. Move it to xPL scripts directory:

su
SCRIPTS_BASE_DIR=/home/control/Documents/Controls
wget http://www.dspc.ch/xPL/Downloads/xpl-avController-DenonAVR-telnet.pl -C $SCRIPTS_BASE_DIR
chown control:users $SCRIPTS_BASE_DIR/*.pl
chmod 775 $SCRIPTS_BASE_DIR/*.pl

Monitor xPL messages:

su control
SCRIPTS_BASE_DIR=/home/control/Documents/Controls
$SCRIPTS_BASE_DIR/xpl-monitor.pl -vfd

In a second window, test the AVR controller:

su control
SCRIPTS_BASE_DIR=/home/control/Documents/Controls
$SCRIPTS_BASE_DIR/xpl-avController-DenonAVR-telnet.pl -v -n loungeAmp

In a 3rd window, test the commands:

su control
SCRIPTS_BASE_DIR=/home/control/Documents/Controls
$SCRIPTS_BASE_DIR/xpl-send.pl -d dspc-ampDenon.loungeAmp -c media.basic mute=on
$SCRIPTS_BASE_DIR/xpl-send.pl -d dspc-ampDenon.loungeAmp -c media.basic mute=off
$SCRIPTS_BASE_DIR/xpl-send.pl -d dspc-ampDenon.loungeAmp -c media.basic audio=dvr
$SCRIPTS_BASE_DIR/xpl-send.pl -d dspc-ampDenon.loungeAmp -c media.basic volume=50

Launch the script at startup

The xPL AV controller is to be launched after the xPL hub.

Debian with SystemD

On Debian with systemd (such as Raspbian or Ubuntu), the scripts can be defined as services.

Edit /lib/systemd/system/xpl-loungeAvController.service:

[Unit]
Description=xPL lounge AV controller
After=xpl-hub.service

[Service]
Type=simple
User=control
Group=users
ExecStart=/home/control/Documents/Controls/xpl-avController-DenonAVR-telnet.pl -n loungeAmp
Restart=always

[Install]
WantedBy=multi-user.target

Activate the service:

su
systemctl enable xpl-loungeAvController.service
service xpl-loungeAvController start

Reboot and check:

ps aux | grep -v grep | grep -i xpl
ps ax | grep -i xpl | grep -v grep | sed 's/.*\/Controls\///'
systemctl list-units --type=service --state=running | grep xpl
service xpl-loungeAvController status

Ubuntu with Upstart

On Ubuntu, the AV controller starts-up once xpl-hub_started has been emitted.

Edit /etc/init/xpl-loungeAvController.conf:

# xPL Denon AVR controller
#
description "xPL lounge audio-video controller"
version     "1.0"
author      "Francois Corthay"

#-------------------------------------------------------------------------------
# Configuration variables
#
env SCRIPTS_DIR='/home/control/Documents/Controls'
env SCRIPT_NAME='xpl-avController-DenonAVR-telnet.pl'
env PARAMETERS='-n loungeAmp'

#-------------------------------------------------------------------------------
# Start and stop conditions
#
start on xpl-hub_started
stop on shutdown
respawn
setuid control
setgid users
 
#-------------------------------------------------------------------------------
# Start daemon
#
exec $SCRIPTS_DIR/$SCRIPT_NAME $PARAMETERS

Start the screen controller and test it:

su root
service xpl-loungeAvController start
service xpl-loungeAvController status
initctl list | sort | grep xpl