aboutsummaryrefslogtreecommitdiff
path: root/routes/ws.js
diff options
context:
space:
mode:
authorJames Barnett <noreply@jamesbarnett.xyz>2018-04-07 21:43:17 +0100
committerJames Barnett <noreply@jamesbarnett.xyz>2018-04-07 21:43:17 +0100
commit1301d90e93af799a9054f133847ebf3cbda15f9d (patch)
tree7c9e12431c63a7a52523d2cd1f15e144dcaf680f /routes/ws.js
parent24b4a39fce61dd9bd8ab7757f3bbda0636adc8c9 (diff)
downloadtplink-energy-monitor-1301d90e93af799a9054f133847ebf3cbda15f9d.tar.xz
tplink-energy-monitor-1301d90e93af799a9054f133847ebf3cbda15f9d.zip
Add support for switching between multiple plugs
Diffstat (limited to 'routes/ws.js')
-rw-r--r--routes/ws.js15
1 files changed, 9 insertions, 6 deletions
diff --git a/routes/ws.js b/routes/ws.js
index dc22df2..08b0a18 100644
--- a/routes/ws.js
+++ b/routes/ws.js
@@ -9,14 +9,17 @@ router.ws('/', function(ws, req) {
ws.on('message', msg => {
+ let message = JSON.parse(msg);
+
// Latest data is always pushed out to clients, but clients can also request cached data at any time.
- if(msg === 'getCachedData') {
- let cachedData = dataFetcher.getCachedData();
+ if(message.requestType === 'getCachedData') {
+ let deviceId = message.deviceId;
+ let cachedData = dataFetcher.getCachedData(deviceId);
- ws.send(dataBroadcaster.generatePayload('realtimeUsage', cachedData.realtimeUsage));
- ws.send(dataBroadcaster.generatePayload('dailyUsage', cachedData.dailyUsage));
- ws.send(dataBroadcaster.generatePayload('monthlyUsage', cachedData.monthlyUsage));
- ws.send(dataBroadcaster.generatePayload('powerState', cachedData.powerState));
+ ws.send(dataBroadcaster.generatePayload('realtimeUsage', deviceId, cachedData.realtimeUsage));
+ ws.send(dataBroadcaster.generatePayload('dailyUsage', deviceId, cachedData.dailyUsage));
+ ws.send(dataBroadcaster.generatePayload('monthlyUsage', deviceId, cachedData.monthlyUsage));
+ ws.send(dataBroadcaster.generatePayload('powerState', deviceId, cachedData.powerState));
}
});