feat(devices): skip realtime requests when device offline

This commit is contained in:
stu2not
2026-05-25 17:45:16 +08:00
parent 3449224cd2
commit 6c77672ca7
6 changed files with 135 additions and 6 deletions

View File

@@ -28,6 +28,15 @@ export interface DeviceStatus {
location_updated_at?: string | null
}
export interface DeviceOnlineStatus {
device_id: string
online: boolean
reason: string
message: string
last_location_at?: string | null
checked_at: string
}
export interface DeviceAlarmItem {
alarm_id: number
device_id: string
@@ -136,6 +145,18 @@ export async function getDeviceStatus(deviceId?: string): Promise<DeviceStatus |
}
}
export async function getDeviceOnlineStatus(deviceId?: string): Promise<DeviceOnlineStatus | null> {
const resolvedDeviceId = await resolveDeviceId(deviceId)
if (!resolvedDeviceId) return null
try {
return await request<DeviceOnlineStatus>(`/banban/devices/${resolvedDeviceId}/online-status`)
} catch (error: any) {
if (error?.status === 404) return null
throw error
}
}
export async function setDeviceVolume(level: number, deviceId?: string): Promise<DeviceVolumeUpdateResponse> {
const resolvedDeviceId = await resolveDeviceId(deviceId)
if (!resolvedDeviceId) {