Is there a known issue with Yamaha Blue Ray players. It gets detected but immediately errors 400
I was trying to create a plug in but I’m having trouble with that as well. When I add the data/body text, the post switches from http to tcp and fails. I was able to post via postman. I have tried multiple different content types.
plugin.Name = “YamahaBDS677”;
plugin.OnChangeRequest = onChangeRequest;
plugin.OnConnect = onConnect;
plugin.OnDisconnect = onDisconnect;
plugin.OnPoll = onPoll;
plugin.OnSynchronizeDevices = onSynchronizeDevices;
plugin.PollingInterval = -1;
plugin.DefaultSettings = {
“Host” : “10.37.230.52”
};
var mediaCommandMappings = {
“PowerOff” : “<Power_Control>Off</Power_Control>”,
“PowerOn” : “<Power_Control>On</Power_Control>”,
“OpenClose” : “<Remote_Control><RC_Code>7c81</RC_Code></Remote_Control>”,
“Open” : “<Tray_Control>Open</Tray_Control>”,
“Close” : “<Tray_Control>Close</Tray_Control>”,
};
var http = new HTTPClient();
function onChangeRequest(device, attribute, value) {
console.log(“onChangeRequest called…”);
var cmd;
console.log(attribute + " " + value);
switch(attribute) {
case “MediaCommand”:
console.log(“step mediacommand”);
cmd = mediaCommandMappings[value];
break;
case “Switch”:
console.log(“step switch”);
if(value == “On”) {
cmd = mediaCommandMappings[“PowerOn”];
} else {
cmd = mediaCommandMappings[“PowerOff”];
}
break;
}
//http://g33ksblog.blogspot.com/2013/08/yamaha-network-control.html
var host = plugin.Settings[“Host”];
var baseURL = “http://” + host + “:50100/YamahaRemoteControl/ctrl?” ;
cmd = '<?xml version="1.0" encoding="utf-8"?><YAMAHA_AV cmd="PUT"><Main_Zone><Remote_Control><RC_Code>7c81</RC_Code></Remote_Control></Main_Zone></YAMAHA_AV>'
var xmlheaders2 = {'Content-Type': 'text/xml'};
var xmlheaders = {'Content-Type': 'application/xml'};
var plainHeaders = {'Content-Type':'text/plain'}
var htmlHeaders = {‘Content-Type’:‘text/html’}
console.log(baseURL + cmd);
http.post(cmd,cmd,{baseURL:baseURL,headers: htmlHeaders });
}
function onConnect() {
}
function onDisconnect() {
}
function onPoll() {
}
function onSynchronizeDevices() {
var device = new Device();
device.Id = “1”;
device.DisplayName = “YamahaBDS677”;
device.Capabilities = [“Switch”,“MediaControl”];
device.Attributes = [];
plugin.Devices[device.Id] = device;
}