Heimkinosteuerung – Oppo via IP

Der Oppo BDP-103D Blu-Ray Player bietet ja diverse Optionen zur Steuerung an. Zum einen die klassische Infrarot Fernbedienung, dann die RS232 Schnittstelle und weiterhin besitzt er noch einen Netzwerkanschluss. Anfänglich steuerte ich den Oppo ausschließlich über IR, jedoch war dies nicht immer zuverlässig und so suchte ich eine andere Möglichkeit den Blu-Ray Player zu steuern.

Da es von Oppo selbst auch eine IOS App gibt, worüber der Blu-Ray Player gesteuert werden kann, musste also auch eine Steuerung über ein IP Protokoll möglich sein. Leider fand ich im WWW nur Ansatzweise Informationen, wie der Player via IP zu steuern ist, also fing ich selber an, die Kommunikation zwischen der IOS App und dem Player via Wireshark zu analysieren. Ich fand heraus, dass der Oppo Player über den TCP Port 436 via HTTP GET angesteuert wurde.

Beispiel für Source-Befehl:

Leider stellte sich jedoch heraus, dass nach dem Einschalten des Players standardmäßig der Port 436 geschlossen war und der Oppo somit keine Befehle akzeptierte. Bei der weiteren Analyse der Wireshark Aufzeichnen zwischen der IOS App und dem Player fiel auf, dass beim Starten der App eine Art „Handshake“ zwischen dem Player und der App stattfand, was unter anderem dafür sorgte, dass der Port 436 geöffnet wurde.

Ich entwickelte schließlich ein kleines PHP Script, was den „Handshake“ ebenfalls durchführte und mir den Port 436 öffnete.

Insgesamt sieht der Aufbau in meinem Webinterface wie folgt aus:

1. Beim öffnen des Webinterface wird das o.g. PHP Script einmal aufgerufen, um den Port 436 zu öffnen

2. HTML Bootstrap Button, der ein Java-Script (BRP_Play_IP) aufruft:

3. Java-Script:

 

Da ich anfänglich mit der IP-Steuerung nicht weiterkam, habe ich parallel auch eine Support-Anfrage an Oppo geschickt und war sehr positiv über deren Reaktion überrascht. Sie schickten mir nämlich die komplette Beschreibung der Netzwerkschnittstelle, die ich Euch nicht vorenthalten möchte. Danke an Oppo für den vorbildlichen Support. 😉