diff options
| author | James Barnett <noreply@jamesbarnett.xyz> | 2018-04-07 21:43:17 +0100 |
|---|---|---|
| committer | James Barnett <noreply@jamesbarnett.xyz> | 2018-04-07 21:43:17 +0100 |
| commit | 1301d90e93af799a9054f133847ebf3cbda15f9d (patch) | |
| tree | 7c9e12431c63a7a52523d2cd1f15e144dcaf680f /routes/ws.js | |
| parent | 24b4a39fce61dd9bd8ab7757f3bbda0636adc8c9 (diff) | |
| download | tplink-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.js | 15 |
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)); } }); |