Älteres LG Heimkinosystem (LAN fähig) über alexa steuern

AVR Geräte, Sonos, Bluetooth-Lautsprecher usw.
Antworten

Themenstarter
smiley cut

So 19. Feb 2017, 20:23

Hi,

ich habe ein älteres LG Heimkinosystem, welches per LAN mit dem Netzwerk verbunden ist. Zu dem LG Heimkinosystem gibt es eine App (Link), mit der man einige grundlegende Funktionen steuern kann:

image.png

Leider finde ich keinerlei Möglichkeiten diese einfachen Steuerungen von Alexa durchführen zu lassen. Ein Port Scan auf das LG System hat keinen offenen Port gefunden. Somit gibt es auch keinen Webserver, aber irgendwie muss doch eine Verbindung aufgebaut werden.

Hat jemand eine Idee wie diese App mit dem LG Gerät kommuniziert?

Danke.
0 x
Benutzeravatar

DrLoop
Beiträge: 815
Registriert: Mi 14. Dez 2016, 09:40
Wohnort: Berlin
Vorhandene Echos: 1
Vorhandene Echo Dots: 15

So 19. Feb 2017, 22:03

Lass doch mal Wireshark mitlaufen, während du dein LG-System per App bedienst, damit solltest du ja rausfinden was für Commands da gesendet werden
0 x
Shit happens! :-)

Themenstarter
smiley cut

Mo 20. Feb 2017, 21:53

UDP!!! Das wird tatsächlich über UDP gemacht. Ich glaube es nicht.

Ich habe lokal mit python ein Script geschrieben welche einen hex Code zur LG Anlage schickt. Und dabei habe ich bemerkt, dass die LG Anlage so lange beispielsweise die Lautstärke anpasst, bis ein weiteres UDP Paket mit einem anderen hex Code empfangen wird, welches dafür zuständig ist, dass die LG Anlage die Info erhält, dass die Lautstärke nicht länger angepasst werden soll. Lokal geht das noch sehr gut, aber wer den Unterschied zwischen TCP und UDP kennt weiß, dass das übers Internet bei der kleinen Anzahl an Paketen und der Paket Laufzeit nicht möglich ist. Meine Anlage ist schneller bei maximaler Lautstärke, als dass das Paket zum Aufhören bei der LG Anlage eintrifft. Ansonsten funktioniert das Senden von UDP Paketen mit Phyton und AWS Lamda, bzw. einem selbst geschrieben alexa Skill gut, bzw. besser als erwartet.

Wie kann LG auf diese bescheuerte Idee kommen und eine Steuerung per UDP zu programmieren?
0 x
Benutzeravatar

DrLoop
Beiträge: 815
Registriert: Mi 14. Dez 2016, 09:40
Wohnort: Berlin
Vorhandene Echos: 1
Vorhandene Echo Dots: 15

Mo 20. Feb 2017, 21:57

Würdest du die Sourcen von deinem Skill weitergeben? An mich zum Beispiel? ;) Hört sich interessant an... :)
0 x
Shit happens! :-)

Themenstarter
smiley cut

Mo 20. Feb 2017, 22:21

Meine Skill Ressourcen habe ich bereits wieder gelöscht, da wie erwähnt es einfach über das Internet nicht funktioniert.

Meine Python Befehle werde ich morgen wenn ich wieder am PC bin hier noch posten.

Der Skill selber hat aber nichts besonderes gemacht, außer eben von remote beispielsweise die Lautstärke angepasst und als kleine Sprachausgabe hinterher erwähnt, dass es entweder lauter oder leiser wurde. Aufgerufen hatte ich es beispielsweise mit "Alexa, sage Anlage lauter". Und dann wurden eben einfach die zwei UDP Pakete verschickt, die mehr oder weniger bei der Anlage ankamen.

Ich wollte es jetzt noch so umbauen, dass die Python Befehle von meinem pi an die LG Anlage geschickt werden, wenn eine Trigger URL aufgerufen wird. Aber man muss sich das mal vorstellen: Wenn das zweite Paket nicht ankommt, dann ist die Anlage im Fall von "lauter" so schnell bei maximaler Lautstärke, dass ich mir damit die Boxen kaputt mache. Man kann nicht mal normal die Lautstärke wieder reduzieren, denn es geht bis das zweite Paket ankommt nur in eine Richtung: Bis zur maximalen Lautstärke.

Ich kenne mich leider nicht gut genug damit aus, aber er scheint zu helfen das zweite UDP Paket mehrmals zu senden. Aber wie gesagt nur lokal, remote ist der Weg einfach zu lang und die Lautstärke wird viel zu schnell geändert.

Wie gesagt: Morgen kommt der Python Aufruf. Vielleicht hat jemand mit Photon Erfahrung eine Idee und man findet doch noch eine Lösung. Aber wie gesagt: UDP!!! Das Protokoll ist für eine Steuerung, bei der man eigentlich eine Rückmeldung über eine korrekte Zustellung erwartet, nicht gemacht.
0 x
Benutzeravatar

DrLoop
Beiträge: 815
Registriert: Mi 14. Dez 2016, 09:40
Wohnort: Berlin
Vorhandene Echos: 1
Vorhandene Echo Dots: 15

Di 21. Feb 2017, 07:47

Ok, cool! Mir gings dabei nicht um die Steuerung von LG, sondern um die allgemeine "Verarbeitung" von UDP in einem Skill, Laufzeiten sind hierbei nicht relevant ;)
Danke :)
0 x
Shit happens! :-)

Themenstarter
smiley cut

Di 21. Feb 2017, 08:16

Code: Alles auswählen

import socket
IPADDR = '1.2.3.4'
PORTNUM = 9741

    PACKETDATA1 = 'HEXCODE1'.decode('hex')
    PACKETDATA2 = 'HEXCODE2'.decode('hex')
    s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, 0)
    s.connect((IPADDR, PORTNUM))
    s.send(PACKETDATA1)
    s.send(PACKETDATA2)
    s.close()    
0 x
Benutzeravatar

DrLoop
Beiträge: 815
Registriert: Mi 14. Dez 2016, 09:40
Wohnort: Berlin
Vorhandene Echos: 1
Vorhandene Echo Dots: 15

Di 21. Feb 2017, 09:30

Danke dir :) 1234567
0 x
Shit happens! :-)
Antworten

Zurück zu „Sound und Anlagen“

  • Information