הורדת נתונים היסטוריים
הנתונים ההיסטוריים של כל מכשיר נמצאים בקובצי טקסט (datalogs) בשרת המכשירים שלו. כל קובץ מכסה יום אחד, חודש אחד או את כל ההיסטוריה. אתם צריכים הרשאת קריאה על המכשיר.
לייצוא בלי קוד, השתמשו בדוחות של האפליקציה. ראו הנתונים שלכם.
- מצאו את השרת של המכשיר. קראו ל-
get_device_info.phpוקראו את השדהdevice_server. ראו REST API. - מצאו את סדר העמודות. קראו ל-
get_device_definitions.php?family_id=<family>וקראו אתreadingsואתoutput_names. - חשבו את הרמה ואת מספר הקובץ (bin) עבור התקופה שאתם רוצים.
- הורידו כל קובץ מהשרת של המכשיר.
- חברו את השורות, מיינו אותן לפי חותמת הזמן ומלאו את השדות הריקים.
curl --compressed \ -H "Authorization: Bearer-API YOUR_API_KEY" \ "https://DEVICE_SERVER/datalogs.php?serialno=e11:123&id=0.20740&ver=2"החליפו את DEVICE_SERVER בערך של השדה device_server של המכשיר.
| פרמטר | ערך |
|---|---|
serialno |
המספר הסידורי של המכשיר |
id |
<level>.<bin>, לדוגמה 0.20740 |
ver |
2 |
לאימות, שלחו את הכותרת Authorization: Bearer-API YOUR_API_KEY או Authorization: Bearer YOUR_ACCESS_TOKEN.
השרת יכול לשלוח את הקובץ דחוס (gzip או br). האפשרות --compressed של curl פותחת את הדחיסה.
| קוד HTTP | משמעות |
|---|---|
| 200 | הקובץ, בתור text/plain |
| 400 | serialno או id שגויים |
| 403 | אין לכם הרשאת קריאה על המכשיר |
| 404 | אין נתונים לקובץ הזה |
רמות ומספרי קבצים
Section titled “רמות ומספרי קבצים”כל החישובים משתמשים ב-UTC.
| רמה | קובץ אחד לכל | חישוב ה-bin | דוגמה |
|---|---|---|---|
0 |
יום | floor(unix_seconds / 86400) |
14 באוקטובר 2026 = 0.20740 |
1 |
חודש | (year - 1970) * 12 + (month - 1) |
אוקטובר 2026 = 1.681 |
2 |
כל ההיסטוריה | תמיד m |
2.m |
ברמה 0 יש את כל השורות של היום. ברמה 1 יש בערך שורה אחת לכל יום. ברמה 2 יש בערך שורה אחת לכל חודש.
האפליקציה משתמשת ברמה 0 לתקופות של עד 7 ימים וברמה 1 לתקופות של עד 5 חודשים. לתקופות ארוכות יותר היא משתמשת ב-2.m.
פורמט השורה
Section titled “פורמט השורה”כל שורה היא מדידה אחת. השדות מופרדים ב-;.
timestamp;reading1;reading2;...;readingN;output1;...;outputM- ה-
timestampהוא שניות unix (UTC). יכולות להיות לו ספרות אחרי הנקודה העשרונית. - אחריו באות המדידות, לפי הסדר של
readingsשל המשפחה. - אחריהן באים הפלטים, לפי הסדר של
output_names. - שדה ריק אומר שהערך לא השתנה. השתמשו בערך האחרון משורה קודמת.
- הערך
2147483648אומר שהמדידה חסרה. - השורות לא תמיד ממוינות. מיינו אותן לפי
timestamp.
למכשיר מהמשפחה e11 יש readings = ["T", "GI", "GIC", "GI2", "GI2C"] ואין פלטים.
1791936198.977;2120;1;0;1;0| שדה | ערך | משמעות |
|---|---|---|
| timestamp | 1791936198.977 |
זמן המדידה |
T |
2120 |
21.20 °C, כי ההמרה של T היא divide_by_100 |
GI |
1 |
המצב של הכניסה הראשונה |
GIC |
0 |
המונה של הכניסה הראשונה |
GI2 |
1 |
המצב של הכניסה השנייה |
GI2C |
0 |
המונה של הכניסה השנייה |
את ההמרות ואת היחידות אתם מוצאים במילון readings של ההגדרות. ראו REST API.
דוגמה ל-shell
Section titled “דוגמה ל-shell”הדוגמה הזו מורידה את 3 הימים האחרונים של מכשיר.
SERVER=DEVICE_SERVERSN=e11:123TODAY=$(( $(date -u +%s) / 86400 ))for BIN in $(seq $((TODAY - 2)) $TODAY); do curl -s --compressed \ -H "Authorization: Bearer-API YOUR_API_KEY" \ "https://$SERVER/datalogs.php?serialno=$SN&id=0.$BIN&ver=2"done | sort -t';' -k1,1nשיטה אחרת
Section titled “שיטה אחרת”לשרת ה-MCP יש את הכלי get_device_history. הוא מקבל את אותן רמות ואת אותם bins.

