Ejemplo n.º 1
0
Archivo: app.js Proyecto: amit524/huset
 mySerialPort.on('data', function(data) {
     var str = data.toString().trim();
     if (str.length == 0) {
         return;
     }
     console.log('serial received ' + data.toString().length + ' bytes:' +
                 ' trimmed string [' + str + ']');
     var parts = str.split(' ');
     if (parts[1] == 'ds18x20') { // && parts[3] == '16') {
         var sensor = appConfig.nodes['id' + parts[0]].ds18x20['pin' + parts[2] + 'addr' + parts[3]];
         //console.log(sensor);
         var temperature = parseFloat(parts[4]);
         console.log('Got new ds18x20 temperature ' + temperature + ' for ' + sensor.name + ', logging to ' + sensor.rrd.temperature);
         sensor.lastValue = temperature;
         //console.log(appConfig.nodes['id' + parts[0]].ds18x20['pin' + parts[2] + 'addr' + parts[3]]);
         rrd.update(rrd_file_root + sensor.rrd.temperature, 'temperature', [ [now(), temperature].join(':') ], function (error) {
             console.log(error === null ? '.' : error);
         });
     }
     else if (parts[1] == 'dht11') {
         var sensor = appConfig.nodes['id' + parts[0]].dht11['pin' + parts[2]];
         var temperature = parseFloat(parts[3]);
         var humidity = parseFloat(parts[4]);
         console.log('Got new dht11 temperature ' + temperature + ' and humidity ' + humidity + 'for ' + sensor.name + ', logging to ' + sensor.rrds.temperature + ' and ' + sensor.rrds.humidity);
         sensor.lastValues.temperature = temperature;
         sensor.lastValues.humidity = humidity;
         rrd.update(rrd_file_root + sensor.rrds.temperature, 'temperature', [ [now(), temperature].join(':') ], function (error) {
             console.log(error === null ? '.' : error);
         });
         rrd.update(rrd_file_root + sensor.rrds.humidity, 'humidity', [ [now(), humidity].join(':') ], function (error) {
             console.log(error === null ? '.' : error);
         });
     }
     else if (parts[1] == 'radio') {
         var node = appConfig.nodes['id' + parts[0]];
         var temperature = parseInt(parts[2]);
         console.log('Got new radio temperature ' + temperature + ' for ' + node.name + ', logging to ' + node.rrds.temperature);
         node.lastValues.temperature = temperature;
         rrd.update(rrd_file_root + node.rrds.temperature, 'temperature', [ [now(), temperature].join(':') ], function (error) {
             console.log(error === null ? '.' : error);
         });
     }
     else if (parts[0] == 'debug') {
         var node = appConfig.nodes['id' + parts[1]];
         var rssi = parseInt(parts[2]);
         console.log('Got new radio rssi ' + rssi + ' for ' + node.name + ', logging to ' + node.rrds.rssi);
         node.lastValues.rssi = rssi;
         rrd.update(rrd_file_root + node.rrds.rssi, 'rssi', [ [now(), rssi].join(':') ], function (error) {
             console.log(error === null ? '.' : error);
         });
     }
     //io.sockets.emit('flip', {flipid: 'lamp1', state: (str == '1' ? 'on' : 'off')});
 });  
Ejemplo n.º 2
0
 Object.keys(stats).forEach(function (key) {
    var value = stats[key]
    if (value > 0) {
       //console.log(key+": "+value)
    };
    filename = rrd_root+key+".rrd"
    rrd.update(filename, 'sum', [[now(), value].join(':')], function (error) {
       if (error !== null) {
          //console.log('Error:', error);
       }
    });
    stats[key]=0
 });
Ejemplo n.º 3
0
	mqttclient.on('message', function (topic, message) {
		var filename = "data/" + topic.replace(/\//g, "_") + ".rrd";
		var value = message;

		rrd.update(filename, 'datapoint', [[now(), value].join(':')], function (error) { 
    			if (error) {
				rrd.create(filename, 60, now(), ["DS:datapoint:GAUGE:120:0:U", "RRA:LAST:0.5:1:60"], function (error) { 
    					if (error) {
						console.log("rrdcreate error:", error);
					} else {
						console.log("rrdCREATED: " + filename);
					}
				});
			} else {
				console.log("rrdupdated: " + filename + " " + message);
			}
		});
	});