openhab-addons/bundles/org.openhab.binding.panasonicbdp
mlobstein 81cb3c5e8b
Set autoUpdatePolicy for WriteOnly channels (#17467)
Signed-off-by: Michael Lobstein <michael.lobstein@gmail.com>
2024-09-24 08:57:46 +02:00
..
src/main Set autoUpdatePolicy for WriteOnly channels (#17467) 2024-09-24 08:57:46 +02:00
NOTICE [panasonicbdp] Initial contribution (#16122) 2024-01-01 20:54:35 +01:00
pom.xml Apply Spotless after release (#17016) 2024-07-07 23:20:16 +02:00
README.md Set autoUpdatePolicy for WriteOnly channels (#17467) 2024-09-24 08:57:46 +02:00

Panasonic Blu-ray Player Binding

This binding connects Panasonic Blu-ray players from 2011/2012 and UHD Blu-ray players from 2018 to openHAB.
Supported Blu-ray models: DMP-BDT110, DMP-BDT210, DMP-BDT310, DMP-BDT120, DMP-BDT220, DMP-BDT320, DMP-BBT01 & DMP-BDT500.
Supported UHD models: DP-UB420/424, DP-UB820/824 & DP-UB9000/9004.

Please note: The player must be on the same IP subnet as the openHAB server for this binding to function. If the connection to the player originates from a different subnet, 404 response errors are sent in response to all requests.

To enable network remote control of the Blu-ray model players, configure the following settings:
Player Settings/Network/Network Settings/Remote Device Settings
Then make sure you have the following values set:
Remote Device Operation: On
Registration Type: Automatic

For the UHD models, Voice Control must be enabled for the player's http interface to be active: Player Settings/Network/Voice Control: On

To enable the binding to control the player while off (network active while off), Quick Start mode must be On as follows:
Player Settings/System/Quick Start: On

UHD Model Command Authentication:
The UHD models require authentication to use the control API. A player key must be specified in the thing configuration in order for the power, button and control channels to work. UHD model players that are patched do not require a player key. See the AVForums discussions of the DP-UB420/820/9000 players for more information.

Supported Things

There are two supported thing types, which represent either a BD player or a UHD player. A supported Blu-ray player uses the bd-player id and a supported UHD Blu-ray player uses the uhd-player id. Multiple Things can be added if more than one player is to be controlled.

Discovery

Auto-discovery is supported if the player can be located on the local network using UPnP. Otherwise the thing must be manually added.

Binding Configuration

The binding has no configuration options, all configuration is done at Thing level.

Thing Configuration

The Thing has a few configuration parameters:

Name Type Description Default Required
hostName text The host name or IP address of the player. N/A yes
refresh integer Overrides the refresh interval of the player status. Minimum interval is 5 seconds. 5 no
playerKey text For UHD models, to enable authentication of control commands, a key for the player must be specified. N/A no

Some notes:

  • The control protocol of these players is undocumented and may not work consistently in all situations
  • The UHD models only support playback elapsed time (not title total time or chapter information) reporting
  • The time and chapter information is only available when playing a Blu-ray disc (not DVD or CD)
  • There are reports in forum postings that not all commands work on all of the older models (i.e.: Power does not work on DMP-BDT110)
  • Not all status information is available from all BD models (i.e.: playback elapsed time not reported by some models)

Channels

The following channels are available:

Channel ID Item Type Read/Write Description
power Switch RW Turn the power for the player ON or OFF.
button String W Sends a command to the player. See lists of available commands in Appendix A below.
control Player RW Control Playback e.g. Play/Pause/Next/Previous/FForward/Rewind.
player-status String R The player status i.e.: Power Off, Tray Open, Stopped, Playback, Pause Playback, etc.
time-elapsed Number:Time R The total number of seconds of playback time elapsed.
time-total Number:Time R The total length of the current playing title in seconds. Not on UHD models.
chapter-current Number R The current chapter number. Not on UHD models.
chapter-total Number R The total number of chapters in the current title. Not on UHD models.

Full Example

panasonicbdp.things:

panasonicbdp:bd-player:mybdplayer "My Blu-ray player" [ hostName="192.168.10.1", refresh=5 ]
panasonicbdp:uhd-player:myuhdplayer "My UHD Blu-ray player" [ hostName="192.168.10.1", refresh=5, playerKey="ABCDEF1234567890abcdef0123456789" ]

panasonicbdp.items:

// BD Player
Switch Player_Power            "Power"                     { channel="panasonicbdp:bd-player:mybdplayer:power" }
String Player_Button           "Send Command"              { channel="panasonicbdp:bd-player:mybdplayer:button" }
Player Player_Control          "Control"                   { channel="panasonicbdp:bd-player:mybdplayer:control" }
String Player_PlayerStatus     "Status: [%s]"              { channel="panasonicbdp:bd-player:mybdplayer:player-status" }
Number:Time Player_TimeElapsed "Elapsed Time: [%d %unit%]" { channel="panasonicbdp:bd-player:mybdplayer:time-elapsed" }
Number:Time Player_TimeTotal   "Total Time: [%d %unit%]"   { channel="panasonicbdp:bd-player:mybdplayer:time-total" }
Number Player_ChapterCurrent   "Current Chapter: [%d]"     { channel="panasonicbdp:bd-player:mybdplayer:chapter-current" }
Number Player_ChapterTotal     "Total Chapters: [%d]"      { channel="panasonicbdp:bd-player:mybdplayer:chapter-total" }

// UHD Player
Switch Player_Power            "Power"                     { channel="panasonicbdp:uhd-player:myuhdplayer:power" }
String Player_Button           "Send Command"              { channel="panasonicbdp:uhd-player:myuhdplayer:button" }
Player Player_Control          "Control"                   { channel="panasonicbdp:uhd-player:myuhdplayer:control" }
String Player_PlayerStatus     "Status: [%s]"              { channel="panasonicbdp:uhd-player:myuhdplayer:player-status" }
Number:Time Player_TimeElapsed "Elapsed Time: [%d %unit%]" { channel="panasonicbdp:uhd-player:myuhdplayer:time-elapsed" }

panasonicbdp.sitemap:

sitemap panasonicbdp label="Panasonic Blu-ray" {
    Frame label="Blu-ray Player" {
        Switch item=Player_Power
        // This Selection is deprecated in favor of the Buttongrid element below
        Selection item=Player_Button icon="player"
        Default item=Player_Control
        Text item=Player_PlayerStatus
        Text item=Player_TimeElapsed icon="time"
        // The following three channels are not available on UHD models
        Text item=Player_TimeTotal icon="time"
        Text item=Player_ChapterCurrent icon="time"
        Text item=Player_ChapterTotal icon="time"
        Buttongrid label="Remote Control" staticIcon=material:tv_remote item=Player_Button buttons=[1:1:POWER="Power"=switch-off, 1:3:OP_CL="Open"=f7:eject, 2:1:D1="1", 2:2:D2="2", 2:3:D3="3", 3:1:D4="4", 3:2:D5="5", 3:3:D6="6", 4:1:D7="7", 4:2:D8="8", 4:3:D9="9", 5:1:SHARP="# [_]", 5:2:D0="0", 5:3:CLEAR="* Cancel", 6:1:NETFLIX="Netflix", 6:2:MLTNAVI="Home"=f7:house, 6:3:NETWORK="Internet", 7:1:PUPMENU="Pop-Up Menu", 7:2:UP="UP"=f7:arrowtriangle_up, 7:3:TITLE="Top Menu", 8:1:LEFT="Left"=f7:arrowtriangle_left, 8:2:SELECT="OK", 8:3:RIGHT="Right"=f7:arrowtriangle_right, 9:1:MENU="Option", 9:2:DOWN="Down"=f7:arrowtriangle_down, 9:3:RETURN="Return", 10:1:REV="Rev"=f7:backward, 10:2:PLAYBACK="Play"=f7:play, 10:3:CUE="Fwd"=f7:forward,  11:1:SKIPREV="Prev"=f7:backward_end_alt, 11:2:PAUSE="Pause"=f7:pause, 11:3:SKIPFWD="Next"=f7:forward_end_alt, 12:1:CLOSED_CAPTION="CC", 12:2:STOP="Stop"=f7:stop, 12:3:MIRACAST="Mirroring", 13:1:RED="Red", 13:2:GREEN="Green", 13:3:YELLOW="Yellow", 14:1:BLUE="Blue", 14:2:DSPSEL="Status", 14:3:PLAYBACKINFO="Playback Info", 15:1:TITLEONOFF="Subtitle", 15:2:AUDIOSEL="Audio", 15:3:PICTURESETTINGS="Video Setting", 16:1:HDR_PICTUREMODE="HDR Setting", 16:2:SOUNDEFFECT="Sound Effect", 16:3:HIGHCLARITY="High Clarity", 17:2:SKIP_THE_TRAILER="Skip The Trailer"]
    }
}

Appendix A - 'button' channel command codes:

List of available button commands for BD players:

Function Command
Power On POWERON
Power Off POWEROFF
Power Toggle POWER
Play PLAYBACK
Pause PAUSE
Stop STOP
Fast Forward CUE
Reverse REV
Skip Forward SKIPFWD
Skip Back SKIPREV
Open/Close OP_CL
Status DSPSEL
Top Menu TITLE
Pop-Up Menu PUPMENU
Up UP
Down DOWN
Left LEFT
Right RIGHT
OK SELECT
Submenu MENU
Return RETURN
1 (@.) D1
2 (ABC) D2
3 (DEF) D3
4 (GHI) D4
5 (JKL) D5
6 (MNO) D6
7 (PQRS) D7
8 (TUV) D8
9 (WXYZ) D9
0 (-,) D0
12 D12
* (Cancel) CLEAR
# ([_]) SHARP
Red RED
Green GREEN
Blue BLUE
Yellow YELLOW
Home MLTNAVI
Netflix (broken/too old) NETFLIX
VIERA Cast V_CAST
Network NETWORK
Setup SETUP
Exit EXIT
Audio AUDIOSEL
3D 3D
Playback View (buttons not in other views)
PIP P_IN_P
OSD (DISPLAY) OSDONOFF
Shuttle(BD) View (buttons not in other views)
Swipe in CW circle SHFWD2
Swipe in CCW circle SHREV2

List of available button commands for UHD players:

Function Command
Power On POWERON
Power Off POWEROFF
Power Toggle POWER
Play PLAYBACK
Pause PAUSE
Stop STOP
Fast Forward CUE
Reverse REV
Skip Forward SKIPFWD
Skip Back SKIPREV
Manual Skip +60s MNSKIP
Manual Skip -10s MNBACK
Open/Close OP_CL
Status DSPSEL
Top Menu TITLE
Pop-up Menu PUPMENU
Up UP
Down DOWN
Left LEFT
Right RIGHT
OK SELECT
Submenu MENU
Return RETURN
1 (@.) D1
2 (ABC) D2
3 (DEF) D3
4 (GHI) D4
5 (JKL) D5
6 (MNO) D6
7 (PQRS) D7
8 (TUV) D8
9 (WXYZ) D9
0 (-,) D0
12 D12
* (Cancel) CLEAR
# ([_]) SHARP
Red RED
Green GREEN
Blue BLUE
Yellow YELLOW
Home MLTNAVI
Netflix NETFLIX
VIERA Cast V_CAST
Network NETWORK
Setup SETUP
Exit EXIT
Audio AUDIOSEL
Subtitle TITLEONOFF
Closed Caption CLOSED_CAPTION
Playback Info PLAYBACKINFO
HDR Picture Mode HDR_PICTUREMODE
Mirroring MIRACAST
Picture Setting PICTURESETTINGS
Sound Effect SOUNDEFFECT
High Clarity HIGHCLARITY
Skip The Trailer SKIP_THE_TRAILER