Samsung Smart TV

Подключение исполнительных устройств, датчиков, контроллеров.

Модератор: immortal

dmw
Сообщения: 469
Зарегистрирован: Вт мар 12, 2013 1:22 am
Благодарил (а): 41 раз
Поблагодарили: 81 раз

Re: Samsung Smart TV

Сообщение dmw » Сб сен 21, 2013 10:01 am

Нда, в выключенном ТВ его 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.
походу решение с ИК проще и менее геморойно. А жаль.
alex1983
Сообщения: 1
Зарегистрирован: Вт сен 24, 2013 9:10 am
Благодарил (а): 0
Поблагодарили: 0

Re: Samsung Smart TV

Сообщение alex1983 » Вт сен 24, 2013 9:16 am

Здравствуйте!Подскажите пожалуйста,установил скрипт samsungremote.php в C:\_majordomo\htdocs\scripts,сделал все настройки.при выборе канала в браузере появляется такое предупреждения there was a problem with the request.Подскажите,что я сделал не правильно?
dmw
Сообщения: 469
Зарегистрирован: Вт мар 12, 2013 1:22 am
Благодарил (а): 41 раз
Поблагодарили: 81 раз

Re: Samsung Smart TV

Сообщение dmw » Вт сен 24, 2013 4:02 pm

Xseon писал(а): Посидев на форуме http://forum.samygo.tv я понял, что Смарт ТВ работает по TCP порту 55000 телнетом.
Дело в том, что телнет "волшебный", а именно с 64-х битным шифрованием, да ешё и в 3 этапа...
А можно также через этот волшебный телнет запросить текущее состояние ТВ? Например номер текущего канала или источника видеосигнала?
Xseon
Сообщения: 51
Зарегистрирован: Ср сен 18, 2013 12:21 am
Благодарил (а): 9 раз
Поблагодарили: 7 раз

Re: Samsung Smart TV

Сообщение Xseon » Ср сен 25, 2013 7:21 am

to alex1983
нужно чтобы файл лежал в корне, иначе нужно в вызываемом файле прописать путь к нему для каждой команды.
to dwm
Не разбирался, но мне кажется нет там каких команд...
З.Ы. Много всего разом дома навалилось, хотел скрипт допилить, но пока не могу...
dimik
Сообщения: 141
Зарегистрирован: Пн апр 22, 2013 10:42 am
Благодарил (а): 3 раза
Поблагодарили: 8 раз

Re: Samsung Smart TV

Сообщение dimik » Ср окт 30, 2013 10:46 am

А что делать тем у кого телевизор LG со smartTV?
нет ли такого под LG?
Xseon
Сообщения: 51
Зарегистрирован: Ср сен 18, 2013 12:21 am
Благодарил (а): 9 раз
Поблагодарили: 7 раз

Re: Samsung Smart TV

Сообщение Xseon » Вт ноя 12, 2013 11:06 am

По LG подсказать не могу, так как нет такого, и форум где я нашёл скрипт для заточен под технику Samsung'a...
krashn056
Сообщения: 35
Зарегистрирован: Пн янв 20, 2014 9:28 pm
Благодарил (а): 4 раза
Поблагодарили: 1 раз

Re: Samsung Smart TV

Сообщение krashn056 » Ср янв 22, 2014 9:40 pm

А можно ли что то подобное сделать для управления медиаплеером Philips 7001
dmw
Сообщения: 469
Зарегистрирован: Вт мар 12, 2013 1:22 am
Благодарил (а): 41 раз
Поблагодарили: 81 раз

Re: Samsung Smart TV

Сообщение dmw » Пн мар 24, 2014 1:22 pm

Поразбирался и я немного.
Мне нужно было получать информацию о том какой сейчас используется вход - источник видео сигнала (антена, 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
dmw
Сообщения: 469
Зарегистрирован: Вт мар 12, 2013 1:22 am
Благодарил (а): 41 раз
Поблагодарили: 81 раз

Re: Samsung Smart TV

Сообщение dmw » Пн мар 24, 2014 1:48 pm

В связи с вышесказанным подправил исходник samsungremote.php из первого поста.
Теперь доступны дополнительно три команды:
../samsungremote.php?GetVolume - возвращает текущую установленную на ТВ громкость
../samsungremote.php?GetMuteStatus - возвращает включен режим mute или нет
../samsungremote.php?GetCurrentExternalSource - возвращает текущий источник видеосигнала
Вложения
samsungremote.zip
(2.08 КБ) 468 скачиваний
За это сообщение автора dmw поблагодарил:
dubroal (Чт сен 14, 2017 1:58 pm)
Рейтинг: 1.16%
LVitat
Сообщения: 29
Зарегистрирован: Пн июн 23, 2014 8:59 pm
Благодарил (а): 0
Поблагодарили: 9 раз

Re: Samsung Smart TV

Сообщение LVitat » Пн июл 20, 2015 6:53 am

Нарезал картинку для сцены..
Вложения
SM.png
SM.png (42.08 КБ) 11513 просмотров
html.part2.rar
(362.51 КБ) 359 скачиваний
html.part1.rar
(976.56 КБ) 352 скачивания
За это сообщение автора LVitat поблагодарили (всего 4):
skysilver (Пн июл 20, 2015 9:22 am) • nick7zmail (Пт авг 21, 2015 9:54 pm) • DiArt (Вс ноя 19, 2017 5:43 pm) • Hold (Вт ноя 28, 2017 10:03 am)
Рейтинг: 4.65%
Изображение
Ответить