yamaha-nodejs-soef
Version:
An API to control your YAMAHA Receiver written in nodejs
46 lines (45 loc) • 4.97 kB
JSON
{
"name": "yamaha-nodejs-soef",
"version": "0.7.4",
"description": "An API to control your YAMAHA Receiver written in nodejs",
"main": "yamaha.js",
"dependencies": {
"bluebird": "^3.3.4",
"request": "^2.69.0",
"xml2js": "^0.4.16",
"peer-ssdp": "0.0.5"
},
"devDependencies": {
"chai": "^3.5.0",
"chai-as-promised": "^5.2.0"
},
"scripts": {
"test": "mocha mochatest"
},
"repository": {
"type": "git",
"url": "git+https://github.com/PSeitz/yamaha-nodejs.git"
},
"keywords": [
"yamaha",
"api",
"nodejs",
"node",
"receiver",
"network"
],
"author": {
"name": "Pascal Seitz"
},
"license": "ISC",
"bugs": {
"url": "https://github.com/PSeitz/Yamaha-Network-API/issues"
},
"homepage": "https://github.com/PSeitz/Yamaha-Network-API",
"readme": "Yamaha-nodejs\r\n==================\r\n\r\nA node module to control your yamaha receiver. Tested with RX-V775, should work with all yamaha receivers with a network interface.\r\n\r\n### Install\r\nnpm install yamaha-nodejs\r\n\r\n## Example\r\n```javascript\r\nvar YamahaAPI = require(\"yamaha-nodejs\");\r\nvar yamaha = new YamahaAPI(\"192.168.0.100\");\r\nyamaha.powerOn().then(function(){\r\n\tconsole.log(\"powerOn\");\r\n\tyamaha.setMainInputTo(\"NET RADIO\").then( function(){\r\n\t\tconsole.log(\"Switched to Net Radio\");\r\n\t\tyamaha.selectWebRadioListItem(1).then(function(){\r\n\t\t\tconsole.log(\"Selected Favorites\");\r\n\t\t\tyamaha.selectWebRadioListItem(1).then(function(){});\r\n\t\t});\r\n\r\n\t});\r\n});\r\n```\r\n## Prerequisites\r\n* To power on the yamaha, network standby has to be enabled\r\n* The Yamaha reveiver is stateful. Some commands only work work if the receiver is in the right state. E.g. to get web radio channels, the \"NET RADIO\" input has to be selected.\r\n\r\n## Methods\r\n```javascript\r\nvar yamaha = new Yamaha(\"192.168.0.100\")\r\nyamaha.powerOff(zone)\r\nyamaha.powerOn(zone)\r\nyamaha.isOn(zone)\r\nyamaha.isOff(zone)\r\n\r\n//Volume\r\nyamaha.setVolumeTo(-500, zone)\r\nyamaha.volumeUp(50)\r\nyamaha.volumeDown(50)\r\nyamaha.muteOn(zone)\r\nyamaha.muteOff(zone)\r\n\r\n//Extended Volume Settings\r\nyamaha.setBassTo(60) //-60 to 60 (may depend on model)\r\nyamaha.setTrebleTo(60) //-60 to 60 (may depend on model)\r\nyamaha.setSubwooferTrimTo(60) //-60 to 60 (may depend on model)\r\nyamaha.setDialogLiftTo(5) //0 to 5 (may depend on model)\r\nyamaha.setDialogLevelTo(3) //0 to 3 (may depend on model)\r\nyamaha.YPAOVolumeOn()\r\nyamaha.YPAOVolumeOff()\r\nyamaha.extraBassOn()\r\nyamaha.extraBassOff()\r\nyamaha.adaptiveDRCOn()\r\nyamaha.adaptiveDRCOff()\r\n\r\n//Playback\r\nyamaha.stop(zone)\r\nyamaha.pause(zone)\r\nyamaha.play(zone)\r\nyamaha.skip(zone)\r\nyamaha.rewind(zone)\r\n\r\n//Switch Input\r\nyamaha.setInputTo(\"USB\", 2)\r\nyamaha.setMainInputTo(\"NET RADIO\")\r\n\r\n//Party Mode\r\nyamaha.partyModeOn()\r\nyamaha.partyModeOff()\r\nyamaha.partyModeUp()\r\nyamaha.partyModeDown()\r\n\r\n//Basic\r\nyamaha.SendXMLToReceiver()\r\n\r\n//Get Info\r\nyamaha.getBasicInfo(zone).done(function(basicInfo){\r\n basicInfo.getVolume();\r\n basicInfo.isMuted();\r\n basicInfo.isOn();\r\n basicInfo.isOff();\r\n basicInfo.getCurrentInput();\r\n basicInfo.isPartyModeEnabled();\r\n basicInfo.isPureDirectEnabled();\r\n basicInfo.getBass();\r\n basicInfo.getTreble();\r\n basicInfo.getSubwooferTrim();\r\n basicInfo.getDialogueLift();\r\n basicInfo.getDialogueLevel();\r\n basicInfo.isYPAOVolumeEnabled();\r\n basicInfo.isExtraBassEnabled();\r\n basicInfo.isAdaptiveDRCEnabled();\r\n})\r\n\r\nyamaha.isHeadphoneConnected()\r\nyamaha.getSystemConfig()\r\nyamaha.getAvailableInputs()\r\nyamaha.isMenuReady(\"NET_RADIO\")\r\n\r\n// FM Tuner\r\nyamaha.selectTunerPreset(1)\r\nyamaha.selectTunerFrequency(band, frequency)\r\n\r\n//Select Menu Items\r\nyamaha.selectUSBListItem(1)\r\nyamaha.selectWebRadioListItem(1)\r\n\r\n// Single Commands, receiver has to be in the right state\r\nyamaha.getWebRadioList()\r\nyamaha.selectWebRadioListItem(1)\r\n\r\n// Chained Commands, they ensure the receiver is in the right state\r\nyamaha.switchToFavoriteNumber() \r\n \r\n \r\n```\r\n\r\n#### Zones\r\nThe zone parameter is optional, you can pass a number or a string\r\n\r\n#### Promises\r\nAll these methods return a promise:\r\n```javascript\r\nyamaha.isOn().then(function(result){\r\n\tconsole.log(\"Receiver is:\"+result);\r\n})\r\n```\r\n#### Execute Tests\r\n```javascript\r\nmocha mochatest.js --ip 192.168.0.25\r\n```\r\n\r\n#### Discovery\r\nIf you know how to discover YAMAHA receivers, please contact me or create a pull request. I would like to integrate that function.\r\n",
"readmeFilename": "README.md",
"gitHead": "4cc024131049d9ca5636bc3efec575e88fd6d0d3",
"_id": "yamaha-nodejs-soef@0.7.0",
"_shasum": "2ccf6e255290995297655f7798193b6ee6541ab9",
"_from": "yamaha-nodejs-soef@latest"
}