Ενσωμάτωση HTTP
Το πρωτόκολλο HTTP ενσωματώνει συσκευές και υπηρεσίες που χρησιμοποιούν απλό HTTP: REST API, υπηρεσίες cloud με τοπικό API ή απλά δικτυακά ρελέ. Λειτουργεί σε δύο κατευθύνσεις:
- Εξερχόμενα αιτήματα — όταν αλλάζει η τιμή ενός widget, το HyperVisu στέλνει ένα αίτημα (έλεγχος συσκευής ή κλήση webhook).
- Περιοδική ανάγνωση — το HyperVisu ζητά περιοδικά μια URL και εξάγει μια τιμή από την απόκριση σε ένα αντικείμενο widget.
Συνδέσεις. Ενεργοποιήστε πρώτα το HTTP Protocol στη σελίδα Services (βλ. «Υπηρεσίες και πρωτόκολλα»)· σε νέο διακομιστή είναι απενεργοποιημένο. Το HTTP υποστηρίζει πολλές συνδέσεις: μία ανά Base URL, καθεμία με δικά της Poll Interval (seconds), Timeout (ms) και αυθεντικοποίηση (βλ. «Συνδέσεις»). Το χρονικό όριο είναι σε χιλιοστά του δευτερολέπτου, από 1000 έως 120000· αν μείνει κενό, το αίτημα περιμένει 30 δευτερόλεπτα.
Επιλέξτε το Authentication Type που απαιτεί το API. Η αλλαγή τύπου αδειάζει όλα τα πεδία διαπιστευτηρίων.
| Authentication Type | Στοιχεία προς συμπλήρωση | Τρόπος αποστολής |
|---|---|---|
| None | Χωρίς διαπιστευτήρια. | Δεν προστίθεται τίποτα. |
| API Key (Header) | Header Name και API Key. | Κεφαλίδα με αυτό το όνομα και το κλειδί. |
| API Key (Query Parameter) | Query Parameter και API Key. | Προστίθενται στην URL κάθε αιτήματος. |
| Basic Authentication | Username και Password. | Η τυπική κεφαλίδα εξουσιοδότησης Basic. |
| Bearer Token | Bearer Token. | Η τυπική κεφαλίδα εξουσιοδότησης Bearer. |
| Custom Headers | Μία γραμμή ανά κεφαλίδα, με όνομα και τιμή· το Add Header προσθέτει γραμμή. | Κάθε γραμμή, σε κάθε αίτημα. |
Συμπληρώστε και τα δύο πεδία κάθε ζεύγους: ζεύγος με ένα κενό πεδίο δεν αποστέλλεται. Τα API Key, Password και Bearer Token αποκρύπτονται στον επεξεργαστή· οι τιμές στο Custom Headers εμφανίζονται ως απλό κείμενο.
Μια σύνδεση HTTP δεν διαθέτει κουμπί Test. Η κατάστασή της παραμένει State unknown μέχρι ένα συνδεδεμένο αντικείμενο να ανταλλάξει αίτημα· κατόπιν το Connected σημαίνει ότι έγινε αποδεκτό το τελευταίο αίτημα και το No reply since εμφανίζεται μετά από αποτυχία.
📘 Σημείωση: Διάστημα περιοδικής ανάγνωσης
0κάνει τη σύνδεση μόνο για εγγραφή — δεν γίνεται ανάγνωση, αποστέλλονται μόνο εξερχόμενα αιτήματα. Κενό διάστημα σημαίνει επίσης ότι το τελικό σημείο δεν διαβάζεται ποτέ: πληκτρολογήστε την τιμή, το γκρι60είναι απλώς υπόδειξη.
Σύνδεση αντικειμένου. Ανά αντικείμενο ορίζετε τα Path και HTTP Method και, για περιοδικά αναγνωσμένες τιμές, τον τρόπο εξαγωγής της μέτρησης από την απόκριση με τα Parse Method και Parse Path:
- JSON — διαδρομή με σύνταξη τελείας και πίνακα, π.χ.
data.sensors[0].temperature. Αρνητικός δείκτης όπως[-1]διαβάζει το τελευταίο στοιχείο· φίλτρα και χαρακτήρες μπαλαντέρ δεν υποστηρίζονται. - Pattern Matching — για αποκρίσεις που δεν είναι JSON. Το Parse Path πρέπει να αρχίζει με
PATTERN=, για παράδειγμαPATTERN=Temp:\s\v. Η αλλαγή μεθόδου ανάλυσης αδειάζει το Parse Path, επομένως συμπληρώστε το αφού επιλέξετε τη μέθοδο.
Για εξερχόμενα αιτήματα ορίστε το HTTP Method σε POST ή PUT και επιλέξτε το Content Type. Το Request Body Template είναι πρότυπο στο οποίο το ${value} αντικαθίσταται με την αποστελλόμενη τιμή, π.χ. {"state": ${value}}.
📘 Σημείωση: Η περιοδική ανάγνωση στέλνει πάντα GET στο Path του αντικειμένου. Αντικείμενο POST ή PUT στέλνει αίτημα μόνο όταν αλλάζει η τιμή του.
Πρακτικό παράδειγμα — ποιότητα εξωτερικού αέρα από API τοπικού αισθητήρα
Ένας τοπικός μετρητής ποιότητας αέρα παρέχει το GET http://192.168.1.140/api/current, επιστρέφει {"pm25": 8.4, "aqi": 35} και απαιτεί το κλειδί API σε κεφαλίδα X-Api-Key.
- Δημιουργήστε σύνδεση HTTP: Base URL
http://192.168.1.140, Poll Interval (seconds)60, Timeout (ms)5000, Authentication Type API Key (Header), Header NameX-Api-Key, το κλειδί στο API Key (βλ. «Συνδέσεις»). - Στο Devices, προσθέστε widget Analog Input «Ποιότητα αέρα». Στο Protocol, επιλέξτε τη σύνδεση HTTP σας, που εμφανίζεται με το όνομα που της δώσατε.
- Στο αντικείμενο τιμής ορίστε το Path σε
/api/current, αφήστε το HTTP Method σε GET και το Parse Method σε JSON και εισαγάγετεaqiστο Parse Path. - Πατήστε Save object, έπειτα Apply changes στην πλαϊνή γραμμή και επιβεβαιώστε. Η μέτρηση ενημερώνεται κάθε λεπτό· ορίστε μονάδες και δεκαδικά στο αντικείμενο (βλ. «Ρυθμίσεις αντικειμένων, καταγραφή και ειδοποιήσεις»).
- Μετά την επόμενη ανάγνωση, ελέγξτε ότι η σύνδεση εμφανίζει Connected στη σελίδα Connections και συγκρίνετε το widget με την πραγματική απόκριση του API.

Σύνδεση HTTP
Τα αντικείμενα HTTP ρυθμίζονται επίσης στο παράθυρο ρυθμίσεων αντικειμένου (βλ. «Ρυθμίσεις αντικειμένων, καταγραφή και ειδοποιήσεις»). Η ενότητα HTTP ορίζει ένα αίτημα ανά αντικείμενο:
| Πεδίο | Περιγραφή |
|---|---|
| Path | Προστίθεται στη βασική URL της σύνδεσης (π.χ. weather?q=London). |
| HTTP Method | GET, POST ή PUT. |
| Content Type | Για POST/PUT: JSON, TEXT ή FORM. Τα JSON και FORM ορίζουν την αντίστοιχη κεφαλίδα τύπου περιεχομένου· το TEXT δεν στέλνει καμία. |
| Parse Method | JSON — η απόκριση είναι JSON και το Parse Path προσδιορίζει την τιμή. Pattern Matching — η απόκριση είναι κείμενο και το Parse Path περιέχει μοτίβο. Η ενσωματωμένη βοήθεια σύνταξης τεκμηριώνει και τα δύο. Η αλλαγή μεθόδου ανάλυσης αδειάζει το Parse Path, επομένως επιλέξτε πρώτα τη μέθοδο. |
| Parse Path | Με JSON: απλή διαδρομή — σημειογραφία τελείας (data.power), δείκτης πίνακα (sensors[0]), αρνητικός δείκτης ([-1] για το τελευταίο στοιχείο) και προαιρετικό αρχικό $.. Φίλτρα και χαρακτήρες μπαλαντέρ δεν υποστηρίζονται. Με Pattern Matching: το μοτίβο, που πρέπει να αρχίζει με PATTERN= — π.χ. PATTERN=Temp:\s\v. |
| Request Body Template | Για POST/PUT: το σώμα προς αποστολή, με το ${value} ως σύμβολο κράτησης θέσης για την τιμή που εγγράφεται — π.χ. {"state":${value}}. |
Η ανάγνωση χρησιμοποιεί το διάστημα περιοδικής ανάγνωσης της σύνδεσης· διάστημα 0 κάνει το τελικό σημείο μόνο για εγγραφή (βλ. «Συνδέσεις»). Η περιοδική ανάγνωση στέλνει πάντα GET στο Path του αντικειμένου· αντικείμενο POST ή PUT στέλνει το αίτημά του μόνο όταν αλλάζει η τιμή του. Πρακτικό παράδειγμα υπάρχει στο κεφάλαιο HTTP.