الگوی پاسخها
برای یکدست بودن مستندات، در این بخش قالب نمونه موفق و خطاها آورده شده است. ممکن است پاسخ واقعی برخی متدها در کد فعلی کمی متفاوت باشد، اما این الگو برای مصرفکننده API مناسب و خوانا است.
نمونه خروجی موفق
{
"isSuccess": true,
"message": "عملیات با موفقیت انجام شد",
"data": {
"isOnline": true,
"currentTemp": 4.5
}
}
خطاهای احتمالی
| کد وضعیت | توضیح |
| 400 Bad Request | ورودی نامعتبر |
| 401 Unauthorized | توکن نامعتبر یا ارسال نشده |
| 403 Forbidden | عدم دسترسی |
| 404 Not Found | دستگاه یا رکورد پیدا نشد |
| 500 Internal Server Error | خطای داخلی سرور |
نمونه خطا
{
"isSuccess": false,
"message": "دستگاه مورد نظر یافت نشد",
"errors": [
"DeviceSerial is invalid"
]
}
اطلاعات دستگاه
GET GetProductInfo
| فیلد | مقدار |
| آدرس API / Endpoint | GET /api/devices/{serialNumber}/info |
| هدف متد | برگرداندن نام محصول، مدل و IMEI دستگاه |
| سطح دسترسی | نیازمند توکن |
ورودیها
| نوع | نام | اجباری | توضیح | محدودیتها |
| Path | serialNumber | بله | شماره سریال دستگاه | باید دستگاه موجود باشد |
پاسخ
نمونه درخواست
GET /api/devices/SN-TEST-001/info
Authorization: Bearer eyJhbGciOi...
نمونه پاسخ موفق
{
"isSuccess": true,
"message": "عملیات با موفقیت انجام شد",
"data": {
"serialNumber": "SN-TEST-001",
"productName": "Sample Product",
"productModel": "Model-A"
}
}
خطاهای احتمالی
| کد وضعیت | توضیح |
| 400 Bad Request | ورودی نامعتبر |
| 401 Unauthorized | توکن نامعتبر یا ارسال نشده |
| 404 Not Found | دستگاه پیدا نشد |
| 500 Internal Server Error | خطای داخلی سرور |
GET GetHasIot
| فیلد | مقدار |
| آدرس API / Endpoint | GET /api/devices/{serialNumber}/has-iot |
| هدف متد | تشخیص اینکه دستگاه در دیتاست فعلی IoT دارد یا نه |
| سطح دسترسی | نیازمند توکن |
ورودیها
| نوع | نام | اجباری | توضیح | محدودیتها |
| Path | serialNumber | بله | شماره سریال دستگاه | باید دستگاه موجود باشد |
نمونه درخواست
GET /api/devices/SN-TEST-001/has-iot
Authorization: Bearer eyJhbGciOi...
نمونه پاسخ موفق
{
"isSuccess": true,
"message": "عملیات با موفقیت انجام شد",
"data": {
"serialNumber": "SN-TEST-001",
"hasIot": true
}
}
خطاهای احتمالی
| کد وضعیت | توضیح |
| 400 Bad Request | ورودی نامعتبر |
| 401 Unauthorized | توکن نامعتبر یا ارسال نشده |
| 404 Not Found | دستگاه پیدا نشد |
| 500 Internal Server Error | خطای داخلی سرور |
GET GetConnectionStatus
| فیلد | مقدار |
| آدرس API / Endpoint | GET /api/devices/{serialNumber}/connection-status |
| هدف متد | اعلام وضعیت آنلاین/آفلاین بودن دستگاه |
| سطح دسترسی | نیازمند توکن |
ورودیها
| نوع | نام | اجباری | توضیح | محدودیتها |
| Path | serialNumber | بله | شماره سریال دستگاه | باید دستگاه موجود باشد |
نمونه درخواست
GET /api/devices/SN-TEST-001/connection-status
Authorization: Bearer eyJhbGciOi...
نمونه پاسخ موفق
{
"isSuccess": true,
"message": "عملیات با موفقیت انجام شد",
"data": {
"serialNumber": "SN-TEST-001",
"connectionStatus": "Online"
}
}
خطاهای احتمالی
| کد وضعیت | توضیح |
| 400 Bad Request | ورودی نامعتبر |
| 401 Unauthorized | توکن نامعتبر یا ارسال نشده |
| 404 Not Found | دستگاه پیدا نشد |
| 500 Internal Server Error | خطای داخلی سرور |
GET GetProductType
| فیلد | مقدار |
| آدرس API / Endpoint | GET /api/devices/{serialNumber}/product-type |
| هدف متد | برگرداندن نوع محصول: Refrigerator / Freezer / Combi |
| سطح دسترسی | نیازمند توکن |
ورودیها
| نوع | نام | اجباری | توضیح | محدودیتها |
| Path | serialNumber | بله | شماره سریال دستگاه | در صورت نبود دستگاه، پاسخ 400 |
نمونه درخواست
GET /api/devices/SN-TEST-001/product-type
Authorization: Bearer eyJhbGciOi...
نمونه پاسخ موفق
{
"isSuccess": true,
"message": "عملیات با موفقیت انجام شد",
"data": {
"serialNumber": "SN-TEST-001",
"productType": "Refrigerator"
}
}
خطاهای احتمالی
| کد وضعیت | توضیح |
| 400 Bad Request | ورودی نامعتبر یا دستگاه پیدا نشد |
| 401 Unauthorized | توکن نامعتبر یا ارسال نشده |
| 404 Not Found | دستگاه پیدا نشد |
| 500 Internal Server Error | خطای داخلی سرور |
دما
GET GetSetTemperature
| فیلد | مقدار |
| آدرس API / Endpoint | GET /api/devices/{serialNumber}/Temperature/set-temperature |
| هدف متد | برگرداندن دمای تنظیمشده یخچال و فریزر |
| سطح دسترسی | نیازمند توکن |
ورودیها
| نوع | نام | اجباری | توضیح | محدودیتها |
| Path | serialNumber | بله | شماره سریال دستگاه | باید دستگاه موجود باشد |
نمونه درخواست
GET /api/devices/SN-TEST-001/Temperature/set-temperature
Authorization: Bearer eyJhbGciOi...
نمونه پاسخ موفق
{
"isSuccess": true,
"message": "عملیات با موفقیت انجام شد",
"data": {
"serialNumber": "SN-TEST-001",
"refrigeratorSetTemperature": 4,
"freezerSetTemperature": -18
}
}
خطاهای احتمالی
| کد وضعیت | توضیح |
| 400 Bad Request | ورودی نامعتبر یا دستگاه پیدا نشد |
| 401 Unauthorized | توکن نامعتبر یا ارسال نشده |
| 404 Not Found | دستگاه پیدا نشد |
| 500 Internal Server Error | خطای داخلی سرور |
GET GetFreezerRealTemperature
| فیلد | مقدار |
| آدرس API / Endpoint | GET /api/devices/{serialNumber}/Temperature/freezer/real-temperature |
| هدف متد | برگرداندن دمای واقعی فریزر |
| سطح دسترسی | نیازمند توکن |
نمونه درخواست
GET /api/devices/SN-TEST-001/Temperature/freezer/real-temperature
Authorization: Bearer eyJhbGciOi...
نمونه پاسخ موفق
{
"isSuccess": true,
"message": "عملیات با موفقیت انجام شد",
"data": {
"serialNumber": "SN-TEST-001",
"temperature": -18
}
}
خطاهای احتمالی
| کد وضعیت | توضیح |
| 400 Bad Request | ورودی نامعتبر یا دستگاه پیدا نشد |
| 401 Unauthorized | توکن نامعتبر یا ارسال نشده |
| 404 Not Found | دستگاه پیدا نشد |
| 500 Internal Server Error | خطای داخلی سرور |
GET GetRefrigeratorRealTemperature
| فیلد | مقدار |
| آدرس API / Endpoint | GET /api/devices/{serialNumber}/Temperature/refrigerator-real-temperature |
| هدف متد | برگرداندن دمای واقعی یخچال |
| سطح دسترسی | نیازمند توکن |
نمونه درخواست
GET /api/devices/SN-TEST-001/Temperature/refrigerator-real-temperature
Authorization: Bearer eyJhbGciOi...
نمونه پاسخ موفق
{
"isSuccess": true,
"message": "عملیات با موفقیت انجام شد",
"data": {
"serialNumber": "SN-TEST-001",
"temperature": 4
}
}
خطاهای احتمالی
| کد وضعیت | توضیح |
| 400 Bad Request | ورودی نامعتبر یا دستگاه پیدا نشد |
| 401 Unauthorized | توکن نامعتبر یا ارسال نشده |
| 404 Not Found | دستگاه پیدا نشد |
| 500 Internal Server Error | خطای داخلی سرور |
کمپرسور
GET GetCompressorSpeed
| فیلد | مقدار |
| آدرس API / Endpoint | GET /api/devices/{serialNumber}/Compressor/compressor/speed |
| هدف متد | دریافت سرعت کمپرسور |
| سطح دسترسی | نیازمند توکن |
نمونه درخواست
GET /api/devices/SN-TEST-001/Compressor/compressor/speed
Authorization: Bearer eyJhbGciOi...
نمونه پاسخ موفق
{
"isSuccess": true,
"message": "عملیات با موفقیت انجام شد",
"data": {
"serialNumber": "SN-TEST-001",
"compressorSpeed": 1400
}
}
خطاهای احتمالی
| کد وضعیت | توضیح |
| 400 Bad Request | ورودی نامعتبر یا دستگاه پیدا نشد |
| 401 Unauthorized | توکن نامعتبر یا ارسال نشده |
| 404 Not Found | دستگاه پیدا نشد |
| 500 Internal Server Error | خطای داخلی سرور |
GET GetCompressorStatus
| فیلد | مقدار |
| آدرس API / Endpoint | GET /api/devices/{serialNumber}/Compressor/compressor/status |
| هدف متد | برگرداندن وضعیت روشن/خاموش کمپرسور |
| سطح دسترسی | نیازمند توکن |
نمونه درخواست
GET /api/devices/SN-TEST-001/Compressor/compressor/status
Authorization: Bearer eyJhbGciOi...
نمونه پاسخ موفق
{
"isSuccess": true,
"message": "عملیات با موفقیت انجام شد",
"data": {
"serialNumber": "SN-TEST-001",
"status": "On"
}
}
خطاهای احتمالی
| کد وضعیت | توضیح |
| 400 Bad Request | ورودی نامعتبر یا دستگاه پیدا نشد |
| 401 Unauthorized | توکن نامعتبر یا ارسال نشده |
| 404 Not Found | دستگاه پیدا نشد |
| 500 Internal Server Error | خطای داخلی سرور |
GET GetCompressorRpm
| فیلد | مقدار |
| آدرس API / Endpoint | GET /api/devices/{serialNumber}/Compressor/compressor-rpm |
| هدف متد | دریافت RPM کمپرسور |
| سطح دسترسی | نیازمند توکن |
نمونه درخواست
GET /api/devices/SN-TEST-001/Compressor/compressor-rpm
Authorization: Bearer eyJhbGciOi...
نمونه پاسخ موفق
{
"isSuccess": true,
"message": "عملیات با موفقیت انجام شد",
"data": {
"serialNumber": "SN-TEST-001",
"compressorRpm": 1450
}
}
خطاهای احتمالی
| کد وضعیت | توضیح |
| 400 Bad Request | ورودی نامعتبر یا دستگاه پیدا نشد |
| 401 Unauthorized | توکن نامعتبر یا ارسال نشده |
| 404 Not Found | دستگاه پیدا نشد |
| 500 Internal Server Error | خطای داخلی سرور |
POST ReceiveCompressorEvent
| فیلد | مقدار |
| آدرس API / Endpoint | POST /api/devices/{serialNumber}/Compressor/compressor-status |
| هدف متد | دریافت رویداد کمپرسور از منبع خارجی |
| سطح دسترسی | نیازمند توکن |
ورودیها
| نوع | نام | اجباری | توضیح | محدودیتها |
| Path | serialNumber | بله | شماره سریال دستگاه | باید معتبر باشد |
| Body | dto | در نسخه فعلی خیر | بدنه رویداد در کد کامنت شده است | اگر بعداً فعال شود، باید با قرارداد نهایی هماهنگ شود |
نمونه درخواست
POST /api/devices/SN-TEST-001/Compressor/compressor-status
Authorization: Bearer eyJhbGciOi...
Content-Type: application/json
{
"status": 1
}
نمونه پاسخ موفق
{
"isSuccess": true,
"message": "عملیات با موفقیت انجام شد",
"data": {
"eventCode": "0500",
"serialNumber": "SN-TEST-001"
}
}
خطاهای احتمالی
| کد وضعیت | توضیح |
| 400 Bad Request | ورودی نامعتبر |
| 401 Unauthorized | توکن نامعتبر یا ارسال نشده |
| 404 Not Found | دستگاه پیدا نشد |
| 500 Internal Server Error | خطای داخلی سرور |
تنظیمات دستگاه
POST SetDeviceMode
| فیلد | مقدار |
| آدرس API / Endpoint | POST /api/devices/settings/mode |
| هدف متد | ارسال فرمان تغییر حالت کاری دستگاه |
| سطح دسترسی | نیازمند توکن |
ورودیها
| فیلد | نوع | اجباری | توضیح | محدودیتها |
serialNumber | string | بله | شماره سریال دستگاه | باید دستگاه پیدا شود |
mode | enum | بله | حالت دستگاه | FridgeMin, FridgeMax, FridgeOff, FreezerOff, Combi |
نمونه بدنه درخواست
{
"serialNumber": "SN-TEST-001",
"mode": "Combi"
}
نمونه پاسخ موفق
{
"isSuccess": true,
"message": "عملیات با موفقیت انجام شد",
"data": {
"serialNumber": "SN-TEST-001",
"success": true
}
}
خطاهای احتمالی
| کد وضعیت | توضیح |
| 400 Bad Request | ورودی نامعتبر، دستگاه پیدا نشد یا حالت نامعتبر است |
| 401 Unauthorized | توکن نامعتبر یا ارسال نشده |
| 404 Not Found | دستگاه پیدا نشد |
| 500 Internal Server Error | خطای داخلی سرور |
POST SetTargetTemperature
| فیلد | مقدار |
| آدرس API / Endpoint | POST /api/devices/settings/target-temperature |
| هدف متد | ارسال فرمان تغییر دمای هدف یخچال و فریزر |
| سطح دسترسی | نیازمند توکن |
ورودیها
| فیلد | نوع | اجباری | توضیح | محدودیتها |
serialNumber | string | بله | شماره سریال دستگاه | باید دستگاه موجود باشد |
RefrigeratorTargetTemperature | decimal | بله | دمای هدف یخچال | بین 0 تا 5 |
FreezerTargetTemperature | decimal | بله | دمای هدف فریزر | بین -28 تا -14 |
RefrigeratorCurrentTemperature | decimal | بله | دمای فعلی یخچال | برای ساخت فرمان استفاده میشود |
FreezerCurrentTemperature | decimal | بله | دمای فعلی فریزر | برای ساخت فرمان استفاده میشود |
نمونه بدنه درخواست
{
"serialNumber": "SN-TEST-001",
"refrigeratorCurrentTemperature": 4,
"refrigeratorTargetTemperature": 3,
"freezerCurrentTemperature": -18,
"freezerTargetTemperature": -20
}
نمونه پاسخ موفق
{
"isSuccess": true,
"message": "عملیات با موفقیت انجام شد",
"data": {
"serialNumber": "SN-TEST-001",
"success": true
}
}
خطاهای احتمالی
| کد وضعیت | توضیح |
| 400 Bad Request | ورودی نامعتبر، دستگاه پیدا نشد یا مقدار دما خارج از بازه است |
| 401 Unauthorized | توکن نامعتبر یا ارسال نشده |
| 404 Not Found | دستگاه پیدا نشد |
| 500 Internal Server Error | خطای داخلی سرور |
POST SetDeviceSwitches
| فیلد | مقدار |
| آدرس API / Endpoint | POST /api/devices/settings/switches |
| هدف متد | روشن/خاموش کردن سوئیچهای مختلف دستگاه |
| سطح دسترسی | نیازمند توکن |
ورودیها
| فیلد | نوع | اجباری | توضیح | محدودیتها |
serialNumber | string | بله | شماره سریال دستگاه | باید دستگاه موجود باشد |
IceMaker | bool? | خیر | وضعیت آیسمیکر | اختیاری |
WaterDispenser | bool? | خیر | وضعیت آبسردکن | اختیاری |
نمونه درخواست
{
"serialNumber": "SN-TEST-001",
"iceMaker": true,
"waterDispenser": false
}
نمونه پاسخ موفق
{
"isSuccess": true,
"message": "عملیات با موفقیت انجام شد",
"data": {
"serialNumber": "SN-TEST-001",
"success": true
}
}
خطاهای احتمالی
| کد وضعیت | توضیح |
| 400 Bad Request | ورودی نامعتبر یا دستگاه پیدا نشد |
| 401 Unauthorized | توکن نامعتبر یا ارسال نشده |
| 404 Not Found | دستگاه پیدا نشد |
| 500 Internal Server Error | خطای داخلی سرور |
POST SetFilterReset
| فیلد | مقدار |
| آدرس API / Endpoint | POST /api/devices/settings/filter-reset |
| هدف متد | ارسال فرمان ریست فیلتر |
| سطح دسترسی | نیازمند توکن |
ورودیها
| فیلد | نوع | اجباری | توضیح | محدودیتها |
serialNumber | string | بله | شماره سریال دستگاه | باید دستگاه موجود باشد |
Status | enum | بله | وضعیت ریست فیلتر | مقدار دقیق enum باید با کد نهایی تطبیق داده شود |
نمونه درخواست
{
"serialNumber": "SN-TEST-001",
"status": "Reset"
}
نمونه پاسخ موفق
{
"isSuccess": true,
"message": "عملیات با موفقیت انجام شد",
"data": {
"serialNumber": "SN-TEST-001",
"success": true
}
}
خطاهای احتمالی
| کد وضعیت | توضیح |
| 400 Bad Request | ورودی نامعتبر یا دستگاه پیدا نشد |
| 401 Unauthorized | توکن نامعتبر یا ارسال نشده |
| 404 Not Found | دستگاه پیدا نشد |
| 500 Internal Server Error | خطای داخلی سرور |
تحلیل درب
GET GetDoorStatus
| فیلد | مقدار |
| آدرس API / Endpoint | GET /api/devices/{serialNumber}/door-analysis/door-status |
| هدف متد | برگرداندن وضعیت فعلی دربها |
| سطح دسترسی | نیازمند توکن |
نمونه درخواست
GET /api/devices/SN-TEST-001/door-analysis/door-status
Authorization: Bearer eyJhbGciOi...
نمونه پاسخ موفق
{
"isSuccess": true,
"message": "عملیات با موفقیت انجام شد",
"data": {
"serialNumber": "SN-TEST-001",
"refrigeratorDoor": "Closed",
"freezerDoor": "Open",
"homeBarDoor": "Closed"
}
}
خطاهای احتمالی
| کد وضعیت | توضیح |
| 400 Bad Request | ورودی نامعتبر |
| 401 Unauthorized | توکن نامعتبر یا ارسال نشده |
| 404 Not Found | دستگاه پیدا نشد |
| 500 Internal Server Error | خطای داخلی سرور |
GET GetDoorHistory
| فیلد | مقدار |
| آدرس API / Endpoint | GET /api/devices/{serialNumber}/door-analysis/door-history |
| هدف متد | برگرداندن سری زمانی وضعیت باز/بسته بودن درب در 7 روز اخیر |
| سطح دسترسی | نیازمند توکن |
محدودیتها
- بازه زمانی فعلی در کد به صورت ثابت 7 روز اخیر است.
- پارامتر Query برای این متد تعریف نشده است.
نمونه درخواست
GET /api/devices/SN-TEST-001/door-analysis/door-history
Authorization: Bearer eyJhbGciOi...
نمونه پاسخ موفق
{
"isSuccess": true,
"message": "عملیات با موفقیت انجام شد",
"data": {
"name": "Door Status",
"data": [
{ "x": "2026-07-01T00:00:00Z", "y": 0 },
{ "x": "2026-07-02T10:15:00Z", "y": 1 }
]
}
}
خطاهای احتمالی
| کد وضعیت | توضیح |
| 400 Bad Request | ورودی نامعتبر |
| 401 Unauthorized | توکن نامعتبر یا ارسال نشده |
| 404 Not Found | دستگاه پیدا نشد |
| 500 Internal Server Error | خطای داخلی سرور |
GET GetDoorOpenCounter
| فیلد | مقدار |
| آدرس API / Endpoint | GET /api/devices/{serialNumber}/door-analysis/door-open-counter |
| هدف متد | شمارش تعداد دفعات باز شدن درب در یک ماه اخیر |
| سطح دسترسی | نیازمند توکن |
نمونه درخواست
GET /api/devices/SN-TEST-001/door-analysis/door-open-counter
Authorization: Bearer eyJhbGciOi...
نمونه پاسخ موفق
{
"isSuccess": true,
"message": "عملیات با موفقیت انجام شد",
"data": {
"serialNumber": "SN-TEST-001",
"refrigeratorCount": 12,
"freezerCount": 8,
"startDate": "2026-06-07T00:00:00Z",
"endDate": "2026-07-07T00:00:00Z"
}
}
خطاهای احتمالی
| کد وضعیت | توضیح |
| 400 Bad Request | ورودی نامعتبر یا دستگاه پیدا نشد |
| 401 Unauthorized | توکن نامعتبر یا ارسال نشده |
| 404 Not Found | دستگاه پیدا نشد |
| 500 Internal Server Error | خطای داخلی سرور |
GET GetDoorOpenDuration
| فیلد | مقدار |
| آدرس API / Endpoint | GET /api/devices/{serialNumber}/door-analysis/door-open-duration |
| هدف متد | محاسبه مدت زمان باز بودن درب در یک ماه اخیر |
| سطح دسترسی | نیازمند توکن |
نمونه درخواست
GET /api/devices/SN-TEST-001/door-analysis/door-open-duration
Authorization: Bearer eyJhbGciOi...
نمونه پاسخ موفق
{
"isSuccess": true,
"message": "عملیات با موفقیت انجام شد",
"data": {
"serialNumber": "SN-TEST-001",
"refrigeratorDuration": "01:42:00",
"freezerDuration": "00:54:00",
"startDate": "2026-06-07T00:00:00Z",
"endDate": "2026-07-07T00:00:00Z"
}
}
خطاهای احتمالی
| کد وضعیت | توضیح |
| 400 Bad Request | ورودی نامعتبر یا دستگاه پیدا نشد |
| 401 Unauthorized | توکن نامعتبر یا ارسال نشده |
| 404 Not Found | دستگاه پیدا نشد |
| 500 Internal Server Error | خطای داخلی سرور |