Αστέρια ΑνενεργάΑστέρια ΑνενεργάΑστέρια ΑνενεργάΑστέρια ΑνενεργάΑστέρια Ανενεργά
 

 

Το έργο openHAB χωρίζεται σε δύο μέρη: στο openhab εκτέλεσης, το οποίο θα τρέχει στην πραγματικότητα στον server σας και που κάνει την "πραγματική" δουλειά και το openhab σχεδιαστής που είναι περισσότερο ή λιγότερο ένα εργαλείο διαμόρφωσης για το χρόνο εκτέλεσης του openhab. Είναι φιλικό προς το χρήστη και χρησιμεύει για να ρυθμίσετε το χρόνο λειτουργίας, για να καθορίσει το περιβάλλον εργασίας του χρήστη σας και να εφαρμόσει τους κανόνες σας.

 

openHAB Runtime (εκτέλεσης)

Το runtime openHAB είναι ένα σύνολο από δέσμες[bundles] OSGi που έχει αναπτυχθεί σε ένα πλαίσιο (framework) OSGi (Equinox). Είναι, επομένως, μια καθαρή λύση σε Java και χρειάζεται ένα JVM (java virtual machine) για να τρέξει. Βασισμένη στο OSGi, παρέχει μια εξαιρετικά αρθρωτή αρχιτεκτονική, η οποία επιτρέπει ακόμη και την προσθήκη και την αφαίρεση κάποιας λειτουργικότητας κατά τη διάρκεια της εκτέλεσης, χωρίς διακοπή της υπηρεσίας. Στη επόμενη φωτογραφία φαίνεται μια επισκόπηση πάνω από τις κύριες δέσμες[bundles] και πώς εξαρτώνται η μια από την άλλη:

 

 

 


Επικοινωνία

Το openHAB έχει δύο διαφορετικά κανάλια εσωτερικής επικοινωνίας: μια ασύγχρονη αρτηρία(bus) συμβάντων (events) και μια stateful αποθήκη, η οποία μπορεί να αναζητηθεί.


Η αρτηρία συμβάντων (event bus)

Το event bus ή η αρτηρία των συμβάντων είναι η υπηρεσία βάσης του openHAB. Όλες οι δέσμες[bundles] που δεν απαιτούν stateful συμπεριφορά θα πρέπει να χρησιμοποιηθούν για να ενημερώσουν άλλες δέσμες[bundles] για τα γεγονότα και να ενημερωθούν από άλλες δέσμες[bundles] σε εξωτερικά γεγονότα. Υπάρχουν κυρίως δύο είδη των εκδηλώσεων: xommands που ενεργοποιούν μια ενέργεια ή μια αλλαγή κατάστασης από κάποιο αντικείμενο ή συσκευή και ενημερώσεις κατάστασης που ενημερώνουν για μία αλλαγή της κατάστασης κάποιου στοιχείου ή συσκευής (συχνά ως απάντηση σε μια εντολή).

Όλες οι δεσμεύσεις του πρωτοκόλλου (που παρέχουν τη σύνδεση με τις πραγματικές συσκευές υλικού) θα πρέπει να επικοινωνούν μέσω της αρτηρίας συμβάντος (event bus). Αυτό εξασφαλίζει ότι υπάρχει μία πολύ χαμηλή σύζευξη μεταξύ των δεσμίδων[bundles], πράγμα που διευκολύνει τη δυναμική φύση του openHAB.

Ως τεχνική βάση, η υπηρεσία OSGi EventAdmin χρησιμοποιείται από openHAB. Αυτή είναι μια παμπ-sub εφαρμογή ελαφριά και έτοιμη προς χρήση, η οποία ικανοποιεί πλήρως τις απαιτήσεις μας.

Είναι σημαντικό να σημειωθεί ότι το openHAB δεν έχει σκοπό να διαμένει κοντά τις πραγματικές συσκευές υλικού και ως εκ τούτου να επικοινωνούν από μακριά με πολλές άλλες κατανεμημένες περιπτώσεις openHAB. Αντ 'αυτού, το openHAB χρησιμεύει μάλλον ως κόμβος ολοκλήρωσης μεταξύ τέτοιων συσκευών και ως μεσολαβητής μεταξύ των διαφόρων πρωτοκόλλων που μιλιούνται μεταξύ αυτών των συσκευών. Σε μία τυπική εγκατάσταση συνεπώς, θα υπάρχει συνήθως μόνο ένα παράδειγμα από openHAB που θα εκτελείται σε κάποιο κεντρικό server. Παρ 'όλα αυτά, καθώς η υπηρεσία OSGi EventAdmin μπορεί επίσης να χρησιμοποιηθεί και ως μια απομακρυσμένη υπηρεσία, επίσης είναι δυνατόν να συνδέσετε πολλές περιπτώσεις openHAB που διανέμονται μέσω της αρτηρίας συμβάντων.

 

αποθετήριο στοιχείο (Ιtem Repository)

Όλες οι λειτουργίες δεν μπορούν να καλύπτονται αποκλειστικά από υπηρεσίες απώλειας κατάστασης. Για αυτόν τον λόγο το openHAB προσφέρει το αποθετήριο Στοιχείο (item repository), το οποίο είναι συνδεδεμένο με το Event bus και παρακολουθεί την τρέχουσα κατάσταση όλων των στοιχείων. Το item repository μπορεί να χρησιμοποιηθεί όποτε είναι απαραίτητο, και είναι σε θέση να έχουν πρόσβαση στην τρέχουσα κατάσταση των αντικειμένων. Π.χ. σε μια διεπαφή χρήστη θα πρέπει να εμφανίσετε την τρέχουσα κατάσταση των στοιχείων τη στιγμή της πρόσβασης του χρήστη. Επίσης, η λογική μηχανή εκτέλεσης αυτοματισμών(automation logic execution engine) πάντα χρειάζεται να ενημερώνεται σχετικά με τις τρέχουσες καταστάσεις. Το item repository αποφεύγει κάθε έκαστη δέσμη[bumdle] στη μνήμη cache για να υπάρχει εσωτερική χρήση. Εξασφαλίζει επίσης ότι η γενική κατάσταση είναι σε συγχρονισμό για όλες αυτές τις δέσμες[bundles] και παρέχει τη δυνατότητα να εξακολουθούν να υφίστανται οι καταστάσεις των στοιχείων στο σύστημα αρχείων ή σε μια βάση δεδομένων, έτσι ώστε να κρατιούνται στη μνήμη ακόμη και σε επανεκκίνηση του συστήματος.

Το παρακάτω διάγραμμα δείχνει πώς χρησιμοποιούνται αυτά τα κανάλια επικοινωνίας:

 

 

 


  Χάρτης (sitemap)

To openHAB έρχεται με μια γενική διαμόρφωση του κειμένου για τις διεπαφές των χρηστών του: το λεγόμενο Χάρτης. Το sitemap είναι μια δομή δέντρου των widgets, οι οποίες καθορίζουν τις διαφορετικές σελίδες ενός UI(user interface) και το περιεχόμενό τους. Tα Widgets μπορεί να συνδεθούν με τα στοιχεία, για τα οποία θα πρέπει να δείχνουν την κατάσταση τους ή και τα στοιχεία ελέγχου.

Ο ορισμός του Sitemap είναι μια απόλυτη περίληψη που προκύπτει από το σχεδιασμό που υποτίθεται ότι είναι ένα κατάλληλο περιβάλλον μοντέλο UI(user interface), για τα διάφορα είδη των διεπαφών του χρήστη, έτσι ώστε ο χρήστης δεν χρειάζεται να ρυθμίζει το καθένα από αυτά σε περίπτωση που αυτός δημιουργεί πολλαπλά περιβάλλοντα εργασίας χρήστη. Εάν ένα UI(user interface) έχει περαιτέρω απαιτήσεις πάνω από το sitemap, είναι ακόμα δυνατό να εισαγάγει πρόσθετες επιλογές διαμόρφωσης που είναι ειδικά για τo εν λόγω UI(user interface).

 

Πάροχοι Στοιχείο UI(Item UI Providers)

Oι πάροχοι στοιχείου UI(user interface) προσφέρουν έναν δυναμικό τρόπο για να ρυθμίσετε το UI(user interface), έτσι ώστε να μην πρέπει να αποθηκεύονται τα πάντα στατικά στο Χάρτη ιστοτόπου. Ο πάροχος στοιχείου UI μπορεί για παράδειγμα να ορίζει, ποια widget θα πρέπει να χρησιμοποιούνται για ένα αντικείμενο, αν δεν έχει καθοριστεί ακόμη και να ορίσετε δυναμικά εικονίδια και ετικέτες (η οποία μπορεί να εξαρτάται από την τρέχουσα κατάσταση του αντικειμένου) για τα widgets.

Μια σημαντική περίπτωση χρήσης για αυτό το χαρακτηριστικό είναι η δυναμική εμφάνιση των ομάδων στοιχείο - το μόνο που υπάρχει αποθηκευμένο στο Χάρτη ιστοτόπου είναι η πληροφορία ότι θα πρέπει να εμφανίζεται μια συγκεκριμένη ομάδα. Η σελίδα στη συνέχεια συναρμολογείται δυναμικά κατά το χρόνο εκτέλεσης με ό,τι στοιχεία είναι διαθέσιμα εκείνη τη στιγμή.

 

openHAB Σχεδιαστής

Ο σχεδιαστής openHAB είναι μια εφαρμογή RCP Eclipse για τη διαμόρφωση του χρόνου εκτέλεσης του openHAB. Έρχεται με τους συντάκτες για αρχεία ρυθμίσεων, όπως το sitemap. Μεγάλο πλεονέκτημα έναντι των απλών επεξεργαστών κειμένου, είναι η πλήρης υποστήριξη IDE όπως έλεγχος, σύνταξη, αυτόματη συμπλήρωση, αναδεικνύοντας και το περιεχόμενο για να βοηθήσει το χρήστη δημιουργό. Επίσης, προορίζεται να εφαρμόσει και να αναπτύξει κανόνες για αυτόματες ενέργειες.

 

Προσθήκη νέου σχολίου


Κωδικός ασφαλείας
Ανανέωση