[yamahamusiccast] Initial contribution (#11880)
* Pull Request OH3 Signed-off-by: Lennert Coopman <github@coopman.org> * Pull Request OH3 Signed-off-by: Lennert Coopman <github@coopman.org> * Pull Request OH3 Signed-off-by: Lennert Coopman <github@coopman.org> * Pull Request OH3 Signed-off-by: Lennert Coopman <github@coopman.org> * Pull Request OH3 Signed-off-by: Lennert Coopman <github@coopman.org> * Pull Request OH3 Signed-off-by: Lennert Coopman <github@coopman.org> * Pull Request OH3 Signed-off-by: Lennert Coopman <github@coopman.org> * Pull Request OH3 Signed-off-by: Lennert Coopman <github@coopman.org>
This commit is contained in:
168
bundles/org.openhab.binding.yamahamusiccast/README.md
Normal file
168
bundles/org.openhab.binding.yamahamusiccast/README.md
Normal file
@@ -0,0 +1,168 @@
|
||||
# Yamaha MusicCast Binding
|
||||
|
||||
Binding to control Yamaha models via their MusicCast protocol (aka Yamaha Extended Control).
|
||||
With support for 4 zones : main, zone2, zone3, zone4. Main is always present. Zone2, Zone3, Zone4 are read from the model.
|
||||
|
||||
UDP events are captured to reflect changes in the binding for
|
||||
|
||||
- Power
|
||||
- Mute
|
||||
- Volume
|
||||
- Input
|
||||
- Presets
|
||||
- Sleep
|
||||
- Artist
|
||||
- Track
|
||||
- Album
|
||||
- Album Art
|
||||
- Repeat
|
||||
- Shuffle
|
||||
- Play Time
|
||||
- Total Time
|
||||
- Musiccast Link
|
||||
|
||||
## Supported Things
|
||||
|
||||
Each model (AV Receiver, ...) is a Thing (Thing Type ID: yamahamusiccast:device). Things are linked to a Bridge (Thing Type ID: yamahamusiccast:bridge) for receiving UDP events.
|
||||
|
||||
## Discovery
|
||||
|
||||
No auto discovery
|
||||
|
||||
## Thing Configuration
|
||||
|
||||
| Parameter | Type | Description | Advanced | Required |
|
||||
|--------------------|---------|---------------------------------------------------------|----------|---------------|
|
||||
| host | String | IP address of the Yamaha model (AVR, ...) | false | true |
|
||||
| syncVolume | Boolean | Sync volume across linked models (default=false) | false | false |
|
||||
| defaultAfterMCLink | String | Default Input value for client when MC Link is broken | false | false |
|
||||
|
||||
Default value for *defaultAfterMCLink* is *NET RADIO* as most of the models have this on board.
|
||||
|
||||
## Channels
|
||||
|
||||
| channel | type | description |
|
||||
|----------------|--------|---------------------------------------------------------------------|
|
||||
| power | Switch | Power ON/OFF |
|
||||
| mute | Switch | Mute ON/OFF |
|
||||
| volume | Dimmer | Volume as % (recalculated based on Max Volume Model) |
|
||||
| volumeAbs | Number | Volume as absolute value |
|
||||
| input | String | See below for list |
|
||||
| soundProgram | String | See below for list |
|
||||
| selectPreset | String | Select Netradio/USB preset (fetched from Model) |
|
||||
| sleep | Number | Fixed values for Sleep : 0/30/60/90/120 in minutes |
|
||||
| recallScene | Number | Select a scene (8 defaults scenes are foreseen) |
|
||||
| player | Player | PLAY/PAUSE/NEXT/PREVIOUS/REWIND/FASTFORWARD |
|
||||
| artist | String | Artist |
|
||||
| track | String | Track |
|
||||
| album | String | Album |
|
||||
| albumArt | Image | Album Art |
|
||||
| repeat | String | Toggle Repeat. Available values: Off, One, All |
|
||||
| shuffle | String | Toggle Shuffle. Available values: Off, On, Songs, Album |
|
||||
| playTime | String | Play time of current selection: radio, song, track, ... |
|
||||
| totalTime | String | Total time of current selection: radio, song, track, ... |
|
||||
| mclinkStatus | String | Select your Musiccast Server or set to Standalone, Server or Client |
|
||||
|
||||
|
||||
| Zones | description |
|
||||
|----------------------|------------------------------------------------------|
|
||||
| zone1-4 | Zone 1 to 4 to control Power, Volume, ... |
|
||||
| playerControls | Separate zone for Play, Pause, ... |
|
||||
|
||||
## Input List
|
||||
|
||||
Firmware v1
|
||||
|
||||
cd / tuner / multi_ch / phono / hdmi1 / hdmi2 / hdmi3 / hdmi4 / hdmi5 / hdmi6 / hdmi7 /
|
||||
hdmi8 / hdmi / av1 / av2 / av3 / av4 / av5 / av6 / av7 / v_aux / aux1 / aux2 / aux / audio1 /
|
||||
audio2 / audio3 / audio4 / audio_cd / audio / optical1 / optical2 / optical / coaxial1 / coaxial2 /
|
||||
coaxial / digital1 / digital2 / digital / line1 / line2 / line3 / line_cd / analog / tv / bd_dvd /
|
||||
usb_dac / usb / bluetooth / server / net_radio / rhapsody / napster / pandora / siriusxm /
|
||||
spotify / juke / airplay / radiko / qobuz / mc_link / main_sync / none
|
||||
|
||||
Firmware v2
|
||||
|
||||
cd / tuner / multi_ch / phono / hdmi1 / hdmi2 / hdmi3 / hdmi4 / hdmi5 / hdmi6 / hdmi7 /
|
||||
hdmi8 / hdmi / av1 / av2 / av3 / av4 / av5 / av6 / av7 / v_aux / aux1 / aux2 / aux / audio1 /
|
||||
audio2 / audio3 / audio4 / **audio5** / audio_cd / audio / optical1 / optical2 / optical / coaxial1 / coaxial2 /
|
||||
coaxial / digital1 / digital2 / digital / line1 / line2 / line3 / line_cd / analog / tv / bd_dvd /
|
||||
usb_dac / usb / bluetooth / server / net_radio / ~~rhapsody~~ /napster / pandora / siriusxm /
|
||||
spotify / juke / airplay / radiko / qobuz / **tidal** / **deezer** / mc_link / main_sync / none
|
||||
|
||||
## Sound Program
|
||||
|
||||
munich_a / munich_b / munich / frankfurt / stuttgart / vienna / amsterdam / usa_a / usa_b /
|
||||
tokyo / freiburg / royaumont / chamber / concert / village_gate / village_vanguard /
|
||||
warehouse_loft / cellar_club / jazz_club / roxy_theatre / bottom_line / arena / sports /
|
||||
action_game / roleplaying_game / game / music_video / music / recital_opera / pavilion /
|
||||
disco / standard / spectacle / sci-fi / adventure / drama / talk_show / tv_program /
|
||||
mono_movie / movie / enhanced / 2ch_stereo / 5ch_stereo / 7ch_stereo / 9ch_stereo /
|
||||
11ch_stereo / stereo / surr_decoder / my_surround / target / straight / off
|
||||
|
||||
## Full Example
|
||||
|
||||
### Bridge & Thing(s)
|
||||
|
||||
```
|
||||
Bridge yamahamusiccast:bridge:virtual "YXC Bridge" {
|
||||
Thing yamahamusiccast:device:Living "YXC Living" [host="1.2.3.4"]
|
||||
}
|
||||
```
|
||||
|
||||
### Basic setup
|
||||
|
||||
```
|
||||
Switch YamahaPower "" {channel="yamahamusiccast:device:Living:main#power"}
|
||||
Switch YamahaMute "" {channel="yamahamusiccast:device:Living:main#mute"}
|
||||
Dimmer YamahaVolume "" {channel="yamahamusiccast:device:Living:main#volume"}
|
||||
Number YamahaVolumeAbs "" {channel="yamahamusiccast:device:Living:main#volumeAbs"}
|
||||
String YamahaInput "" {channel="yamahamusiccast:device:Living:main#input"}
|
||||
String YamahaSelectPreset "" {channel="yamahamusiccast:device:Living:main#selectPreset"}
|
||||
String YamahaSoundProgram "" {channel="yamahamusiccast:device:Living:main#soundProgram"}
|
||||
```
|
||||
|
||||
### Player controls
|
||||
|
||||
```
|
||||
Player YamahaPlayer "" {channel="yamahamusiccast:device:Living:playerControls#player"}
|
||||
String YamahaArt "" {channel="yamahamusiccast:device:Living:playerControls#albumArt"}
|
||||
String YamahaArtist "" {channel="yamahamusiccast:device:Living:playerControls#artist"}
|
||||
String YamahaTrack "" {channel="yamahamusiccast:device:Living:playerControls#track"}
|
||||
String YamahaAlbum "" {channel="yamahamusiccast:device:Living:playerControls#album"}
|
||||
```
|
||||
|
||||
### MusicCast setup
|
||||
|
||||
The idea here is to select what device/model will be the master. This needs to be done per device/model which will then be the slave.
|
||||
If you want the *Living* to be the master for the *Kitchen*, select *Living - zone (IP)* from the thing *Kitchen*.
|
||||
The binding will check if there is already a group active for which *Living* is the master. If yes, this group will be used and *Kitchen* will be added.
|
||||
If not, a new group will be created.
|
||||
|
||||
*Device A*: Living with IP 192.168.1.1
|
||||
*Device B*: Kitchen with IP 192.168.1.2
|
||||
|
||||
Set **mclinkStatus** to *Standalone* to remove the device/model from the current active group. The group will keep on exist with other devices/models.
|
||||
If the device/model is the server, the group will be disbanded.
|
||||
|
||||
```
|
||||
String YamahaMCLinkStatus "" {channel="yamahamusiccast:device:Living:main#mclinkStatus"}
|
||||
```
|
||||
|
||||
During testing with the Yamaha Musiccast app, when removing a slave from the group, the status of the client remained *client* and **input** stayed on *mclink*. Only when changing input, the slave was set to *standalone*. Therefor you can set the parameter **defaultAfterMCLink** to an input value supported by your device to break the whole Musiccast Link in OH.
|
||||
|
||||
#### How to use this in a rule?
|
||||
|
||||
The label uses the format _Thinglabel - zone (IP)_.
|
||||
The value which is sent to OH uses the format _IP***zone_.
|
||||
|
||||
```
|
||||
sendCommand(Kitchen_YamahaMCServer, "192.168.1.1***main")
|
||||
sendCommand(Kitchen_YamahaMCServer, "")
|
||||
sendCommand(Kitchen_YamahaMCServer, "server")
|
||||
sendCommand(Kitchen_YamahaMCServer, "client")
|
||||
```
|
||||
|
||||
## Tested Models
|
||||
|
||||
RX-D485 / WX-010 / WX-030 / ISX-80 / YSP-1600 / RX-A860 / R-N303D / EX-A1080 / WXA-050 / HTR-4068 (RX-V479)
|
||||
MusicCast 20 / WCX-50 / RX-V6A / YAS-306 / ISX-18D / WX-021 / YAS-408
|
||||
Reference in New Issue
Block a user