Files
dashboard/types/devices.ts
T
Alberto-Audrix 32a36cceff
CI / lint-and-test (push) Canceled after 0s
first commit
2026-07-28 08:55:05 +07:00

61 lines
1.4 KiB
TypeScript

export enum CameraType {
STANDARD = 'Kamera Standar (IP)',
INFRARED = 'Kamera Infrared',
THERMAL = 'Kamera Termal',
THREE_D = 'Kamera 3D',
}
export interface Camera {
id: string;
name: string;
cameraType: CameraType;
rtspUrl: string;
floorId: string | null;
model: string;
status: 'online' | 'offline' | 'error';
}
export enum IotDeviceType {
TEMPERATURE_SENSOR = 'Sensor Suhu',
HUMIDITY_SENSOR = 'Sensor Kelembapan',
AMMONIA_SENSOR = 'Sensor Amonia',
CO2_SENSOR = 'Sensor CO2',
DUST_SENSOR = 'Sensor Debu (PM2.5)',
LIGHT_SENSOR = 'Sensor Cahaya',
WATER_FLOW_SENSOR = 'Sensor Aliran Air',
FEED_LEVEL_SENSOR = 'Sensor Level Pakan',
WEIGHT_SCALE = 'Timbangan Digital',
IOT_GATEWAY = 'Gateway IoT',
}
export interface IotDevice {
id: string;
name: string;
type: IotDeviceType;
floorId: string | null;
status: 'online' | 'offline' | 'error';
lastHeartbeat: Date;
currentValue: string;
}
export enum NetworkDeviceType {
ROUTER = 'Router',
SWITCH = 'Switch',
ACCESS_POINT = 'Access Point',
}
export interface NetworkDevice {
id: string;
name: string;
type: NetworkDeviceType;
ipAddress: string;
macAddress: string;
locationId: string | null;
status: 'online' | 'offline' | 'degraded';
uptime: string;
latency: number; // in ms
trafficIn: number; // in Mbps
trafficOut: number; // in Mbps
bandwidthUsage: number; // percentage
}