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');