Samsung TV

Современный адаптер для телевизоров Samsung с автоматическим обнаружением и поддержкой нескольких устройств

Текущий релиз
0.0.28
Разработчик
iobroker-community-adapters
Лицензия
MIT
Samsung TV logo

iobroker.samsungtv

Современный адаптер для телевизоров Samsung с автоматическим обнаружением и управлением несколькими устройствами в одном экземпляре (поддерживается подключение нескольких телевизоров к одному экземпляру).

Это независимый адаптер, разработанный сообществом пользователей, для телевизоров производства Samsung Electronics .

Документы на немецком языке доступны по адресу:doc/de/README.md .

Функции

  • Автоматическое обнаружение через SSDP/UPnP и опционально mDNS
  • Одновременное подключение нескольких телевизоров:samsungtv.0.<tvname>.*
  • API Tizen WebSocket (8001/8002) + сопряжение/токен
  • Парное соединение PIN-кодов серии H/J (по мере возможности)
  • Функция Wake-on-LAN (опционально)
  • Полная регулировка громкости и отключение звука через UPnP RenderingControl
  • Стабильное сопоставление устройств по ID/UUID/MAC, в том числе и при переименовании.
  • В логах и пользовательском интерфейсе токены не отображаются (токены хранятся в зашифрованном виде).

Конфигурация

Адаптер использует встроенные компоненты ioBroker JSONConfig и Device Manager. Они автоматически следуют активной теме оформления административной панели и адаптируются к макетам настольных компьютеров и мобильных устройств.

Вкладка «Конфигурация» содержит:

  • Автоматическое сканирование и интервал автоматического сканирования для периодического обнаружения
  • Интервал опроса для обновления информации о питании, громкости и отключении звука.
  • Тайм-аут обнаружения
  • Включить SSDP / Включить источники обнаружения mDNS
  • Включить функцию пробуждения по локальной сети (Wake-on-LAN)
  • Сервисы mDNS в экспертном режиме (разделенные запятыми, с наилучшими усилиями)

Добавить устройства

  1. Откройте вкладку «Управление телевизором» .
  2. Начать сканирование или использовать ручное добавление в качестве запасного варианта.
  3. Добавьте обнаруженный телевизор и выберите его читаемое имя в виде дерева объектов.

Действия диспетчера устройств применяются и сохраняются немедленно. Обычная кнопка сохранения ioBroker применяет настройки из вкладки «Конфигурация» .

Сочетание

  • Tizen : при нажатии кнопки «Сопряжение» на экране телевизора появляется запрос (обычно «Разрешить/Отменить », без ввода PIN-кода). Подтвердите сопряжение на телевизоре.
  • Серия H/J : нажмите «Сопряжение» → «Телевизор показывает PIN-код» → введите PIN-код в диалоговом окне.

Динамический реестр устройств хранится в каталоге данных постоянного экземпляра ioBroker, поэтому действия Диспетчера устройств не могут быть перезаписаны уже открытой формой настроек. Токены/идентификаторы в этом реестре зашифрованы с помощью системного секрета ioBroker, а запись в файл осуществляется только с правами владельца. Существующиеnative.devices и зашифрованныйnative.tokens Значения импортируются автоматически при первом запуске.

Если во время сопряжения не появляется соответствующее сообщение :

  • ТВ: Диспетчер подключений устройств → включить уведомления о доступе .
  • Телевизор: проверьте список устройств и удалите старые записи.
  • Убедитесь, что ioBroker и телевизор находятся в одной подсети .

Объектная модель

По сообщению телеканала:

  • samsungtv.0.<tvname>.info.*
    • id ,ip ,mac ,model ,uuid ,api ,lastSeen ,paired , online
    • tokenAuthSupport
  • samsungtv.0.<tvname>.state.*
    • power ,volume , muted
  • samsungtv.0.<tvname>.control.*
    • power ,wol ,key ,volumeUp ,volumeDown ,mute ,channelUp ,channelDown ,launchApp ,source
    • volume ,muted

Контроль (короткий)

  • control.key : любая клавиша дистанционного управления (например)KEY_POWER ,KEY_VOLUP )
  • control.launchApp : идентификатор приложения (Tizen) из списка приложений для ТВ
  • control.source : источник как ключ (KEY_HDMI ,KEY_SOURCE ) или сокращенная форма (HDMI )
  • control.volume : абсолютный объем от 0 до 100
  • control.muted : включение или выключение звука, в отличие отcontrol.mute , который переключает

Объем

control.volume иcontrol.muted Используйте службу UPnP RenderingControl телевизора, чтобы установить точный уровень, а не ступенчатое изменение. Три момента, касающиеся этой службы, заслуживают внимания:

  • Он отвечает только тогда, когда телевизор включен, и начинает отвечать через несколько секунд после того, как телевизор впервые сообщает о своей включенности. Порт может принимать TCP-соединение даже без ответа со стороны службы, находящейся за ним, поэтому доступность определяется фактическим соединением.GetVolume вызов.
  • UPnP определяетupnp:401 какInvalid Action иupnp:402 какInvalid Args Некоторые телевизоры Samsung также возвращаются.upnp:401 Когда сетевые ограничения или ограничения режима "для гостей" блокируют управление, адаптер сообщает об этих ограничениях как о возможных причинах, а не как о確確ной причине.

Кодовые клавиши (control.key)

control.key принимает либо коды ключей Samsung (KEY_* ) или удобные сокращенные формы :

  • Навигация:up ,down ,left ,right ,enter ,back
  • Система:home ,source ,menu ,info ,guide ,exit
  • Громкость/канал:volup ,voldown ,mute ,chup ,chdown
  • СМИ:play ,pause ,stop ,rewind ,ff ,record
  • Цвета:red ,green ,yellow ,blue
  • Числа:0 к9

Также работают прямые коды активации:

  • Примеры:KEY_UP ,KEY_DOWN ,KEY_ENTER ,KEY_RETURN ,KEY_HOME ,KEY_SOURCE

Примечание: не все телевизоры поддерживают все кнопки. Некоторые кнопки работают только при активном меню/фокусе.

Примечания

  • Обнаружение осуществляется с максимальной эффективностью. SSDP является основным протоколом, mDNS — необязательным.
  • По возможности, распознаются более старые устройства (HJ/Legacy); набор функций может отличаться.
  • Для устройств H/J/JU предпочтительнее использовать HJ, если он доступен. В противном случае, если телевизор сообщает о «нераспознанном методе», предпринимается попытка использовать пульт Tizen, и он автоматически переключается на HJ.
  • Если присутствуют устаревшие объекты, в журнал записываются предупреждения.
  • Адаптер переименован вsamsungtv чтобы избежать конфликтов со старымиsamsung адаптер.

Как провести тестирование (кратко)

  1. Установите адаптер и создайте экземпляр.
  2. Откройте панель управления телевизором и запустите сканирование .
  3. Добавьте телевизор и задайте ему имя (например)tv-livingroom ).
  4. Проверка дерева объектовsamsungtv.0.tv-livingroom.* .
  5. Запустите программу сопряжения и подтвердите сопряжение на телевизоре.
  6. Тестcontrol.* объекты (например)control.mute ).
  7. Переименуйте телевизор в Диспетчере устройств: дерево объектов должно перенестись без проблем.

Changelog

WORK IN PROGRESS

  • Add absolute volume and mute (control.volume, control.muted) over UPnP RenderingControl.
  • Fall back to the well-known RenderingControl endpoint when SSDP returns nothing.
  • (ioBroker-Bot) Adapter requires admin >= 7.8.23 now.

0.0.28

  • Replace the custom React configuration page with native ioBroker JSONConfig and Device Manager components.
  • Add responsive discovery, manual-add, details, pairing, rename, and remove workflows.
  • Move the dynamic registry to persistent instance data with system-secret encryption and automatic migration.
  • Remove obsolete custom admin message handlers and frontend dependencies.

0.0.27

  • Fix TCP reachability checks and prevent overlapping polling/discovery cycles.
  • Add bounded timer settings and cross-platform ping/ARP handling.
  • Align generated objects and state roles with the current ioBroker catalogue.
  • Complete metadata translations and singleton/compact-mode support.

0.0.26

  • Replace the legacy configuration page with a responsive React admin UI.
  • Add complete ioBroker admin translations and automatic light/dark theme support.
  • Add typed configuration foundations and migration tests.
  • Store Tizen tokens and H/J pairing identities reliably through ioBroker encryptedNative handling.
  • Migrate pairing data written by older adapter versions without exposing secrets.

Older changes are documented in CHANGELOG_OLD.md.

License

MIT

Copyright (c) 2026 softwarecrash