API — الأجهزة
يتطلب Authorization: Bearer {token}.
قائمة الأجهزة
GET /api/v1/devices?per_page=15
إنشاء جهاز
POST /api/v1/devices
Content-Type: application/json
{
"name": "إضاءة الصالة",
"room_id": 1,
"type": "lighting",
"relay_number": 1,
"esp32_name": "sala",
"energy_monitoring": false
}
Validation:
esp32_name: nullable,alpha_dash, regex^[a-z0-9_-]+$relay_number: 1–16
تحديث جهاز
PUT /api/v1/devices/{id}
تبديل الحالة
PATCH /api/v1/devices/{id}/toggle
ينشر MQTT:
smarthome/sala/relay/1إن وُجدesp32_namesmarthome/relay/1إن كانesp32_nameفارغاً
حذف
DELETE /api/v1/devices/{id}
Response نموذجي
{
"data": {
"id": 1,
"name": "إضاءة الصالة",
"type": "lighting",
"status": "offline",
"room_id": 1,
"relay_number": 1,
"esp32_name": "sala",
"room": { "id": 1, "name": "صالة" }
}
}