Import Tool
FTP συγκεντρωτών[επεξεργασία]
Σε κάθε έργο δίνουμε ένα FTP Account που αντιστοιχεί σε έναν FTP folder. Οι συγκεντρωτές αρχικά θα πρέπει να σεταριστούν ώστε να στέλνουν τα αρχεία σε αυτόν τον φάκελο. Συχνά κατά το test σύνδεσης αφήνουν κάποια αρχεία TEST.
Κάθε Χ ώρα οι συγκεντρωτές ανοίγουν μια FTP συνεδρία και αποστέλνουν αρχεία CSV. τα αρχεία CSV περιέχουν μετρήσεις μετρητών. Κάθε συγκεντρωτής έχει την δική του γραμμογράφηση και για αυτό κάθε τύπος συγκεντρωτή πρέπει να έχει δικό του FTP Account ανά τύπο ανά έργο, ώστε να γίνεται σωστά η γραμμογράφηση και το ματσάρισμα των στηλών.
Κάθε γραμμή των αρχείων περιέχει μία μέτρηση. Εξαιρείται η πρώτη γραμμή που περιέχει τις επικεφαλίδες. Συνήθως οι στάνταρ στήλες είναι ο κωδικός του υδρομέτρου, η ημερομηνία και ώρα μέτρησης (μπορεί δηλαδή να είναι διαφορετική από την αποστολή του αρχείου) και η τιμή κατάμετρησης.
Το όνομα του αρχείου αποτελείται από τον μοναδικό κωδικό του συγκεντρωτή, τον τύπο της καταγραφής αρχείου RDS/RAW και την ημερομηνία. Π.χ.: GTW_0479B7AF9EA6_RAW_20220302_030000.csv
Η συνήθης διαδικασία εισαγωγής μετρήσεων από συστήματα όπως είναι το SmartVille, είναι:
- Κάθε 1 ώρα γίνεται ένα FTP listing και επιλέγονται τα CSV αρχεία
- Ανά CSV αρχείο γίνεται η ανάγνωση γραμμή προς γραμμή και
- Ανάλογα το ματσάρισμα δημιουργείται η εγγραφή στις μετρήσεις
- Όταν ολοκληρωθεί η διαδικασία το αρχείο μεταφέρεται στον φάκελο READ
στην περίπτωση που μέσα στον φάκελο READ υπάρχει άλλος φάκελος READ σημαίνει πως μια 2η μηχανή όπως το SmartVille σαρώνει και αποθηκεύει μετρήσεις από τον συγκεκριμένο FTP.
CSV από FTP ασυγκέντρωτων Sensus[επεξεργασία]
Για να ξεκινήσει η διαδικασία σάρωσης θα πρέπει να δημιουργηθεί μια νέα ρύθμιση CSV όπου θα είναι συμπληρωμένα οι FTP ρυθμίσεις, μία επιλογή στο ρυθμίσεις επανάληψης και το ματσάρισμα των πεδίων:
{
"code": "METER_ADDRESS", "READING_DATE": "READING_DATE", "LEAK_ALR": "LEAK_ALR", "collector_id": "collector_id", "BACK_FLOW_ALR": "BACK_FLOW_ALR", "EMPTY_PIPE_ALR": "EMPTY_PIPE_ALR", "BROKEN_PIPE_ALR": "BROKEN_PIPE_ALR", "LOW_BATTERY_ALR": "LOW_BATTERY_ALR", "METER_ERROR_ALR": "METER_ERROR_ALR", "READING_VALUE_L": "READING_VALUE_L", "SPECIFIC_ERROR_ALR": "SPECIFIC_ERROR_ALR", "MAGNETIC_TAMPER_ALR": "MAGNETIC_TAMPER_ALR"
}
- όπου collector_id το πρόγραμμα υπολογίζει μόνο του από το όνομα του αρχείο τον κωδικό του συγκεντρωτή.
Τεχνική επεξήγηση συγκεντρωτών SENSUS[επεξεργασία]
Όσον αφορά τους συγκεντρωτές της SENSUS:
1. Οι συγκεντρωτές μπορούν να παράξουν 2x2 = 4 ειδών αρχεία *.csv, ανάλογα (a) με το πρωτόκολλο που διαβάζουν και (b) εάν γίνεται αποκρυπρογράφηση στον συγκεντρωτή.
- _RDS_ που είναι αποκρυπτογραφημένα αρχείο, για όσες συσκευές λαμβάνει που εκπέμπουν σε SRF, SensusRF πρωτόκολλο , iPerl, 640) και το κλειδί ταιριάζει με αυτό που ΕΧΕΙ προγραμματιστεί στο συγκεντρωτή
- _RAW_ που είναι κρυπτογραφημένα αρχεία, για όσες συσκευές λαμβάνει που εκπέμπουν σε SRF, SensusRF πρωτόκολλο (iPerl, 640) και το κλειδί ΔΕΝ ταιριάζει με αυτό που ΕΧΕΙ προγραμματιστεί στο συγκεντρωτή
- _OMS_RDS_ που είναι αποκρυπτογραφημένα αρχεία, για όσες συσκευές λαμβάνει που εκπέμπουν σε OMS πρωτόκολλο (axioma, holosys, apator … ) και το κλειδί ταιριάζει με αυτό που ΕΧΕΙ προγραμματιστεί στο συγκεντρωτή
- _OMS_RAW_ που είναι κρυπτογραφημένα αρχεία, για όσες συσκευές λαμβάνει που εκπέμπουν OMS πρωτόκολλο (axioma, holosys, apator … ) και το κλειδί ΔΕΝ ταιριάζει με αυτό που ΕΧΕΙ προγραμματιστεί στο συγκεντρωτή
2. Σε ένα συγκεντρωτή μπορεί να είναι ενεργοποιημένα και τα δυο πρωτόκολλα (αυτό ισχύει για τον συγκεντρωτή στα Βριλλήσια που επισήμανες, θα το αναλύσω παρακάτω)
3. Στον συγκεντρωτή μπορεί να προγραμματιστεί ΜΟΝΟ ΕΝΑ ΚΛΕΙΔΙ που ισχύει ΚΑΙ ΓΙΑ ΤΑ ΔΥΟ ΠΡΩΤΟΚΟΛΛΑ. Ότι δεν αποκρυπτογραφείται με αυτό το κλειδί θα καταλήξει σε _RAW_ ή _OMS_RAW_ αρχείο
4. Υπάρχει δυνατότητα προγραμματισμού WHITELIST RANGES στους συγκεντρωτές (βάσει της οποίας κόβονται όσοι μετρητές ΔΕΝ ΕΧΟΥΝ radio address εντός των ranges), που μπορεί να περιόριζε αρκετά το πρόβλημα, όμως, όσες φορές έχουμε δοκιμάσει δεν έχει συμπεριφερθεί σωστά, (και θα δημιουργούσε και κάποια επιπλέον προβλήματα μετά από αντικαταστάσεις μετρητών) και προς το παρόν το αποφεύγουμε. Θα γίνουν επιπλέον δοκιμές σε αυγό το θέμα.
5. Εάν ένα τηλεγράφημα δεν μπορεί να το αποκρυπτογραφήσει ο συγκεντρωτής θα το στείλει σε ένα RAW αρχείο, οπότε δεν μπορούμε να τα αποφύγουμε.
Όσον αφορά τους μετρητές, κάποιοι μπορεί να εκπέμπουν και στα δυο πρωτόκολλά (iPerl, 640, holosys ), οπότε εάν σε ένα συγκεντρωτή είναι ενεργοποιημένα και τα δυο πρωτόκολλά τότε οι ίδιοι μετρητές (με λίγο διαφοροποιημένο radio addresses) θα εμφανιστούν και στα SRF και στα OMS .csv αρχεία
CSV από FTP συγκεντρωτών (Powogaz/Axioma)[επεξεργασία]
Στην περίπτωση που τα υδρόμετρα είναι Powogaz ή Axioma και ο συγκεντρωτής είναι της Sensus τότε τα CSV αρχεία που περιέχουν στο όνομα αρχείου το RDS θα είναι κενά, και μόνο τα RAW αρχεία θα περιέχουν πληροφορίες όπως είναι το telegram. Σε μία τέτοια περίπτωση το ματσάρισμα των πεδίων για τους συναγερμούς γίνεται με πεδία που τα ονόματα τους είναι μικρά-πεζά και λείπει το Reading Value καθώς αυτό βρίσκεται μέσα στο telegram χωρίς όνομα πεδίου.
τα ματσαρισμένα πεδία είναι:
{
"code": "METER_ADDRESS", "READING_DATE": "READING_DATE", "LEAK_ALR": "Leak", "BACK_FLOW_ALR": "ReverseFlow", "EMPTY_PIPE_ALR": "AbsentFlow", "BROKEN_PIPE_ALR": "Burst", "LOW_BATTERY_ALR": "BatteryLow", "MAGNETIC_TAMPER_ALR": "Tamper"
}