Λήψη ιστορικών δεδομένων
Τα ιστορικά δεδομένα κάθε συσκευής είναι σε αρχεία κειμένου (datalogs) στον διακομιστή συσκευών της. Κάθε αρχείο καλύπτει μία ημέρα, έναν μήνα ή όλο το ιστορικό. Χρειάζεστε δικαίωμα ανάγνωσης στη συσκευή.
Για εξαγωγή χωρίς κώδικα, χρησιμοποιήστε τις αναφορές της εφαρμογής. Δείτε τα δεδομένα σας.
Διαδικασία
Ενότητα με τίτλο «Διαδικασία»- Βρείτε τον διακομιστή της συσκευής. Καλέστε το
get_device_info.phpκαι διαβάστε το πεδίοdevice_server. Δείτε το REST API. - Βρείτε τη σειρά των στηλών. Καλέστε το
get_device_definitions.php?family_id=<οικογένεια>και διαβάστε τα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 |
<επίπεδο>.<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 | Δεν υπάρχουν δεδομένα για αυτό το αρχείο |
Επίπεδα και αριθμοί αρχείων
Ενότητα με τίτλο «Επίπεδα και αριθμοί αρχείων»Όλοι οι υπολογισμοί είναι σε ώρα UTC.
| Επίπεδο | Ένα αρχείο ανά | Υπολογισμός του bin | Παράδειγμα |
|---|---|---|---|
0 |
Ημέρα | floor(unix_seconds / 86400) |
14 Οκτωβρίου 2026 = 0.20740 |
1 |
Μήνα | (έτος - 1970) * 12 + (μήνας - 1) |
Οκτώβριος 2026 = 1.681 |
2 |
Όλο το ιστορικό | Πάντα m |
2.m |
Το επίπεδο 0 έχει όλες τις γραμμές της ημέρας. Το επίπεδο 1 έχει περίπου μία γραμμή ανά ημέρα. Το επίπεδο 2 έχει περίπου μία γραμμή ανά μήνα.
Η εφαρμογή χρησιμοποιεί το επίπεδο 0 για διαστήματα έως 7 ημέρες και το επίπεδο 1 για διαστήματα έως 5 μήνες. Για μεγαλύτερα διαστήματα χρησιμοποιεί το 2.m.
Μορφή των γραμμών
Ενότητα με τίτλο «Μορφή των γραμμών»Κάθε γραμμή είναι μία μέτρηση. Τα πεδία χωρίζονται με ;.
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
Ενότητα με τίτλο «Παράδειγμα σε 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Άλλος τρόπος
Ενότητα με τίτλο «Άλλος τρόπος»Ο διακομιστής MCP έχει το εργαλείο get_device_history. Δέχεται τα ίδια επίπεδα και bin.

