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 в экспертном режиме (разделенные запятыми, с наилучшими усилиями)
Добавить устройства
- Откройте вкладку «Управление телевизором» .
- Начать сканирование или использовать ручное добавление в качестве запасного варианта.
- Добавьте обнаруженный телевизор и выберите его читаемое имя в виде дерева объектов.
Действия диспетчера устройств применяются и сохраняются немедленно. Обычная кнопка сохранения 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,onlinetokenAuthSupport
samsungtv.0.<tvname>.state.*power,volume,muted
samsungtv.0.<tvname>.control.*power,wol,key,volumeUp,volumeDown,mute,channelUp,channelDown,launchApp,sourcevolume,muted
Контроль (короткий)
control.key: любая клавиша дистанционного управления (например)KEY_POWER,KEY_VOLUP)control.launchApp: идентификатор приложения (Tizen) из списка приложений для ТВcontrol.source: источник как ключ (KEY_HDMI,KEY_SOURCE) или сокращенная форма (HDMI)control.volume: абсолютный объем от 0 до 100control.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адаптер.
Как провести тестирование (кратко)
- Установите адаптер и создайте экземпляр.
- Откройте панель управления телевизором и запустите сканирование .
- Добавьте телевизор и задайте ему имя (например)
tv-livingroom). - Проверка дерева объектов
samsungtv.0.tv-livingroom.*. - Запустите программу сопряжения и подтвердите сопряжение на телевизоре.
- Тест
control.*объекты (например)control.mute). - Переименуйте телевизор в Диспетчере устройств: дерево объектов должно перенестись без проблем.
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
encryptedNativehandling. - 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