HTTP API
Προγραμματιστική πρόσβαση σε συσκευές
Lefteris Chatzipetrou
Τελευταία Ενημέρωση 3 μήνες πριν
Εισαγωγή
Κάθε συσκευή μας έχει έναν αύξοντα αριθμό της μορφής F:S (π.χ. 12:34). Το μέρος F του σειριακού αριθμού είναι η οικογένεια προϊόντος και είναι κοινό σε παρόμοιες συσκευές. Για παράδειγμα, όλες οι συσκευές DinSwitch έχουν σειριακό αριθμό με τη μορφή 12:S, ενώ όλες οι συσκευές Plug έχουν 14:S κ.ο.κ. Το S είναι ένας αύξων αριθμός, μοναδικός για κάθε συσκευή εντός της ίδιας οικογένειας. Ο σειριακός αριθμός μιας συσκευής είναι το αναγνωριστικό που χρησιμοποιείται από τον διακομιστή, το UI και τα τελικά σημεία API. Παραδείγματα σειριακών αριθμών είναι τα εξής: 12:4, 12:7, 14:20, 8:4.
Για κάθε συσκευή δημιουργούνται δύο τυχαία κλειδιά. Το ένα είναι το device_key και είναι ο κωδικός πρόσβασης WPA του σημείου πρόσβασης (AP) και χρησιμοποιείται επίσης για την καταχώρηση μιας συσκευής. Το δεύτερο κλειδί είναι μια μακρά ακολουθία που χρησιμοποιεί ο διακομιστής για να πιστοποιήσει τη σύνδεση μιας συσκευής και η συσκευή για να πιστοποιήσει τον διακομιστή.
Όλες οι επικοινωνίες και οι αλληλεπιδράσεις με τις συσκευές πραγματοποιούνται μέσω του διακομιστή από προεπιλογή. Υπάρχει η δυνατότητα αποστολής αιτημάτων HTTP με εντολές συσκευής απευθείας στις συσκευές στη διεύθυνση IP τους, μόλις συνδεθούν σε ένα τοπικό δίκτυο, αλλά είναι απενεργοποιημένη από προεπιλογή για λόγους ασφαλείας. Ο διακομιστής πιστοποιεί τις συσκευές, πιστοποιεί τους πελάτες και διαβιβάζει εντολές και δεδομένα μεταξύ των δύο. Ο διακομιστής χειρίζεται, μεταξύ άλλων, την καταγραφή δεδομένων και την αξιολόγηση κανόνων.
Έλεγχος ταυτότητας
Ο συνδεδεμένος χρήστης καθορίζεται από τον διακομιστή, χρησιμοποιώντας ένα παρεχόμενο api_key ή ένα access_token μέσω των παραμέτρων COOKIE, POST ή GET. Σε περίπτωση που το access_token ή το api_key παρέχονται πολλές φορές, το api_key έχει προτεραιότητα έναντι του access_token και στη συνέχεια, οι παράμετροι GET έχουν την υψηλότερη προτεραιότητα, οι παράμετροι POST είναι οι επόμενες και τελευταίες είναι οι παράμετροι COOKIE.
Ένα διακριτικό πρόσβασης (access token) δημιουργείται με τον τρόπο OAuth2 όταν ένας χρήστης συνδέεται χρησιμοποιώντας το email και τον κωδικό πρόσβασής του. Πολλαπλά access_tokens μπορούν να είναι ενεργά μέχρι ένα ορισμένο όριο. Όταν ξεπεραστεί αυτό το όριο, τα παλαιότερα access_tokens αντικαθίστανται και ακυρώνονται. Τα access tokens έχουν επίσης ημερομηνία λήξης. Αυτό σημαίνει ότι τα access tokens είναι προσωρινά.
Από την άλλη πλευρά, ένα api_key δεν λήγει ποτέ, αλλά κάθε λογαριασμός χρήστη περιορίζεται σε ένα μόνο. Μπορείτε να δημιουργήσετε ένα κλειδί api_key (το οποίο θα αντικαταστήσει το ήδη υπάρχον), επισκεπτόμενοι την ενότητα λογαριασμού χρήστη στον ιστότοπο της HAM και χρησιμοποιώντας την επιλογή "generate API key".
/get_user_devices.php
Επιστρέφει πληροφορίες για τη συσκευή του χρήστη, συμπεριλαμβανομένων των κατόψεων, των ομάδων και των δικαιωμάτων.
Παράμετροι [GET/POST]
- access_token ή api_key
Απόκριση:
/device_command.php
Παράμετροι: [GET/POST]
- "access_token ή api_key" - Για έλεγχο ταυτότητας
- "serialno" - Σειριακός αριθμός της συσκευής
- "command" - η εντολή που πρέπει να σταλεί στη συσκευή
Αποκρίσεις:
Παράδειγμα για "serialno = 12:0, command = READ"
Η απόκριση περιλαμβάνει την "τρέχουσα" κατάσταση της συσκευής.