diff --git a/bundles/org.openhab.binding.onkyo/README.md b/bundles/org.openhab.binding.onkyo/README.md index 18d82a739..241706544 100644 --- a/bundles/org.openhab.binding.onkyo/README.md +++ b/bundles/org.openhab.binding.onkyo/README.md @@ -150,6 +150,7 @@ The Onkyo AVR supports the following channels (some channels are model specific) | player#artist | String | Artist name of the current song (available if playing from Network or USB) | | player#currentPlayingTime | String | Current playing time of the current song (available if playing from Network or USB) | | player#listenmode | Number | Current listening mode e.g. Stereo, 5.1ch Surround, ... | +| player#audioinfo | String | Current audio info (Refresh timer must be configured for updates) | | player#playuri | String | Plays the URI provided to the channel | | player#albumArt | Image | Image of the current album art of the current song | | player#albumArtUrl | String | URL to the current album art of the current song | diff --git a/bundles/org.openhab.binding.onkyo/src/main/java/org/openhab/binding/onkyo/internal/OnkyoBindingConstants.java b/bundles/org.openhab.binding.onkyo/src/main/java/org/openhab/binding/onkyo/internal/OnkyoBindingConstants.java index 11ccab65b..07b64c939 100644 --- a/bundles/org.openhab.binding.onkyo/src/main/java/org/openhab/binding/onkyo/internal/OnkyoBindingConstants.java +++ b/bundles/org.openhab.binding.onkyo/src/main/java/org/openhab/binding/onkyo/internal/OnkyoBindingConstants.java @@ -73,6 +73,7 @@ public class OnkyoBindingConstants { public static final String CHANNEL_ALBUM_ART = "player#albumArt"; public static final String CHANNEL_ALBUM_ART_URL = "player#albumArtUrl"; public static final String CHANNEL_LISTENMODE = "player#listenmode"; + public static final String CHANNEL_AUDIOINFO = "player#audioinfo"; public static final String CHANNEL_PLAY_URI = "player#playuri"; public static final String CHANNEL_NET_MENU_TITLE = "netmenu#title"; diff --git a/bundles/org.openhab.binding.onkyo/src/main/java/org/openhab/binding/onkyo/internal/eiscp/EiscpCommand.java b/bundles/org.openhab.binding.onkyo/src/main/java/org/openhab/binding/onkyo/internal/eiscp/EiscpCommand.java index 018c0b66b..41b1a8ab9 100644 --- a/bundles/org.openhab.binding.onkyo/src/main/java/org/openhab/binding/onkyo/internal/eiscp/EiscpCommand.java +++ b/bundles/org.openhab.binding.onkyo/src/main/java/org/openhab/binding/onkyo/internal/eiscp/EiscpCommand.java @@ -38,6 +38,9 @@ public enum EiscpCommand { VOLUME_SET("MVL", "%02X"), VOLUME("MVL", ""), + AUDIOINFO("IFA", ""), + AUDIOINFO_QUERY("IFA", "QSTN"), + SOURCE_UP("SLI", "UP"), SOURCE_DOWN("SLI", "DOWN"), SOURCE_QUERY("SLI", "QSTN"), diff --git a/bundles/org.openhab.binding.onkyo/src/main/java/org/openhab/binding/onkyo/internal/handler/OnkyoHandler.java b/bundles/org.openhab.binding.onkyo/src/main/java/org/openhab/binding/onkyo/internal/handler/OnkyoHandler.java index ab9f984b1..67fd63b00 100644 --- a/bundles/org.openhab.binding.onkyo/src/main/java/org/openhab/binding/onkyo/internal/handler/OnkyoHandler.java +++ b/bundles/org.openhab.binding.onkyo/src/main/java/org/openhab/binding/onkyo/internal/handler/OnkyoHandler.java @@ -122,6 +122,7 @@ public class OnkyoHandler extends UpnpAudioSinkHandler implements OnkyoEventList updateStatus(ThingStatus.ONLINE); sendCommand(EiscpCommand.INFO_QUERY); + sendCommand(EiscpCommand.AUDIOINFO_QUERY); } }); @@ -324,7 +325,11 @@ public class OnkyoHandler extends UpnpAudioSinkHandler implements OnkyoEventList sendCommand(EiscpCommand.NETUSB_TITLE_QUERY); } break; - + case CHANNEL_AUDIOINFO: + if (command.equals(RefreshType.REFRESH)) { + sendCommand(EiscpCommand.AUDIOINFO_QUERY); + } + break; /* * MISC */ @@ -477,7 +482,10 @@ public class OnkyoHandler extends UpnpAudioSinkHandler implements OnkyoEventList /* * MISC */ - + case AUDIOINFO: + updateState(CHANNEL_AUDIOINFO, convertDeviceValueToOpenHabState(data.getValue(), StringType.class)); + logger.debug("audioinfo message: '{}'", data.getValue()); + break; case INFO: processInfo(data.getValue()); logger.debug("Info message: '{}'", data.getValue()); @@ -797,6 +805,7 @@ public class OnkyoHandler extends UpnpAudioSinkHandler implements OnkyoEventList sendCommand(EiscpCommand.NETUSB_TITLE_QUERY); sendCommand(EiscpCommand.LISTEN_MODE_QUERY); sendCommand(EiscpCommand.INFO_QUERY); + sendCommand(EiscpCommand.AUDIOINFO_QUERY); if (isChannelAvailable(CHANNEL_POWERZONE2)) { sendCommand(EiscpCommand.ZONE2_POWER_QUERY); diff --git a/bundles/org.openhab.binding.onkyo/src/main/resources/OH-INF/thing/channel-groups.xml b/bundles/org.openhab.binding.onkyo/src/main/resources/OH-INF/thing/channel-groups.xml index 03bb270fc..1c0df2383 100644 --- a/bundles/org.openhab.binding.onkyo/src/main/resources/OH-INF/thing/channel-groups.xml +++ b/bundles/org.openhab.binding.onkyo/src/main/resources/OH-INF/thing/channel-groups.xml @@ -45,6 +45,7 @@ + diff --git a/bundles/org.openhab.binding.onkyo/src/main/resources/OH-INF/thing/channels.xml b/bundles/org.openhab.binding.onkyo/src/main/resources/OH-INF/thing/channels.xml index 49a3f8e45..505cf467f 100644 --- a/bundles/org.openhab.binding.onkyo/src/main/resources/OH-INF/thing/channels.xml +++ b/bundles/org.openhab.binding.onkyo/src/main/resources/OH-INF/thing/channels.xml @@ -107,6 +107,11 @@ Plays a given URI + + String + + Detailed audio info + String