Fix setting state for created Plejd room devices

- when using includeRoomsAsLights setting
This commit is contained in:
Victor Hagelbäck 2021-02-27 16:41:05 +01:00
parent 3804c63991
commit 55f0f60be9
3 changed files with 12 additions and 4 deletions

View file

@ -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) {

View file

@ -138,6 +138,7 @@ class MqttClient extends EventEmitter {
);
device = this.deviceRegistry.getScene(decodedTopic.id);
}
const deviceName = device ? device.name : '';
switch (decodedTopic.command) {

View file

@ -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);