https://github.com/Toxblh/samsung-tv-control
📺 Remote control your TV via JS!
https://github.com/Toxblh/samsung-tv-control
Last synced: over 1 year ago
JSON representation
📺 Remote control your TV via JS!
- Host: GitHub
- URL: https://github.com/Toxblh/samsung-tv-control
- Owner: Toxblh
- License: mit
- Created: 2018-11-30T00:50:15.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2023-12-23T00:35:07.000Z (over 2 years ago)
- Last Synced: 2024-10-06T19:08:22.204Z (almost 2 years ago)
- Language: TypeScript
- Homepage: https://toxblh.github.io/samsung-tv-control/
- Size: 1.67 MB
- Stars: 178
- Watchers: 6
- Forks: 35
- Open Issues: 19
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
- awesome-smart-tv - samsung-tv-control - Library for remote control Samsung TV in your Node.js (Platforms / Samsung Tizen)
README
## 📺 Library for remote control Samsung TV in your NodeJS application.
_Tested with Samsung UE43NU7400 and UN55NU7100_
[](https://travis-ci.org/Toxblh/samsung-tv-control)
[](https://codecov.io/gh/Toxblh/samsung-tv-control)
[](https://www.npmjs.com/package/samsung-tv-control)
[](https://www.npmjs.com/package/samsung-tv-control)
[](https://www.npmjs.com/package/samsung-tv-control)
[](https://www.npmjs.com/package/samsung-tv-control) [](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=WUAAG2HH58WE4) [](https://www.patreon.com/toxblh)
## [📖 Documentation](https://toxblh.github.io/samsung-tv-control/)
## 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](example/index.js)
```js
// 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](src/keys.ts)
All popular apps you can find [here](src/apps.ts)