Процесс обнаружения Sony API и Sony STR-DN1080 - PullRequest
0 голосов
/ 31 октября 2018

re: https://developer.sony.com/develop/audio-control-api/hardware-overview/discovery-process

Hello. У меня APAC регион Sony STR-DN1080 AVR. Я могу контролировать AVR через API просто отлично. Я просто не могу обнаружить поддерживаемые устройства Sony, использующие SSDP.

Кажется, что AVR периодически объявляет о себе в сети через UDP, но он не отвечает на запросы многоадресной рассылки, используя формат, описанный в документации.

Служба Web API даже не отвечает, когда я заменяю строку "ST: ...." на ST: upnp:rootdevice или ST: ssdp:all. Другие устройства в моей сети отвечают, но не сервис Web API. Однако встроенная служба UPnP / DLNA отвечает.

Вот мой пакет:

String msg = "M-SEARCH * HTTP/1.1\r\n" +
    "HOST: 239.255.255.250:1900\r\n" +
    "MAN: \"ssdp:discover\"\r\n" +
    "MX: 1\r\n" +
    "ST: urn:schemas-sony-com:service:ScalarWebAPI:1\r\n" +
    "USER-AGENT: me\r\n" +
    "\r\n" ;

Есть что-то, чего мне не хватает? Заранее спасибо.

1 Ответ

0 голосов
/ 09 января 2019

Решение. Я не смог получить требуемый ответ от Sony STR-DN1080 с указанной трансляцией M-SEARCH, как бы я ни пытался. Итак, вместо этого, вот что я сделал:

  1. используйте тег ST: ssdp:all\r\n в трансляции M-SEARCH.
String msg = "M-SEARCH * HTTP/1.1\r\n" +
    "HOST: 239.255.255.250:1900\r\n" +
    "MAN: \"ssdp:discover\"\r\n" +
    "MX: 1\r\n" +
    "ST: ssdp:all\r\n" +
    "\r\n" ;
  1. build Набор IP-адресов всех отвечающих устройств.
  2. поиск каждого устройства в наборе на наличие этого файла: {ip address}: 8008 / ssdp / device-desc.xml.
  3. сканировать каждую строку этого XML-файла на наличие строки "STR-DN1080".

Это не то место, где я хотел оказаться, но оно работает.

...