return device status for each device

This commit is contained in:
faris Aljohari
2025-01-27 02:03:35 -06:00
parent ec06434191
commit 666fa67784
2 changed files with 28 additions and 1 deletions

View File

@ -6,6 +6,7 @@ import {
ConvertedAction,
TuyaResponseInterface,
} from '../interfaces';
import { GetDeviceDetailsFunctionsStatusInterface } from 'src/device/interfaces/get.device.interface';
@Injectable()
export class TuyaService {
@ -284,4 +285,24 @@ export class TuyaService {
);
}
}
async getDevicesInstructionStatusTuya(
deviceUuid: string,
): Promise<GetDeviceDetailsFunctionsStatusInterface> {
try {
const path = `/v1.0/iot-03/devices/status`;
const response = await this.tuya.request({
method: 'GET',
path,
query: {
device_ids: deviceUuid,
},
});
return response as GetDeviceDetailsFunctionsStatusInterface;
} catch (error) {
throw new HttpException(
'Error fetching device functions status from Tuya',
HttpStatus.INTERNAL_SERVER_ERROR,
);
}
}
}

View File

@ -37,7 +37,10 @@ export class SpaceDeviceService {
const tuyaDetails = await this.getDeviceDetailsByDeviceIdTuya(
device.deviceTuyaUuid,
);
const tuyaDeviceStatus =
await this.tuyaService.getDevicesInstructionStatusTuya(
device.deviceTuyaUuid,
);
return {
uuid: device.uuid,
deviceTuyaUuid: device.deviceTuyaUuid,
@ -45,7 +48,10 @@ export class SpaceDeviceService {
productType: device.productDevice.prodType,
isActive: device.isActive,
updatedAt: device.updatedAt,
deviceTag: device.tag,
subspace: device.subspace,
...tuyaDetails,
status: tuyaDeviceStatus.result[0].status,
};
} catch (error) {
console.warn(