Страница 2 из 8
Re: Samsung Smart TV
Добавлено: Сб сен 21, 2013 10:01 am
dmw
Нда, в выключенном ТВ его bluetooth модуль не активен:
Код: Выделить всё
root@Server:~# hcitool scan
Scanning ...
root@Server:~# hcitool info D0:66:7B:26:30:FF
Requesting information ...
Can't create connection: Input/output error
root@Server:~# sudo hcitool cc D0:66:7B:26:30:FF && sudo hcitool con && sudo hcitool auth D0:66:7B:26:30:FF
Can't create connection: Input/output error
Connections:
Not connected.
походу решение с ИК проще и менее геморойно. А жаль.
Re: Samsung Smart TV
Добавлено: Вт сен 24, 2013 9:16 am
alex1983
Здравствуйте!Подскажите пожалуйста,установил скрипт samsungremote.php в C:\_majordomo\htdocs\scripts,сделал все настройки.при выборе канала в браузере появляется такое предупреждения there was a problem with the request.Подскажите,что я сделал не правильно?
Re: Samsung Smart TV
Добавлено: Вт сен 24, 2013 4:02 pm
dmw
Xseon писал(а):
Посидев на форуме
http://forum.samygo.tv я понял, что Смарт ТВ работает по TCP порту 55000 телнетом.
Дело в том, что телнет "волшебный", а именно с 64-х битным шифрованием, да ешё и в 3 этапа...
А можно также через этот волшебный телнет запросить текущее состояние ТВ? Например номер текущего канала или источника видеосигнала?
Re: Samsung Smart TV
Добавлено: Ср сен 25, 2013 7:21 am
Xseon
to alex1983
нужно чтобы файл лежал в корне, иначе нужно в вызываемом файле прописать путь к нему для каждой команды.
to dwm
Не разбирался, но мне кажется нет там каких команд...
З.Ы. Много всего разом дома навалилось, хотел скрипт допилить, но пока не могу...
Re: Samsung Smart TV
Добавлено: Ср окт 30, 2013 10:46 am
dimik
А что делать тем у кого телевизор LG со smartTV?
нет ли такого под LG?
Re: Samsung Smart TV
Добавлено: Вт ноя 12, 2013 11:06 am
Xseon
По LG подсказать не могу, так как нет такого, и форум где я нашёл скрипт для заточен под технику Samsung'a...
Re: Samsung Smart TV
Добавлено: Ср янв 22, 2014 9:40 pm
krashn056
А можно ли что то подобное сделать для управления медиаплеером Philips 7001
Re: Samsung Smart TV
Добавлено: Пн мар 24, 2014 1:22 pm
dmw
Поразбирался и я немного.
Мне нужно было получать информацию о том какой сейчас используется вход - источник видео сигнала (антена, HDMI, PC и т.п.). Дело в том что MD работает на XBMCbuntu и с помощью Arduino перехватываются нажатие некоторых кнопок пульта от ТВ для управления самой XBMC. В обычном режиме при просмотре ТВ-каналов на пульте стрелки и кнопка ОК не используются, но если их нажимать просто так то в фоне с сервером происходит непредсказуемое, можно нечаянно его выключить или перезагрузить, запустить фильм и так далее. Поэтому требовалось както определять что сейчас на экране ТВ и если это не меню XBMC (вход HDMI2), то на пульт не реагировать никак.
Текущее состояние и некоторое управление телевизором доступно на 52235 порту через SOAP action обычным GEt/POST-запросом в xml формате.
В моем случае нужно послать сервису MainTVAgent2 команду GetCurrentExternalSource таким пакетом:
Код: Выделить всё
POST /MainTVServer2/control/MainTVAgent2 HTTP/1.0
Host: 192.168.1.15:52235
Content-Type: text/xml; charset='utf-8'
Content-Length: 298
SOAPACTION: "urn:samsung.com:service:MainTVAgent2:1#GetCurrentExternalSource"
Connection: close
<?xml version="1.0" encoding="utf-8"?>
<s:Envelope s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<u:GetCurrentExternalSource xmlns:u="urn:samsung.com:service:MainTVAgent2:1">
</u:GetCurrentExternalSource>
</s:Body>
</s:Envelope>
На php это выглядит следующим образом:
Код: Выделить всё
<?
$tvip = "192.168.1.15";
$command = "GetCurrentExternalSource";
$Body='<?xml version="1.0" encoding="utf-8"?><s:Envelope s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><s:Body><u:'.$command.' xmlns:u="urn:samsung.com:service:MainTVAgent2:1"></u:'.$command.'></s:Body></s:Envelope>';
$Clen=strlen($Body);
$out ="POST /MainTVServer2/control/MainTVAgent2 HTTP/1.0\r\nHost: ".$tvip.":52235\r\nContent-Type: text/xml; charset='utf-8'\r\nContent-Length: ".$Clen."\r\n".'SOAPACTION: "urn:samsung.com:service:MainTVAgent2:1#'.$command.'"'."\r\nConnection: close\r\n\r\n";
$fp = fsockopen($tvip, 52235,$errno,$errstr,15);
$result='';
if ($fp) {
$out .= $Body."\r\n\r\n";
fwrite($fp, $out);
while (!feof($fp)) {
$result .= fgets($fp, 1024);
}
fclose($fp);
}
//выведет содержимое ответного пакета:
//echo $result;
//распарсим для более человеческого вида:
preg_match("/<ID>(.*?)<\/ID>/is",$result,$idCurrentExternalSource);
preg_match("/<CurrentExternalSource>(.*?)<\/CurrentExternalSource>/is",$result,$CurrentExternalSource);
echo 'Source='.$CurrentExternalSource[1].'<br>';
echo 'id='.$idCurrentExternalSource[1].'<br>';
?>
Если использовать команды требующих входных данных, то они задаются между <u></u>
Доступный конкретному ТВ action list выдаст по ссылке:
http://192.168.1.15:52235/MainTVServer2 ... Agent2.xml
Помимо сервиса MainTVAgent2 также есть еще один сервис называется RenderingControl1, его action list доступен тут:
http://192.168.1.15:52235/dmr/RenderingControl1.xml
Через этот сервис например можно узнать текущую громкость, для этого нужно послать ему GetVolume аналогичным способом (обратите внимание с параметрами):
Код: Выделить всё
POST /smp_4_ HTTP/1.1
Host: 192.168.1.15:52235
Content-Type: text/xml; charset=UTF-8
Content-Length: 339
SOAPACTION: "SoapAction:urn:schemas-upnp-org:service:RenderingControl:1#GetVolume"
Connection: close
<?xml version="1.0" encoding="utf-8"?>
<s:Envelope s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<ns0:GetVolume xmlns:ns0="urn:schemas-upnp-org:service:RenderingControl:1">
<InstanceID>0</InstanceID>
<Channel>Master</Channel>
</ns0:GetVolume>
</s:Body>
</s:Envelope>
Напоследок ссылки, на которые отвечает мой ТВ:
http://192.168.1.15:52235/MainTVServer2 ... r2Desc.xml - информация о ТВ
http://192.168.1.15:52235/rcr/RemoteControlReceiver.xml - тоже информация о ТВ
http://192.168.1.15:52235/MainTVServer2 ... Agent2.xml - action list сервиса MainTVAgent2
http://192.168.1.15:52235/rcr/TestRCRService.xml
http://192.168.1.15:52235/dmr/AVTransport1.xml
http://192.168.1.15:52235/dmr/ConnectionManager1.xml - action list сервиса ConnectionManager1
http://192.168.1.15:52235/dmr/RenderingControl1.xml - action list сервиса RenderingControl1
http://192.168.1.15:52235/dmr/SamsungMRDesc.xml
Иконки:
http://192.168.1.15:52235/dmr/icon_LRG.jpg
http://192.168.1.15:52235/dmr/icon_LRG.png
http://192.168.1.15:52235/dmr/icon_SML.jpg
http://192.168.1.15:52235/dmr/icon_SML.png
http://192.168.1.15:9090/liveStream/1 - стрим с экрана в mpeg4, запускается только после команды StartCloneView сервиса MainTVServer2
Re: Samsung Smart TV
Добавлено: Пн мар 24, 2014 1:48 pm
dmw
В связи с вышесказанным подправил исходник samsungremote.php из первого поста.
Теперь доступны дополнительно три команды:
../samsungremote.php?GetVolume - возвращает текущую установленную на ТВ громкость
../samsungremote.php?GetMuteStatus - возвращает включен режим mute или нет
../samsungremote.php?GetCurrentExternalSource - возвращает текущий источник видеосигнала
Re: Samsung Smart TV
Добавлено: Пн июл 20, 2015 6:53 am
LVitat
Нарезал картинку для сцены..