Skip to content

Commit

Permalink
initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
Stephane Frechette committed Apr 13, 2018
1 parent f41a39d commit a8dcc71
Show file tree
Hide file tree
Showing 5 changed files with 969 additions and 1 deletion.
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
.env
.DS_Store
.vscode/
node_modules/
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
# stream-sequelize-node
Ingest sample PubNub stream using Sequelize
Ingest sample PubNub stream using Sequelize to Postgres with TimescaleDB extension installed and enabled for time series analysis
77 changes: 77 additions & 0 deletions ingest.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
var pubnub = require('pubnub');
var sequelize = require('sequelize');

var connection = new sequelize('sensor_network', POSTGRES_USER_NAME, POSTGRES_USER_PASSWORD, {
host: POSTGRES_HOST,
port: POSTGRES_PORT,
dialect: 'postgres',
logging:()=>{}
});

var sensor = connection.define('sensor', {
time: {
type: sequelize.BIGINT,
allowNull: false,
primaryKey: true
},
sensor_uuid: {
type: sequelize.STRING,
allowNull: false
},
humidity: {
type: sequelize.DOUBLE,
allowNull: false
},
photosensor: {
type: sequelize.DOUBLE,
allowNull: false
},
radiation_level: {
type: sequelize.INTEGER,
allowNull: false
},
ambient_temperature: {
type: sequelize.DOUBLE,
allowNull: false
}
}, {
timestamps: false,
freezeTableName: true
});

var pubnub = new pubnub({
ssl: true,
subscribe_key: 'sub-c-5f1b7c8e-fbee-11e3-aa40-02ee2ddab7fe'
});

pubnub.subscribe({
channels: ['pubnub-sensor-network']
});

pubnub.addListener({
message: function (message) {
console.log(message.message);
connection.sync({
//logging: ()=>{}

})
.then(function () {
var sensorInstance = sensor.build({
time: message.message.timestamp,
sensor_uuid: message.message.sensor_uuid,
humidity: message.message.humidity,
photosensor: message.message.photosensor,
radiation_level: message.message.radiation_level,
ambient_temperature: message.message.ambient_temperature
})
sensorInstance.save()
//if (Math.random() > .9) {
// throw new Error('Something unusual'+new Date().toISOString())
//}
})
.catch(function (err) {
console.log(err);
});
}
});

Loading

0 comments on commit a8dcc71

Please sign in to comment.