ניהול מכשירים - סקירה טכנית
מודול המכשירים (DevicesModule) הוא הלב של מערכת השילוט הדיגיטלי. הוא אחראי על:
- רישום ואימות מכשירים (Pairing).
- תקשורת זמן אמת (MQTT/WebSocket).
- ניטור סטטוס (Heartbeat).
- שליחת פקודות מרחוק (Reboot, Refresh, Screenshot).
תהליך הרישום (Pairing)
- Auto-Register: האפליקציה שולחת בקשה ל-
/api/devices/auto-registerעם מזהה חומרה ייחודי. - קוד זיהוי: השרת מייצר קוד זיהוי (Pairing Code) זמני ושולח אותו למכשיר.
- אישור משתמש: המשתמש מזין את הקוד בממשק הניהול.
- החלפת מפתחות: לאחר האישור, השרת מנפיק למכשיר
deviceIdקבוע ותעודת גישה (או Token) לתקשורת MQTT.
פרוטוקול MQTT
המכשירים מתקשרים עם השרת באמצעות פרוטוקול MQTT מעל WebSockets.
- Broker: Mosquitto (רץ בקונטיינר Docker).
- Topics:
device/{deviceId}/command- שליחת פקודות למכשיר.device/{deviceId}/status- דיווח סטטוס מהמכשיר לשרת.device/{deviceId}/telemetry- שליחת נתוני ביצועים (CPU, RAM).
פתרון תקלות (Troubleshooting)
מכשיר Offline
מכשיר מסומן כ-Offline אם לא התקבל ממנו Heartbeat במשך X דקות (מוגדר ב-Config). בדיקות:
- האם המכשיר מחובר לרשת?
- האם שירות ה-Mosquitto בשרת פעיל? (
docker ps | grep mosquitto) - האם פורט 9001/1883 פתוח ב-Firewall?
פקודות לא מתבצעות
אם נשלחה פקודה (למשל צילום מסך) והיא לא בוצעה:
- בדוק את לוג הפקודות ב-DB (
CommandHistory). - ודא שהמכשיר מאזין ל-Topic הנכון.
- בדוק ב-Grafana את תור ההודעות ב-MQTT.