Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //autowatch = 1;
- outlets = 1;
- inlets = 5;
- var ajaxreq;
- var ip = "";
- var key = ""; // username
- var tran = 0;
- var red;
- var green;
- var blue;
- var tone;
- var velocity;
- var bulb_id = 1;
- var brightness = 100;
- var color = "100 100 100";
- var strobe;
- var i = 0;
- function msg_int(v){
- //assign inlets with if statements
- if(inlet==0){
- bulb_id = v;
- }
- if(inlet==1){
- brightness = v;
- set_light('bri',brightness);
- }
- if(inlet==2){
- if(i == 0){
- red = v;
- i++;
- }else if(i == 1){
- green = v;
- i++;
- }else if(i == 2){
- blue = v;
- i = 0;
- set_light('xy','[' + toXY(red, green, blue)[0] + ',' + toXY(red, green, blue)[1] + ']');
- post(red + ":" + green + ":" + blue);
- }
- }
- //register_user();
- }
- function bang(v){
- }
- function register_user(){
- ajaxreq = new XMLHttpRequest();
- ajaxreq.open("POST",'http://' + ip + '/api');
- ajaxreq.onreadystatechange = readystatechange_parsejson;
- ajaxreq.send('{"devicetype":"'+ key +'","username":"'+ key +'"}');
- }
- function get_lights(){
- ajaxreq = new XMLHttpRequest();
- ajaxreq.open("GET",'http://' + ip + '/api/' + key +'/lights');
- ajaxreq.onreadystatechange = readystatechange_parsejson;
- ajaxreq.send();
- }
- function on(state)
- {
- ajaxreq = new XMLHttpRequest();
- ajaxreq.open("PUT",'http://' + ip + '/api/' + key +'/lights/' + bulb_id + '/state');
- ajaxreq.onreadystatechange = readystatechange_parsejson;
- if (state == 1)
- ajaxreq.send('{"on": true}');
- if (state == 0)
- ajaxreq.send('{"on": false}');
- }
- function set_light(cmd, value){
- ajaxreq = new XMLHttpRequest();
- ajaxreq.open("PUT",'http://' + ip + '/api/' + key +'/lights/' + bulb_id + '/state');
- ajaxreq.onreadystatechange = readystatechange_parsejson;
- // {"on":true, "sat":255, "bri":255,"hue":10000}
- ajaxreq.send('{"'+cmd+'": '+value+', "transitiontime": 0}');
- //post('{"'+cmd+'": '+value+', "transitiontime": 0}');
- }
- function readystatechange_parsejson()
- {
- if (this.readyState ==4){
- //post(this.responseText);
- }
- }
- function strobe(){
- set_light('alert','select');
- }
- function toXY(red,green,blue){
- //Gamma correctie
- red = (red > 0.04045) ? Math.pow((red + 0.055) / (1.0 + 0.055), 2.4) : (red / 12.92);
- green = (green > 0.04045) ? Math.pow((green + 0.055) / (1.0 + 0.055), 2.4) : (green / 12.92);
- blue = (blue > 0.04045) ? Math.pow((blue + 0.055) / (1.0 + 0.055), 2.4) : (blue / 12.92);
- //Apply wide gamut conversion D65
- var X = red * 0.664511 + green * 0.154324 + blue * 0.162028;
- var Y = red * 0.283881 + green * 0.668433 + blue * 0.047685;
- var Z = red * 0.000088 + green * 0.072310 + blue * 0.986039;
- var fx = X / (X + Y + Z);
- var fy = Y / (X + Y + Z);
- if (isNaN(fx)) {
- fx = 0.0;
- }
- if (isNaN(fy)) {
- fy = 0.0;
- }
- return [fx.toPrecision(4),fy.toPrecision(4)];
- }
- function list(v){
- post(v);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement