Ankündigung

Einklappen
Keine Ankündigung bisher.

Wireshark - TCP Protokoll der App aufzeichnen Steuerung der Musikanlage mittels Szene

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    [OT] Wireshark - TCP Protokoll der App aufzeichnen Steuerung der Musikanlage mittels Szene

    Hardware:

    Yamaha Disklavier mit Appsteuerung (Yamaha Enspire App).


    Ziel:
    Das Klavier kann analog einer Musikanlage eine Playlist mit der App abspielen. Ich würde gerne mit einer Szene die Musik vom Klavier angehen lassen. Jetzt war meine Überlegung die, mittels Wireshark den Traffic bzw. das TCP Protokoll von meinem Handy und der Musikanlage mitzuschneiden wenn ich in der App auf die Play Taste drücke.

    Das TCP Protokoll wird dann später mittels Gira HS gesendet anstatt mit der Play Taste in der App.

    So einfach ist es jedoch nicht bzw. fehlt mir hier die Erfahrung mit Wireshark.

    Eine Anfrage bei Yamaha verlief negativ. Die konnten mir nicht weiterhelfen...


    Frage:
    Bin ich da überhaupt auf dem richtigen Weg?

    Wie würdet ihr die Sache angehen?

    Ist es überhaupt möglich den Befehl herauszufinden und im Homeserver zu verwenden?


    image.png

    #2
    Kommt drauf an. Prinzipiell ist das eine gute Idee,
    1. Du musst halt in die "Mitte" der Verbindung kommen, d.h. entweder Du hast noch einen guten alten Hub, oder einen Switch mit Mirror-Port, einen Netzwerk-TAP oder einen Computer mit zwei Netzwerkkarten (LAN-LAN oder Wifi-LAN). Die App schickt ja nur dem Klavier die Kommandos, und alle "schlauen" Geräte schicken die Netzwerkpakete nur genau dahin.
    2. Das Netzwerkprotokoll muss irgendwie gutartig sein. Wenn es SSL-verschlüsselt ist, ist das fast schon Endstation. Am schönsten sind telnet-Protokolle, also wo per TCP ASCII-Nachrichten geschickt werden (wie bspw. Denon HEOS). Das weißt Du halt erst, wenn Du mal das Ohr auf die Leitung gebracht hast. Wenn Du Pech hast, ist das Protokoll ein schlecht gemachter Binär-Kram, durch den selbst der Hersteller nicht ordentlich durchsteigt.
    Wenn Du das Klavier mit der App schon am Laufen hast, wäre meine erste Frage, wie die App das Klavier gefunden hat; ob Du irgendein Pairing durchführen musstest oder ob jeder Hanswurst mit der App im WLAN das Klavier unter Kontrolle bringen kann (Spräche für ein einfacheres Protokoll).

    Im Wikipedia-Artikel dazu steht, dass das Disklavier MIDI abspielt, d.h. es könnte sein, dass die App selbst die MIDI-Sequenzen schickt, nicht nur ein "PLAY"-Kommando.

    Kommentar


      #3
      Erstmal danke für deine ausführliche Antwort... Soweit ich das in Erinnerung hab, wird das Klavier angezeigt, sobald man sich mit der App im WLAN befindet und die App öffnet. Hier kann man dann das Klavier einmal auswählen und fertig.

      Netzwerk ist alles von Ubiquiti an Switches und zusätzlich noch die UniFi Dream Machine Pro verbaut. Lt. meinen ersten Recherchen im Netz ist hier so ein Mirror Port möglich...

      Letzte Frage, klappt das auch wenn ich per Open VPN Connect zugreife?



      Kommentar


        #4
        Zitat von Jokl Beitrag anzeigen
        Letzte Frage, klappt das auch wenn ich per Open VPN Connect zugreife?
        Eher nicht: Du stellt am Switch den Mirror-Port so ein, dass er den Port des Klaviers spiegelt (eingehend UND ausgehende Pakete für den Mirror-Port konfigurieren!). D.h. Du kriegst dann alle Pakete als Kopie an den Mirror-Port. Da muss jetzt eine Netzwerkkarte ran und an der muss irgendein Computer hängen auf dem Wireshark (oder tcpdump) läuft.

        Wenn es denn VPN sein soll, dann häng einen Rechner (raspberry-pi genügt) vor Ort an den Mirror-Port. Der braucht dann noch eine zweite Netzwerkkarte (Wifi geht auch), auf der er selber mit dem Netzwerk reden kann. Auf dieser zweiten Verbindung kannst Du den dann per VPN erreichen. Dann gehst Du per ssh oder TeamViewer oder RDP (...) auf den Rechner drauf und schaust dem Wireshark (oder tcpdump) beim Arbeiten zu. Wichtig wäre, dass die Mirror-Port-Netzwerkkarte keine IP-Adresse eingestellt hat.

        Der Mirror-Port spiegelt ja alle Ethernet-Pakete, VPN ist aber auf IP-Ebene; also eine Ebene höher. Ggf. findest Du auch eine Lösung, die die Ethernet-Verbindung über Dein VPN tunnelt. Ich denke aber, den Wiresharp vor Ort laufen zu lassen und dann remote zu steuern ist einfacher.

        Kommentar


          #5
          Hallo

          Auf der Yamaha Webseite wird auf eine "custom API" unter dem Punkt "Control Integration" verwiesen.

          Disklavier Pianos - Pianos - Musical Instruments - Products - Yamaha USA

          Kann gut sein, dass dies die Yamaha YXC ist (angepasste uPnP).

          D.h. wenn Du mit Wireshark auf die Suche gehen willst, musst Du auf jeden Fall auch die Multicast Adressen berücksichtigen.

          Evtl. auch nochmal bei Yamaha explizit nach der API (nachdem sie auf der Website referenziert wird...) nachfragen.

          Finde ich auf jeden Fall mega interessant ;-)

          --Thomas
          Smart homes for smart people

          Kommentar


            #6
            Eine Alternative wäre vielleicht auch, wenn dir Wireshark nicht alle Fragen beantwortet, oder gar keine, siehe HTTPS, die App zu disassemblen.

            Falls der Hersteller einen Zertifikatsschlüssel direkt in der App hinterlegt hat, kannst du den verwenden, um TLS trotzdem zu entschlüsseln (auch , wenn das vielleicht eher unwahrscheinlich ist).

            Aber, viel spannender, du wirst dir die Netzwerkkommunikation im Detail ansehen können. Das ist vielleicht sogar sehr mühsam, weil die Quelltexte wenig Sinn ergeben, aber mit ein bisschen suchen kommt man meistens weiter.

            Hab das selber allerdings zuletzt vor 7 Jahren gemacht (damals eine Kombination aus Wireshark und disassembly für ein Bluetooth Protokoll), da könnte sich einiges getan haben in der Zwischenzeit.

            Kommentar


              #7
              Also das mit der API ist wohl ein sehr guter Ansatz, den versuche ich jetzt mal zu verfolgen....

              Kommentar

              Lädt...
              X