[gelöst] TCP-Steuerscript für AVR (Yamaha YCN; telnet; /dev/tcp)?

  • Meinen Yamaha-AVR RX-S600 kann man via TCP (YCN-Protokoll) steuern. Also z.B.
    echo '@MAIN:VOL=Up' | telnet RX-S600 50000
    hebt die Lautstärke an. Und über
    telnet RX-S600 50000
    kommen Antworten wie
    @MAIN:VOL=-43.0
    Natürlich kann man '@MAIN:VOL=Up' auch in einer solchen Telnet-Sitzung absetzen.
    Das Ganze möchte ich nun in einem Steuerscript machen, also die Ausgaben des RX-S600 zeilenweise lesen, verarbeiten und dann entsprechende Kommandos senden. Es ist nur eine solche Verbindung zulässig, die dazu auch noch abstirbt, wenn nicht regelmäßig alle 30s ein Kommando abgesetzt wird.
    Jetzt scheint aber schon mal Telnet nicht an ner Pipe zu funzen, jedenfalls


    tut schon mal gar nichts. Also mal
    exec 3<>/dev/tcp/RX-S600/50000
    probiert und siehe da, ein anschließendes
    cat <&3
    funzt schon mal. Allerdings geht ein
    echo '@MAIN:VOL=Up' >&3
    ins Nirvana.
    Ja, wie löse ich das? Was mache ich falsch?

    yaVDR 0.6.2; H61M/U3S3 / G530 / 4GB / GT 520 (passiv) / Cine S2 (Rev. V5.5) + DuoFlex S2 / 120GB SSD (System; SATA>USB) + 3TB SATA 6Gb/s; LCD-TV Toshiba 42VL863G; AVR Yamaha RX-S600...

    Einmal editiert, zuletzt von habichthugo ()

  • Am besten eine "richtige" Programmiersprache wie z.B. python benutzen. Damit sollte es wesentlich leichter gehen.
    Die bash ist nicht für alles gleich gut geeignet.


    Lars

  • Ich hab's! Die Kiste erwartet schlicht ein CR+LF am Ende, was Telnet wohl automatisch macht. Und es braucht 100ms Zeit zwischen den Befehlen, also etwa so:
    exec 3<>/dev/tcp/RX-S600/50000
    echo -en "@MAIN:VOL=Up\r\n" >&3
    sleep 0.1
    echo -en "@MAIN:VOL=Up\r\n" >&3


    Naja, wer nicht mal automatisch den ersten Sender startet, wenn man auf Internetradio schaltet usw. der kommt halt noch aus CP/M-Zeiten...

    yaVDR 0.6.2; H61M/U3S3 / G530 / 4GB / GT 520 (passiv) / Cine S2 (Rev. V5.5) + DuoFlex S2 / 120GB SSD (System; SATA>USB) + 3TB SATA 6Gb/s; LCD-TV Toshiba 42VL863G; AVR Yamaha RX-S600...

  • Eventuell hilft auch das hier weiter.


    Gruß
    iNOB

  • Ja, Danke für die zusätzlich Tipps. Allerdings kenne ich das meiste schon. Die Steuerung vom VDR aus ist schon 'lange' implementiert.


    Jetzt geht es 'nur' noch um etwas Feinschliff. Die Kiste ist speziell bei Internetradio so was von bescheiden zu bedienen. So startet z.B. beim schalten auf Internetradio nicht mal der erste oder zuletzt verwendete Sender. Durchzappen oder gar Direktwahl per 10er-Tastatur geht auch nicht (obwohl auf der FB manigfaltige Tasten dafür vorhanden wären). Also werde ich ihr das via Pi beibiegen...


    Btw.: Neben dem YCN gibt es auch noch das mächtigere YCNA (bei letzterem lässt sich der Status allerdings nur pollen, dafür bis zu vier Verbindungen). Da gibt es auch dezidierte Befehle für z.B. die Scene-Umschaltung.

    yaVDR 0.6.2; H61M/U3S3 / G530 / 4GB / GT 520 (passiv) / Cine S2 (Rev. V5.5) + DuoFlex S2 / 120GB SSD (System; SATA>USB) + 3TB SATA 6Gb/s; LCD-TV Toshiba 42VL863G; AVR Yamaha RX-S600...

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!