Skip to main content

Sony Blu-ray (UPnP)

Sony's networked Blu-ray and UHD players — and Sony network media players that expose the same control service — are driven over UPnP AVTransport (SOAP commands sent over HTTP). One player becomes one GEM device, addressed directly by its LAN IP on port 52323. There is no pairing and no password.

This driver creates no zones. A Blu-ray player is a source: you expose it as an AV source that a user selects on a touchpanel, and route its picture and sound to rooms through your matrix or AV receiver the same way you would a cable box or any other disc transport. What the driver gives you:

  • Transport control — play, pause, stop, and track skip (next / previous), plus seek to a time position.
  • Live now-playing feedback — the driver continuously reads the player's transport state and playback position and surfaces them as device attributes, so you can show or automate on what the player is doing (unlike a one-way IR or RS-232 disc driver).
  • Direct media loading — point the player at a network media URL (set_uri / load) for players that accept a pushed stream.
Two-way, but transport-only

GEM reads back the player's transport state, position, and track duration, so you can build triggers on those. It does not read disc type, chapter, or the player's own volume — those are not part of the AVTransport service this driver uses.

How GEM connects

WhatValue
ProtocolUPnP AVTransport — SOAP requests over HTTP
Control endpointhttp://<player-ip>:52323/upnp/control/AVTransport
Port52323 (default; changeable per device)
AuthenticationNone

GEM sends each command as a SOAP POST to that endpoint and polls the same service to keep the now-playing attributes current. Because control rides on the player's UPnP media-renderer service, that service has to be enabled and awake on the player — see Prerequisites.

Prerequisites

  • The player reachable on the same LAN as GEM.
  • UPnP renderer / media-control enabled in the player's network settings. On most Sony players this is the "Remote Start" / network media-control / "Render" option under the network menu; the exact wording varies by model and firmware.
  • The player left in network-standby (not fully powered off) when idle. Many Sony players drop their UPnP service when hard-powered-off, so commands sent to a fully-off player fail until it is woken by other means.
  • A static IP or a DHCP reservation for the player so its address never moves — a moved address means GEM can no longer reach it.

Setup

Open Devices

  1. On the player, enable network media control / "Remote Start" and set it to stay reachable in standby.
  2. Go to System → Devices → Add Device and choose the Sony Blu-ray (UPnP) driver. Place the device in the AV subsystem (the driver suggests AV; the AV subsystem ships with every install).
  3. Set Player IP Address to the player's LAN IP.
  4. Leave UPnP Port at the default 52323 unless your model uses a different control port.
  5. (Optional) Adjust Status Poll Interval (ms) if you want the now-playing attributes to refresh faster or slower than the default 10 s.
  6. Save and enable the device. GEM tests the connection immediately by reading the player's transport state; if the player is awake and its UPnP service is on, the device comes online within a few seconds and its Commands tab lists every command below. The Add Device form also offers a Load sample: LAN setup (typical) button that fills in a standard IP/port configuration.

For a system with several players, add one GEM device per player, each by its own IP.

Using the player as an AV source

Open AV Sources

To put the player on a touchpanel as a selectable source, create an AV source for it:

  1. Add a source and set its Device to this Sony player.
  2. Set AV Type to Video (a Blu-ray player is a video source).
  3. Set the Address to the matrix input the player is wired to, so your routing macros can send that input to a room. Use the Advanced addressing fields (separate video / audio routing and endpoint addresses) only if your matrix switches audio and video on different inputs.
  4. Check Global source (not zone-specific) if every room should be able to select the player — a single shared player feeding a matrix is the classic global source. Leave it unchecked and pick an AV Zone instead if the player lives in and serves only one room.
  5. Give the source an On Macro that routes the player's input to the selected zone's output (and, if you like, un-mutes the room), and an Off Macro that releases the route. In those macros use [@av_source.address] for the player's input and [@av_zone.address] for the target room's output so one macro serves every zone.
  6. Save. When a user selects the source in a room, GEM runs the On Macro and routes the player to that room.

See AV Sources for the full source editor (Device, Address, Component, Global, On/Off macros) and AV Zones for routing the source into rooms.

On-screen transport controls

There is no purpose-built Sony Blu-ray panel in GEM. To give end users transport buttons, the reliable approach is to put the driver's own commands on a UI — a play/pause/stop/next/previous button group mapped to the exact command names in the Commands table, either as custom UI buttons or fired from macros.

If you set the AV source's Component to one of the built-in disc panels (for example dvd), be aware those panels include rewind and fast-forward buttons that this UPnP driver does not implement — only play, pause, and stop map through. This driver's skip is next / previous (track/chapter step), not scan. For full control, build the button set from the command table rather than relying on a disc panel.

Attributes

Device — required

AttributeTypeDefaultDescription
ipstringThe player's LAN IP (the Player IP Address field).

Device — optional

AttributeTypeDefaultDescription
portint52323UPnP control port (the UPnP Port field). Change only if your model uses a non-standard port.
status_intervalint10000Status Poll Interval (ms) — how often GEM reads transport state and playback position from the player.

Device — live status (read-only)

These are written by the driver from its status poll. They are runtime values — do not set them by hand; GEM overwrites them on the next poll.

AttributeTypeDescription
transport_statestringCurrent transport state as the player reports it — PLAYING, PAUSED_PLAYBACK, STOPPED, TRANSITIONING, NO_MEDIA_PRESENT, etc.
current_positionstringPlayback position, HH:MM:SS.
track_durationstringCurrent title / track duration, HH:MM:SS.

This driver has no entries in the attribute autocomplete catalog, so if you ever set ip, port, or status_interval from the Attributes editor, type the key exactly as shown above.

Commands

Driver-declared commands appear on the device's Commands tab and can be used in macros, triggers, and on UI buttons. The Command column is the exact name you type in a macro step or on a button.

Transport

CommandAction
playPlay (resume at normal speed).
pausePause.
stopStop.
next / skip_nextSkip to the next track / chapter (both names do the same thing).
previous / skip_previousSkip to the previous track / chapter (both names do the same thing).

Seek

CommandArgumentsAction
seektarget, unitJump to a position. target is the destination; unit selects how target is read and defaults to REL_TIME (a HH:MM:SS time within the current title). Other UPnP units such as TRACK_NR or ABS_TIME are passed straight through to the player if it supports them.

Example macro step: command seek, argument target = 00:45:30 (with unit left at the default REL_TIME) jumps to 45 minutes 30 seconds into the current title.

Load media (advanced)

CommandArgumentsAction
set_uri / loaduri, metadataPoint the player at a media URL (SetAVTransportURI). uri is required; metadata is optional DIDL-Lite describing the item. Both command names do the same thing.
warning

Not every Sony player accepts a pushed URL, and some reject an empty metadata argument with an HTTP 500 — they require valid DIDL-Lite. set_uri / load are for models that support pushed network media; disc playback is driven with the transport commands above, not with load.

Status / query

These read back the player and refresh the live status attributes. They are mainly for diagnostics — the driver already polls the player automatically on the Status Poll Interval.

CommandRefreshes / returns
get_status / statusReads the transport state and updates transport_state.
get_positionReads the playback position and updates current_position and track_duration.
get_media_infoReturns the player's current media info (not stored as an attribute).

Live status feedback

Every Status Poll Interval (default 10 s) the driver reads the player's transport state and playback position and writes them to the transport_state, current_position, and track_duration attributes. Two practical uses:

  • Show now-playing — bind a UI label or tile to transport_state / current_position to display what the player is doing without the user touching the player itself.
  • Automate on state — build an attribute trigger on transport_state. For example, when it changes to STOPPED you might dim the lights back up, or when it changes to PLAYING drop the shades and dim to a movie scene.

If the attributes never populate, the player's UPnP service is not responding — see Troubleshooting.

Known limitations

  • Single device, no zones. A player is one device and creates no GEM zones — route it to rooms at the AV-source / AV-zone layer, like any other source.
  • Transport-only feedback. GEM tracks transport state, position, and duration, but not disc type, chapter number, or the player's own volume — those are not exposed by the AVTransport service.
  • No scan (rewind / fast-forward) command. Skip is by track / chapter (next / previous); there is no continuous scan verb, so disc-panel scan buttons have no effect.
  • Network-standby, not off. Many Sony players drop their UPnP service when fully powered off. Leave the player in network-standby so it stays reachable.

Troubleshooting

SymptomCheck
Device won't come online / commands return errors or no response.Ping the player IP. Confirm UPnP renderer / media-control ("Remote Start") is enabled in the player's network settings, and that the player is in network-standby rather than fully off.
The player was reachable, then went unreachable.It likely powered fully off and dropped its UPnP service. Enable network-standby so control stays live, or wake the player.
transport_state / current_position never update.The player isn't answering the status poll — same causes as above (UPnP disabled or player asleep). Confirm with get_status.
The player's address changed and GEM lost it.Give the player a DHCP reservation or static IP and update the device's Player IP Address.
set_uri / load fails with a 500 error.Some models require valid DIDL-Lite in the metadata argument; an empty metadata is rejected. Supply proper metadata, or drive playback with the transport commands instead.
On-screen rewind / fast-forward buttons do nothing.This driver has no scan command — use next / previous for track / chapter step, and build the transport panel from the command table rather than a disc panel.

See also

  • AV Sources — add the player as a selectable source and set its routing and macros.
  • AV Zones — route the source into rooms.
  • Devices — adding and configuring devices.
  • Commands — running and scripting device commands.
  • Triggers — automate on the player's transport_state.