This page is part of archived documentation for openHAB 3.3. Go to the current stable version

# Rotel Binding

This binding can be used to control a Rotel audio device like a surround processor, a surround receiver, a stereo preamplifier, an integrated amplifier, a CD player or a tuner.

The binding supports different kinds of connections:

  • serial connection,
  • serial over IP connection,
  • IP connection (for models providing a network interface).

The binding supports all kinds of Rotel protocols:

  • HEX protocol,
  • Old ASCII protocol (named v1 in the binding),
  • Recent ASCII protocol (named v2 in the binding).

For users without serial connector on server side, of course you can add a serial to USB adapter.

You don't need to have your Rotel device directly connected to your openHAB server. You can connect it for example to a Raspberry Pi and use ser2net Linux tool (opens new window) to make the serial connection available on LAN (serial over IP).

Recent devices provide a network interface (RJ45 connector). So you can use the device IP to connect to the device, keeping 9590 as default port.

The binding has been tested with a RSP-1066 and a RSP-1570.

# Supported Things

This binding supports the following thing types:

Thing Type Description
a11 Connection to the Rotel A11 integrated amplifier
a12 Connection to the Rotel A12 or A12MKII integrated amplifier
a14 Connection to the Rotel A14 or A14MKII integrated amplifier
cd11 Connection to the Rotel CD11 CD player
cd14 Connection to the Rotel CD14 or CD14MKII CD player
p5 Connection to the Rotel Michi P5 stereo preamplifier
ra11 Connection to the Rotel RA-11 integrated amplifier
ra12 Connection to the Rotel RA-12 integrated amplifier
ra1570 Connection to the Rotel RA-1570 integrated amplifier
ra1572 Connection to the Rotel RA-1572 or RA-1572MKII integrated amplifier
ra1592 Connection to the Rotel RA-1592 or RA-1592MKII integrated amplifier
rap1580 Connection to the Rotel RAP-1580 or RAP-1580MKII surround amplified processor
rc1570 Connection to the Rotel RC-1570 stereo preamplifier
rc1572 Connection to the Rotel RC-1572 or RC-1572MKII stereo preamplifier
rc1590 Connection to the Rotel RC-1590 or RC-1590MKII stereo preamplifier
rcd1570 Connection to the Rotel RCD-1570 CD player
rcd1572 Connection to the Rotel RCD-1572 or RCD-1572MKII CD player
rcx1500 Connection to the Rotel RCX-1500 stereo receiver
rdd1580 Connection to the Rotel RDD-1580 stereo DAC
rdg1520 Connection to the Rotel RDG-1520 tuner
rsp1066 Connection to the Rotel RSP-1066 surround processor
rsp1068 Connection to the Rotel RSP-1068 surround processor
rsp1069 Connection to the Rotel RSP-1069 surround processor
rsp1098 Connection to the Rotel RSP-1098 surround processor
rsp1570 Connection to the Rotel RSP-1570 surround processor
rsp1572 Connection to the Rotel RSP-1572 surround processor
rsp1576 Connection to the Rotel RSP-1576 or RSP-1576MKII surround processor
rsp1582 Connection to the Rotel RSP-1582 surround processor
rsx1055 Connection to the Rotel RSX-1055 surround receiver
rsx1056 Connection to the Rotel RSX-1056 surround receiver
rsx1057 Connection to the Rotel RSX-1057 surround receiver
rsx1058 Connection to the Rotel RSX-1058 surround receiver
rsx1065 Connection to the Rotel RSX-1065 surround receiver
rsx1067 Connection to the Rotel RSX-1067 surround receiver
rsx1550 Connection to the Rotel RSX-1550 surround receiver
rsx1560 Connection to the Rotel RSX-1560 surround receiver
rsx1562 Connection to the Rotel RSX-1562 surround receiver
rt09 Connection to the Rotel RT-09 tuner
rt11 Connection to the Rotel RT-11 tuner
rt1570 Connection to the Rotel RT-1570 tuner
t11 Connection to the Rotel T11 tuner
t14 Connection to the Rotel T14 tuner
x3 Connection to the Rotel Michi X3 integrated amplifier
x5 Connection to the Rotel Michi X5 integrated amplifier

# Discovery

Discovery is not supported. You have to add all things manually.

# Binding Configuration

There are no overall binding configuration settings that need to be set. All settings are through thing configuration parameters.

# Thing Configuration

The thing requires the following configuration parameters:

Parameter Label Parameter ID Description Accepted values
Serial Port serialPort Serial port to use for connecting to the Rotel device
Address host Host name or IP address of the Rotel device (IP connection) or the machine connected to the Rotel device (serial over IP)
Port port Communication port (IP or serial over IP). For IP connection to the Rotel device, keep the default port (9590)
Protocol Version Protocol Choose one of the two protocol versions (depends on your device firmware). Default is ASCII_V2 ASCII_V1 or ASCII_V2
Input Label CD inputLabelCd Label setup for the source CD
Input Label Tuner inputLabelTuner Label setup for the source Tuner
Input Label Tape inputLabelTape Label setup for the source Tape
Input Label USB inputLabelUsb Label setup for the source USB
Input Label Video 1 inputLabelVideo1 Label setup for the source Video 1
Input Label Video 2 inputLabelVideo2 Label setup for the source Video 2
Input Label Video 3 inputLabelVideo3 Label setup for the source Video 3
Input Label Video 4 inputLabelVideo4 Label setup for the source Video 4
Input Label Video 5 inputLabelVideo5 Label setup for the source Video 5
Input Label Video 6 inputLabelVideo6 Label setup for the source Video 6
Input Label Multi Input inputLabelMulti Label setup for the source Multi Input

All things have the following parameters: serialPort, host and port. Some have additional parameters listed in the next table:

Thing Type Parameters available in addition to serialPort, host and port
ra1572 protocol (ASCII_V2 by default); as of firmware V2.65, select V2
ra1592 protocol (ASCII_V2 by default); as of firmware V1.53, select V2
rc1572 protocol (ASCII_V2 by default); as of firmware V2.65, select V2
rc1590 protocol (ASCII_V2 by default); as of firmware V1.40, select V2
rcd1572 protocol (ASCII_V2 by default); as of firmware V2.33, select V2
rsp1066 inputLabelVideo1, inputLabelVideo2, inputLabelVideo3, inputLabelVideo4, inputLabelVideo5
rsp1068 inputLabelCd, inputLabelTuner, inputLabelTape, inputLabelVideo1, inputLabelVideo2, inputLabelVideo3, inputLabelVideo4, inputLabelVideo5
rsp1069 inputLabelCd, inputLabelTuner, inputLabelTape, inputLabelVideo1, inputLabelVideo2, inputLabelVideo3, inputLabelVideo4, inputLabelVideo5
rsp1098 inputLabelCd, inputLabelTuner, inputLabelTape, inputLabelVideo1, inputLabelVideo2, inputLabelVideo3, inputLabelVideo4, inputLabelVideo5
rsp1570 inputLabelCd, inputLabelTuner, inputLabelTape, inputLabelVideo1, inputLabelVideo2, inputLabelVideo3, inputLabelVideo4, inputLabelVideo5, inputLabelMulti
rsp1572 inputLabelCd, inputLabelTuner, inputLabelUsb, inputLabelVideo1, inputLabelVideo2, inputLabelVideo3, inputLabelVideo4, inputLabelVideo5, inputLabelVideo6, inputLabelMulti
rsx1055 inputLabelVideo1, inputLabelVideo2, inputLabelVideo3, inputLabelVideo4, inputLabelVideo5
rsx1056 inputLabelCd, inputLabelTuner, inputLabelTape, inputLabelVideo1, inputLabelVideo2, inputLabelVideo3, inputLabelVideo4, inputLabelVideo5
rsx1057 inputLabelCd, inputLabelTuner, inputLabelTape, inputLabelVideo1, inputLabelVideo2, inputLabelVideo3, inputLabelVideo4, inputLabelVideo5
rsx1058 inputLabelCd, inputLabelTuner, inputLabelTape, inputLabelVideo1, inputLabelVideo2, inputLabelVideo3, inputLabelVideo4, inputLabelVideo5
rsx1065 inputLabelVideo1, inputLabelVideo2, inputLabelVideo3, inputLabelVideo4, inputLabelVideo5
rsx1067 inputLabelCd, inputLabelTuner, inputLabelTape, inputLabelVideo1, inputLabelVideo2, inputLabelVideo3, inputLabelVideo4, inputLabelVideo5
rsx1550 inputLabelCd, inputLabelTuner, inputLabelTape, inputLabelVideo1, inputLabelVideo2, inputLabelVideo3, inputLabelVideo4, inputLabelVideo5, inputLabelMulti
rsx1560 inputLabelCd, inputLabelTuner, inputLabelTape, inputLabelVideo1, inputLabelVideo2, inputLabelVideo3, inputLabelVideo4, inputLabelVideo5, inputLabelMulti
rsx1562 inputLabelCd, inputLabelTuner, inputLabelUsb, inputLabelVideo1, inputLabelVideo2, inputLabelVideo3, inputLabelVideo4, inputLabelVideo5, inputLabelVideo6, inputLabelMulti

Some notes:

  • On Linux, you may get an error stating the serial port cannot be opened when the Rotel binding tries to load. You can get around this by adding the openhab user to the dialout group like this: usermod -a -G dialout openhab.
  • Also on Linux you may have issues with the USB if using two serial USB devices e.g. Rotel and RFXcom. See the general documentation about serial port configuration for more on symlinking the USB ports.
  • Here is an example of ser2net.conf you can use to share your serial port /dev/ttyUSB0 on IP port 4444 using ser2net Linux tool (opens new window) (take care, the baud rate is Rotel device specific):
4444:raw:0:/dev/ttyUSB0:19200 8DATABITS NONE 1STOPBIT

# Channels

The following channels are available:

Channel ID Label Item Type Description Possible values (depends on model)
power, mainZone#power, zone2#power, zone3#power, zone4#power Power Switch Power ON/OFF the equipment or the zone ON, OFF
source, mainZone#source, zone2#source, zone3#source, zone4#source Source Input String Select the source input CD, TUNER, TAPE, VIDEO1, VIDEO2, VIDEO3, VIDEO4, VIDEO5, VIDEO6, VIDEO7, VIDEO8, USB, PCUSB, MULTI, PHONO, BLUETOOTH, AUX, AUX1, AUX2, AUX1_COAX, AUX1_OPTICAL, COAX1, COAX2, COAX3, OPTICAL1, OPTICAL2, OPTICAL3, XLR, RCD, FM, DAB, PLAYFI, IRADIO, NETWORK
mainZone#recordSource Record Source String Select the source to be recorded CD, TUNER, TAPE, VIDEO1, VIDEO2, VIDEO3, VIDEO4, VIDEO5, VIDEO6, USB, MAIN
dsp, mainZone#dsp DSP Mode String Select the DSP mode NONE, STEREO3, STEREO5, STEREO7, STEREO9, STEREO11, MUSIC1, MUSIC2, MUSIC3, MUSIC4, PROLOGIC, PLIICINEMA, PLIIMUSIC, PLIIGAME, PLIIXCINEMA, PLIIXMUSIC, PLIIXGAME, PLIIZ, NEO6MUSIC, NEO6CINEMA, ATMOS, NEURALX, BYPASS
mainZone#volumeUpDown, zone2#volumeUpDown Volume Number Increase or decrease the volume INCREASE, DECREASE, value
volume, mainZone#volume, zone2#volume, zone3#volume, zone4#volume Volume Dimmer Adjust the volume value between 0 and 100
mute, mainZone#mute, zone2#mute, zone3#mute, zone4#mute Mute Switch Mute/unmute the sound ON, OFF
bass, mainZone#bass Bass Adjustment Number Adjust the bass INCREASE, DECREASE, value
treble, mainZone#treble Treble Adjustment Number Adjust the treble INCREASE, DECREASE, value
playControl Playback Control Player Control the playback PLAY, PAUSE, NEXT, PREVIOUS
track Current Track Number The current CD track number
mainZone#line1 Front Panel Line 1 String The first line displayed on the device front panel
mainZone#line2 Front Panel Line 2 String The second line displayed on the device front panel
frequency Current Frequency Number The current frequency (in kHz) for digital source input
brightness Front Panel Display Brightness Dimmer The backlight brightness level (in %) of the device front panel
tcbypass Tone Control Bypass Switch The user's bass-/treble-settings are bypassed ON, OFF
balance Stereo Balance Adjustment Number Adjust the balance INCREASE, DECREASE, value
speakera Speaker-A Adjustment Switch Turn on/off the speaker group A ON, OFF
speakerb Speaker-B Adjustment Switch Turn on/off the speaker group B ON, OFF

Here are the list of channels available for each thing type:

Thing Type Available channels
a11 power, source, volume, mute, bass, treble, brightness, tcbypass, balance, speakera, speakerb
a12 power, source, volume, mute, bass, treble, frequency, brightness, tcbypass, balance, speakera, speakerb
a14 power, source, volume, mute, bass, treble, frequency, brightness, tcbypass, balance, speakera, speakerb
cd11 power, playControl, track, brightness
cd14 power, playControl, track, brightness
p5 power, source, volume, mute, bass, treble, frequency, brightness, tcbypass, balance
ra11 power, source, volume, mute, bass, treble, playControl, frequency, brightness, tcbypass, balance
ra12 power, source, volume, mute, bass, treble, playControl, frequency, brightness, tcbypass, balance
ra1570 power, source, volume, mute, bass, treble, playControl, frequency, brightness, tcbypass, balance, speakera, speakerb
ra1572 power, source, volume, mute, bass, treble, frequency, brightness, tcbypass, balance, speakera, speakerb
ra1592 power, source, volume, mute, bass, treble, frequency, brightness, tcbypass, balance, speakera, speakerb
rap1580 power, source, dsp, volume, mute, brightness
rc1570 power, source, volume, mute, bass, treble, playControl, frequency, brightness, tcbypass, balance
rc1572 power, source, volume, mute, bass, treble, frequency, brightness, tcbypass, balance
rc1590 power, source, volume, mute, bass, treble, frequency, brightness, tcbypass, balance
rcd1570 power, playControl, brightness
rcd1572 power, playControl, track, brightness
rcx1500 power, source, volume, mute, playControl
rdd1580 power, source, playControl, frequency
rdg1520 power, source, playControl
rsp1066 mainZone#power, mainZone#source, mainZone#recordSource, mainZone#dsp, mainZone#volumeUpDown, mainZone#mute, mainZone#bass, mainZone#treble, mainZone#line1, zone2#power, zone2#source, zone2#volumeUpDown
rsp1068 mainZone#power, mainZone#source, mainZone#recordSource, mainZone#dsp, mainZone#volume, mainZone#mute, mainZone#bass, mainZone#treble, mainZone#line1, mainZone#line2, zone2#power, zone2#source, zone2#volume, zone2#mute, zone3#power, zone3#source, zone3#volume, zone3#mute, zone4#power, zone4#source, zone4#volume, zone4#mute
rsp1069 mainZone#power, mainZone#source, mainZone#recordSource, mainZone#dsp, mainZone#volume, mainZone#mute, mainZone#bass, mainZone#treble, mainZone#line1, mainZone#line2, zone2#power, zone2#source, zone2#volume, zone2#mute, zone3#power, zone3#source, zone3#volume, zone3#mute, zone4#power, zone4#source, zone4#volume, zone4#mute
rsp1098 mainZone#power, mainZone#source, mainZone#recordSource, mainZone#dsp, mainZone#volume, mainZone#mute, mainZone#bass, mainZone#treble, mainZone#line1, zone2#power, zone2#source, zone2#volume, zone2#mute
rsp1570 mainZone#power, mainZone#source, mainZone#recordSource, mainZone#dsp, mainZone#volume, mainZone#mute, mainZone#bass, mainZone#treble, mainZone#line1, mainZone#line2, zone2#power, zone2#source, zone2#volume, zone2#mute, zone3#power, zone3#source, zone3#volume, zone3#mute, zone4#power, zone4#source, zone4#volume, zone4#mute
rsp1572 mainZone#power, mainZone#source, mainZone#recordSource, mainZone#dsp, mainZone#volume, mainZone#mute, mainZone#line1, mainZone#line2, zone2#power, zone2#source, zone2#volume, zone2#mute, zone3#power, zone3#source, zone3#volume, zone3#mute, zone4#power, zone4#source, zone4#volume, zone4#mute
rsp1576 power, source, dsp, volume, mute, brightness
rsp1582 power, source, dsp, volume, mute, brightness
rsx1055 mainZone#power, mainZone#source, mainZone#recordSource, mainZone#dsp, mainZone#volumeUpDown, mainZone#mute, mainZone#bass, mainZone#treble, mainZone#line1, zone2#power, zone2#source, zone2#volumeUpDown
rsx1056 mainZone#power, mainZone#source, mainZone#recordSource, mainZone#dsp, mainZone#volume, mainZone#mute, mainZone#bass, mainZone#treble, mainZone#line1, zone2#power, zone2#source, zone2#volume, zone2#mute
rsx1057 mainZone#power, mainZone#source, mainZone#recordSource, mainZone#dsp, mainZone#volume, mainZone#mute, mainZone#bass, mainZone#treble, mainZone#line1, zone2#power, zone2#source, zone2#volume, zone2#mute
rsx1058 mainZone#power, mainZone#source, mainZone#recordSource, mainZone#dsp, mainZone#volume, mainZone#mute, mainZone#bass, mainZone#treble, mainZone#line1, zone2#power, zone2#source, zone2#volume, zone2#mute, zone3#power, zone3#source, zone3#volume, zone3#mute, zone4#power, zone4#source, zone4#volume, zone4#mute
rsx1065 mainZone#power, mainZone#source, mainZone#recordSource, mainZone#dsp, mainZone#volumeUpDown, mainZone#mute, mainZone#bass, mainZone#treble, mainZone#line1, mainZone#line2, zone2#power, zone2#source, zone2#volumeUpDown
rsx1067 mainZone#power, mainZone#source, mainZone#recordSource, mainZone#dsp, mainZone#volume, mainZone#mute, mainZone#bass, mainZone#treble, mainZone#line1, mainZone#line2, zone2#power, zone2#source, zone2#volume, zone2#mute
rsx1550 mainZone#power, mainZone#source, mainZone#recordSource, mainZone#dsp, mainZone#volume, mainZone#mute, mainZone#bass, mainZone#treble, mainZone#line1, zone2#power, zone2#source, zone2#volume, zone2#mute, zone3#power, zone3#source, zone3#volume, zone3#mute, zone4#power, zone4#source, zone4#volume, zone4#mute
rsx1560 mainZone#power, mainZone#source, mainZone#recordSource, mainZone#dsp, mainZone#volume, mainZone#mute, mainZone#bass, mainZone#treble, mainZone#line1, mainZone#line2, zone2#power, zone2#source, zone2#volume, zone2#mute, zone3#power, zone3#source, zone3#volume, zone3#mute, zone4#power, zone4#source, zone4#volume, zone4#mute
rsx1562 mainZone#power, mainZone#source, mainZone#recordSource, mainZone#dsp, mainZone#volume, mainZone#mute, mainZone#line1, mainZone#line2, zone2#power, zone2#source, zone2#volume, zone2#mute, zone3#power, zone3#source, zone3#volume, zone3#mute, zone4#power, zone4#source, zone4#volume, zone4#mute
rt09 power, source, playControl, brightness
rt11 power, source, brightness
rt1570 power, source, brightness
t11 power, source, brightness
t14 power, source, brightness
x3 power, source, volume, mute, bass, treble, frequency, brightness, tcbypass, balance
x5 power, source, volume, mute, bass, treble, frequency, brightness, tcbypass, balance

# Full Example

example.things using serial connection:

Thing rotel:rsp1066:preamp "RSP-1066" [ serialPort="COM1", inputLabelVideo1="VID 1", inputLabelVideo2="VID 2", inputLabelVideo3="VID 3", inputLabelVideo4="VID 4", inputLabelVideo5="VID 5" ]

Thing rotel:rsp1570:preamp "RSP-1570" [ serialPort="COM2" ]

Thing rotel:ra1592:preamp "RA-1592" [ serialPort="COM3" ]

Thing rotel:cd14:cd "CD14" [ serialPort="COM4" ]

Thing rotel:a14:amp "A14" [ serialPort="/dev/ttyUSB0" ]

example.things using serial over IP connection:

Thing rotel:rsp1066:preamp "RSP-1066" [ host="192.168.0.200", port=3000, inputLabelVideo1="VID 1", inputLabelVideo2="VID 2", inputLabelVideo3="VID 3", inputLabelVideo4="VID 4", inputLabelVideo5="VID 5" ]

Thing rotel:rsp1570:preamp "RSP-1570" [ host="192.168.0.201", port=3000, inputLabelCd="CD", inputLabelTuner="TUNER", inputLabelTape="TAPE", inputLabelVideo1="VIDEO 1", inputLabelVideo2="VIDEO 2", inputLabelVideo3="VIDEO 3", inputLabelVideo4="VIDEO 4", inputLabelVideo5="VIDEO 5", inputLabelMulti="MULTI" ]

Thing rotel:ra1592:preamp "RA-1592" [ host="192.168.0.202", port=3000, protocol="ASCII_V1" ]

Thing rotel:cd14:cd "CD14" [ host="192.168.0.203", port=3000 ]

example.items:

Switch preamp_power "Power" { channel="rotel:rsp1066:preamp:mainZone#power" }
String preamp_source "Source Input [%s]" { channel="rotel:rsp1066:preamp:mainZone#source" }
String preamp_rec "Record Source [%s]" { channel="rotel:rsp1066:preamp:mainZone#recordSource" }
String preamp_dsp "DSP [%s]" { channel="rotel:rsp1066:preamp:mainZone#dsp" }
Number preamp_volume "Volume [%d]" { channel="rotel:rsp1066:preamp:mainZone#volumeUpDown" }
Switch preamp_mute "Mute" { channel="rotel:rsp1066:preamp:mainZone#mute" }
Number preamp_bass "Bass Adjustment [%d]" { channel="rotel:rsp1066:preamp:mainZone#bass" }
Number preamp_treble "Treble Adjustment [%d]" { channel="rotel:rsp1066:preamp:mainZone#treble" }
String preamp_panel_display "Display [%s]" { channel="rotel:rsp1066:preamp:mainZone#line1" }
Switch preamp_power_zone2 "Zone 2 Power" { channel="rotel:rsp1066:preamp:zone2#power" }
String preamp_source_zone2 "Zone 2 Source Input [%s]" { channel="rotel:rsp1066:preamp:zone2#source" }
Number preamp_volume_zone2 "Zone 2 Volume [%d]" { channel="rotel:rsp1066:preamp:zone2#volumeUpDown" }

Switch preamp2_power "Power" { channel="rotel:rsp1570:preamp:mainZone#power" }
String preamp2_source "Source Input [%s]" { channel="rotel:rsp1570:preamp:mainZone#source" }
String preamp2_rec "Record Source [%s]" { channel="rotel:rsp1570:preamp:mainZone#recordSource" }
String preamp2_dsp "DSP [%s]" { channel="rotel:rsp1570:preamp:mainZone#dsp" }
Dimmer preamp2_volume "Volume [%d %%]" { channel="rotel:rsp1570:preamp:mainZone#volume" }
Switch preamp2_mute "Mute" { channel="rotel:rsp1570:preamp:mainZone#mute" }
Number preamp2_bass "Bass Adjustment [%d]" { channel="rotel:rsp1570:preamp:mainZone#bass" }
Number preamp2_treble "Treble Adjustment [%d]" { channel="rotel:rsp1570:preamp:mainZone#treble" }
String preamp2_panel_line1 "Display Line1 [%s]" { channel="rotel:rsp1570:preamp:mainZone#line1" }
String preamp2_panel_line2 "Display Line2 [%s]" { channel="rotel:rsp1570:preamp:mainZone#line2" }
Switch preamp2_power_zone2 "Zone 2 Power" { channel="rotel:rsp1570:preamp:zone2#power" }
String preamp2_source_zone2 "Zone 2 Source Input [%s]" { channel="rotel:rsp1570:preamp:zone2#source" }
Dimmer preamp2_volume_zone2 "Zone 2 Volume [%d %%]" { channel="rotel:rsp1570:preamp:zone2#volume" }
Switch preamp2_mute_zone2 "Zone 2 Mute" { channel="rotel:rsp1570:preamp:zone2#mute" }
Switch preamp2_power_zone3 "Zone 3 Power" { channel="rotel:rsp1570:preamp:zone3#power" }
String preamp2_source_zone3 "Zone 3 Source Input [%s]" { channel="rotel:rsp1570:preamp:zone3#source" }
Dimmer preamp2_volume_zone3 "Zone 3 Volume [%d %%]" { channel="rotel:rsp1570:preamp:zone3#volume" }
Switch preamp2_mute_zone3 "Zone 3 Mute" { channel="rotel:rsp1570:preamp:zone3#mute" }
Switch preamp2_power_zone4 "Zone 4 Power" { channel="rotel:rsp1570:preamp:zone4#power" }
String preamp2_source_zone4 "Zone 4 Source Input [%s]" { channel="rotel:rsp1570:preamp:zone4#source" }
Dimmer preamp2_volume_zone4 "Zone 4 Volume [%d %%]" { channel="rotel:rsp1570:preamp:zone4#volume" }
Switch preamp2_mute_zone4 "Zone 4 Mute" { channel="rotel:rsp1570:preamp:zone4#mute" }

Switch amp_power "Power" { channel="rotel:ra1592:preamp:power" }
String amp_source "Source Input [%s]" { channel="rotel:ra1592:preamp:source" }
Dimmer amp_volume "Volume [%d %%]" { channel="rotel:ra1592:preamp:volume" }
Switch amp_mute "Mute" { channel="rotel:ra1592:preamp:mute" }
Number amp_bass "Bass Adjustment [%d]" { channel="rotel:ra1592:preamp:bass" }
Number amp_treble "Treble Adjustment [%d]" { channel="rotel:ra1592:preamp:treble" }
Dimmer amp_brightness "Display brightness" { channel="rotel:ra1592:preamp:brightness" }

Switch amp_bypass "TCBypass" { channel="rotel:a14:amp:tcbypass" }
Number amp_balance "Balance Adjustment [%d]" { channel="rotel:a14:amp:balance" }
Switch amp_speakera "Speaker A" { channel="rotel:a14:amp:speakera" }
Switch amp_speakerb "Speaker B" { channel="rotel:a14:amp:speakerb" }

Switch cd_power "Power" { channel="rotel:cd14:cd:power" }
Player cd_control "Playback" { channel="rotel:cd14:cd:power" }
Number cd_track "Track [%d]" { channel="rotel:cd14:cd:power" }
Dimmer cd_brightness "Display brightness" { channel="rotel:cd14:cd:brightness" }

example.sitemap:

Switch item=preamp_power
Selection item=preamp_source
Selection item=preamp_rec
Selection item=preamp_dsp
Setpoint item=preamp_volume minValue=0 maxValue=90
Switch item=preamp_mute
Setpoint item=preamp_bass minValue=-12 maxValue=12 step=2
Setpoint item=preamp_treble minValue=-12 maxValue=12 step=2
Text item=preamp_panel_display
Switch item=preamp_power_zone2
Selection item=preamp_source_zone2

Switch item=preamp2_power
Selection item=preamp2_source
Selection item=preamp2_rec
Selection item=preamp2_dsp
Slider item=preamp2_volume
Switch item=preamp2_mute
Setpoint item=preamp2_bass minValue=-6 maxValue=6
Setpoint item=preamp2_treble minValue=-6 maxValue=6
Text item=preamp2_panel_line1
Text item=preamp2_panel_line2
Switch item=preamp2_power_zone2
Selection item=preamp2_source_zone2
Slider item=preamp2_volume_zone2
Switch item=preamp2_mute_zone2
Switch item=preamp2_power_zone3
Selection item=preamp2_source_zone3
Slider item=preamp2_volume_zone3
Switch item=preamp2_mute_zone3
Switch item=preamp2_power_zone4
Selection item=preamp2_source_zone4
Slider item=preamp2_volume_zone4
Switch item=preamp2_mute_zone4

Switch item=amp_power
Selection item=amp_source
Slider item=amp_volume
Switch item=amp_mute
Slider item=amp_bass minValue=-10 maxValue=10
Slider item=amp_treble minValue=-10 maxValue=10
Slider item=amp_brightness

Switch item=cd_power
Default item=cd_control
Text item=cd_track
Slider item=cd_brightness