Управляем Samsung TV в Node-RED

С появлением телевизора и желания попробовать Node-RED автоматизацию в своём доме. Написал простую обертку для Samsung TV API. Приложение получилось в двух частях. Первая это библиотека для общения с телевизором. На данный момент работает со всеми моделями старше 2016 года:

Скачать можно в библиотеке плагинов Node-RED:

Исходный код:

О плагине

Позволяет управлять телевизорами Samsung 2016 года и новее.

Для 2016 нужно выбрать модель в настройках!

Основные действия:
- Получение токена;
- Проверка на активность*;
- Включение из сна;
- Нажатие кнопок;
- Открытие приложений, и так же получения списка приложений

*Проверка на активность позволяет понять, что телевизор готов принимать команды, а не его состояние. Будьте внимательны isAlive может вернуть положительный статус, но телевизор при этом будет с выключенным экраном.

Установка

Найти в Manage palette:
1. Меню;
2. Manage Palette;
3. Вкладка Install;
4. Найти node-red-contrib-samsung-tv-control


Или запустить в директории Node-RED

npm install node-red-contrib-samsung-tv-control

Настройка

Для того чтобы плагин заработал, нужно получить токен.
Для этого можете скопировать цепочку ниже:
Меню -> Import -> Кнопка Import

[{"id":"da13d74f.5e6588","type":"samsung-tv-token","z":"7f3d456d.ed17fc","device":"92aa1c11.d2cd4","name":"","x":370,"y":160,"wires":[["d2c59f8e.db88"]]},{"id":"d2c59f8e.db88","type":"debug","z":"7f3d456d.ed17fc","name":"Токен","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","x":570,"y":160,"wires":[]},{"id":"5f87e2b3.41a46c","type":"inject","z":"7f3d456d.ed17fc","name":"","topic":"","payload":"Получить токен","payloadType":"str","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":160,"y":160,"wires":[["da13d74f.5e6588"]]},{"id":"92aa1c11.d2cd4","type":"samsung-tv","z":"","name":"Любое имя","ip":"IP телевизора","mac":"MAC адрес телевизора","token":""}]

Далее перейти в настройки зеленой ноды "Samsung TV Get Token", рядом с Device справа, нажать на кнопку с карандашом

В форме введите:
Name: Название телевизора, какое хотите, например "Телевизор в гостиной"
IP: IP адрес телевизора, можете посмотреть в роутере
MAC address: MAC адрес телевизора, можете так посмотреть в роутере, он нужен для только команды turnOn. Так как работает через Wake-on-Lan (по wifi тоже работает)
Token: оставляем пустым пока что.

После редактирования, сделайте Deploy изменений, и включите телевизор с пульта.

Дальше откройте debug панель и выполните один раз цепочку, для этого левее "Получить Токен" нажмите на маленькую кнопку.

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

Всё настроено. Можно пользоваться.

Docker, особенности

Если вы используете docker для node-red, то контейнеру надо разрешить использовать host сеть, для работы turnon функции

Один из вариантов добавить ключ `--net=host`

For anyone exploring a character design, it is worth considering how details related to game cosplay costumes will affect the complete look. With practical wear in mind, a comparison of details related to beginner costume choices can clarify differences in colour and construction. To organise preparations involving details related to Halloween styling, men's cosplay costumes with size options can help narrow the options for a specific purpose. When planning for care after the photoshoot, a balanced view of details related to cosplay shoes can support both detail and comfort.

Пример моих настроек:

docker run \ 
  --name=nodered \ 
  --net=host \ 
  -v /home/pi/smart-home/nodered:/data \
  --log-opt max-size=10m \
  nodered/node-red