Страница 3 из 11

Re: [Сценарий] Управление смарт ТВ Philips

Добавлено: Вт фев 19, 2019 8:08 pm
Ralan
Ага, я, вроде, разобрался как дублировать кнопки пульта. Правда в качестве "болванки" использовал пульт от Самсунга :D . Сейчас при помощи форумчан "прикрутил" голосовое управление громкостью. Я уклон делаю именно в сторону голосового управления.

Re: [Сценарий] Управление смарт ТВ Philips

Добавлено: Вт фев 19, 2019 8:16 pm
Ralan
Методами поделитесь, чужой опыт всегда интересен, может почерпну интересное. Меня особенно интересует, можно ли создать внутри системы список каналов с их id. Что бы можно было назвать канал, а система сама выбирала по списку id.

Re: [Сценарий] Управление смарт ТВ Philips

Добавлено: Вт фев 19, 2019 8:22 pm
Jilber
Сценарий из этого сообщения как раз и создаёт в объекте "Philips" свойства с названиями и ID всех каналов телевизора.
SPOILERSPOILER_SHOW
Каналы.jpg
Каналы.jpg (70.96 КБ) 4942 просмотра
Метод для включения нужного входа:

Код: Выделить всё

$url = 'http://'.gg("Philips.Ip").':'.gg("Philips.Port").'/1/sources/current';
$options = array(
 'http' => array(
 'method' => 'POST',
 'content' => '{"id":"'.gg("Philips.In").'"}',
 'header'=> "Content-Type: application/json\r\n" .
 "Accept: application/json\r\n"
 )
);

$context = stream_context_create($options);
$result = file_get_contents($url, false, $context);
Метод для включения нужного канала:

Код: Выделить всё

$url = 'http://'.gg("Philips.Ip").':'.gg("Philips.Port").'/1/channels/current';
$options = array(
 'http' => array(
 'method' => 'POST',
 'content' => '{"id":"'.gg("Philips.Channel").'"}',
 'header'=> "Content-Type: application/json\r\n" .
 "Accept: application/json\r\n"
 )
);

$context = stream_context_create($options);
$result = file_get_contents($url, false, $context);

sg("Philips.In", "11");
Управление громкостью:

Код: Выделить всё

$url = 'http://'.gg("Philips.Ip").':'.gg("Philips.Port").'/1/audio/volume';
$options = array(
 'http' => array(
 'method' => 'POST',
 'content' => '{"current":"'.gg("Philips.Volume").'"}',
 'header'=> "Content-Type: application/json\r\n" .
 "Accept: application/json\r\n"
 )
);

$context = stream_context_create($options);
$result = file_get_contents($url, false, $context);
Mute:

Код: Выделить всё

$url = 'http://'.gg("Philips.Ip").':'.gg("Philips.Port").'/1/audio/volume';
$options = array(
 'http' => array(
 'method' => 'POST',
 'content' => '{"muted":"'.gg("Philips.Mute").'"}',
 'header'=> "Content-Type: application/json\r\n" .
 "Accept: application/json\r\n"
 )
);

$context = stream_context_create($options);
$result = file_get_contents($url, false, $context);
Отправка на ТВ кода "нажатой" клавиши:

Код: Выделить всё

$url = 'http://'.gg("Philips.Ip").':'.gg("Philips.Port").'/1/input/key';
$options = array(
 'http' => array(
 'method' => 'POST',
 'content' => '{"key":"'.gg("Philips.Key").'"}',
 'header'=> "Content-Type: application/json\r\n" .
 "Accept: application/json\r\n"
 )
);

$context = stream_context_create($options);
$result = file_get_contents($url, false, $context);

Re: [Сценарий] Управление смарт ТВ Philips

Добавлено: Вт фев 19, 2019 8:46 pm
Ralan
А как создать объект Philips и считать в него каналы? Никак не могу разобраться (

Re: [Сценарий] Управление смарт ТВ Philips

Добавлено: Вт фев 19, 2019 8:54 pm
Jilber
Ralan писал(а): Вт фев 19, 2019 8:46 pm А как создать объект Philips и считать в него каналы? Никак не могу разобраться (
Создать объект можно вручную:
SPOILERSPOILER_SHOW
Объект.jpg
Объект.jpg (66.55 КБ) 4932 просмотра
А считать в него каналы можно, запустив один раз вручную указанный выше сценарий:
SPOILERSPOILER_SHOW
Запуск сценария.jpg
Запуск сценария.jpg (156.65 КБ) 4932 просмотра
Только подставьте IP своего ТВ.

Re: [Сценарий] Управление смарт ТВ Philips

Добавлено: Вт фев 19, 2019 9:10 pm
Ralan
Когда создаешь объект, какой класс надо указывать?

Re: [Сценарий] Управление смарт ТВ Philips

Добавлено: Вт фев 19, 2019 9:20 pm
Jilber
В данном случае это неважно. Можно придумать какой-то свой класс, например "TV" или "Multimedia".

Re: [Сценарий] Управление смарт ТВ Philips

Добавлено: Вт фев 19, 2019 9:26 pm
Ralan
Все равно не могу понять.((( Создал класс Philips, создал объект TV-Channel, в данном классе. Создал сценарий TV-Channel. А как связать объект и сценарий? У меня при выполнении скрипта открывается окно в браузере, куда скидываются результаты работы скрипта.

Re: [Сценарий] Управление смарт ТВ Philips

Добавлено: Вт фев 19, 2019 9:31 pm
Jilber
Ralan писал(а): Вт фев 19, 2019 9:26 pm Все равно не могу понять.((( Создал класс Philips, создал объект , в данном классе. Создал сценарий TV-Channel. А как связать объект и сценарий? У меня при выполнении скрипта открывается окно в браузере, куда скидываются результаты работы скрипта.
В данном случае "Philips" - это название объекта. Именно его надо создать. Объект "TV-Channel" создавать не надо.
SPOILERSPOILER_SHOW
Объект.jpg
Объект.jpg (16.28 КБ) 4919 просмотров
Объект-2.jpg
Объект-2.jpg (105.17 КБ) 4919 просмотров
И в сценарии не забудьте изменить IP на свой:

Код: Выделить всё

$channels = getURL('http://192.168.100.4:1925/1/channels');

$data = json_decode($channels, true);
if (is_array($data) && !empty($data)) {
  foreach ($data as $key => $ch) {
    echo $key . $ch['preset'] . $ch['name'] . PHP_EOL;
    sg('Philips.ChannelID' . $ch['preset'], $key);
    sg('Philips.ChannelName' . $ch['preset'], $ch['name']);
  }
}

Re: [Сценарий] Управление смарт ТВ Philips

Добавлено: Вт фев 19, 2019 9:37 pm
Ralan
Вот оно что... :D . Все получилось. Спасибо! А есть пример голосового включения канала?