hoonoh / samsung-tv-control

๐Ÿ“บ Remote control your TV via JS!

Home Page:https://toxblh.github.io/samsung-tv-control/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

๐Ÿ“บ 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

About

๐Ÿ“บ Remote control your TV via JS!

https://toxblh.github.io/samsung-tv-control/

License:MIT License


Languages

Language:TypeScript 93.8%Language:JavaScript 6.2%