Seite 2 von 3
Re: Harman Kardon BDS577 steuern über CCU.IO
Verfasst: 25.06.2014, 07:43
von Communicate
Guten Morgen zusammen,
ich verstehe nicht alles von dem, was ich da mitgesnifft habe, aber ein paar interessante Informationen hab ich dann doch gefunden:
Code: Alles auswählen
POST HK_APP HTTP/1.1
Host: :10025
User-Agent: Harman Kardon BDS Remote Controller/1.0
Content-Length: 163
<?xml version="1.0" encoding="UTF-8"?> <harman> <bds> <common> <control> <name>heart-alive</name> <zone></zone> <para></para> </control> </common> </bds> </harman>
POST HK_APP HTTP/1.1
Host: 192.168.178.24:10025
User-Agent: Harman Kardon BDS G3 /1
Content-Length: 150
<?xml version="1.0" encoding="UTF-8"?><harman><bds><common><status><name>heart-alive</name><zone></zone><para></para></status></common></bds></harman>
POST HK_APP HTTP/1.1
Host: :10025
User-Agent: Harman Kardon BDS Remote Controller/1.0
Content-Length: 172
<?xml version="1.0" encoding="UTF-8"?> <harman> <bds> <common> <control> <name>volume-down</name> <zone>Main Zone</zone> <para></para> </control> </common> </bds> </harman>
Ich habe also zumindest rausgefunden, mit welchem Befehl ich die Lautstärke verringern kann.
Jetzt bleibt nur noch die Frage, wie und in welcher Form ich die Befehle an die Anlage schicken kann und was es mit dem heart-alive auf sich hat.
Kennt sich einer von Euch damit aus?
Viele Grüße
Dominic
Re: Harman Kardon BDS577 steuern über CCU.IO
Verfasst: 25.06.2014, 12:57
von Bluefox
Es gibt für Chrom eine Extension POSTMAN:
https://chrome.google.com/webstore/deta ... oidkmcomcm
Kannst du damit an
http://192.168.178.24:10025
so was senden?
Code: Alles auswählen
<?xml version="1.0" encoding="UTF-8"?> <harman> <bds> <common> <control> <name>mute-on</name> <zone>Main Zone</zone> <para></para> </control> </common> </bds> </harman>
Re: Harman Kardon BDS577 steuern über CCU.IO
Verfasst: 25.06.2014, 20:16
von Communicate
Hallo,
das war es leider noch nicht
Es passiert einfach gar nichts. Kann man in Postman irgendwie debuggen, so dass man sehen würde ob der Harman eine Rückmeldung gibt?
Re: Harman Kardon BDS577 steuern über CCU.IO
Verfasst: 25.06.2014, 21:37
von Bluefox
Das währe auch zu einfach.
Ich werde script vorbereiten. Denn solltest du dann ausprobieren.
Gibt mir ein bisschen Zeit.
Re: Harman Kardon BDS577 steuern über CCU.IO
Verfasst: 27.06.2014, 07:35
von Communicate
Hallo Bluefox,
da habe ich doch vor lauter WM-Fieber glatt vergessen, mich bei Dir zu bedanken.
Vielen Dank für Deinen Einsatz und Deine Hilfsbereitschaft.
Ich freue mich schon auf das Skrikpt und bin gespannt, ob wir das gemeinsam
zum laufen bringen.
Viele Grüße
Dominic
Re: Harman Kardon BDS577 steuern über CCU.IO
Verfasst: 27.06.2014, 09:45
von Bluefox
Code: Alles auswählen
var net = require('net');
var HOST = '192.168.178.24';
var PORT = 10025;
// Supported commands:
// volume-down
// mute-on
// source-selection (param is used: Component, DISC)
// Play
function buildRequest(cmd, zone, param) {
var text = '';
var payload = '<?xml version="1.0" encoding="UTF-8"?> <harman> <bds> <common> <control> <name>' + cmd + '</name> <zone>' + zone + '</zone> <para>' + param + '</para> </control> </common> </bds> </harman>';
zone = zone || 'Main Zone';
param = param || ''
text += 'POST HK_APP HTTP/1.1\r\n';
text += 'Host: :' + PORT + '\r\n';
text += 'User-Agent: Harman Kardon BDS Remote Controller/1.0\r\n';
text += 'Content-Length: ' + payload.length + '\r\n';
text += '\r\n';
text += payload;
return text;
}
var client = new net.Socket();
client.connect(PORT, HOST, function() {
console.log('CONNECTED TO: ' + HOST + ':' + PORT);
client.write(buildRequest('mute-on'));
});
// Add a 'data' event handler for the client socket
// data is what the server sent to this socket
client.on('data', function(data) {
console.log('DATA: ' + data);
// Close the client socket completely
client.destroy();
});
// Add a 'close' event handler for the client socket
client.on('close', function() {
console.log('Connection closed');
});
Kannst das als harman.js irgendwo abspeichern und mit:
node harman.js
starten.
Wenn es funktioniert, dann sollte das Gerät auf "mute" gehen.
Re: Harman Kardon BDS577 steuern über CCU.IO
Verfasst: 27.06.2014, 21:08
von Communicate
Hallo Bluefox,
mein Held
Das funktioniert tatsächlich!!!
Bis hier hin: Vielen vielen lieben Dank.
Jetzt habe ich nur noch 2 Punkte:
1. Was genau macht denn das Skript, damit die Steuerung jetzt funktioniert?
2. Wie integriere ich das jetzt am besten in CCU.IO?
Nochmal vielen vielen Dank für Deine tolle Hilfe
Viele Grüße
Dominic
Re: Harman Kardon BDS577 steuern über CCU.IO
Verfasst: 27.06.2014, 21:55
von Bluefox
Warte mal mit der Implementierung ab. Weil es neben bei noch jemand um Yamaha Adapter fragt, werde ich den Harman Adapter schon fertig machen und dann auf Yamaha abändern.
Was du herausfinden solltest, das ist welche Kommandos es gibt.
Wie ich gesehen habe, es gibt:
Code: Alles auswählen
volume-down
mute-on
source-selection (param is used: Component, DISC)
Play
Daraus kann ich vermuten, dass es noch folgende Befehle gibt:
Fehlen noch fast-forward, fast-rewind, next, prev,
Es muss auch so sein, dass das Gerät sein Zustand melden soll. Kannst du Sniffer/Wireshark Starten, App Starten und dann über Fernbedienung (nicht über App) Play/Stop, mute-on/off machen?
Interessant ist, ob das App mitbekommt oder ob App nur reine Fernbedienung ist.
Testen kannst du die Befehle mit dem script in dem du Zeile:
client.write(buildRequest('mute-on'));
modifizierst.
Re: Harman Kardon BDS577 steuern über CCU.IO
Verfasst: 27.06.2014, 23:10
von Communicate
Es muss auch so sein, dass das Gerät sein Zustand melden soll. Kannst du Sniffer/Wireshark Starten, App Starten und dann über Fernbedienung (nicht über App) Play/Stop, mute-on/off machen?
Interessant ist, ob das App mitbekommt oder ob App nur reine Fernbedienung ist.
Das kommt dabei raus, wenn ich zwei Tasten auf der Hardware Fernbedienung gedrückt habe:
Code: Alles auswählen
POST HK_APP HTTP/1.1
Host: :10025
User-Agent: Harman Kardon BDS Remote Controller/1.0
Content-Length: 163
<?xml version="1.0" encoding="UTF-8"?> <harman> <bds> <common> <control> <name>heart-alive</name> <zone></zone> <para></para> </control> </common> </bds> </harman>POST HK_APP HTTP/1.1
Host: 192.168.178.24:10025
User-Agent: Harman Kardon BDS G3 /1
Content-Length: 150
<?xml version="1.0" encoding="UTF-8"?><harman><bds><common><status><name>heart-alive</name><zone></zone><para></para></status></common></bds></harman>POST HK_APP HTTP/1.1
Host: :10025
User-Agent: Harman Kardon BDS Remote Controller/1.0
Content-Length: 163
<?xml version="1.0" encoding="UTF-8"?> <harman> <bds> <common> <control> <name>heart-alive</name> <zone></zone> <para></para> </control> </common> </bds> </harman>POST HK_APP HTTP/1.1
Host: 192.168.178.24:10025
User-Agent: Harman Kardon BDS G3 /1
Content-Length: 150
<?xml version="1.0" encoding="UTF-8"?><harman><bds><common><status><name>heart-alive</name><zone></zone><para></para></status></common></bds></harman>
Was du herausfinden solltest, das ist welche Kommandos es gibt.
Ich habe jetzt jede Taste in der App einmal gedrückt:
Code: Alles auswählen
<?xml version="1.0" encoding="UTF-8"?> <harman> <bds> <common> <control> <name>Back</name> <zone>Main Zone</zone> <para></para> </control> </common> </bds> </harman>
<?xml version="1.0" encoding="UTF-8"?> <harman> <bds> <common> <control> <name>bye-bye</name> <zone></zone> <para></para> </control> </common> </bds> </harman>
<?xml version="1.0" encoding="UTF-8"?> <harman> <bds> <common> <control> <name>Down</name> <zone>Main Zone</zone> <para></para> </control> </common> </bds> </harman>
<?xml version="1.0" encoding="UTF-8"?> <harman> <bds> <common> <control> <name>eject</name> <zone>Main Zone</zone> <para></para> </control> </common> </bds> </harman>
<?xml version="1.0" encoding="UTF-8"?> <harman> <bds> <common> <control> <name>heart-alive</name> <zone></zone> <para></para> </control> </common> </bds> </harman>
<?xml version="1.0" encoding="UTF-8"?> <harman> <bds> <common> <control> <name>Home</name> <zone>Main Zone</zone> <para></para> </control> </common> </bds> </harman>
<?xml version="1.0" encoding="UTF-8"?> <harman> <bds> <common> <control> <name>keyboard</name> <zone>Main Zone</zone> <para></para> </control> </common> </bds> </harman>
<?xml version="1.0" encoding="UTF-8"?> <harman> <bds> <common> <control> <name>Left</name> <zone>Main Zone</zone> <para></para> </control> </common> </bds> </harman>
<?xml version="1.0" encoding="UTF-8"?> <harman> <bds> <common> <control> <name>Ok</name> <zone>Main Zone</zone> <para></para> </control> </common> </bds> </harman>
<?xml version="1.0" encoding="UTF-8"?> <harman> <bds> <common> <control> <name>Options</name> <zone>Main Zone</zone> <para></para> </control> </common> </bds> </harman>
<?xml version="1.0" encoding="UTF-8"?> <harman> <bds> <common> <control> <name>popup</name> <zone>display</zone> <para></para> </control> </common> </bds> </harman>
<?xml version="1.0" encoding="UTF-8"?> <harman> <bds> <common> <control> <name>Program</name> <zone>Main Zone</zone> <para></para> </control> </common> </bds> </harman>
<?xml version="1.0" encoding="UTF-8"?> <harman> <bds> <common> <control> <name>Right</name> <zone>Main Zone</zone> <para></para> </control> </common> </bds> </harman>
<?xml version="1.0" encoding="UTF-8"?> <harman> <bds> <common> <control> <name>sleep</name> <zone>Main Zone</zone> <para></para> </control> </common> </bds> </harman>
<?xml version="1.0" encoding="UTF-8"?> <harman> <bds> <common> <control> <name>source-selection</name> <zone>Main Zone</zone> <para>AUX</para> </control> </common> </bds> </harman>
<?xml version="1.0" encoding="UTF-8"?> <harman> <bds> <common> <control> <name>source-selection</name> <zone>Main Zone</zone> <para>Bluetooth</para> </control> </common> </bds> </harman>
<?xml version="1.0" encoding="UTF-8"?> <harman> <bds> <common> <control> <name>source-selection</name> <zone>Main Zone</zone> <para>Component</para> </control> </common> </bds> </harman>
<?xml version="1.0" encoding="UTF-8"?> <harman> <bds> <common> <control> <name>source-selection</name> <zone>Main Zone</zone> <para>DISC</para> </control> </common> </bds> </harman>
<?xml version="1.0" encoding="UTF-8"?> <harman> <bds> <common> <control> <name>source-selection</name> <zone>Main Zone</zone> <para>HDMI1</para> </control> </common> </bds> </harman>
<?xml version="1.0" encoding="UTF-8"?> <harman> <bds> <common> <control> <name>source-selection</name> <zone>Main Zone</zone> <para>HDMI2</para> </control> </common> </bds> </harman>
<?xml version="1.0" encoding="UTF-8"?> <harman> <bds> <common> <control> <name>source-selection</name> <zone>Main Zone</zone> <para>HDMI3</para> </control> </common> </bds> </harman>
<?xml version="1.0" encoding="UTF-8"?> <harman> <bds> <common> <control> <name>source-selection</name> <zone>Main Zone</zone> <para>Picasa</para> </control> </common> </bds> </harman>
<?xml version="1.0" encoding="UTF-8"?> <harman> <bds> <common> <control> <name>source-selection</name> <zone>Main Zone</zone> <para>Radio</para> </control> </common> </bds> </harman>
<?xml version="1.0" encoding="UTF-8"?> <harman> <bds> <common> <control> <name>source-selection</name> <zone>Main Zone</zone> <para>USB</para> </control> </common> </bds> </harman>
<?xml version="1.0" encoding="UTF-8"?> <harman> <bds> <common> <control> <name>source-selection</name> <zone>Main Zone</zone> <para>YouTube</para> </control> </common> </bds> </harman>
<?xml version="1.0" encoding="UTF-8"?> <harman> <bds> <common> <control> <name>thumbnail</name> <zone>Main Zone</zone> <para></para> </control> </common> </bds> </harman>
<?xml version="1.0" encoding="UTF-8"?> <harman> <bds> <common> <control> <name>Up</name> <zone>Main Zone</zone> <para></para> </control> </common> </bds> </harman>
<?xml version="1.0" encoding="UTF-8"?> <harman> <bds> <common> <control> <name>zoom</name> <zone>Main Zone</zone> <para></para> </control> </common> </bds> </harman>
<?xml version="1.0" encoding="UTF-8"?><harman><bds><common><status><name>heart-alive</name><zone></zone><para></para></status></common></bds></harman>
Was mir noch aufgefallen ist: Die App hat drei Screens und die werden anscheinend über den Xml-Tag "ZONE" abgebildet.
Re: Harman Kardon BDS577 steuern über CCU.IO
Verfasst: 30.06.2014, 17:12
von Bluefox
Aus deiner Untersuchung kann ich sehen, dass App keinen Zustand von Harman zeigen kann. Habe ich recht?
P.S. für mich ist trotzdem besser pcap Dateien zu sehen. Da kann ich z.B. Zeitabstand zwischen Frames sehen.