Skip to content

Toxblh/samsung-tv-control

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ“บ Library for remote control Samsung TV in your NodeJS application.

Tested with Samsung UE43NU7400 and UN55NU7100

Build Status codecov Latest Stable Version Downloads total Downloads month License Paypal Donate Patreon

Installation

Requires Node v9 or above.

npm install samsung-tv-control --save

NODE-RED

Also you can use the lib in your Node-RED https://github.com/Toxblh/node-red-contrib-samsung-tv-control

Usage

You can try example code

// import Samsung, { APPS, KEYS } from 'samsung-tv-control'
const { Samsung, KEYS, APPS } = require('samsung-tv-control')

const config = {
  debug: true, // Default: false
  ip: '192.168.1.2',
  mac: '123456789ABC',
  nameApp: 'NodeJS-Test', // Default: NodeJS
  port: 8001, // Default: 8002
  token: '12345678',
}

const control = new Samsung(config)

control.turnOn()
control
  .isAvailable()
  .then(() => {
    // Get token for API
    control.getToken((token) => {
      console.info('# Response getToken:', token)
    })

    // Send key to TV
    control.sendKey(KEYS.KEY_HOME, function (err, res) {
      if (err) {
        throw new Error(err)
      } else {
        console.log(res)
      }
    })

    // Get all installed apps from TV
    control.getAppsFromTV((err, res) => {
      if (!err) {
        console.log('# Response getAppsFromTV', res)
      }
    })

    // Get app icon by iconPath which you can get from getAppsFromTV
    control.getAppIcon(
      `/opt/share/webappservice/apps_icon/FirstScreen/${APPS.YouTube}/250x250.png`,
      (err, res) => {
        if (!err) {
          console.log('# Response getAppIcon', res)
        }
      },
    )

    // Open app by appId which you can get from getAppsFromTV
    control.openApp(APPS.YouTube, (err, res) => {
      if (!err) {
        console.log('# Response openApp', res)
      }
    })

    // Control will keep connection for next messages in 1 minute
    // If you would like to close it immediately, you can use `closeConnection()`
    control.closeConnection()
  })
  .catch((e) => console.error(e))

Commands List

All commands you can find here

All popular apps you can find here