Samsung Smart TV
Модератор: immortal
-
- Сообщения: 32
- Зарегистрирован: Вс фев 28, 2016 8:11 am
- Благодарил (а): 1 раз
- Поблагодарили: 3 раза
Re: Samsung Smart TV
Добрый день.
до 55000 порта не достучаться.
вот ответ:
до 55000 порта не достучаться.
вот ответ:
- Вложения
-
- Безымянный.png (32.98 КБ) 10605 просмотров
Re: Samsung Smart TV
На ТВ разрешил доступ, я подключал POWEROFF командой.
а зачем там вставлять конфиг с лоадером ?
вот мой php
а зачем там вставлять конфиг с лоадером ?
вот мой php
Код: Выделить всё
<?
//error_reporting(E_ALL);
$tvip = IP ТВ
$myip = IP сервера
$mymac = MAC сервера
$appstring = "iphone..iapp.samsung"; //оставляем
$tvappstring = "iphone.UE46F6800.iapp.samsung"; //я вставил свою модель
$remotename = "Perl Samsung Remote"; //ќставл¤ем
echo "Content-type: text/html\n\n";
$sock = socket_create(AF_INET, SOCK_STREAM, getprotobyname('tcp'));
$result = socket_connect($sock, $tvip, '55000');
if( $result === false)
die ("Could not create socket: \n");
//Normal remote keys
//KEY_0
//KEY_1
//KEY_2
//KEY_3
//KEY_4
//KEY_5
//KEY_6
//KEY_7
//KEY_8
//KEY_9
//KEY_UP
//KEY_DOWN
//KEY_LEFT
//KEY_RIGHT
//KEY_MENU
//KEY_PRECH
//KEY_GUIDE
//KEY_INFO
//KEY_RETURN
//KEY_CH_LIST
//KEY_EXIT
//KEY_ENTER
//KEY_SOURCE
//KEY_AD
//KEY_PLAY
//KEY_PAUSE
//KEY_MUTE
//KEY_PICTURE_SIZE
//KEY_VOLUP
//KEY_VOLDOWN
//KEY_TOOLS
//KEY_POWEROFF
//KEY_CHUP
//KEY_CHDOWN
//KEY_CONTENTS
//KEY_W_LINK //Media P
//KEY_RSS //Internet
//KEY_MTS //Dual
//KEY_CAPTION //Subt
//KEY_REWIND
//KEY_FF
//KEY_REC
//KEY_STOP
//Bonus buttons not on the normal remote:
//KEY_TV
//Don't work/wrong codes:
//KEY_CONTENT
//KEY_INTERNET
//KEY_PC
//KEY_HDMI1
//KEY_OFF
//KEY_POWER
//KEY_STANDBY
//KEY_DUAL
//KEY_SUBT
//KEY_CHANUP
//KEY_CHAN_UP
//KEY_PROGUP
//KEY_PROG_UP
$ipencoded = base64_encode($myip);
$macencoded = base64_encode($mymac);
$messagepart1 = chr(0x64) . chr(0x00) . chr(strlen($ipencoded)) . chr(0x00) . $ipencoded . chr(strlen($macencoded)) . chr(0x00) . $macencoded .
chr(strlen(base64_encode($remotename))) . chr(0x00) . base64_encode($remotename);
$part1 = chr(0x00) . chr(strlen($appstring)) . chr(0x00) . $appstring . chr(strlen($messagepart1)) . chr(0x00) . $messagepart1;
socket_write($sock, $part1, strlen($part1));
echo $part1;
echo "\n";
$messagepart2 = chr(0xc8) . chr(0x00);
$part2 = chr(0x00) . chr(strlen($appstring)) . chr(0x00) . $appstring . chr(strlen($messagepart2)) . chr(0x00) . $messagepart2;
socket_write($sock, $part2, strlen($part2));
echo $part2;
echo "\n";
//Preceding sections all first time only
if (isset($_REQUEST["key"])) {
//Send remote key
$key = "KEY_" . $_REQUEST["key"];
$messagepart3 = chr(0x00) . chr(0x00) . chr(0x00) . chr(strlen(base64_encode($key))) . chr(0x00) . base64_encode($key);
$part3 = chr(0x00) . chr(strlen($tvappstring)) . chr(0x00) . $tvappstring . chr(strlen($messagepart3)) . chr(0x00) . $messagepart3;
socket_write($sock,$part3,strlen($part3));
echo $part3;
echo "\n";
} else if (isset($_REQUEST["text"])) {
//Send text, e.g. in YouTube app's search, N.B. NOT BBC iPlayer app.
$text = $_REQUEST["text"];
$messagepart3 = chr(0x01) . chr(0x00) . chr(strlen(base64_encode($text, ""))) . chr(0x00) . base64_encode($text, "");
$part3 = chr(0x01) . chr(strlen($appstring)) . chr(0x00) . $appstring . chr(strlen($messagepart3)) . chr(0x00) . $messagepart3;
socket_write($sock,$part3,strlen($part3));
echo $part3;
echo "\n";
}
socket_close($sock);
echo "\n\n";
?>
-
- Сообщения: 110
- Зарегистрирован: Вт апр 29, 2014 9:16 pm
- Благодарил (а): 7 раз
- Поблагодарили: 13 раз
Re: Samsung Smart TV
Сделал по самсунг
СпойлерПоказать
<html>
<head>
<meta name = "viewport" content = "initial-scale = 1.0">
<title>Samsung Remote</title>
</head>
<body>
<script type="text/javascript" language="javascript">
//AJAX source from http://www.captain.at/howto-ajax-form-post-get.php
var http_request = false;
function makeRequest(url, parameters) {
http_request = false;
if (window.XMLHttpRequest) { // Mozilla, Safari,...
http_request = new XMLHttpRequest();
if (http_request.overrideMimeType) {
// set type accordingly to anticipated content type
http_request.overrideMimeType('text/html');
}
} else if (window.ActiveXObject) { // IE
try {
http_request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
http_request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
if (!http_request) {
alert('Cannot create XMLHTTP instance');
return false;
}
http_request.onreadystatechange = alertContents;
http_request.open('GET', url + parameters, true);
http_request.send(null);
}
function alertContents() {
if (http_request.readyState == 4) {
if (http_request.status == 200) {
result = http_request.responseText;
} else {
alert('There was a problem with the request.');
}
}
}
</script>
<h1>Samsung Remote</h1>
<br>
<table border="1" cellpadding="1" cellspacing="1" style="text-align: center;">
<tr>
<td><a href="#" onclick="javascript:makeRequest('samsungremote.php', '?key=POWEROFF');">Power</a></td>
<td> </td>
<td>Backlight</td>
</tr>
<tr>
<td> </td>
<td><a href="#" onclick="javascript:makeRequest('samsungremote.php', '?key=SOURCE');">Source</a></td>
<td> </td>
</tr>
<tr>
<td><a href="#" onclick="javascript:makeRequest('samsungremote.php', '?key=1');">1</a></td>
<td><a href="#" onclick="javascript:makeRequest('samsungremote.php', '?key=2');">2</a></td>
<td><a href="#" onclick="javascript:makeRequest('samsungremote.php', '?key=3');">3</a></td>
</tr>
<tr>
<td><a href="#" onclick="javascript:makeRequest('samsungremote.php', '?key=4');">4</a></td>
<td><a href="#" onclick="javascript:makeRequest('samsungremote.php', '?key=5');">5</a></td>
<td><a href="#" onclick="javascript:makeRequest('samsungremote.php', '?key=6');">6</a></td>
</tr>
<tr>
<td><a href="#" onclick="javascript:makeRequest('samsungremote.php', '?key=7');">7</a></td>
<td><a href="#" onclick="javascript:makeRequest('samsungremote.php', '?key=8');">8</a></td>
<td><a href="#" onclick="javascript:makeRequest('samsungremote.php', '?key=9');">9</a></td>
</tr>
<tr>
<td><a href="#" onclick="javascript:makeRequest('samsungremote.php', '?key=TTX_MIX');">TTX/Mix</a></td>
<td><a href="#" onclick="javascript:makeRequest('samsungremote.php', '?key=0');">0</a></td>
<td><a href="#" onclick="javascript:makeRequest('samsungremote.php', '?key=PRECH');">Pre-Ch</a></td>
</tr>
<tr>
<td><a href="#" onclick="javascript:makeRequest('samsungremote.php', '?key=VOLUP');">Vol +</a></td>
<td><a href="#" onclick="javascript:makeRequest('samsungremote.php', '?key=MUTE');">Mute</a></td>
<td><a href="#" onclick="javascript:makeRequest('samsungremote.php', '?key=CHUP');">Prog +</a></td>
</tr>
<tr>
<td><a href="#" onclick="javascript:makeRequest('samsungremote.php', '?key=VOLDOWN');">Vol -</a></td>
<td><a href="#" onclick="javascript:makeRequest('samsungremote.php', '?key=CH_LIST');">Ch List</a></td>
<td><a href="#" onclick="javascript:makeRequest('samsungremote.php', '?key=CHDOWN');">Prog -</a></td>
</tr>
<tr>
<td><a href="#" onclick="javascript:makeRequest('samsungremote.php', '?key=CONTENTS');">Content</a></td>
<td><a href="#" onclick="javascript:makeRequest('samsungremote.php', '?key=MENU');">Menu</a></td>
<td><a href="#" onclick="javascript:makeRequest('samsungremote.php', '?key=GUIDE');">Guide</a></td>
</tr>
<tr>
<td><a href="#" onclick="javascript:makeRequest('samsungremote.php', '?key=TOOLS');">Tools<a/></td>
<td><a href="#" onclick="javascript:makeRequest('samsungremote.php', '?key=UP');">Up</a></td>
<td><a href="#" onclick="javascript:makeRequest('samsungremote.php', '?key=INFO');">Info</a></td>
</tr>
<tr>
<td><a href="#" onclick="javascript:makeRequest('samsungremote.php', '?key=LEFT');">Left</a></td>
<td><a href="#" onclick="javascript:makeRequest('samsungremote.php', '?key=ENTER');">Enter</a></td>
<td><a href="#" onclick="javascript:makeRequest('samsungremote.php', '?key=RIGHT');">Right</a></td>
</tr>
<tr>
<td><a href="#" onclick="javascript:makeRequest('samsungremote.php', '?key=RETURN');">Return</a></td>
<td><a href="#" onclick="javascript:makeRequest('samsungremote.php', '?key=DOWN');">Down</a></td>
<td><a href="#" onclick="javascript:makeRequest('samsungremote.php', '?key=EXIT');">Exit</a></td>
</tr>
<tr>
<td colspan=3>
<table width="100%" style="text-align: center;">
<td bgcolor="red"><a href="#" style="color: white;" onclick="javascript:makeRequest('samsungremote.php', '?key=RED');">A</a></td>
<td bgcolor="green"><a href="#" style="color: white;" onclick="javascript:makeRequest('samsungremote.php', '?key=GREEN');">B</a></td>
<td bgcolor="gold"><a href="#" style="color: white;" onclick="javascript:makeRequest('samsungremote.php', '?key=YELLOW');">C</a></td>
<td bgcolor="darkblue"><a href="#" style="color: white;" onclick="javascript:makeRequest('samsungremote.php', '?key=CYAN');">D</a></td>
</table>
</td>
</tr>
<tr>
<td><a href="#" onclick="javascript:makeRequest('samsungremote.php', '?key=W_LINK');">Media P</a></td>
<td><a href="#" onclick="javascript:makeRequest('samsungremote.php', '?key=RSS');">Internet</a></td>
<td><a href="#" onclick="javascript:makeRequest('samsungremote.php', '?key=MTS');">Dual</a></td>
</tr>
<tr>
<td><a href="#" onclick="javascript:makeRequest('samsungremote.php', '?key=AD');">AD<a/></td>
<td><a href="#" onclick="javascript:makeRequest('samsungremote.php', '?key=PICTURE_SIZE');">P Size</a></td>
<td><a href="#" onclick="javascript:makeRequest('samsungremote.php', '?key=CAPTION');">Subt</a></td>
</tr>
<tr>
<td><a href="#" onclick="javascript:makeRequest('samsungremote.php', '?key=REWIND');">Rew</a></td>
<td><a href="#" onclick="javascript:makeRequest('samsungremote.php', '?key=PAUSE');">Pause<a/></td>
<td><a href="#" onclick="javascript:makeRequest('samsungremote.php', '?key=FF');">FF</a></td>
</tr>
<tr>
<td><a href="#" onclick="javascript:makeRequest('samsungremote.php', '?key=REC');">Rec</a></td>
<td><a href="#" onclick="javascript:makeRequest('samsungremote.php', '?key=PLAY');">Play</a></td>
<td><a href="#" onclick="javascript:makeRequest('samsungremote.php', '?key=STOP');">Stop</a></td>
</tr>
</table>
<br />
<input type="text" name="string" id="string" onKeyUp="javascript:makeRequest('samsungremote.php', '?text=' + encodeURIComponent(document.getElementById('string').value));" /> <a href="#" onclick="javascript:makeRequest('samsungremote.php', '?text=' + encodeURIComponent(document.getElementById('string').value));">Send</a><br />
<a href="#" onclick="javascript:makeRequest('samsungremote.php', '?key=TV');">Switch to TV</a>
<head>
<meta name = "viewport" content = "initial-scale = 1.0">
<title>Samsung Remote</title>
</head>
<body>
<script type="text/javascript" language="javascript">
//AJAX source from http://www.captain.at/howto-ajax-form-post-get.php
var http_request = false;
function makeRequest(url, parameters) {
http_request = false;
if (window.XMLHttpRequest) { // Mozilla, Safari,...
http_request = new XMLHttpRequest();
if (http_request.overrideMimeType) {
// set type accordingly to anticipated content type
http_request.overrideMimeType('text/html');
}
} else if (window.ActiveXObject) { // IE
try {
http_request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
http_request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
if (!http_request) {
alert('Cannot create XMLHTTP instance');
return false;
}
http_request.onreadystatechange = alertContents;
http_request.open('GET', url + parameters, true);
http_request.send(null);
}
function alertContents() {
if (http_request.readyState == 4) {
if (http_request.status == 200) {
result = http_request.responseText;
} else {
alert('There was a problem with the request.');
}
}
}
</script>
<h1>Samsung Remote</h1>
<br>
<table border="1" cellpadding="1" cellspacing="1" style="text-align: center;">
<tr>
<td><a href="#" onclick="javascript:makeRequest('samsungremote.php', '?key=POWEROFF');">Power</a></td>
<td> </td>
<td>Backlight</td>
</tr>
<tr>
<td> </td>
<td><a href="#" onclick="javascript:makeRequest('samsungremote.php', '?key=SOURCE');">Source</a></td>
<td> </td>
</tr>
<tr>
<td><a href="#" onclick="javascript:makeRequest('samsungremote.php', '?key=1');">1</a></td>
<td><a href="#" onclick="javascript:makeRequest('samsungremote.php', '?key=2');">2</a></td>
<td><a href="#" onclick="javascript:makeRequest('samsungremote.php', '?key=3');">3</a></td>
</tr>
<tr>
<td><a href="#" onclick="javascript:makeRequest('samsungremote.php', '?key=4');">4</a></td>
<td><a href="#" onclick="javascript:makeRequest('samsungremote.php', '?key=5');">5</a></td>
<td><a href="#" onclick="javascript:makeRequest('samsungremote.php', '?key=6');">6</a></td>
</tr>
<tr>
<td><a href="#" onclick="javascript:makeRequest('samsungremote.php', '?key=7');">7</a></td>
<td><a href="#" onclick="javascript:makeRequest('samsungremote.php', '?key=8');">8</a></td>
<td><a href="#" onclick="javascript:makeRequest('samsungremote.php', '?key=9');">9</a></td>
</tr>
<tr>
<td><a href="#" onclick="javascript:makeRequest('samsungremote.php', '?key=TTX_MIX');">TTX/Mix</a></td>
<td><a href="#" onclick="javascript:makeRequest('samsungremote.php', '?key=0');">0</a></td>
<td><a href="#" onclick="javascript:makeRequest('samsungremote.php', '?key=PRECH');">Pre-Ch</a></td>
</tr>
<tr>
<td><a href="#" onclick="javascript:makeRequest('samsungremote.php', '?key=VOLUP');">Vol +</a></td>
<td><a href="#" onclick="javascript:makeRequest('samsungremote.php', '?key=MUTE');">Mute</a></td>
<td><a href="#" onclick="javascript:makeRequest('samsungremote.php', '?key=CHUP');">Prog +</a></td>
</tr>
<tr>
<td><a href="#" onclick="javascript:makeRequest('samsungremote.php', '?key=VOLDOWN');">Vol -</a></td>
<td><a href="#" onclick="javascript:makeRequest('samsungremote.php', '?key=CH_LIST');">Ch List</a></td>
<td><a href="#" onclick="javascript:makeRequest('samsungremote.php', '?key=CHDOWN');">Prog -</a></td>
</tr>
<tr>
<td><a href="#" onclick="javascript:makeRequest('samsungremote.php', '?key=CONTENTS');">Content</a></td>
<td><a href="#" onclick="javascript:makeRequest('samsungremote.php', '?key=MENU');">Menu</a></td>
<td><a href="#" onclick="javascript:makeRequest('samsungremote.php', '?key=GUIDE');">Guide</a></td>
</tr>
<tr>
<td><a href="#" onclick="javascript:makeRequest('samsungremote.php', '?key=TOOLS');">Tools<a/></td>
<td><a href="#" onclick="javascript:makeRequest('samsungremote.php', '?key=UP');">Up</a></td>
<td><a href="#" onclick="javascript:makeRequest('samsungremote.php', '?key=INFO');">Info</a></td>
</tr>
<tr>
<td><a href="#" onclick="javascript:makeRequest('samsungremote.php', '?key=LEFT');">Left</a></td>
<td><a href="#" onclick="javascript:makeRequest('samsungremote.php', '?key=ENTER');">Enter</a></td>
<td><a href="#" onclick="javascript:makeRequest('samsungremote.php', '?key=RIGHT');">Right</a></td>
</tr>
<tr>
<td><a href="#" onclick="javascript:makeRequest('samsungremote.php', '?key=RETURN');">Return</a></td>
<td><a href="#" onclick="javascript:makeRequest('samsungremote.php', '?key=DOWN');">Down</a></td>
<td><a href="#" onclick="javascript:makeRequest('samsungremote.php', '?key=EXIT');">Exit</a></td>
</tr>
<tr>
<td colspan=3>
<table width="100%" style="text-align: center;">
<td bgcolor="red"><a href="#" style="color: white;" onclick="javascript:makeRequest('samsungremote.php', '?key=RED');">A</a></td>
<td bgcolor="green"><a href="#" style="color: white;" onclick="javascript:makeRequest('samsungremote.php', '?key=GREEN');">B</a></td>
<td bgcolor="gold"><a href="#" style="color: white;" onclick="javascript:makeRequest('samsungremote.php', '?key=YELLOW');">C</a></td>
<td bgcolor="darkblue"><a href="#" style="color: white;" onclick="javascript:makeRequest('samsungremote.php', '?key=CYAN');">D</a></td>
</table>
</td>
</tr>
<tr>
<td><a href="#" onclick="javascript:makeRequest('samsungremote.php', '?key=W_LINK');">Media P</a></td>
<td><a href="#" onclick="javascript:makeRequest('samsungremote.php', '?key=RSS');">Internet</a></td>
<td><a href="#" onclick="javascript:makeRequest('samsungremote.php', '?key=MTS');">Dual</a></td>
</tr>
<tr>
<td><a href="#" onclick="javascript:makeRequest('samsungremote.php', '?key=AD');">AD<a/></td>
<td><a href="#" onclick="javascript:makeRequest('samsungremote.php', '?key=PICTURE_SIZE');">P Size</a></td>
<td><a href="#" onclick="javascript:makeRequest('samsungremote.php', '?key=CAPTION');">Subt</a></td>
</tr>
<tr>
<td><a href="#" onclick="javascript:makeRequest('samsungremote.php', '?key=REWIND');">Rew</a></td>
<td><a href="#" onclick="javascript:makeRequest('samsungremote.php', '?key=PAUSE');">Pause<a/></td>
<td><a href="#" onclick="javascript:makeRequest('samsungremote.php', '?key=FF');">FF</a></td>
</tr>
<tr>
<td><a href="#" onclick="javascript:makeRequest('samsungremote.php', '?key=REC');">Rec</a></td>
<td><a href="#" onclick="javascript:makeRequest('samsungremote.php', '?key=PLAY');">Play</a></td>
<td><a href="#" onclick="javascript:makeRequest('samsungremote.php', '?key=STOP');">Stop</a></td>
</tr>
</table>
<br />
<input type="text" name="string" id="string" onKeyUp="javascript:makeRequest('samsungremote.php', '?text=' + encodeURIComponent(document.getElementById('string').value));" /> <a href="#" onclick="javascript:makeRequest('samsungremote.php', '?text=' + encodeURIComponent(document.getElementById('string').value));">Send</a><br />
<a href="#" onclick="javascript:makeRequest('samsungremote.php', '?key=TV');">Switch to TV</a>
СпойлерПоказать
<?
//error_reporting(E_ALL);
include_once("./config.php");
include_once("./lib/loader.php");
if ($error)
{
echo $error;
DebMes("JAVASCRIPT Error: ".$error);
}
$tvip = "192.168.253.10"; //ЗАМЕНРРўР¬!!!
$myip = "192.168.253.19"; //ЗАМЕНРРўР¬!!!
$mymac = " 4a-53-98-d4-3c-12"; // Я менял, думаю надо.
$appstring = "iphone..iapp.samsung"; //Оставляем
$tvappstring = "iphone.UE40C8000.iapp.samsung"; //Я вставил свою модель
$remotename = "Perl Samsung Remote"; //Оставляем
//echo "Content-type: text/html\n\n";
if ((isset($_REQUEST["key"])) || (isset($_REQUEST["text"]))) {
$sock = socket_create(AF_INET, SOCK_STREAM, getprotobyname('tcp'));
$result = socket_connect($sock, $tvip, '55000');
if( $result === false)
die ("Could not create socket: \n");
//Normal remote keys
//KEY_0
//KEY_1
//KEY_2
//KEY_3
//KEY_4
//KEY_5
//KEY_6
//KEY_7
//KEY_8
//KEY_9
//KEY_UP
//KEY_DOWN
//KEY_LEFT
//KEY_RIGHT
//KEY_MENU
//KEY_PRECH
//KEY_GUIDE
//KEY_INFO
//KEY_RETURN
//KEY_CH_LIST
//KEY_EXIT
//KEY_ENTER
//KEY_SOURCE
//KEY_AD
//KEY_PLAY
//KEY_PAUSE
//KEY_MUTE
//KEY_PICTURE_SIZE
//KEY_VOLUP
//KEY_VOLDOWN
//KEY_TOOLS
//KEY_POWEROFF
//KEY_CHUP
//KEY_CHDOWN
//KEY_CONTENTS
//KEY_W_LINK //Media P
//KEY_RSS //Internet
//KEY_MTS //Dual
//KEY_CAPTION //Subt
//KEY_REWIND
//KEY_FF
//KEY_REC
//KEY_STOP
//Bonus buttons not on the normal remote:
//KEY_TV
//Don't work/wrong codes:
//KEY_CONTENT
//KEY_INTERNET
//KEY_PC
//KEY_HDMI1
//KEY_OFF
//KEY_POWER
//KEY_STANDBY
//KEY_DUAL
//KEY_SUBT
//KEY_CHANUP
//KEY_CHAN_UP
//KEY_PROGUP
//KEY_PROG_UP
$ipencoded = base64_encode($myip);
$macencoded = base64_encode($mymac);
$messagepart1 = chr(0x64) . chr(0x00) . chr(strlen($ipencoded)) . chr(0x00) . $ipencoded . chr(strlen($macencoded)) . chr(0x00) . $macencoded .
chr(strlen(base64_encode($remotename))) . chr(0x00) . base64_encode($remotename);
$part1 = chr(0x00) . chr(strlen($appstring)) . chr(0x00) . $appstring . chr(strlen($messagepart1)) . chr(0x00) . $messagepart1;
socket_write($sock, $part1, strlen($part1));
//echo $part1;
//echo "\n";
$messagepart2 = chr(0xc8) . chr(0x00);
$part2 = chr(0x00) . chr(strlen($appstring)) . chr(0x00) . $appstring . chr(strlen($messagepart2)) . chr(0x00) . $messagepart2;
socket_write($sock, $part2, strlen($part2));
//echo $part2;
//echo "\n";
}
//Preceding sections all first time only
if (isset($_REQUEST["key"])) {
//Send remote key
$key = "KEY_" . $_REQUEST["key"];
$messagepart3 = chr(0x00) . chr(0x00) . chr(0x00) . chr(strlen(base64_encode($key))) . chr(0x00) . base64_encode($key);
$part3 = chr(0x00) . chr(strlen($tvappstring)) . chr(0x00) . $tvappstring . chr(strlen($messagepart3)) . chr(0x00) . $messagepart3;
socket_write($sock,$part3,strlen($part3));
//$res = socket_read($sock, 40); //Читаем ответ 23 байта, не больше
echo $part3;
//var_dump($res);
echo "\n";
socket_close($sock);
} else if (isset($_REQUEST["text"])) {
//Send text, e.g. in YouTube app's search, N.B. NOT BBC iPlayer app.
$text = $_REQUEST["text"];
$messagepart3 = chr(0x01) . chr(0x00) . chr(strlen(base64_encode($text, ""))) . chr(0x00) . base64_encode($text, "");
$part3 = chr(0x01) . chr(strlen($appstring)) . chr(0x00) . $appstring . chr(strlen($messagepart3)) . chr(0x00) . $messagepart3;
socket_write($sock,$part3,strlen($part3));
//$res = socket_read($sock, 40); //Читаем ответ 23 байта, не больше
echo $part3;
//var_dump($res);
echo "\n";
socket_close($sock);
} else if (isset($_REQUEST["GetCurrentExternalSource"])) {
$command = "GetCurrentExternalSource";
$return = soaprequest($tvip, $command);
preg_match("/<ID>(.*?)<\/ID>/is",$return,$idCurrentExternalSource);
preg_match("/<CurrentExternalSource>(.*?)<\/CurrentExternalSource>/is",$return,$CurrentExternalSource);
echo 'Source='.$CurrentExternalSource[1].'<br>';
echo 'id='.$idCurrentExternalSource[1].'<br>';
} else if (isset($_REQUEST["GetMuteStatus"])) {
$command = "GetMuteStatus";
$return = soaprequest($tvip, $command);
preg_match("/<MuteStatus>(.*?)<\/MuteStatus>/is",$return,$val);
echo $val[1];
} else if (isset($_REQUEST["GetVolume"])) {
$command = "GetVolume";
$return = soaprequest($tvip, $command);
preg_match("/<Volume>(.*?)<\/Volume>/is",$return,$val);
echo $val[1];
}
function soaprequest($tvip, $command) {
if (strcmp($command,"GetVolume")===0) {
$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/envelop ... :GetVolume xmlns:ns0="urn:schemas-upnp-org:service:RenderingControl:1"><InstanceID>0</InstanceID><Channel>Master</Channel></ns0:GetVolume></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: "SoapActionschemas-upnp-org:service:RenderingControl:1#'.$command.'"'."\r\nConnection: close\r\n\r\n";
} else {
$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/envelop ... '.$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);
}
return $result;
}
?>
//error_reporting(E_ALL);
include_once("./config.php");
include_once("./lib/loader.php");
if ($error)
{
echo $error;
DebMes("JAVASCRIPT Error: ".$error);
}
$tvip = "192.168.253.10"; //ЗАМЕНРРўР¬!!!
$myip = "192.168.253.19"; //ЗАМЕНРРўР¬!!!
$mymac = " 4a-53-98-d4-3c-12"; // Я менял, думаю надо.
$appstring = "iphone..iapp.samsung"; //Оставляем
$tvappstring = "iphone.UE40C8000.iapp.samsung"; //Я вставил свою модель
$remotename = "Perl Samsung Remote"; //Оставляем
//echo "Content-type: text/html\n\n";
if ((isset($_REQUEST["key"])) || (isset($_REQUEST["text"]))) {
$sock = socket_create(AF_INET, SOCK_STREAM, getprotobyname('tcp'));
$result = socket_connect($sock, $tvip, '55000');
if( $result === false)
die ("Could not create socket: \n");
//Normal remote keys
//KEY_0
//KEY_1
//KEY_2
//KEY_3
//KEY_4
//KEY_5
//KEY_6
//KEY_7
//KEY_8
//KEY_9
//KEY_UP
//KEY_DOWN
//KEY_LEFT
//KEY_RIGHT
//KEY_MENU
//KEY_PRECH
//KEY_GUIDE
//KEY_INFO
//KEY_RETURN
//KEY_CH_LIST
//KEY_EXIT
//KEY_ENTER
//KEY_SOURCE
//KEY_AD
//KEY_PLAY
//KEY_PAUSE
//KEY_MUTE
//KEY_PICTURE_SIZE
//KEY_VOLUP
//KEY_VOLDOWN
//KEY_TOOLS
//KEY_POWEROFF
//KEY_CHUP
//KEY_CHDOWN
//KEY_CONTENTS
//KEY_W_LINK //Media P
//KEY_RSS //Internet
//KEY_MTS //Dual
//KEY_CAPTION //Subt
//KEY_REWIND
//KEY_FF
//KEY_REC
//KEY_STOP
//Bonus buttons not on the normal remote:
//KEY_TV
//Don't work/wrong codes:
//KEY_CONTENT
//KEY_INTERNET
//KEY_PC
//KEY_HDMI1
//KEY_OFF
//KEY_POWER
//KEY_STANDBY
//KEY_DUAL
//KEY_SUBT
//KEY_CHANUP
//KEY_CHAN_UP
//KEY_PROGUP
//KEY_PROG_UP
$ipencoded = base64_encode($myip);
$macencoded = base64_encode($mymac);
$messagepart1 = chr(0x64) . chr(0x00) . chr(strlen($ipencoded)) . chr(0x00) . $ipencoded . chr(strlen($macencoded)) . chr(0x00) . $macencoded .
chr(strlen(base64_encode($remotename))) . chr(0x00) . base64_encode($remotename);
$part1 = chr(0x00) . chr(strlen($appstring)) . chr(0x00) . $appstring . chr(strlen($messagepart1)) . chr(0x00) . $messagepart1;
socket_write($sock, $part1, strlen($part1));
//echo $part1;
//echo "\n";
$messagepart2 = chr(0xc8) . chr(0x00);
$part2 = chr(0x00) . chr(strlen($appstring)) . chr(0x00) . $appstring . chr(strlen($messagepart2)) . chr(0x00) . $messagepart2;
socket_write($sock, $part2, strlen($part2));
//echo $part2;
//echo "\n";
}
//Preceding sections all first time only
if (isset($_REQUEST["key"])) {
//Send remote key
$key = "KEY_" . $_REQUEST["key"];
$messagepart3 = chr(0x00) . chr(0x00) . chr(0x00) . chr(strlen(base64_encode($key))) . chr(0x00) . base64_encode($key);
$part3 = chr(0x00) . chr(strlen($tvappstring)) . chr(0x00) . $tvappstring . chr(strlen($messagepart3)) . chr(0x00) . $messagepart3;
socket_write($sock,$part3,strlen($part3));
//$res = socket_read($sock, 40); //Читаем ответ 23 байта, не больше
echo $part3;
//var_dump($res);
echo "\n";
socket_close($sock);
} else if (isset($_REQUEST["text"])) {
//Send text, e.g. in YouTube app's search, N.B. NOT BBC iPlayer app.
$text = $_REQUEST["text"];
$messagepart3 = chr(0x01) . chr(0x00) . chr(strlen(base64_encode($text, ""))) . chr(0x00) . base64_encode($text, "");
$part3 = chr(0x01) . chr(strlen($appstring)) . chr(0x00) . $appstring . chr(strlen($messagepart3)) . chr(0x00) . $messagepart3;
socket_write($sock,$part3,strlen($part3));
//$res = socket_read($sock, 40); //Читаем ответ 23 байта, не больше
echo $part3;
//var_dump($res);
echo "\n";
socket_close($sock);
} else if (isset($_REQUEST["GetCurrentExternalSource"])) {
$command = "GetCurrentExternalSource";
$return = soaprequest($tvip, $command);
preg_match("/<ID>(.*?)<\/ID>/is",$return,$idCurrentExternalSource);
preg_match("/<CurrentExternalSource>(.*?)<\/CurrentExternalSource>/is",$return,$CurrentExternalSource);
echo 'Source='.$CurrentExternalSource[1].'<br>';
echo 'id='.$idCurrentExternalSource[1].'<br>';
} else if (isset($_REQUEST["GetMuteStatus"])) {
$command = "GetMuteStatus";
$return = soaprequest($tvip, $command);
preg_match("/<MuteStatus>(.*?)<\/MuteStatus>/is",$return,$val);
echo $val[1];
} else if (isset($_REQUEST["GetVolume"])) {
$command = "GetVolume";
$return = soaprequest($tvip, $command);
preg_match("/<Volume>(.*?)<\/Volume>/is",$return,$val);
echo $val[1];
}
function soaprequest($tvip, $command) {
if (strcmp($command,"GetVolume")===0) {
$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/envelop ... :GetVolume xmlns:ns0="urn:schemas-upnp-org:service:RenderingControl:1"><InstanceID>0</InstanceID><Channel>Master</Channel></ns0:GetVolume></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: "SoapActionschemas-upnp-org:service:RenderingControl:1#'.$command.'"'."\r\nConnection: close\r\n\r\n";
} else {
$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/envelop ... '.$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);
}
return $result;
}
?>
-
- Сообщения: 32
- Зарегистрирован: Вс фев 28, 2016 8:11 am
- Благодарил (а): 1 раз
- Поблагодарили: 3 раза
Re: Samsung Smart TV
насколько я понял самсунг с 2014г. изменить протокол и схему авторизации.. данный скрипт не может работать.
Re: Samsung Smart TV
Уважаемые господа форумчане, подскажите тема по самсунгу умерла?
А так хочется подключить свой телек
Из материалов выше ничего не заработало модель телека UE40H5500
А так хочется подключить свой телек
Из материалов выше ничего не заработало модель телека UE40H5500
- nick7zmail
- Сообщения: 7573
- Зарегистрирован: Пн окт 28, 2013 8:14 am
- Откуда: Екатеринбург
- Благодарил (а): 121 раз
- Поблагодарили: 2010 раз
Re: Samsung Smart TV
Мне свой UE40H6203AK так и не удалось завести. Железо у них похожее. Управляю по ик через broadlink RM. Я че ток не делал, и порты менял, и файлы разные пробовал из данной темы. Прикол в том, что к нему не каждое приложение из плэй-маркета конектится. Мне удалось подключить только одно, но я не помню какое, и не помню как...повторно найти не получилось. Может у нас протокол другой, или способ авторизации в этой серии, или что, я хз.Michael писал(а):Уважаемые господа форумчане, подскажите тема по самсунгу умерла?
А так хочется подключить свой телек
Из материалов выше ничего не заработало модель телека UE40H5500
Если получится подключить - обязательно поделитесь как. Для начала попробуйте поиграться с портами. Вместо 55000, предложенного в 1м посте - 7676, 52235 и ещё какой то я находил на забугорных форумах.
Основная задача - сделать так, чтобы телик выдал запрос - типа кто-то пытается подключится. У меня, как я и говорил, не получилось.
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Re: Samsung Smart TV
nick7zmail писал(а):Michael писал(а): Если получится подключить - обязательно поделитесь как. Для начала попробуйте поиграться с портами. Вместо 55000, предложенного в 1м посте - 7676, 52235 и ещё какой то я находил на забугорных форумах.
Основная задача - сделать так, чтобы телик выдал запрос - типа кто-то пытается подключится. У меня, как я и говорил, не получилось.
И мне так и не удалось, хотя с подобными бубнами плясал
Даже свечку на комп ставил
-
- Сообщения: 4
- Зарегистрирован: Пн сен 05, 2016 3:53 pm
- Благодарил (а): 10 раз
- Поблагодарили: 2 раза
Re: Samsung Smart TV
Может эта ссылка оживит тему?
http://luck.moy.su/forum/8-41-1
Там прога, которая по зваверениям автора, беспроблемно позволяет управлять несколькими разными сериями тв самсунг по сети с компа. Может это натолкнет наших гениев на какие-нибудь мысли для дальнейшего движения в этом направлении?
http://luck.moy.su/forum/8-41-1
Там прога, которая по зваверениям автора, беспроблемно позволяет управлять несколькими разными сериями тв самсунг по сети с компа. Может это натолкнет наших гениев на какие-нибудь мысли для дальнейшего движения в этом направлении?
- nick7zmail
- Сообщения: 7573
- Зарегистрирован: Пн окт 28, 2013 8:14 am
- Откуда: Екатеринбург
- Благодарил (а): 121 раз
- Поблагодарили: 2010 раз
Re: Samsung Smart TV
У меня винда сругнулась на то что там тип вирус...еще не разу такого от винды не видел))Maxipro писал(а):Может эта ссылка оживит тему?
http://luck.moy.su/forum/8-41-1
Там прога, которая по зваверениям автора, беспроблемно позволяет управлять несколькими разными сериями тв самсунг по сети с компа. Может это натолкнет наших гениев на какие-нибудь мысли для дальнейшего движения в этом направлении?
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
-
- Сообщения: 1115
- Зарегистрирован: Вс июн 14, 2015 11:08 am
- Благодарил (а): 85 раз
- Поблагодарили: 342 раза
Re: Samsung Smart TV
Дык той проге в обед 100 лет. Она с Е-серией максимум и работает (может с F). С ними скрипт из топика и так работает.