From 55f0f60be980f091c75196617c051ae180d8c812 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Victor=20Hagelb=C3=A4ck?= Date: Sat, 27 Feb 2021 16:41:05 +0100 Subject: [PATCH] Fix setting state for created Plejd room devices - when using includeRoomsAsLights setting --- plejd/DeviceRegistry.js | 6 +++++- plejd/MqttClient.js | 1 + plejd/PlejdApi.js | 9 ++++++--- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/plejd/DeviceRegistry.js b/plejd/DeviceRegistry.js index 647e5bc..39cb342 100644 --- a/plejd/DeviceRegistry.js +++ b/plejd/DeviceRegistry.js @@ -54,7 +54,11 @@ class DeviceRegistry { } getDevice(deviceId) { - return this.plejdDevices[deviceId]; + return this.plejdDevices[deviceId] || this.roomDevices[deviceId]; + } + + getDeviceIdsByRoom(roomId) { + return this.deviceIdsByRoom[roomId]; } getDeviceBySerialNumber(serialNumber) { diff --git a/plejd/MqttClient.js b/plejd/MqttClient.js index de0b09d..5c89ee9 100644 --- a/plejd/MqttClient.js +++ b/plejd/MqttClient.js @@ -138,6 +138,7 @@ class MqttClient extends EventEmitter { ); device = this.deviceRegistry.getScene(decodedTopic.id); } + const deviceName = device ? device.name : ''; switch (decodedTopic.command) { diff --git a/plejd/PlejdApi.js b/plejd/PlejdApi.js index 3803ea8..5272249 100644 --- a/plejd/PlejdApi.js +++ b/plejd/PlejdApi.js @@ -332,14 +332,17 @@ class PlejdApi { const { roomId } = room; const roomAddress = this.siteDetails.roomAddress[roomId]; + const deviceIdsByRoom = this.deviceRegistry.getDeviceIdsByRoom(roomId); + + const dimmable = deviceIdsByRoom + && deviceIdsByRoom.some((deviceId) => this.deviceRegistry.getDevice(deviceId).dimmable); + const newDevice = { id: roomAddress, name: room.title, type: 'light', typeName: 'Room', - dimmable: this.deviceIdsByRoom[roomId].some( - (deviceId) => this.plejdDevices[deviceId].dimmable, - ), + dimmable, }; this.deviceRegistry.addRoomDevice(newDevice);