diff --git a/libs/common/src/firebase/devices-status/services/devices-status.service.ts b/libs/common/src/firebase/devices-status/services/devices-status.service.ts index 3fae855..7bbdd87 100644 --- a/libs/common/src/firebase/devices-status/services/devices-status.service.ts +++ b/libs/common/src/firebase/devices-status/services/devices-status.service.ts @@ -95,7 +95,13 @@ export class DeviceStatusFirebaseService { for (const item of batch) { const device = deviceMap.get(item.deviceTuyaUuid); if (!device?.uuid) continue; - + if (!Array.isArray(item.log?.properties)) { + console.warn( + `🚨 Missing properties for device: ${item.deviceTuyaUuid}`, + ); + console.log('🔍 Problematic item:', JSON.stringify(item, null, 2)); + continue; + } const logs = item.log.properties.map((property) => this.deviceStatusLogRepository.create({ deviceId: device.uuid, diff --git a/libs/common/src/helper/services/tuya.web.socket.service.ts b/libs/common/src/helper/services/tuya.web.socket.service.ts index 1db1991..3bc3bc8 100644 --- a/libs/common/src/helper/services/tuya.web.socket.service.ts +++ b/libs/common/src/helper/services/tuya.web.socket.service.ts @@ -107,6 +107,14 @@ export class TuyaWebSocketService { console.log(`🔁 Processing batch of size: ${batch.length}`); try { + batch.forEach((item, index) => { + if (!Array.isArray(item?.logData?.properties)) { + console.warn( + `❌ Item #${index + 1} has invalid or missing 'properties':`, + ); + console.log(JSON.stringify(item, null, 2)); + } + }); await this.deviceStatusFirebaseService.addBatchDeviceStatusToOurDb( batch?.map((item) => ({ deviceTuyaUuid: item.devId,