-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathpubnub_mongo_attiot.js
55 lines (46 loc) · 1.83 KB
/
pubnub_mongo_attiot.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#!/usr/bin/node
// version 8 - for pubnub logging into mongo from cardata channel
//
var PubNub = require('/usr/lib/node_modules/pubnub');
var mongodb=require('/usr/lib/node_modules/mongodb');
var mongodbClient=mongodb.MongoClient;
var mongodbURI='mongodb://mqtt:[email protected]:27017/data'
function showit(payload) {
//obj = JSON.parse(payload['message']);
//console.log(obj)
console.log(payload['message']);
}
function insertEvent(payload) {
mongodbClient.connect(mongodbURI, function(err,db) {
if(err) { console.log(err); return; }
else {
console.log(payload['message']);
var coll = 'carpal2';
collection = db.collection(coll);
obj = payload['message'];
if (obj['ax'] != null & obj['ay'] != null) { // channel is used for led control also so ignore
collection.insert(
//{ data:payload['message'], when:new Date() },
{ax:obj['ax'],ay:obj['ay'],lo:obj['lo'],la:obj['la'],oc:obj['oc'],or:obj['or'],ol:obj['ol'],os:obj['os'],when:new Date() },
function(err,docs) {
if(err) { console.log("Insert fail" + err); } // Improve error handling
else { console.log("Update callback - closing db");
db.close() }
}); // end of insert block
} // end of test for nulls
} // end of mongo connect else block
}); // end of mongo connect block
} // end of insertEvent
var pubnub = new PubNub({
subscribeKey: "sub-c-xxxxxxxx-yyyy-zzzz-aaaa-bbbbbbbbbbbb"
});
pubnub.addListener({
message: function(message) {
//showit(message);
insertEvent(message);
}
});
pubnub.subscribe({
channels: ['carpal2'],
withPresence: false
});