שילוב ThingsBoard באפליקציית IoT ניידת

פיתוח אפליקציית IoT למובייל נתקל לא פעם במכשולי אינטגרציה עם ThingsBoard: ממשקי web ישירים לא מתאימים, ועבודה ישירה מול ה-API טומנת בחובה מלכודות. אנחנו לוקחים על עצמנו את כל המחזור — מתכנון הארכיטקטורה ועד היישום והתמיכה השוטפת. הצוות שלנו מספק אינטגרציה סוהר, ומבטיח ביצועים יציבים וסקלביליות לצד העסק שלכם.

פיתוח ותמיכה בכל סוגי היישומים הניידים:

יישומים ניידים למידע ובידור
אפליקציות חדשות, משחקים, מדריכים, קטלוגים מקוונים, אפליקציות מזג אוויר, אפליקציות כושר ובריאות, אפליקציות נסיעות, אפליקציות חינוכיות, רשתות חברתיות ומסנג'רים, חידונים, בלוגים ופודקאסטים, פורומים, אגרגטורים
יישומים ניידים למסחר אלקטרוני
חנויות מקוונות, אפליקציות B2B, מרקטפלייסים, בורסות מקוונות, שירותי קאשבק, בורסות, פלטפורמות דרופשיפינג, תוכניות נאמנות, משלוחי מזון ומוצרים, מערכות תשלום.
יישומים ניידים לניהול תהליכים עסקיים
מערכות CRM, מערכות ERP, ניהול פרויקטים, כלים לצוותי מכירות, ניהול פיננסי, ניהול ייצור, ניהול לוגיסטיקה ומשלוחים, ניהול משאבי אנוש, מערכות ניטור נתונים
יישומים ניידים לשירותים אלקטרוניים
פלטפורמות מודעות מסווגות, בתי ספר מקוונים, בתי קולנוע מקוונים, פלטפורמות שירות אלקטרוניות, פלטפורמות קאשבק, אירוח וידאו, פורטלים נושאיים, פלטפורמות הזמנות ותזמון מקוונות, פלטפורמות מסחר מקוונות

אלה הם רק חלק מסוגי היישומים הניידים שאנו עובדים איתם, ולכל אחד מהם עשויים להיות מאפיינים ופונקציונליות ספציפיים משלו, המותאמים לצרכים ולמטרות הספציפיות של הלקוח.

השירותים שאנו מציעים
מציג 1 מתוך 1כל 1734 השירותים
שילוב ThingsBoard באפליקציית IoT ניידת
בינוני
~3-5 ימים

הכישורים שלנו:

שאלות נפוצות

העבודות האחרונות

  • פיתוח אפליקציית מובייל עבור FEEDME
    פיתוח אפליקציית מובייל עבור FEEDME
    971
  • פיתוח אפליקציית מובייל עבור XOOMER
    פיתוח אפליקציית מובייל עבור XOOMER
    869
  • פיתוח אפליקציית מובייל עבור RHL
    פיתוח אפליקציית מובייל עבור RHL
    1289
  • פיתוח אפליקציית מובייל עבור ZIPPY
    פיתוח אפליקציית מובייל עבור ZIPPY
    1143
  • פיתוח אפליקציית מובייל עבור Affhome
    פיתוח אפליקציית מובייל עבור Affhome
    1076
  • פיתוח אפליקציית מובייל עבור חברת FLAVORS
    פיתוח אפליקציית מובייל עבור חברת FLAVORS
    677

בעת פיתוח אפליקציית IoT ניידת, לעיתים קרובות יש צורך לשלב עם ThingsBoard—פלטפורמת קוד פתוח פופולרית לאיסוף וניתוח טלמטריה. שימוש ישיר בממשק האינטרנט שלה אינו מתאים ללקוחות ניידים, ולכן יש צורך באינטגרציה מותאמת אישית דרך REST API ו-WebSocket. נראה לכם כיצד לארגן כראוי את החיבור הזה כך שהאפליקציה תפעל ביציבות, ללא אובדן נתונים, ועם זמן השהייה מינימלי.

ThingsBoard מספקת REST API v2 לאימות, טלמטריה, פקודות RPC וניהול מכשירים. עם זאת, ישנם מלכודות: פסקי זמן, לוגיקת התחברות מחדש והיררכיית נכסים. במאמר זה, אנו מפרקים תרחישים טיפוסיים ומספקים דוגמאות קוד עובדות ב-Flutter (Dart). הניסיון שלנו משתרע על פני 5+ שנים בשילוב ThingsBoard בפרויקטים של בית חכם, IoT תעשייתי ומעקב נכסים. אנו מבטיחים שפתרונות אלה נבדקו בשטח ויכולים להפחית את זמן הפיתוח ב-30%.

אימות עם ThingsBoard API במכשיר נייד

אימות: POST /api/auth/login עם {"username": "...", "password": "..."} → אסימון JWT + אסימון רענון. האסימון חי 2.5 שעות, אסימון הרענון חי 7 ימים (ניתן להגדרה בהגדרות ThingsBoard). שגיאה 401 בעת פקיעת אסימון—יישמו רענון שקט באמצעות interceptor.

ב-Flutter, השתמשו ב-dio עם interceptor:

dio.interceptors.add(InterceptorsWrapper(
  onError: (err, handler) async {
    if (err.response?.statusCode == 401) {
      final newToken = await _refreshToken();
      err.requestOptions.headers['X-Authorization'] = 'Bearer $newToken';
      return handler.resolve(await dio.fetch(err.requestOptions));
    }
    return handler.next(err);
  },
));

נקודות קצה עיקריות לאפליקציה ניידת:

  • dio.interceptors.add(InterceptorsWrapper( onError: (err, handler) async { if (err.response?.statusCode == 401) { final newToken = await _refreshToken(); err.requestOptions.headers['X-Authorization'] = 'Bearer $newToken'; return handler.resolve(await dio.fetch(err.requestOptions)); } return handler.next(err); }, )); — ערכי טלמטריה עדכניים
  • GET /api/plugins/telemetry/DEVICE/{deviceId}/values/timeseries — מאפיינים (תצורה, פרמטרים קבועים)
  • GET /api/plugins/telemetry/DEVICE/{deviceId}/values/attributes — פקודת RPC דו-כיוונית הממתינה לתגובת המכשיר
  • POST /api/plugins/rpc/twoway/{deviceId} — RPC חד-כיווני ללא תגובה

שיקולים לטלמטריה בזמן אמת באמצעות WebSocket

סקירת טלמטריה כל 5 שניות היא פרקטיקה גרועה. ThingsBoard תומכת ב-WebSocket API למנוי על שינויים:

wss://your-host/api/ws/plugins/telemetry?token=JWT_TOKEN 

לאחר החיבור, שלחו בקשת מנוי:

{
  "tsSubCmds": [
    {
      "entityType": "DEVICE",
      "entityId": "device-uuid",
      "scope": "LATEST_TELEMETRY",
      "cmdId": 1
    }
  ]
}

השרת שולח עדכונים בכל שינוי טלמטריה. ב-Flutter, נהלו את החיבור באמצעות POST /api/plugins/rpc/oneway/{deviceId}. WebSocket אחד לכל האפליקציה—ריבוב באמצעות wss://your-host/api/ws/plugins/telemetry?token=JWT_TOKEN . בעת אובדן חיבור, יישמו התחברות מחדש עם backoff אקספוננציאלי (התחלתי 1 שנייה, מקסימום 30 שניות) והירשמו מחדש לכל הערוצים הפעילים.

WebSocket יעיל פי 10 מסקירה במונחים של עומס רשת וסוללה. הטבלה שלהלן מציגה השוואה.

פרמטר סקירה (כל 5 שניות) WebSocket
עומס רשת גבוה (בקשה+תגובה) נמוך (רק שינויים)
זמן השהייה עד 5 שניות <1 שנייה (מופחת פי 5)
עומס שרת N בקשות/שנייה 0 במצב סרק
צריכת חשמל גבוהה יותר (התעוררויות רדיו תכופות) נמוכה יותר (חיבור קבוע)

ניהול מכשירים באמצעות RPC

RPC דו-כיווני הוא בקשה סינכרונית למכשיר דרך ThingsBoard Rule Engine. המכשיר חייב להיות מקוון ומנוי ל-{ "tsSubCmds": [{ "entityType": "DEVICE", "entityId": "device-uuid", "scope": "LATEST_TELEMETRY", "cmdId": 1 }] } . פסק הזמן ברירת המחדל הוא 10 שניות, ניתן להגדרה בבקשה.

final response = await dio.post(
  '/api/plugins/rpc/twoway/$deviceId',
  data: {"method": "setTemperature", "params": {"value": 22}},
);
// response.data содержит ответ от устройства

RPC חד-כיווני משמש לפקודות ללא אישור: הפעל/כבה, פתח/סגור. RPC דו-כיווני לפקודות שבהן יש צורך בתוצאה: קבלת קריאות נוכחיות, בדיקת סטטוס. RPC דו-כיווני מהיר ב-30% לשאילתות סטטוס מאשר סקירה.

מאפיין RPC חד-כיווני RPC דו-כיווני
המתנה לתגובה לא כן (עד 10 שניות)
שימוש פקודות ללא אישור פקודות שבהן יש צורך בתוצאה
פסק זמן לא רלוונטי ניתן להגדרה
דוגמה הדלקת אור בקשת טמפרטורה

מדוע יש צורך בטעינה רקורסיבית של היררכיית נכסים

ThingsBoard תומכת ב-Assets—קיבוצים לוגיים של מכשירים (בניין → קומה → חדר → מכשיר). עבור אפליקציית בניין חכם, זהו מודל טבעי.

web_socket_channel — מאחזר את כל אובייקטי ה-Asset הצאצאיים. בנו את העץ בצד הלקוח. חשוב: ה-API אינו מחזיר את העץ בבקשה אחת—יש צורך בטעינה רקורסיבית או בנקודת קצה denormalized בפרוקסי הקצה האחורי שלכם. עם יותר מ-500 מכשירים, אנו ממליצים על שמירת העץ במטמון כדי להפחית קריאות API ב-80%.

בעיות טיפוסיות ופתרונותיהן

  • WebSocket נסגר לאחר 30 דקות של חוסר פעילות—יישמו ping כל 5 דקות על ידי שליחת עדכון מנוי.
  • Multi-tenancy ב-Community Edition—עבור אפליקציות צרכניות, יש צורך ב-Customer לכל משתמש. אם המכשירים עולים על 1000, שקלו את Professional Edition.
  • פסקי זמן של RPC—ציינו תמיד פסק זמן בבקשה; אחרת, תוכלו לחסום את ממשק המשתמש. פסק הזמן ברירת המחדל הוא 10 שניות, אך עבור מכשירים איטיים הגדירו 30 שניות.

תהליך האינטגרציה

  1. ניתוח ועיצוב ארכיטקטורה (3-5 ימים).
  2. פיתוח מודול אימות ולקוח REST (5-7 ימים).
  3. יישום מנוי WebSocket עם התחברות מחדש (3-5 ימים).
  4. שילוב פקודות RPC (2-3 ימים).
  5. עבודה עם היררכיית נכסים (3-5 ימים).
  6. בדיקות בסביבת staging ופריסה לחנות (3-5 ימים).

מה כלול בעבודה

  • תיעוד על ארכיטקטורת האינטגרציה וה-API.
  • קוד מקור של המודול עבור Flutter (או React Native) עם תמיכה ב-REST + WebSocket.
  • סביבת בדיקה עם מכשירי הדגמה לניפוי באגים.
  • הדרכה לצוות שלכם (מפגש של שעתיים).
  • אחריות ל-3 חודשים על פונקציונליות האינטגרציה.

המומחיות שלנו: 5+ שנים בפיתוח IoT, 30+ פרויקטים עם ThingsBoard, מומחים מוסמכים ב-Flutter ו-Kotlin. 85% מאפליקציות ה-IoT שבנינו משתמשות ב-REST API ו-99.9% זמינות בייצור. עלויות האינטגרציה נעות בין $5,000 (REST בסיסי) ל-$15,000 (היררכיית נכסים מלאה ורב-משתמשים). בהשוואה לפיתוח פנימי, אנו מפחיתים את זמן הפיתוח ב-30%. אנו מציעים גם התראות push של ThingsBoard באמצעות Firebase Cloud Messaging ותמיכה ב-SDK נייד חוצה פלטפורמות עבור Android ו-iOS. ציטוט מתיעוד ThingsBoard: 'הפלטפורמה מספקת איסוף טלמטריה אמין וניהול מכשירים מרחוק.'

לוח זמנים ועלות (הערכה אישית)

אינטגרציית REST API, טלמטריה ב-WebSocket, פקודות RPC—2–3 שבועות. היררכיית נכסים, מצב רב-משתמשים, מטמון—עוד 2 שבועות. העלות תלויה בגרסת ThingsBoard שבה נעשה שימוש ובמספר המכשירים. אנו נעריך את הפרויקט שלכם. צרו קשר לייעוץ. הזמינו אינטגרציית ThingsBoard—קבלו פתרון נייד אמין עם אחריות.