Replace profiles, IP and ring ID with your own values.
Run in a Screen
node whatever.js
var fs = require('fs');
var request = require("request");
var inp = fs.createReadStream("/dev/ttyACM0");
inp.setEncoding('utf8');
var inptext = "";
var XBMCEventClient = require('xbmc-event-client').XBMCEventClient;
var xbmc = new XBMCEventClient('node.js app');
var blob = { "id": 1, "jsonrpc": "2.0", "method": "Profiles.LoadProfile", "params": {"profile":"lydia"}};
var options = {
method: 'POST',
uri: 'http://user:pass@127.0.0.1:8080/jsonrpc',
json: blob
}
xbmc.connect(function(errors, bytes) {
inp.on('data', function (data) {
if (errors.length){
throw errors[0];
}
if(data === "."){
return; // do nothing
}
if(data.indexOf("InsertRingUIDHere") !== -1){
console.log(options.json.params);
options.json.params.profile = "john";
}else{
options.json.params.profile = "lydia";
}
request(options, function (error, response, body) {
console.log("changed to", options.json.params.profile);
if (!error && response.statusCode == 200) {
console.log(body.id) // Print the shortened url.
}
});
});
});
Note that I just threw this together as a proof of concept, it needs a bunch of polish! 🙂

