RS-232 Modul für AV-Geräte

Begonnen von rtv, 23 Dezember 2012, 19:49:25

Vorheriges Thema - Nächstes Thema

rtv

Seit einiger Zeit schalte ich einfache Befehle meines Onkyo-Receivers über dessen serielle Schnittstelle.
Wenn z.B. ein Anruf eingeht, setze ich über FHEM mit einem USB-RS232-Adapter dieses Kommando ab:
'echo "\\!1AMT01" > /dev/usb_rs232';
Und der Receiver ist stumm. Auch das Umschalten der HDMI Ein- und Ausgänge ist problemlos möglich.

Jetzt habe ich gesehen, dass der Receiver auch Rückmeldungen sendet, die vor allem bei der Lautstärkeregelung praktisch wären.
Noch besser: Sogar "normale" Eingaben am Gerät und per Fernbedienung werden über den seriellen Port ausgegeben (//images/smiley_icons/icon_cool.gif)

Aber wie komme ich da dran? Gibt es bereits ein serielles Modul, dass eine dauerhafte Verbindung aufrechterhält und dass ich klonen könnte?
Die Protokoll-Beschreibung hab' ich mal angehängt.

ext23

Sowas ähnliches habe ich auch mal gesucht für mein selbstgebauten 433 MHz Steckdosensender.

Der gibt nämlich OK und sowas zurück. Aber die Idee mit dem echo ist ja geil, dann kann ich den ja doch benutzen und "pfeiffe" auf die Antwort von meinem Sender...
HM, KNX, FS20, 1-Wire, PanStamp, AVR-NET-IO, EM1000EM, PCA301, EC3000, HM-LAN, CUL868, RFXtrx433, LGW, DMX @Ubuntu-Server (Hauptsystem) & Raspberry Pi (Satellit)

KIDzero

Servus,

ein ONKYO_AVR wäre eine super Idee.
Vielleicht könnt man sich bei dem Projekt https://github.com/beanz/device-onkyo-perl das ein oder andere abschauen. Das Modul sollte Serial und Network Devices unterstützen.
Bin leider noch recht neu was FHEM angeht. Werde mir mal das YAMAHA_AVR Modul anschauen.

Gruß KIDzero

rtv

Zitat von: KIDzero schrieb am So, 23 Dezember 2012 22:45Servus,

ein ONKYO_AVR wäre eine super Idee.
Vielleicht könnt man sich bei dem Projekt https://github.com/beanz/device-onkyo-perl das ein oder andere abschauen. Das Modul sollte Serial und Network Devices unterstützen.

Ich hatte mir auf der Fritzbox den wichtigsten Code daraus kopiert. Aber es hatte nicht funktioniert und danach reagierte der AVR auch nicht mehr auf simple Befehle per echo.
Gerade hab' ich Device::Onkyo per cpan auf meinem pogoplug installiert und siehe da: es geht!

Langfristig sollte ein Modul natürlich self-contained sein und auch auf der Fritzbox laufen, aber so kann ich schon mal anfangen, die Empfangsrichtung zusammen zu schustern.
Hab nur schnell ein paar Basics umgesetzt (HEX-Werte der Lautstärke umwandeln, etc). Vielleicht hab' ich nach Weihnachten ein paar Stunden Zeit um das ganze auszubauen. (//images/smiley_icons/icon_smile.gif)

Mario K

Gibt es was neues?
Ich dachte auch schon daran, die Yamaha_AVR als Basis nutzen zu können, um eine
Onkyo_AVR daraus zu erzeugen und bad den Markus (Ersteller von Yamaha_AVR) um
Hilfestellung bzw. um eine Anpassung auf Onkyo. Leider klappt das nicht so einfach, da an
die Yamaha XML-Strukturen übertragen werden und Onkyo über Commando-Strings angesteuert wird.
Ich werde mich da mal mit der Übertragung per Telnet beschäftigen.
Da ich vorerst ohnehin nur ein paar Grundbefehle benötige, sollte das auch klappen.
Es wäre natürlich schön, wenn jemand mit dem nötigen Background irgendwann einmal ein
Onkyo-Modul, wie das Yamaha_AVR, für FHEM erstellen würde ;-)

Markus Bloch

Hi Mario,

Ich würde mich bereit erklären das Modul zu schreiben, sofern mir jemand einen Onkyo natürlich nur für die Dauer der Entwicklungszeit zur Verfügung stellt. Dann könnte ich das Modul schreiben, testen und einchecken. Anschließend würde ich den Receiver wieder zurückschicken zum Absender.

Ohne ein Onkyo zum testen klappt das leider nicht.

Viele Grüße

Markus
Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

Mario K

Interessantes Angebot Markus!
Was meinst Du wie lange es in etwa dauern würde?
Ist ja nicht gerade ein geringer Aufwand, bedenkt man auch noch die Unterschiede der Modelle!
Hier müsste man sich wahrscheinlich auf die Hauptbefehle beschränken, welche von allen
AVR-Modellen genutzt werden können. Sonst müsste man noch eine Abfrage mit einbringen und
dann entspr. die Befehle je nach Modell zuordnen/freigeben.

Gruß
Mario

rtv

Die von mir verlinkte Datei gilt für alle ansprechbaren Modelle.
Alltagsbefehle wie Power, Lautstärke, Surround-Modus, etc sind erstmal identisch.
Das man bei Einstiegsmodellen nicht auf einen nicht existenten HDMI-Ausgang 2 umschalten kann ist klar.

Ich hatte schon eine Frickellösung in Betrieb, kann aber aktuell nicht weitermachen, weil es für mein PowerPC NAS (Synology DS413) aktuell keine kompilierenden Kernel-Sourcen gibt um die USB-Module zu erstellen :-/

Bei der reinen Fleißarbeit (Perl-Konvertierung der Lautstärke, Implementieren der einzelnen Kommandos) könnte ich helfen.
Aber das Modul selber mit korrekter FHEM-Einbindung müsste jemand anders machen.

Für den Start geht z.B. dieser Code:


use Device::Onkyo;

sub
OnkyoPower ($)
{
        if ($_[0] eq 'An')
        { SendOnkyoCmd('PWR01'); }
        else
        { SendOnkyoCmd('PWR00'); }
}

SendOnkyoCmd ($)
{
        my $command = $_[0];
        my $onkyo = Device::Onkyo->new(device => '/dev/ttyUSB1');
        my $outstring = '';
        $command = "\\!1".$command." > /dev/ttyUSB1";

        $onkyo->write($command);
        my $message = $onkyo->read(1);

        $outstring=left(trim($message), 3);
        Log 1, "DEBUG: String: ".$outstring." Ausgabe: ".$message;

        if($outstring eq "PWR")
        {
          $outstring=right(trim($message), 2);
          if ($outstring eq "01") {
            Log 1, "Onyko Receiver eingeschaltet";
          } else {
            Log 1, "Onyko Receiver ausgeschaltet";
          }
        }
}

Markus Bloch

@Mario: Ich schätze mal 2-3 Wochen, da ich leider nur am Wochenende daran arbeiten kann (Entwicklung, Testen, umsetzen inkl. Doku)

Ich würde generell erstmal die Funktionalitäten wie in YAMAHA_AVR anvisieren ohne das Zonen-Feature.

Sollten nach der Entwicklung mithilfe eines Gerätes im Modul ein Fehler entdeckt werden oder andere neue Features gewünscht sein, müsste jemand mit einem Onkyo Receiver diese Sachen nachtesten.

Viele Grüße

Markus
Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

Markus Bloch

Ich würde auch versuchen sowohl Ethernet als auch RS-232 zu unterstützen, da die Befehle ja gleich sind.
Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

ThomasH

Hallo,

bin durch Zufall auf diesen Thread hier gestossen, umso mehr verwundert bin ich, dass er so abrupt aufhört!?

@Markus: tolle Idee die du da vorhast. Ich hab gleich mal die Hausregierung gefragt, leider habe ich kein grünes Licht bekommen.
Frühstens im Sommerurlaub, da sind wir 2 Wochen weg ;-)

Ich weiß nicht, ob dieses Dok hier bekannt ist, da sind (fast) alle Befehle gelistet, hab mir selbst damit schon einige Codes gebastelt.

Gruß Thomas

PS: Ich selbst hab ein ONKYO_TX-NR717 den ich per Netzwerk steuere.

Markus Bloch

Hallo Thomas,

das Urteil der Hausregierung kann ich nachvollziehen. Man könnte das Grundmodul auch an einem Wochenende machen (Freitag Ankunft bei mir und Montag direkt wieder versenden), wo dann das Grundgerüst und die ersten Befehle drinne sind und weitere Erweiterungen müssten dann durch dich oder einem anderen Onkyo Besitzer verifiziert werden.

Die Liste ist mir bekannt und währe die Grundlage für das Modul ;-)

Viele Grüße

Markus
Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

Mario K

Hallo,
@ThomasH: wieso abrupt aufhört? - ich muss mich eben auch erst einmal dazu durchringen, meinen Onkyo für einige Zeit abzugeben.
Hinzu kommt das Risiko beim Versand! Ich habe in den letzten Jahren so viele Beschädigungen beim Versand gesehen - unglaublich!

Ist aber schön, dass wir nun schon min. 2 sind :-) wegen dem verifizieren.

Wie machst Du das z.Z. mit den "Codes"?

Ich habe aber auch noch ein anderes Problem. Wie sage ich dem TV, dass er sich nicht einschalten soll, wenn ich auf dem AVR
Radio oder MP3-Wiedergabe starte? Ich möchte eben nicht ganz auf die Verbindung (Anynet/RIHD) verzichten.

rtv

Zitat von: ThomasH schrieb am Mo, 08 April 2013 10:26Ich weiß nicht, ob dieses Dok hier bekannt ist, da sind (fast) alle Befehle gelistet, hab mir selbst damit schon einige Codes gebastelt.
Hallo Thomas, das von mir weiter oben verlinkte Dokument ist eine neuere Version. Aber vielleicht kannst du deine Quelle noch einmal anzapfen ob es zwischenzeitlich noch etwas aktuelleres gibt?

ThomasH

Hallo,

ja da gebe ich dir natürlich Recht, bin ja auch ganz Neu hier und einfach was zu verschicken birgt natürlich ein Risiko.
Ich finde nur das Angebot von Markus echt cool.
Bis jetzt habe ich meine AV-Receiver meist in der Nähe gekauft, von daher kenne ich das Thema Transportschäden nicht.
Evtl. wäre es ja in dem Zusammenhang auch ne Option im Internet mit 2-wöchigem Rückgaberecht mal drüber nachzudenken.

Ich bin noch bei den Anfängen von fhem, zZ nutze ich die Software iRule http://www.iruleathome.com/ da hatte ich mir mal paar Codes gebastelt, die sind aber mittlerweile alle in der Datenbank direkt enthalten.

Im Idealfall hast du für deine Geräte diskrete Codes, wenn ich zB auf den Button Radio drücke werden 2 Befehle abgesetzt: "AV-Receiver mit Quelle Tuner ein" und "TV aus".

Gruß Thomas