راهنمای وب‌سرویس‌های نرم‌افزار موبایل

آدرس پایه: https://cleverapi.dnm.co.ir/ قالب: JSON احراز هویت: نشانه دسترسی

فهرست

الگوی پاسخ‌ها

کد وضعیتتوضیح
200 OKعملیات با موفقیت انجام شده و پاسخ معتبر برگردانده شده است.
400 Bad Requestیکی از ورودی‌های ارسال‌شده نامعتبر است یا شرایط لازم برای پردازش درخواست برقرار نیست.
401 Unauthorizedنشانه دسترسی ارسال نشده یا اعتبار آن برای احراز هویت معتبر نیست.
403 Forbiddenدرخواست احراز هویت شده است، اما دسترسی لازم برای انجام عملیات وجود ندارد.
404 Not Foundدستگاه، رکورد یا منبع موردنظر در سیستم پیدا نشده است.
500 Internal Server Errorهنگام پردازش درخواست در سمت سرور خطای داخلی رخ داده است.
{
  "isSuccess": true,
  "message": "عملیات با موفقیت انجام شد",
  "data": {
    "isOnline": true,
    "currentTemp": 4.5
  }
}
{
  "isSuccess": false,
  "message": "دستگاه مورد نظر یافت نشد",
  "errors": [
    "DeviceSerial is invalid"
  ]
}

احراز هویت

POST GetToken

نام متد GetToken
آدرس وب‌سرویس POST /api/auth/getToken
نوع درخواست POST
هدف متد با استفاده از اطلاعات شناسایی کلاینت، یک نشانه دسترسی برای استفاده از سایر وب‌سرویس‌های محافظت‌شده صادر می‌کند.
سطح دسترسی این متد برای دریافت اولیه نشانه دسترسی بدون نیاز به نشانه قبلی قابل استفاده است.

ورودی‌ها

پارامتر نوع اجباری توضیح محدودیت‌ها
ClientId متن بله شناسه‌ای است که کلاینت درخواست‌کننده را مشخص می‌کند. ارسال این مقدار الزامی است.
ClientSecret متن بله کلید محرمانه مربوط به کلاینت است که برای اعتبارسنجی درخواست استفاده می‌شود. ارسال این مقدار الزامی است.

نمونه درخواست

POST /api/auth/getToken
Content-Type: application/json

{
  "clientId": "external-client",
  "clientSecret": "external-secret"
}

برای تعریف چند کاربر، آن‌ها را در آرایه Jwt:Clients تنظیمات اضافه کنید. هر عضو باید ClientId و ClientSecret مستقل داشته باشد.

"Clients": [
  {
    "ClientId": "external-client",
    "ClientSecret": "external-secret"
  },
  {
    "ClientId": "external-client-2",
    "ClientSecret": "external-secret-2"
  }
]

خروجی موفق

{
  "isSuccess": true,
  "message": "عملیات با موفقیت انجام شد",
  "data": {
    "accessToken": "eyJhbGciOi...",
    "tokenType": "Bearer",
    "expiresInSeconds": 3600,
    "expiresAtUtc": "2026-07-15T10:00:00Z"
  }
}

اطلاعات دستگاه

GET GetProductInfo

آدرس وب‌سرویس GET /api/devices/{serialNumber}/info
هدف متد اطلاعات پایه دستگاه شامل شماره سریال، نام محصول و مدل دستگاه را بر اساس شماره سریال دریافت می‌کند.
سطح دسترسی برای دریافت اطلاعات دستگاه، ارسال نشانه دسترسی معتبر الزامی است.

نمونه درخواست

GET /api/devices/SN-TEST-001/info
Authorization: Bearer eyJhbGciOi...

خروجی موفق

{
  "isSuccess": true,
  "message": "عملیات با موفقیت انجام شد",
  "data": {
    "serialNumber": "SN-TEST-001",
    "productName": "Sample Product",
    "productModel": "BHC-RF-123"
  }
}

GET GetHasIot

آدرس وب‌سرویس GET /api/devices/{serialNumber}/has-iot
هدف متد وضعیت پشتیبانی دستگاه از قابلیت اینترنت اشیا را بر اساس شماره سریال مشخص می‌کند.
سطح دسترسی برای دریافت وضعیت قابلیت اینترنت اشیا، ارسال نشانه دسترسی معتبر الزامی است.

نمونه درخواست

GET /api/devices/SN-TEST-001/has-iot
Authorization: Bearer eyJhbGciOi...

خروجی موفق

{
  "isSuccess": true,
  "message": "عملیات با موفقیت انجام شد",
  "data": {
    "serialNumber": "SN-TEST-001",
    "hasIot": true
  }
}

GET GetConnectionStatus

آدرس وب‌سرویس GET /api/devices/{serialNumber}/connection-status
هدف متد وضعیت فعلی اتصال دستگاه به سامانه را بر اساس شماره سریال دریافت می‌کند.
سطح دسترسی برای دریافت وضعیت اتصال دستگاه، ارسال نشانه دسترسی معتبر الزامی است.

نمونه درخواست

GET /api/devices/SN-TEST-001/connection-status
Authorization: Bearer eyJhbGciOi...

خروجی موفق

{
  "isSuccess": true,
  "message": "عملیات با موفقیت انجام شد",
  "data": {
    "serialNumber": "SN-TEST-001",
    "connectionStatus": "Online"
  }
}

GET GetProductType

آدرس وب‌سرویس GET /api/devices/{serialNumber}/product-type
هدف متد نوع محصول دستگاه را بر اساس شماره سریال مشخص می‌کند تا نوع دستگاه مورد استفاده در ادامه عملیات مشخص باشد.
سطح دسترسی برای دریافت نوع محصول، ارسال نشانه دسترسی معتبر الزامی است.

مقدارهای نوع محصول

مقدار توضیح
Refrigerator این مقدار نشان می‌دهد دستگاه از نوع یخچال است.
Freezer این مقدار نشان می‌دهد دستگاه از نوع فریزر است.
Combi این مقدار نشان می‌دهد دستگاه از نوع یخچال فریزر ترکیبی است.

نمونه درخواست

GET /api/devices/SN-TEST-001/product-type
Authorization: Bearer eyJhbGciOi...

خروجی موفق

{
  "isSuccess": true,
  "message": "عملیات با موفقیت انجام شد",
  "data": {
    "serialNumber": "SN-TEST-001",
    "productType": "Refrigerator"
  }
}

حسگرها

GET GetWeeklyInputVoltage

آدرس وب‌سرویس GET /api/devices/{serialNumber}/sensors/input-voltage/weekly
هدف متد اطلاعات ولتاژ ورودی دستگاه را در بازه هفتگی دریافت می‌کند تا روند تغییرات ولتاژ و وضعیت آن در بازه موردنظر قابل بررسی باشد.
سطح دسترسی برای دریافت اطلاعات ولتاژ دستگاه، ارسال نشانه دسترسی معتبر الزامی است.

نمونه درخواست

GET /api/devices/SN-TEST-001/sensors/input-voltage/weekly
Authorization: Bearer eyJhbGciOi...

خروجی موفق

[
  { "date": "2026/07/15 10:00", "voltage": 221 },
  { "date": "2026/07/14 10:00", "voltage": 219 }
]

دما

GET GetSetTemperature

آدرس وب‌سرویس GET /api/devices/{serialNumber}/Temperature/set-temperature
هدف متد دمای تنظیم‌شده بخش یخچال و فریزر دستگاه را بر اساس شماره سریال دریافت می‌کند.
سطح دسترسی برای دریافت دمای تنظیم‌شده دستگاه، ارسال نشانه دسترسی معتبر الزامی است.

نمونه درخواست

GET /api/devices/SN-TEST-001/Temperature/set-temperature
Authorization: Bearer eyJhbGciOi...

خروجی موفق

{
  "isSuccess": true,
  "message": "عملیات با موفقیت انجام شد",
  "data": {
    "serialNumber": "SN-TEST-001",
    "refrigeratorSetTemperature": 4,
    "freezerSetTemperature": -18
  }
}

یخساز

GET GetIceMakerSetTemperature

آدرس وب‌سرویس GET /api/devices/{serialNumber}/IceMaker/ice-maker/set-temperature
هدف متد دمای تنظیم‌شده یخساز دستگاه را بر اساس شماره سریال دریافت می‌کند.
سطح دسترسی برای دریافت دمای تنظیم‌شده یخساز، ارسال نشانه دسترسی معتبر الزامی است.

نمونه درخواست

GET /api/devices/SN-TEST-001/IceMaker/ice-maker/set-temperature
Authorization: Bearer eyJhbGciOi...

خروجی موفق

{
  "isSuccess": true,
  "message": "عملیات با موفقیت انجام شد",
  "data": {
    "serialNumber": "SN-TEST-001",
    "iceMakerSetTemperature": -12
  }
}

کمپرسور

GET GetCompressorSpeed

آدرس وب‌سرویس GET /api/devices/{serialNumber}/Compressor/compressor/Fan
هدف متد سرعت فن کمپرسور دستگاه را بر اساس شماره سریال دریافت می‌کند.
سطح دسترسی برای دریافت سرعت فن کمپرسور، ارسال نشانه دسترسی معتبر الزامی است.

نمونه درخواست

GET /api/devices/SN-TEST-001/Compressor/compressor/Fan
Authorization: Bearer eyJhbGciOi...

خروجی موفق

{
  "isSuccess": true,
  "message": "عملیات با موفقیت انجام شد",
  "data": {
    "serialNumber": "SN-TEST-001",
    "compressorSpeed": 1400
  }
}

GET GetCompressorStatus

آدرس وب‌سرویس GET /api/devices/{serialNumber}/Compressor/compressor/status
هدف متد وضعیت فعلی روشن یا خاموش بودن کمپرسور دستگاه را بر اساس شماره سریال دریافت می‌کند.
سطح دسترسی برای دریافت وضعیت کمپرسور، ارسال نشانه دسترسی معتبر الزامی است.

مقدارهای وضعیت قابلیت

مقدار توضیح
On این مقدار نشان می‌دهد کمپرسور در وضعیت روشن قرار دارد.
Off این مقدار نشان می‌دهد کمپرسور در وضعیت خاموش قرار دارد.

نمونه درخواست

GET /api/devices/SN-TEST-001/Compressor/compressor/status
Authorization: Bearer eyJhbGciOi...

خروجی موفق

{
  "isSuccess": true,
  "message": "عملیات با موفقیت انجام شد",
  "data": {
    "serialNumber": "SN-TEST-001",
    "status": "On"
  }
}

GET GetCompressorRpm

آدرس وب‌سرویس GET /api/devices/{serialNumber}/Compressor/compressor-rpm
هدف متد مقدار دور کمپرسور دستگاه را بر اساس شماره سریال دریافت می‌کند.
سطح دسترسی برای دریافت مقدار دور کمپرسور، ارسال نشانه دسترسی معتبر الزامی است.

نمونه درخواست

GET /api/devices/SN-TEST-001/Compressor/compressor-rpm
Authorization: Bearer eyJhbGciOi...

خروجی موفق

{
  "isSuccess": true,
  "message": "عملیات با موفقیت انجام شد",
  "data": {
    "serialNumber": "SN-TEST-001",
    "compressorRpm": 1450
  }
}

GET GetWeeklyCompressorRpm

آدرس وب‌سرویس GET /api/devices/{serialNumber}/Compressor/compressor-rpm/weekly
هدف متد اطلاعات دور کمپرسور دستگاه را در بازه هفتگی دریافت می‌کند تا روند تغییرات دور کمپرسور مشخص شود.
سطح دسترسی برای دریافت اطلاعات هفتگی دور کمپرسور، ارسال نشانه دسترسی معتبر الزامی است.

نمونه درخواست

GET /api/devices/SN-TEST-001/Compressor/compressor-rpm/weekly
Authorization: Bearer eyJhbGciOi...

خروجی موفق

[
  { "date": "2026/07/15 10:00", "rpm": 1380 },
  { "date": "2026/07/14 10:00", "rpm": 1420 }
]

تنظیمات

POST SetCombiMode

آدرس وب‌سرویس POST /api/devices/settings/SetCombiMode
هدف متد حالت عملکرد دستگاه ترکیبی را بر اساس شماره سریال دستگاه تغییر می‌دهد.
سطح دسترسی برای تغییر حالت دستگاه، ارسال نشانه دسترسی معتبر الزامی است.

مقدارهای حالت دستگاه

مقدار توضیح
RefrigeratorMin دستگاه را در حالت حداقل سرمایش بخش یخچال قرار می‌دهد.
RefrigeratorMax دستگاه را در حالت حداکثر سرمایش بخش یخچال قرار می‌دهد.
RefrigeratorOff بخش یخچال دستگاه را خاموش می‌کند.
FreezerOff بخش فریزر دستگاه را خاموش می‌کند.
Combi دستگاه را در حالت ترکیبی یخچال و فریزر قرار می‌دهد.

نمونه درخواست

POST /api/devices/settings/SetCombiMode
Content-Type: application/json

{
  "serialNumber": "SN-TEST-001",
  "setCombiMode": "Combi"
}

خروجی موفق

{
  "isSuccess": true,
  "message": "عملیات با موفقیت انجام شد",
  "data": {
    "serialNumber": "SN-TEST-001",
    "success": true
  }
}

POST SetTemperature

آدرس وب‌سرویس POST /api/devices/settings/set-Temperature
هدف متد دمای یخچال یا فریزر موردنظر دستگاه را بر اساس نوع دستگاه و مقدار دمای جدید تغییر می‌دهد.
سطح دسترسی برای تغییر دمای دستگاه، ارسال نشانه دسترسی معتبر الزامی است.

مقدارهای نوع دستگاه

مقدار توضیح کاربرد در این متد
Refrigerator دستگاه فقط یخچال است. دمای بخش یخچال را تغییر می‌دهد.
Freezer دستگاه فقط فریزر است. دمای بخش فریزر را تغییر می‌دهد.
نکته: برای دستگاه ترکیبی، مقدار Refrigerator یا Freezer را بر اساس بخشی که قرار است دمای آن تغییر کند ارسال کنید.

بازه‌های دمایی

نوع بازه مجاز توضیح
Refrigerator 1 تا 8 درجه سانتی‌گراد دمای تنظیم‌شده بخش یخچال باید در این بازه قرار داشته باشد.
Freezer -28 تا -14 درجه سانتی‌گراد دمای تنظیم‌شده بخش فریزر باید در این بازه قرار داشته باشد.

نمونه درخواست

POST /api/devices/settings/set-Temperature
Content-Type: application/json

{
  "serialNumber": "SN-TEST-001",
  "deviceType": "Refrigerator",
  "currentTemperature": 4,
  "NewTemperature": 3
}

خروجی موفق

{
  "isSuccess": true,
  "message": "عملیات با موفقیت انجام شد",
  "data": {
    "serialNumber": "SN-TEST-001",
    "success": true
  }
}

POST SetIceMakerTemperature

آدرس وب‌سرویس POST /api/devices/settings/set-Icemaker-Temperature
هدف متد دمای تنظیم‌شده بخش مربوط به یخساز دستگاه را بر اساس شماره سریال و مقدار دمای جدید تغییر می‌دهد.
سطح دسترسی برای تغییر دمای یخساز، ارسال نشانه دسترسی معتبر الزامی است.

نمونه درخواست

POST /api/devices/settings/set-Icemaker-Temperature
Content-Type: application/json

{
  "serialNumber": "SN-TEST-001",
  "currentTemperature": -10,
  "newTemperature": -12
}

خروجی موفق

{
  "isSuccess": true,
  "message": "عملیات با موفقیت انجام شد",
  "data": {
    "serialNumber": "SN-TEST-001",
    "success": true
  }
}
نکته: این متد برای دستگاه‌های یخچال در کد فعلی پشتیبانی نمی‌شود و فقط برای مدل‌های سازگار قابل استفاده است.

POST Switch

آدرس وب‌سرویس POST /api/devices/settings/switches
هدف متد وضعیت یکی از کلیدهای قابل کنترل دستگاه را بر اساس شماره سریال تغییر می‌دهد.
سطح دسترسی برای تغییر وضعیت کلیدهای دستگاه، ارسال نشانه دسترسی معتبر الزامی است.

مقدارهای مجاز نوع کلید

مقدار نوع کلید توضیح
EcoMode وضعیت فعال یا غیرفعال بودن حالت اقتصادی دستگاه را مشخص می‌کند.
RefrigeratorSuperCool وضعیت فعال یا غیرفعال بودن سرمایش سریع بخش یخچال را مشخص می‌کند.
FreezerSuperCool وضعیت فعال یا غیرفعال بودن سرمایش سریع بخش فریزر را مشخص می‌کند.
IceMaker وضعیت فعال یا غیرفعال بودن یخساز را مشخص می‌کند.
WaterDispenser وضعیت فعال یا غیرفعال بودن آبسردکن یا آبریز را مشخص می‌کند.

نمونه درخواست

POST /api/devices/settings/switches
Content-Type: application/json

{
  "serialNumber": "SN-TEST-001",
  "switchType": "IceMaker",
  "isEnabled": true
}

خروجی موفق

{
  "isSuccess": true,
  "message": "عملیات با موفقیت انجام شد",
  "data": {
    "serialNumber": "SN-TEST-001",
    "success": true,
    "message": "Command sent successfully."
  }
}

POST SetFilterReset

آدرس وب‌سرویس POST /api/devices/settings/filter-reset
هدف متد وضعیت بازنشانی فیلتر دستگاه را بر اساس شماره سریال تغییر می‌دهد.
سطح دسترسی برای بازنشانی فیلتر دستگاه، ارسال نشانه دسترسی معتبر الزامی است.

مقدارهای بازنشانی فیلتر

مقدار توضیح
Off بازنشانی فیلتر غیرفعال است.
On بازنشانی فیلتر فعال شده و عملیات بازنشانی انجام می‌شود.

نمونه درخواست

POST /api/devices/settings/filter-reset
Content-Type: application/json

{
  "serialNumber": "SN-TEST-001",
  "status": "On"
}

خروجی موفق

{
  "isSuccess": true,
  "message": "عملیات با موفقیت انجام شد",
  "data": {
    "serialNumber": "SN-TEST-001",
    "success": true
  }
}

تحلیل درب

GET GetDoorStatus

آدرس وب‌سرویس GET /api/devices/{serialNumber}/door-analysis/door-status
هدف متد وضعیت فعلی درب‌های دستگاه را بر اساس شماره سریال دریافت می‌کند.
سطح دسترسی برای دریافت وضعیت درب‌ها، ارسال نشانه دسترسی معتبر الزامی است.

مقدارهای وضعیت درب

مقدار توضیح
Open این مقدار نشان می‌دهد درب در وضعیت باز قرار دارد.
Closed این مقدار نشان می‌دهد درب در وضعیت بسته قرار دارد.

نمونه درخواست

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"
  }
}

GET GetDoorHistory

آدرس وب‌سرویس GET /api/devices/{serialNumber}/door-analysis/door-historyweekly
هدف متد دریافت تاریخچه وضعیت درب دستگاه در بازه هفتگی، شامل تعداد دفعات باز شدن و مدت زمان باز بودن درب‌ها.
سطح دسترسی برای دریافت تاریخچه وضعیت درب، ارسال نشانه دسترسی معتبر الزامی است.

نمونه درخواست

GET /api/devices/SN-TEST-001/door-analysis/door-historyweekly
Authorization: Bearer eyJhbGciOi...

خروجی موفق

{
  "isSuccess": true,
  "message": "عملیات با موفقیت انجام شد",
  "data": {
    "name": "Door Status",
    "data": [
      { "x": "2026-07-15T00:00:00Z", "y": 0 },
      { "x": "2026-07-15T10:15:00Z", "y": 1 }
    ]
  }
}

GET GetDoorOpenCounter

آدرس وب‌سرویس 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",
    "refrigeratorDoorOpenCount": 12,
    "freezerDoorOpenCount": 8,
    "fromDate": "2026-06-15T00:00:00Z",
    "toDate": "2026-07-15T00:00:00Z"
  }
}

GET GetDoorOpenDuration

آدرس وب‌سرویس 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",
    "refrigeratorDoorOpenDuration": "01:42:00",
    "freezerDoorOpenDuration": "00:54:00",
    "fromDate": "2026-06-15T00:00:00Z",
    "toDate": "2026-07-15T00:00:00Z"
  }
}

گزارش‌های روزانه، هفتگی و ماهانه دستگاه

این بخش امکان دریافت اطلاعات و آمار عملکرد دستگاه را در بازه‌های روزانه، هفتگی و ماهانه فراهم می‌کند.

GET GetDailyReports

نام متد GetDailyReports
آدرس وب‌سرویس GET /api/devices/{serialNumber}/reports?period=Daily|Weekly|Monthly
نوع درخواست GET
هدف متد این متد خلاصه‌ای از وضعیت درب، ولتاژ ورودی و تغییر حالت دستگاه را در بازه زمانی انتخاب‌شده ارائه می‌کند.
سطح دسترسی نیازمند نشانه

نمونه درخواست

GET /api/devices/SN-TEST-001/reports?period=Monthly
Authorization: Bearer eyJhbGciOi...

خروجی موفق 200

{
  "serialNumber": "SN-TEST-001",
  "doorCurrentStatus": {
    "serialNumber": "SN-TEST-001",
    "refrigerator": {
      "isOpen": false,
      "eventDate": 14050513231245,
      "eventDateText": "1405/05/13 23:12:45"
    },
    "freezer": {
      "isOpen": false,
      "eventDate": 14050513231245,
      "eventDateText": "1405/05/13 23:12:45"
    }
  },
  "door": {
    "serialNumber": "SN-TEST-001",
    "range": {
      "fromDate": "1405/05/01",
      "toDate": "1405/05/19",
      "period": "Monthly"
    },
    "refrigerator": {
      "doorOpenCount": 19,
      "doorOpenDurationSec": 291,
      "doorLongOpenCount": 0
    },
    "freezer": {
      "doorOpenCount": 0,
      "doorOpenDurationSec": 0,
      "doorLongOpenCount": 0
    },
    "days": []
  },
  "inputVoltage": {
    "serialNumber": "SN-TEST-001",
    "range": {
      "fromDate": "1405/05/01",
      "toDate": "1405/05/19",
      "period": "Monthly"
    },
    "standardMinVoltage": 198,
    "standardMaxVoltage": 242,
    "voltageChart": [],
    "voltageOutOfRangeCount": 0,
    "days": []
  },
  "deviceMode": {
    "serialNumber": "SN-TEST-001",
    "range": {
      "fromDate": "1405/05/01",
      "toDate": "1405/05/19",
      "period": "Monthly"
    },
    "totalModeChangeCount": 0,
    "modes": [],
    "transitions": [],
    "days": []
  }
}

کدهای پاسخ

کد توضیح
200 درخواست با موفقیت پردازش شده و گزارش مربوطه بازگردانده شده است.
400 پارامترهای گزارش یا بازه زمانی ارسال‌شده معتبر نیست.
404 دستگاهی با سریال ارسال‌شده پیدا نشد.

GET GetDoorAggregateReport

نام متد GetDoorAggregateReport
آدرس وب‌سرویس GET /api/devices/{serialNumber}/reports/door?period=Daily|Weekly|Monthly&fromDate=1405/05/01&toDate=1405/05/18
نوع درخواست GET
هدف متد این متد آمار مربوط به باز و بسته شدن درب‌های یخچال و فریزر را در بازه زمانی مشخص‌شده ارائه می‌کند.
سطح دسترسی نیازمند نشانه

نمونه درخواست

GET /api/devices/SN-TEST-001/reports/door?period=Monthly
Authorization: Bearer eyJhbGciOi...

خروجی موفق 200

{
  "serialNumber": "SN-TEST-001",
  "range": {
    "fromDate": "1405/05/01",
    "toDate": "1405/05/18",
    "period": "Monthly"
  },
  "refrigerator": {
    "doorOpenCount": 19,
    "doorOpenDurationSec": 291,
    "doorLongOpenCount": 0
  },
  "freezer": {
    "doorOpenCount": 0,
    "doorOpenDurationSec": 0,
    "doorLongOpenCount": 0
  },
  "days": [
    {
      "date": "1405/05/01",
      "refrigerator": {
        "doorOpenCount": 3,
        "doorOpenDurationSec": 45,
        "doorLongOpenCount": 0
      },
      "freezer": {
        "doorOpenCount": 0,
        "doorOpenDurationSec": 0,
        "doorLongOpenCount": 0
      }
    }
  ]
}

نمونه درخواست بازه دلخواه

GET /api/devices/SN-TEST-001/reports/door?fromDate=1405/05/01&toDate=1405/05/18
Authorization: Bearer eyJhbGciOi...

توضیح فیلدها

فیلد توضیح
range بازه زمانی مورد استفاده برای محاسبه و ارائه گزارش.
days آمار مربوط به وضعیت درب‌ها به تفکیک روز در بازه گزارش.
doorOpenCount تعداد دفعات باز شدن درب در بازه گزارش.
doorOpenDurationSec مجموع مدت زمانی که درب باز بوده است، بر حسب ثانیه.
doorLongOpenCount تعداد دفعاتی که درب بیش از ۱۸۰ ثانیه باز مانده است.
fromDate / toDate تاریخ شروع و پایان بازه دلخواه گزارش؛ در صورت ارسال، هر دو تاریخ باید مشخص شوند.

کدهای پاسخ

کد توضیح
200 درخواست با موفقیت پردازش شده و گزارش مربوطه بازگردانده شده است.
400 بازه گزارش یا تاریخ ارسال‌شده معتبر نیست.
404 دستگاهی با سریال ارسال‌شده پیدا نشد.

GET GetInputVoltageReport

نام متد GetInputVoltageReport
آدرس وب‌سرویس GET /api/devices/{serialNumber}/reports/input-voltage?period=Daily|Weekly|Monthly&fromDate=1405/05/01&toDate=1405/05/18
نوع درخواست GET
هدف متد این متد اطلاعات و آمار ولتاژ ورودی دستگاه را در بازه زمانی مشخص‌شده ارائه می‌کند.
سطح دسترسی نیازمند نشانه

نمونه درخواست

GET /api/devices/SN-TEST-001/reports/input-voltage?period=Weekly
Authorization: Bearer eyJhbGciOi...

خروجی موفق 200

{
  "serialNumber": "SN-TEST-001",
  "range": {
    "fromDate": "1405/05/13",
    "toDate": "1405/05/19",
    "period": "Weekly"
  },
  "standardMinVoltage": 198,
  "standardMaxVoltage": 242,
  "voltageChart": [
    {
      "date": "1405/05/13",
      "value": 220
    }
  ],
  "voltageOutOfRangeCount": 0,
  "days": [
    {
      "date": "1405/05/13",
      "averageVoltage": 220,
      "voltageOutOfRangeCount": 0
    }
  ]
}

نمونه درخواست بازه دلخواه

GET /api/devices/SN-TEST-001/reports/input-voltage?fromDate=1405/05/01&toDate=1405/05/18
Authorization: Bearer eyJhbGciOi...

توضیح فیلدها

فیلد توضیح
voltageChart مقادیر ولتاژ ثبت‌شده برای نمایش روند تغییرات ولتاژ در بازه انتخاب‌شده.
days آمار ولتاژ دستگاه به تفکیک روز در بازه گزارش.
averageVoltage میانگین ولتاژ ثبت‌شده در طول هر روز.
voltageOutOfRangeCount تعداد دفعاتی که ولتاژ کمتر از ۱۹۸ یا بیشتر از ۲۴۲ ولت ثبت شده است؛ مقادیر ۱۹۸ و ۲۴۲ ولت در محدوده استاندارد قرار دارند.
fromDate / toDate تاریخ شروع و پایان بازه دلخواه گزارش؛ در صورت ارسال، هر دو تاریخ باید مشخص شوند.

کدهای پاسخ

کد توضیح
200 درخواست با موفقیت پردازش شده و گزارش مربوطه بازگردانده شده است.
400 بازه گزارش یا تاریخ ارسال‌شده معتبر نیست. مقدارهای مجاز برای بازه گزارش شامل Daily، Weekly و Monthly هستند.
404 دستگاهی با سریال ارسال‌شده پیدا نشد.

GET GetDeviceModeReport

نام متد GetDeviceModeReport
آدرس وب‌سرویس GET /api/devices/{serialNumber}/reports/modes?period=Weekly|Monthly&fromDate=1405/05/01&toDate=1405/05/18
نوع درخواست GET
هدف متد این متد اطلاعات مربوط به تغییر حالت‌های عملکردی دستگاه و مدت حضور در هر حالت را در بازه زمانی مشخص‌شده ارائه می‌کند.
سطح دسترسی نیازمند نشانه

نمونه درخواست

GET /api/devices/SN-TEST-001/reports/modes?period=Monthly
Authorization: Bearer eyJhbGciOi...

خروجی موفق 200

{
  "serialNumber": "SN-TEST-001",
  "range": {
    "fromDate": "1405/05/01",
    "toDate": "1405/05/19",
    "period": "Monthly"
  },
  "totalModeChangeCount": 2,
  "modes": [
    {
      "modeId": 694,
      "modeName": "Eco",
      "enterCount": 1,
      "durationSec": 3600
    }
  ],
  "transitions": [
    {
      "fromModeId": 690,
      "fromModeName": "Normal",
      "toModeId": 694,
      "toModeName": "Eco",
      "count": 1
    }
  ],
  "days": [
    {
      "date": "1405/05/01",
      "modeChangeCount": 1,
      "modes": [
        {
          "modeId": 694,
          "modeName": "Eco",
          "enterCount": 1,
          "durationSec": 3600
        }
      ]
    }
  ]
}

نمونه درخواست بازه دلخواه

GET /api/devices/SN-TEST-001/reports/modes?fromDate=1405/05/01&toDate=1405/05/18
Authorization: Bearer eyJhbGciOi...

توضیح فیلدها

فیلد توضیح
totalModeChangeCount تعداد کل تغییر حالت‌های ثبت‌شده در بازه گزارش.
modes خلاصه اطلاعات مربوط به حالت‌های ثبت‌شده دستگاه در بازه گزارش.
transitions اطلاعات مربوط به تغییر از یک حالت دستگاه به حالت دیگر.
days آمار تغییر حالت‌های دستگاه به تفکیک روز در بازه گزارش.
enterCount تعداد دفعات ورود دستگاه به حالت موردنظر.
durationSec مدت زمانی که دستگاه در حالت موردنظر قرار داشته است، بر حسب ثانیه.
fromDate / toDate تاریخ شروع و پایان بازه دلخواه گزارش؛ در صورت ارسال، هر دو تاریخ باید مشخص شوند.

کدهای پاسخ

کد توضیح
200 درخواست با موفقیت پردازش شده و گزارش مربوطه بازگردانده شده است.
400 بازه گزارش یا تاریخ ارسال‌شده معتبر نیست؛ برای این گزارش فقط بازه‌های هفتگی و ماهانه قابل استفاده هستند.
404 دستگاهی با سریال ارسال‌شده پیدا نشد.