Verständnissfragen zu einer API Beschreeibung

Begonnen von CoolTux, 18 Januar 2017, 11:52:54

Vorheriges Thema - Nächstes Thema

CoolTux

Hallo,

Ich versuche seit 2 Tagen eine Verbindung zu einem HOES Multiroom CLI auf zu bauen. Entweder verstehe ich die Beschreibung nicht oder ich habe da generell noch ein Problem.
Da ich das Teil selber nicht habe, habe ich mir erstmal einen Socket Server gebaut mit TcpServerUtils. Das klappt prima. Ich kann mit meinem HEOS Modul eine TCP Socketverbindung aufbauen und Daten rüber zum SocketServer senden und bekomme dann eine Antwort welche von meiner ReadFn prima ausgelesen wird.

Wenn nun ein User eine Verbindung zum HEOS auf baut so passiert rein gar nichts. Sendet er einen Befehl wird nicht mal die ReadFn gestartet.

Zitat
2. Connection
The HEOS products can be discovered using the UPnP SSDP protocol. Through discovery, the IP address of the HEOS products can be
retrieved. Once the IP address is retrieved, a telnet connection to port 1255 can be opened to access the HEOS CLI and control the HEOS
system. The HEOS product IP address can also be set statically and manually programmed into the control system. Search target name
(ST) in M-SEARCH discovery request is 'urn:schemas-denon-com:device:ACT-Denon:1'.
The control system should use various Get commands to determine the players and groups currently in the HEOS system.

Controller software can control all HEOS speakers in the network by establishing socket connection with just one HEOS speaker. It
is recommended not to establish socket connection to each HEOS speaker. This is to decrease network traffic caused by establishing
socket connection to each HEOS speaker. Controller software can open multiple socket connections to the single HEOS speaker. Typically
controllers will use one connection to listen for change events and one to handle user actions.

Wie würdet Ihre das verstehen. Bedeutet das nun das ich unbedingt eine Telnetverbindung aufbauen soll oder reicht eine einfache IO::Socket::INET TCP Verbindung auf den Port?

Wenn der User sich mit einem TelnetClient mit dem Teil verbindet sieht er sogar Events wenn er mit einer App z.B. das Volume ändert. Es kommen dann JSON Strings.
Ich meine das ist doch super einfach da muss man doch ganz einfach ein Modul für schreiben können, wenn ich doch bloß diese Blöde Verbindung hinbekommen würde.

Baue ich eine Telnet Verbindung IO::Socket::Telnet zum HEOS auf wird sofort nach Verbindugsaufbau in einem loop die ReadFn ausgeführt aber es kommt keine Info über die Zeichenlänge an?
Kann es sein das die Antwort länger ist wie mein buf groß. Hatte da 1024 drin. Vielleicht ist das schon das Problem.


Ratlose Grüße
Leon
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

CoolTux

2 Tage gelesen und getestet und kaum schreibt man hier kommt einen die korrekte Idee.
Vielen Dank für die die gelesen haben. Es klappt nun doch super.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net