This repository has been archived on 2025-01-25. You can view files and clone it, but cannot push or open issues or pull requests.
mr-iot/etc/actions/set.js
2018-12-17 19:20:06 +01:00

52 lines
1.2 KiB
JavaScript

var net = require('net');
module.exports = function(query){
var client = new net.Socket();
var addr = query.device.addr.split(':')
if(query.device.type != "recever"){
return 1 // ERROR 1: devices isn't a recever
}
var data = {}
for (var i = 0; i < query.device.values.length; i++) {
// TODO: error on not given required value(s) for devices
if(query.hasOwnProperty(query.device.values[i].name)){
var value = query[query.device.values[i].name]
switch (query.device.values[i].type) {
case "number":
if(value > query.device.values[i].max){
return 3 // ERROR 3: invalid value
}
break;
default:
return 2 // ERROR 2: invalid device value type
}
data[query.device.values[i].name] = value
}
}
client.connect(addr[1], addr[0], function() {
for (var key in value) {
if (!value.hasOwnProperty(key)) continue;
client.write(key)
client.write("=")
client.write(value.key)
}
client.end()
});
client.on('data', function(data) {
if(data.toString() != "OK"){
console.log("set query failt");
}else{
console.log("send sucesfull");
}
client.destroy();
});
}