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

Не требует установки программ или изменения файлов

Модераторы: immortal, newz20

Ralan
Сообщения: 47
Зарегистрирован: Пн фев 18, 2019 11:56 pm
Благодарил (а): 2 раза
Поблагодарили: 0

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

Сообщение Ralan » Вт фев 19, 2019 8:08 pm

Ага, я, вроде, разобрался как дублировать кнопки пульта. Правда в качестве "болванки" использовал пульт от Самсунга :D . Сейчас при помощи форумчан "прикрутил" голосовое управление громкостью. Я уклон делаю именно в сторону голосового управления.
Ralan
Сообщения: 47
Зарегистрирован: Пн фев 18, 2019 11:56 pm
Благодарил (а): 2 раза
Поблагодарили: 0

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

Сообщение Ralan » Вт фев 19, 2019 8:16 pm

Методами поделитесь, чужой опыт всегда интересен, может почерпну интересное. Меня особенно интересует, можно ли создать внутри системы список каналов с их id. Что бы можно было назвать канал, а система сама выбирала по списку id.
Jilber
Сообщения: 682
Зарегистрирован: Ср май 03, 2017 7:41 pm
Благодарил (а): 111 раз
Поблагодарили: 107 раз

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

Сообщение Jilber » Вт фев 19, 2019 8:22 pm

Сценарий из этого сообщения как раз и создаёт в объекте "Philips" свойства с названиями и ID всех каналов телевизора.
СпойлерПоказать
Каналы.jpg
Каналы.jpg (70.96 КБ) 4045 просмотров
Метод для включения нужного входа:

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

$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);
Ralan
Сообщения: 47
Зарегистрирован: Пн фев 18, 2019 11:56 pm
Благодарил (а): 2 раза
Поблагодарили: 0

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

Сообщение Ralan » Вт фев 19, 2019 8:46 pm

А как создать объект Philips и считать в него каналы? Никак не могу разобраться (
Jilber
Сообщения: 682
Зарегистрирован: Ср май 03, 2017 7:41 pm
Благодарил (а): 111 раз
Поблагодарили: 107 раз

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

Сообщение Jilber » Вт фев 19, 2019 8:54 pm

Ralan писал(а):
Вт фев 19, 2019 8:46 pm
А как создать объект Philips и считать в него каналы? Никак не могу разобраться (
Создать объект можно вручную:
СпойлерПоказать
Объект.jpg
Объект.jpg (66.55 КБ) 4035 просмотров
А считать в него каналы можно, запустив один раз вручную указанный выше сценарий:
СпойлерПоказать
Запуск сценария.jpg
Запуск сценария.jpg (156.65 КБ) 4035 просмотров
Только подставьте IP своего ТВ.
Ralan
Сообщения: 47
Зарегистрирован: Пн фев 18, 2019 11:56 pm
Благодарил (а): 2 раза
Поблагодарили: 0

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

Сообщение Ralan » Вт фев 19, 2019 9:10 pm

Когда создаешь объект, какой класс надо указывать?
Jilber
Сообщения: 682
Зарегистрирован: Ср май 03, 2017 7:41 pm
Благодарил (а): 111 раз
Поблагодарили: 107 раз

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

Сообщение Jilber » Вт фев 19, 2019 9:20 pm

В данном случае это неважно. Можно придумать какой-то свой класс, например "TV" или "Multimedia".
Ralan
Сообщения: 47
Зарегистрирован: Пн фев 18, 2019 11:56 pm
Благодарил (а): 2 раза
Поблагодарили: 0

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

Сообщение Ralan » Вт фев 19, 2019 9:26 pm

Все равно не могу понять.((( Создал класс Philips, создал объект TV-Channel, в данном классе. Создал сценарий TV-Channel. А как связать объект и сценарий? У меня при выполнении скрипта открывается окно в браузере, куда скидываются результаты работы скрипта.
Jilber
Сообщения: 682
Зарегистрирован: Ср май 03, 2017 7:41 pm
Благодарил (а): 111 раз
Поблагодарили: 107 раз

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

Сообщение Jilber » Вт фев 19, 2019 9:31 pm

Ralan писал(а):
Вт фев 19, 2019 9:26 pm
Все равно не могу понять.((( Создал класс Philips, создал объект , в данном классе. Создал сценарий TV-Channel. А как связать объект и сценарий? У меня при выполнении скрипта открывается окно в браузере, куда скидываются результаты работы скрипта.
В данном случае "Philips" - это название объекта. Именно его надо создать. Объект "TV-Channel" создавать не надо.
СпойлерПоказать
Объект.jpg
Объект.jpg (16.28 КБ) 4022 просмотра
Объект-2.jpg
Объект-2.jpg (105.17 КБ) 4022 просмотра
И в сценарии не забудьте изменить 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']);
  }
}
Ralan
Сообщения: 47
Зарегистрирован: Пн фев 18, 2019 11:56 pm
Благодарил (а): 2 раза
Поблагодарили: 0

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

Сообщение Ralan » Вт фев 19, 2019 9:37 pm

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