Oppo von FHEM aus steuern, war: Lautstärke einstellen

Begonnen von ujaudio, 26 Oktober 2015, 21:47:37

Vorheriges Thema - Nächstes Thema

ujaudio

Die Lautstärke einstellen ist ja an sich kein Problem, meine Geräte haben alle ein "Vol +" und ein "Vol -". Zusammen mit dem Harmony Hub (Wenn man es einmal porogrammiert hat, ist's ganz ok, aber bis man soweit ist :-( ) geht das vermutlich auch (ich habe bislang nur komplette Aktionen über FHEM ausgewählt). Aber wenn ich einen ganz  bestimmten Pegel haben will, muss ich wohl so etwas wie Referenzpunkt fahren. Mein Oppo kann die Lautstärke von 0 bis 100, in Summe also 101 Werte. Da FHEM nicht weiß, was der alte Wert war (es kann ja noch jemand mit der StandardFB gespielt haben) muss ich wohl nach dem Einschalten 101x auf "Vol-" gehen, dann bin ich sicher es ist Null und dann kann ich die gewünschte Anzahl "Vol+" senden, so dass ich meine Wunschlautstärke von 35 nach dem Einschalten habe. Oder gibt es eine bessere Methode??!? MIr ist nichts eingefallen - außer andere Geräte kaufen, die die Lautstärke gezielt ansprechen lassen, wie das z.B. bei Sonos ist.

EDIT:
Oppo kann über LAN die Lautstärke absolut einstellen, laut Oppo-Doku ist das der Befehl
SVL <gewünschter Pegel von 0 bis 100 oder Mute>
Ob ich als absoluter Netzwerk-Laie das hinbekomme??!?
Am besten also gleich ein komplettes Modul schreiben  :)
Einen lieben Gruß
Jürgen

antonwinden

vielleicht kannst ja beim oppo eine einschaltlautstärke definieren - hab zwar keinen aber manche geräte haben diese funktion.
gruß anton
KNX, Raspberry, Denon 3313, Philips TV, Xtrend9X00 und viel Optimismus...

Rince

Oder du stellst einen ESP 8266 und ein Mikrofon in das Zimmer, und teilst fhem die Lautstärke mit :)

Könnte für 10-20€ gehen.


Dann definierst du experimentel, welchen Pegel dein Mikrofon erreicht bei "Leise" "Zimmerlautstärke" "Laut", und lässt fhem so lange rumregeln, bis der Pegel im Zielbereich gelandet ist. Feintunen kannst ja dann händisch immer noch.
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

Wuppi68

versuch doch einfach mal

Mute und dann einmal leiser, ob dann die LS auf 0 ist

Gruß

Ralf

btw. EWas ist das für ein "Oppo" beim googlen findet man nur Smartphone, Kopfhörer, BD Player und Kopfhörer Amps in der High End Area ...
Jetzt auf nem I3 und primär Homematic - kein Support für cfg Editierer

Support heißt nicht wenn die Frau zu Ihrem Mann sagt: Geh mal bitte zum Frauenarzt, ich habe Bauchschmerzen

Rince

Nachtrag:
In der Make 4/2015 ist das als Lärmampel übrigens umgesetzt, inkl. Sketch für den Arduino :)
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

ujaudio

Danke, in euren Antworten finden sich ein paar Ideen, die mir weiterhelfen können, um meinem Oppo 105 BRP die Lauststärke richtig beizubringen.
Einen lieben Gruß
Jürgen

Strida

Die OPPO BlueRay-Player lassen sich per LAN auf Port 436 mit HTTP GET ansprechen. Die Befehle sind die selben wie über die serielle Schnittstelle: http://download.oppodigital.com/BDP103/BDP103_RS232_Protocol_v1.2.2.pdf

Insofern bräuchte man den Harmony Hub nicht für den Oppo, wenn es ein FHEM Modul gibt, dass sich für diese RS232 over LAN nutzen lässt?

ujaudio

#7
Hallo "strida", das ist doch mal ein guter Hinweis. Vielleicht sollte ich doch mal ganz vorsichtig versuchen selbst etwas in dieser Richtung zu schreiben. Aber gibt es überhaupt Bedarf an einem Oppo-Modul? Wie müsste denn dieses überhaupt heißen? Wie werden denn die Modulnamen vergeben? Mal schauen, ob etwas darüber im Wiki steht...

Einen lieben Gruß
Jürgen

Nachtrag: Man kann über diese Schnittstelle die Lautstärke direkt setzen, genau das, was ich haben möchte.
Einen lieben Gruß
Jürgen

Strida

#8
Hallo ujaudio,

Ich hätte Bedarf an einem solchen Modul, da ich einen Oppo habe und über diesen ungewöhnlichen Port bei einem Portscan im eignen LAN gestolpert bin.

Mit Modulen habe ich auch nicht so die große Erfahrung - das waren gerade mal 4-Zeiler zu WOL, SSH und SNMP. Mein einfaches Modul um per SSH ein Kommanda (zB shutdown vom NAS) zu schicken, sieht so aus:

package main;

use strict;
use warnings;
use POSIX;

sub
myUtils_Initialize($$)
{
  my ($hash) = @_;
}

# Enter you functions below _this_ line.

sub ssh_cmd($$@)
{
  my($host,$cmd,$user) = @_;

  my $ret;

  my $ssh = qx(which ssh);   
  chomp( $ssh );
  $ssh .= ' ';
  $ssh .= $user."\@" if( defined($user) );
  $ssh .= $host ." ". $cmd;
  if( open(my $fh, "$ssh|" ) ) {   
    $ret = <$fh>;
    close($fh);
  }

return $ret;
}

1;


Das müsste sich leicht anpassen lassen.
Ich vermute, dass es für telnet ein Perl-Modul gibt, mit dem man das schöner lösen kann.

Beim testen kann ich Dir gerne helfen.

ujaudio

Ich sehe momentan 2 Ansätze: entweder ein ganzes Modul für den Oppo programmieren oder HTTPMOD verwenden. Letzteres erscheint mir dann in den Ausbaumöglichkeiten begrenzt, dennoch wäre ein erster Ansatz:
define OPPO105 HTTPMOD http://192.168.178.39:436 0
attr OPPO105 reading1Name Response
attr OPPO105 reading1Regex @([O,K,E,R]){2}
attr OPPO105 stateFormat {sprintf("%c%c%c",ReadingsVal($name,"Response",0))}
attr OPPO105 requestData {"get" :[???]}

Bevor ich das versuche muss ich aber noch weiteres klären. Insbesondere die 3 Fragezeichen: hier muss einen String der Art "#SVL 75<hex0D>" haben, wobei anstelle der 75 auch jeder andere Wert zwischen 0 und 100 stehen darf. Wie ich das zustandebekomme ist mir noch nicht klar. Vermutlich muss ich eine eigen Utility schreiben.

Eigentlich möchte ich aber den ersten Weg gehen: Der Oppo ist letztendlich auch nur ein AVR und da macht doch ein Modul, welches sich an den "Standards" orientiert doch recht viel Sinn. Da ich das Rad nicht neu erfinden möchte, werde ich jetzt mal alle vorhandenen AVR-Module anschauen. Hat jemand einen Tipp, was ich mir da anschauen sollte?
Einen lieben Gruß
Jürgen

MaxAut

Hallo! Hat sich hier etwas getan? Ich besitze den BDP-105d und wäre an diesem Modul, bzw. an der Anpassung für den Player sehr interessiert. Liebe Grüße, Max

ujaudio

Leider nein. Meine Situation: der Oppo steht an Wohnort1, ich arbeite an Wohnort2, dazwischen viele 100 Kilometer. Alle durchschnittlich 3 Wochen vor Ort. Viele andere FHEM Dinge kann ich remote machen, das hier nicht, ich muss ja sehen, was der Player macht - oder auch nicht. Von der Kommunikation habe ich eigentlich so gut wie keine Ahnung, wenn es um diese tiefen technischen Details geht.

Der Weg in meinem Beitrag vom 29.03. war bislang nicht erfolgreich, die anderen AVR-Module haben mir auch keinen neuen Weg aufgezeigt. Solange ich überhaupt nicht mal irgendeine Reaktion bekomme, macht es auch keinen Sinn, ein komplettes Modul zu schreiben. Das erscheint mir anhand des Wikibeispiels dann durchaus machbar.

Aber ich bleibe dran. Etwas mehr Zeit hoffe ich im Weihnachtsurlaub zu haben, wo ich dann mal ein paar Tage konsequent dran arbeiten kann. Die Kommunkationshürde ist halt für mich schon sehr groß...
Einen lieben Gruß
Jürgen

weldel60

Es hat sich hier lange nichts mehr getan.

Bist Du mit dem Oppo weiter gekommen?

Ich suche ebenfalls eine Lösung zur Steuerung über Fhem.

ujaudio

Leider nein, aber ich schaffe es dienstlich einfach nicht. Alles, was ich nicht remote machen kann, muss zu meinem eigenen größten Bedauern liegen bleiben. Aber es kommt die Zeit...
Einen lieben Gruß
Jürgen

ujaudio

#14
ZitatDie OPPO BlueRay-Player lassen sich per LAN auf Port 436 mit HTTP GET ansprechen.

Nach längerer Pause bin ich diesem Hinweis nun nachgegangen, ein weiterer netter Mensch hat mir außerdem sie Software "Packet Sender" empfohlen. Den Hinweis aus einem anderen Thread "wireshark" zu nutzen habe ich probiert, bin aber gar nicht weiter gekommen. Aktuell habe ich auch keinen Windows-PC dafür parat.

Dank "Packet Sender" weiß ich nun, dass Port 436 geht, ebenso Port 13000.
Beides bewirkt, dass sich der Oppo zurückmeldet, aber den Befehl nicht ausführt, noch nicht einmal mit Fehlercode quittiert.

Nun habe ich eine neuere Oppo-Doku gefunden und dort steht, dass sich das Gerät per Broadcast einem Client anbietet: Er sendet auf 239.255.255.251:7624 und der Client kann daraus die IP und den Port entnehmen. Nun die IP ist hoffentlich die, die meine Fritzbox mir sagt. Aber wie kann ich denn so ein Broadcast empfangen? In meinem Heimnetz fangen doch alle Adressen mit 192.xxx an, was macht da meine Fritzbox mit einem 239.xxx?

Ich suche weiter, freue mich aber auch auf weitere Hinweise.


EDIT 1:

  • Ich habe nun Wireshark auf meinem Linux-PC installiert
  • Damit habe ich mal etwas aufgezeichnet
  • Als Netzwerk-Laie tue ich mich aber schwer mit der Analyse

Der Oppo scheint auf 255.255.255.255  zu senden: es gibt ein Notify mit der auch schon von der Fritzbox bekannten IP-Adresse und der Angabe des Port 48360.
Mit Packet Sender schicke ich nun auf diesen Port eine Nachricht: Die Wireshark-Info dazu ist: <siehe f1> Die Adresse 53 ist mein PC, die 39 der Oppo, in der orange gekennzeichneten Zeile finde ich auch meinen Befehl "#EJT" < siehe f2>

Aber die laut Oppo-Doku zurück zu liefernde Quittung kommt wohl nicht.


EDIT 2:
Durch planloses Herumspielen(!) habe ich nun mal statt TCP testweise UDP genommen, leider erfolglos, es gab nicht mal eine Antwort vom Oppo, ok zurück auf TCP, einfach vor lauter Langweile nochmal auf Senden geklickt - WOW - Rückantwort wie laut Oppo-Doku beschrieben - schnell ins Nachbarzimmer wo der Oppo steht - die Schublade ist offen, der Befehl EJT hat funktioniert. Die erste Hürde ist genommen: grundsätzlich geht's.
Einen lieben Gruß
Jürgen