SamsungTV модуль
автор: 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 | |
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');