Страница 3 из 11
Re: [Сценарий] Управление смарт ТВ Philips
Добавлено: Вт фев 19, 2019 8:08 pm
Ralan
Ага, я, вроде, разобрался как дублировать кнопки пульта. Правда в качестве "болванки" использовал пульт от Самсунга

. Сейчас при помощи форумчан "прикрутил" голосовое управление громкостью. Я уклон делаю именно в сторону голосового управления.
Re: [Сценарий] Управление смарт ТВ Philips
Добавлено: Вт фев 19, 2019 8:16 pm
Ralan
Методами поделитесь, чужой опыт всегда интересен, может почерпну интересное. Меня особенно интересует, можно ли создать внутри системы список каналов с их id. Что бы можно было назвать канал, а система сама выбирала по списку id.
Re: [Сценарий] Управление смарт ТВ Philips
Добавлено: Вт фев 19, 2019 8:22 pm
Jilber
Сценарий из
этого сообщения как раз и создаёт в объекте "Philips" свойства с названиями и ID всех каналов телевизора.

- Каналы.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 и считать в него каналы? Никак не могу разобраться (
Создать объект можно вручную:

- Объект.jpg (66.55 КБ) 4932 просмотра
А считать в него каналы можно, запустив один раз вручную указанный выше сценарий:

- Запуск сценария.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" создавать не надо.

- Объект.jpg (16.28 КБ) 4919 просмотров

- Объект-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
Вот оно что...

. Все получилось. Спасибо! А есть пример голосового включения канала?