SamsungTV модуль

Материал из MajorDoMo инфо
Версия от 18:10, 23 января 2020; George2017 (обсуждение | вклад) (создание новой страницы)


Автор: vashal от 23.01.2020

Описание

Модуль управления телевизорами Samsung с TizenOS

Установка модуля

Установка осуществляется через Маркет дополнений в разделе Оборудование - SamsungTV.

Важно:

ВНИМАНИЕ!!! Модуль работает с устройствами, выпущенными не ранее 2016 года и с обновленными прошивками. Если вы ограничили загрузку обновлений на телевизор для взаимодействия с какими-либо программами, то, скорее всего, модуль не будет взаимодействовать с вашим устройством.

'Все действия', связанные с обновлением вашего устройства, вы делаете на свой страх и риск и автор модуля не несет никакой ответственности за это. Равно как и не гарантирует возможности взаимодействия модуля с вашим устройством после обновления.

Общие сведения

Модуль предназначен для интеграции смарт-телевизоров Samsung на платформе Tizen.

Возможности модуля:

- ручное добавление ТВ по IP адресу;

- поддержка нескольких ТВ;

- определение доступности ТВ;

- получение громкости ТВ;

- управление ТВ (каналы, источники, приложения, громкость, выключение). Для добавления телевизора нажмите кнопку +Добавить, введите IP адрес и придумайте название телевизора. После нажатия кнопки Добавить телевизор запросит разрешение на сопряжение с модулем. Отвечаем утвердительно, и после этого телевизор появится в списке устройств в модуле

Так как Samsung не предоставляет открытое API для управления своими телевизорами, в модуле собрано несколько типов управления, добытых из открытых источников:

- wss-соединение(SSL Websocket) на порту 8002 - отправка команд, запрос приложений, открытие сайтов встроенным браузером;

- POST запросы на порт 8001 для управления(запуск, закрытие, статус) приложениями;

- протокол SOAP на порту 9197 для считывания уровня громкости, установки громкости;

- Wake-on-lan для запуска выключенного телевизора (не испытывался на Wi-Fi соединении).

Модуль реализует классическую концепцию MajorDoMo для взаимодействия с пользователем через привязанные к определенным командам или приложениям свойства объекта. Объекты и свойства создаются пользователем самостоятельно. В модуле уже добавлены основные команды управления телевизором, но вы можете добавить свою. Список доступных команд см. ниже

В модуле имеется цикл, который раз в 10 секунд опрашивает состояние ТВ, а именно определяет, какое приложение запущено в данный момент, и запрашивает уровень громкости.

Список команд

Список ключей может различаться в зависимости от модели телевизора. Ниже приведены некоторые общие коды и их описания. Не все ключи могут работать конкретно на вашей модели телевизора.

Power keys

Ключ Действие
KEY_POWER PowerToggle

Input keys

Ключ Действие
KEY_SOURCE Source
KEY_COMPONENT1 Component1
KEY_COMPONENT2 Component2
KEY_AV1 AV1
KEY_AV2 AV2
KEY_AV3 AV3
KEY_SVIDEO1 SVideo1
KEY_SVIDEO2 SVideo2
KEY_SVIDEO3 SVideo3
KEY_HDMI HDMI
KEY_HDMI1 HDMI1
KEY_HDMI2 HDMI2
KEY_HDMI3 HDMI3
KEY_HDMI4 HDMI4
KEY_FM_RADIO FMRadio
KEY_DVI DVI
KEY_DVR DVR
KEY_TV TV
KEY_ANTENA AnalogTV
KEY_DTV DigitalTV

Number keys

Ключ Действие
KEY_1 1
KEY_2 2
KEY_3 3
KEY_4 4
KEY_5 5
KEY_6 6
KEY_7 7
KEY_8 8
KEY_9 9
KEY_0 0

Misc keys

Ключ Действие
KEY_PANNEL_CHDOWN 3D
KEY_ANYNET AnyNet+
KEY_ESAVING EnergySaving
KEY_SLEEP SleepTimer
KEY_DTV_SIGNAL DTVSignal

Channel keys

Ключ Действие
KEY_CHUP ChannelUp
KEY_CHDOWN ChannelDown
KEY_PRECH PreviousChannel
KEY_FAVCH FavoriteChannels
KEY_CH_LIST ChannelList
KEY_AUTO_PROGRAM AutoProgram
KEY_MAGIC_CHANNEL MagicChannel

Volume keys

Ключ Действие
KEY_VOLUP VolumeUp
KEY_VOLDOWN VolumeDown
KEY_MUTE Mute

Direction keys

Ключ Действие
KEY_UP NavigationUp
KEY_DOWN NavigationDown
KEY_LEFT NavigationLeft
KEY_RIGHT NavigationRight
KEY_RETURN NavigationReturn/Back
KEY_ENTER NavigationEnter

Media keys

Ключ Действие
KEY_REWIND Rewind
KEY_STOP Stop
KEY_PLAY Play
KEY_FF FastForward
KEY_REC Record
KEY_PAUSE Pause
KEY_LIVE Live
KEY_QUICK_REPLAY fnKEY_QUICK_REPLAY
KEY_STILL_PICTURE fnKEY_STILL_PICTURE
KEY_INSTANT_REPLAY fnKEY_INSTANT_REPLAY

Picture in Picture

Ключ Действие
KEY_PIP_ONOFF PIPOn/Off
KEY_PIP_SWAP PIPSwap
KEY_PIP_SIZE PIPSize
KEY_PIP_CHUP PIPChannelUp
KEY_PIP_CHDOWN PIPChannelDown
KEY_AUTO_ARC_PIP_SMALL PIPSmall
KEY_AUTO_ARC_PIP_WIDE PIPWide
KEY_AUTO_ARC_PIP_RIGHT_BOTTOM PIPBottomRight
KEY_AUTO_ARC_PIP_SOURCE_CHANGE PIPSourceChange
KEY_PIP_SCAN PIPScan

Modes

Ключ Действие
KEY_VCR_MODE VCRMode
KEY_CATV_MODE CATVMode
KEY_DSS_MODE DSSMode
KEY_TV_MODE TVMode
KEY_DVD_MODE DVDMode
KEY_STB_MODE STBMode
KEY_PCMODE PCMode

Color keys

Ключ Действие
KEY_GREEN Green
KEY_YELLOW Yellow
KEY_CYAN Cyan
KEY_RED Red

Teletext

Ключ Действие
KEY_TTX_MIX TeletextMix
KEY_TTX_SUBFACE TeletextSubface

AspectRatio

Ключ Действие
KEY_ASPECT AspectRatio
KEY_PICTURE_SIZE PictureSize
KEY_4_3 AspectRatio4:3
KEY_16_9 AspectRatio16:9
KEY_EXT14 AspectRatio3:4(Alt)
KEY_EXT15 AspectRatio16:9(Alt)

Picture Mode

Ключ Действие
KEY_PMODE PictureMode
KEY_PANORAMA PictureModePanorama
KEY_DYNAMIC PictureModeDynamic
KEY_STANDARD PictureModeStandard
KEY_MOVIE1 PictureModeMovie
KEY_GAME PictureModeGame
KEY_CUSTOM PictureModeCustom
KEY_EXT9 PictureModeMovie(Alt)
KEY_EXT10 PictureModeStandard(Alt)

Menus

Ключ Действие
KEY_MENU Menu
KEY_TOPMENU TopMenu
KEY_TOOLS Tools
KEY_HOME Home
KEY_CONTENTS Contents
KEY_GUIDE Guide
KEY_DISC_MENU DiscMenu
KEY_DVR_MENU DVRMenu
KEY_HELP Help

OSD

Ключ Действие
KEY_INFO Info
KEY_CAPTION Caption
KEY_CLOCK_DISPLAY ClockDisplay
KEY_SETUP_CLOCK_TIMER SetupClock
KEY_SUB_TITLE Subtitle

Zoom

Ключ Действие
KEY_ZOOM_MOVE ZoomMove
KEY_ZOOM_IN ZoomIn
KEY_ZOOM_OUT ZoomOut
KEY_ZOOM1 Zoom1
KEY_ZOOM2 Zoom2

Other keys

Ключ Действие
KEY_WHEEL_LEFT WheelLeft
KEY_WHEEL_RIGHT WheelRight
KEY_ADDDEL Add/Del
KEY_PLUS100 Plus100
KEY_AD AD
KEY_LINK Link
KEY_TURBO Turbo
KEY_CONVERGENCE Convergence
KEY_DEVICE_CONNECT DeviceConnect
KEY_11 KEY11
KEY_12 KEY12
KEY_FACTORY KEYFactory
KEY_3SPEED KEY3SPEED
KEY_RSURF KEYRSURF
KEY_FF_ FF_
KEY_REWIND_ REWIND_
KEY_ANGLE Angle
KEY_RESERVED1 Reserved1
KEY_PROGRAM Program
KEY_BOOKMARK Bookmark
KEY_PRINT Print
KEY_CLEAR Clear
KEY_VCHIP VChip
KEY_REPEAT Repeat
KEY_DOOR Door
KEY_OPEN Open
KEY_DMA DMA
KEY_MTS MTS
KEY_DNIe DNIe
KEY_SRS SRS
KEY_CONVERT_AUDIO_MAINSUB ConvertAudioMain/Sub
KEY_MDC MDC
KEY_SEFFECT SoundEffect
KEY_PERPECT_FOCUS PERPECTFocus
KEY_CALLER_ID CallerID
KEY_SCALE Scale
KEY_MAGIC_BRIGHT MagicBright
KEY_W_LINK WLink
KEY_DTV_LINK DTVLink
KEY_APP_LIST ApplicationList
KEY_BACK_MHP BackMHP
KEY_ALT_MHP AlternateMHP
KEY_DNSe DNSe
KEY_RSS RSS
KEY_ENTERTAINMENT Entertainment
KEY_ID_INPUT IDInput
KEY_ID_SETUP IDSetup
KEY_ANYVIEW AnyView
KEY_MS MS
KEY_MORE
KEY_MIC
KEY_NINE_SEPERATE
KEY_AUTO_FORMAT AutoFormat
KEY_DNET DNET

Auto Arc keys

Ключ Действие
KEY_AUTO_ARC_C_FORCE_AGING
KEY_AUTO_ARC_CAPTION_ENG
KEY_AUTO_ARC_USBJACK_INSPECT
KEY_AUTO_ARC_RESET
KEY_AUTO_ARC_LNA_ON
KEY_AUTO_ARC_LNA_OFF
KEY_AUTO_ARC_ANYNET_MODE_OK
KEY_AUTO_ARC_ANYNET_AUTO_START
KEY_AUTO_ARC_CAPTION_ON
KEY_AUTO_ARC_CAPTION_OFF
KEY_AUTO_ARC_PIP_DOUBLE
KEY_AUTO_ARC_PIP_LARGE
KEY_AUTO_ARC_PIP_LEFT_TOP
KEY_AUTO_ARC_PIP_RIGHT_TOP
KEY_AUTO_ARC_PIP_LEFT_BOTTOM
KEY_AUTO_ARC_PIP_CH_CHANGE
KEY_AUTO_ARC_AUTOCOLOR_SUCCESS
KEY_AUTO_ARC_AUTOCOLOR_FAIL
KEY_AUTO_ARC_JACK_IDENT
KEY_AUTO_ARC_CAPTION_KOR
KEY_AUTO_ARC_ANTENNA_AIR
KEY_AUTO_ARC_ANTENNA_CABLE
KEY_AUTO_ARC_ANTENNA_SATELLITE

Panel keys

Ключ Действие
KEY_PANNEL_POWER
KEY_PANNEL_CHUP
KEY_PANNEL_VOLUP
KEY_PANNEL_VOLDOW
KEY_PANNEL_ENTER
KEY_PANNEL_MENU
KEY_PANNEL_SOURCE
KEY_PANNEL_ENTER




Extended keys

Ключ
KEY_EXT1
KEY_EXT2
KEY_EXT3
KEY_EXT4
KEY_EXT5
KEY_EXT6
KEY_EXT7
KEY_EXT8
KEY_EXT11
KEY_EXT12
KEY_EXT13
KEY_EXT16
KEY_EXT17
KEY_EXT18
KEY_EXT19
KEY_EXT20
KEY_EXT21
KEY_EXT22
KEY_EXT23
KEY_EXT24
KEY_EXT25
KEY_EXT26
KEY_EXT27
KEY_EXT28
KEY_EXT29
KEY_EXT30
KEY_EXT31
KEY_EXT32
KEY_EXT33
KEY_EXT34
KEY_EXT35
KEY_EXT36
KEY_EXT37
KEY_EXT38
KEY_EXT39
KEY_EXT40
KEY_EXT41

Управление ТВ

Отправка команд на ТВ выполняется с помощью привязанного к ним свойства объекта путем записи в это свойство команды через функцию setGlobal() или иным способом. Возможные команды приведены в таблице ниже.

Пример:

setGlobal('TV1.Power', '1');

// Или сокращенная форма setGlobal

sg('TV1.Volume', '-3');

// Открытие сайта в браузере

sg('TV1.URL', 'yandex.ru');

При добавлении в модуль телевизора, с ним автоматически добавляются часто используемые команды. Их описание в таблице ниже.

Команда Описание Значения

Команда В привязанное к этой команде свойство вы можете написать любую команду из списка выше и она будет передана в чистом виде на телевизор. Любая команда из списка выше

ВКЛ/ВЫКЛ Выключение и включение ТВ Включение ТВ с помощью WOL (только для подключения ТВ по ethernet). Поддерживается не всеми моделями ТВ. 1 - включить, 0 - выключить

Управление громкостью Управление громкостью. Положительное число - прибавить на заданное количество пунктов. Отрицательное число - убавить на заданное количество пунктов. 0 - MUTE

Установка громкости Установка уровня громкости. 1-100

Управление каналами Переключение каналов. 1 - канал вперед, 0 - список каналов, -1 - канал назад

Навигация Управление курсором. 0 или ENTER или OK - кнопка ENTER, 1 или LEFT - влево, 2 или UP - вверх, 3 или RIGHT - вправо, 4 или DOWN - вниз.

Назад Кнопка НАЗАД Любое значение

Меню Кнопка МЕНЮ Любое значение

Домой Кнопка ДОМОЙ Любое значение

Стоп Кнопка СТОП Любое значение

Воспроизведение Кнопка ПЛЭЙ Любое значение

HDMI Первый источник HDMI Любое значение

HDMI1 Второй источник HDMI Любое значение

Цифровые кнопки Ввод цифр. Например, для переключения каналов Любое положительное цифровое значение

Цветные кнопки Цветные кнопки на пульте 1 или RED - красная кнопка, 2 или GREEN - зеленая кнопка, 3 или YELLOW - желтая кнопка, 4 или BLUE - синяя кнопка.

Аналогично происходит управление приложениями. В привязанном свойстве возможны значения 1 - запустить, 0 - закрыть.

Первое приложение Internet - запускает браузер с URL, записанным в значение свойства.

Если вы установили новое приложение, то для того, чтоб оно появилось в модуле, нажмите кнопку Обновить внизу списка приложений.

Встроенные функции

Модулем также можно управлять с помощью встроенных функций. В любой функции в качестве имени устройства можно использовать его ID, название или IP-адрес.

Функция Описание Пример

STVPowerOn(Имя устройства) Включение телевизора. STVPowerOn('Телевизор в зале');

STVPowerOff(Имя устройства) Включение телевизора STVPowerOff('192.168.0.106');

STVVolUp(Имя устройства, значение) Прибавить громкость. Если не написать значение, громкость будет прибавлена на 1 STVVolUp('Телевизор в зале');

STVVolUp('192.168.0.106', 4);

STVVolDown(Имя устройства, значение) Убавить громкость. Если не написать значение, громкость будет убавлена на 1 STVVolDown('Телевизор в зале');

STVVolDown('192.168.0.106', 4);

STVGetVol(Имя устройства) Запрос текущей громкости ТВ STVGetVol('Телевизор в зале');

STVSetVol(Имя устройства, значение) Установка громкости на устройстве STVSetVol('192.168.0.106', 15);

STVChUp(Имя устройства) Переключение канала вперед STVChUp('Телевизор в зале');

STVChDown(Имя устройства) Переключение канала назад STVChDown('192.168.0.106');

STVEnter(Имя устройства) Кнопка ENTER STVEnter('Телевизор в зале');

STVSendURL(Имя устройства, url) Открытие ссылки в браузере STVSendURL('192.168.0.106', 'yandex.ru');

STVSendKey(Имя устройства, ключ) Отправка любого ключа из списка выше на ТВ STVSendKey('Телевизор в зале', 'KEY_VOLUP');

STVStatus(Имя устройства) Получение информации о доступности устройства (TRUE/FALSE) STVStatus('192.168.0.106');