From 679d5534de1fcfd1d232d0ed7ef6b1f6057e3d53 Mon Sep 17 00:00:00 2001 From: Dennis de Greef Date: Mon, 9 Nov 2015 00:44:09 +0100 Subject: [PATCH 1/2] Reworked date parsing to string format to prevent nodejs bug More information in https://github.com/Martijn02/node-p1reader/issues/1 --- index.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/index.js b/index.js index 29b1373..c56a460 100644 --- a/index.js +++ b/index.js @@ -98,7 +98,9 @@ P1Reader.prototype.parsePackage = function(rawData) { data.electricity.currentlyReturning = parseInt(res[2].replace('.', '') + '0'); break; case '24.3.0': - data.gas.date = new Date("20" + res[2].substring(0,2), res[2].substring(2,4), res[2].substring(4,6), res[2].substring(6,8), res[2].substring(8,10), res[2].substring(10,12), 0); + var dateString = "20" + res[2].substring(0,2) + "-" + res[2].substring(2,4) + "-" + res[2].substring(4,6) + " "; + dateString += res[2].substring(6,8) + ":" + res[2].substring(8,10) + ":" + res[2].substring(10,12); + data.gas.date = new Date(dateString); data.gas.used = lines[l+1].replace(/[\(\)]/g, '').trim(); break; } From 5b250835e28d23cfb0bf21c5394047bd149813fa Mon Sep 17 00:00:00 2001 From: Dennis de Greef Date: Mon, 9 Nov 2015 00:45:24 +0100 Subject: [PATCH 2/2] Also include timestamps in result set --- index.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/index.js b/index.js index c56a460..b8a8f91 100644 --- a/index.js +++ b/index.js @@ -64,6 +64,7 @@ P1Reader.prototype.parsePackage = function(rawData) { var data = { "electricity": {}, "gas": {} }; data.electricity.date = new Date(); + data.electricity.timestamp = Math.floor(data.electricity.date.getTime() / 1000); var lines = rawData.split("\r\n"); // Not a full package (not enough lines) if(lines.length < 19) { @@ -101,6 +102,7 @@ P1Reader.prototype.parsePackage = function(rawData) { var dateString = "20" + res[2].substring(0,2) + "-" + res[2].substring(2,4) + "-" + res[2].substring(4,6) + " "; dateString += res[2].substring(6,8) + ":" + res[2].substring(8,10) + ":" + res[2].substring(10,12); data.gas.date = new Date(dateString); + data.gas.timestamp = Math.floor(data.gas.date.getTime() / 1000); data.gas.used = lines[l+1].replace(/[\(\)]/g, '').trim(); break; }