Skip to content

Commit

Permalink
[panasonicbdp] Initial contribution (openhab#16122)
Browse files Browse the repository at this point in the history
Signed-off-by: Michael Lobstein <[email protected]>
  • Loading branch information
mlobstein authored Jan 1, 2024
1 parent f4596f5 commit db64df1
Show file tree
Hide file tree
Showing 16 changed files with 1,480 additions and 0 deletions.
1 change: 1 addition & 0 deletions CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -264,6 +264,7 @@
/bundles/org.openhab.binding.oppo/ @mlobstein
/bundles/org.openhab.binding.orbitbhyve/ @octa22
/bundles/org.openhab.binding.orvibo/ @tavalin
/bundles/org.openhab.binding.panasonicbdp/ @mlobstein
/bundles/org.openhab.binding.paradoxalarm/ @theater
/bundles/org.openhab.binding.pentair/ @jsjames
/bundles/org.openhab.binding.phc/ @gnlpfjh
Expand Down
5 changes: 5 additions & 0 deletions bom/openhab-addons/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -1306,6 +1306,11 @@
<artifactId>org.openhab.binding.orvibo</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.openhab.addons.bundles</groupId>
<artifactId>org.openhab.binding.panasonicbdp</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.openhab.addons.bundles</groupId>
<artifactId>org.openhab.binding.paradoxalarm</artifactId>
Expand Down
13 changes: 13 additions & 0 deletions bundles/org.openhab.binding.panasonicbdp/NOTICE
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
This content is produced and maintained by the openHAB project.

* Project home: https://www.openhab.org

== Declared Project Licenses

This program and the accompanying materials are made available under the terms
of the Eclipse Public License 2.0 which is available at
https://www.eclipse.org/legal/epl-2.0/.

== Source Code

https://github.com/openhab/openhab-addons
242 changes: 242 additions & 0 deletions bundles/org.openhab.binding.panasonicbdp/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,242 @@
# 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](https://www.avforums.com/forums/blu-ray-dvd-player-multiregion-hacks.126/) 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:

```java
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:

```java
// BD Player
Switch Player_Power "Power" { channel="panasonicbdp:bd-player:mybdplayer:power" }
String Player_Button "Send Command" { channel="panasonicbdp:bd-player:mybdplayer:button", autoupdate="false" }
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", autoupdate="false" }
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:

```perl
sitemap panasonicbdp label="Panasonic Blu-ray" {
Frame label="Blu-ray Player" {
Switch item=Player_Power
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"
}
}
```

### 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 |
| &#42; (Cancel) | CLEAR |
| &#35; ([_]) | 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 |
| &#42; (Cancel) | CLEAR |
| &#35; ([_]) | 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 |
17 changes: 17 additions & 0 deletions bundles/org.openhab.binding.panasonicbdp/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

<modelVersion>4.0.0</modelVersion>

<parent>
<groupId>org.openhab.addons.bundles</groupId>
<artifactId>org.openhab.addons.reactor.bundles</artifactId>
<version>4.2.0-SNAPSHOT</version>
</parent>

<artifactId>org.openhab.binding.panasonicbdp</artifactId>

<name>openHAB Add-ons :: Bundles :: Panasonic Blu-ray Player Binding</name>

</project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<features name="org.openhab.binding.panasonicbdp-${project.version}" xmlns="http://karaf.apache.org/xmlns/features/v1.4.0">
<repository>mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${ohc.version}/xml/features</repository>

<feature name="openhab-binding-panasonicbdp" description="Panasonic Blu-ray Player Binding" version="${project.version}">
<feature>openhab-runtime-base</feature>
<feature>openhab-transport-upnp</feature>
<bundle start-level="80">mvn:org.openhab.addons.bundles/org.openhab.binding.panasonicbdp/${project.version}</bundle>
</feature>
</features>
Loading

0 comments on commit db64df1

Please sign in to comment.