Λυπούμαστε, το πρόγραμμα περιήγησής σας δεν υποστηρίζει JavaScript!
Σύνδεση

Τοπικό API ιστορικού ενέργειας για ενδείξεις kWh

title: Τοπικό API ιστορικού ενέργειας για ενδείξεις kWh

abstract: Διαβάστε τοπικά το ιστορικό kWh ανά μισή ώρα για ανάλυση εκτός σύνδεσης.

language: el

author: Jessica

Εισαγωγή

Για χρήστες που κατασκευάζουν τους δικούς τους πίνακες ελέγχου, αυτοματισμούς ή εργαλεία ανάλυσης εκτός σύνδεσης, τα πραγματικά δεδομένα ενέργειας είναι πιο χρήσιμα όταν είναι διαθέσιμα σε σταθερό διάστημα. Μια μεμονωμένη μέτρηση ισχύος σε πραγματικό χρόνο μπορεί να δείξει τι συμβαίνει αυτή τη στιγμή, αλλά το ιστορικό kWh ανά μισή ώρα βοηθά τους χρήστες να κατανοήσουν πώς μεταβάλλονται με τον χρόνο η εισαγωγή και η εξαγωγή ηλεκτρικής ενέργειας.

Ξεκινώντας από την έκδοση firmware i.91.063TS8.bin, που κυκλοφόρησε στις 2 Ιουνίου 2026, το IAMMETER υποστηρίζει ένα νέο τοπικό API: GET /api/energyhistory. Αυτό το API επιστρέφει ενδείξεις kWh που είναι αποθηκευμένες τοπικά στην προσωρινή μνήμη και δειγματοληπτούνται γύρω από τα όρια της μισής ώρας σε UTC, διευκολύνοντας την ανάλυση της πρόσφατης κατανάλωσης ενέργειας χωρίς να βασίζεστε αποκλειστικά στο ιστορικό της πλατφόρμας cloud.

Αυτό είναι ιδιαίτερα χρήσιμο για την παρακολούθηση φωτοβολταϊκών, την παρακολούθηση ενέργειας στο σπίτι και προσαρμοσμένες ροές εργασίας διαχείρισης ενέργειας, όπου οι χρήστες θέλουν να συγκρίνουν δεδομένα ενέργειας εισαγωγής, εξαγωγής και ανά φάση. Το IAMMETER δεν είναι μόνο ένας μετρητής· ο σκοπός της συλλογής αυτών των δεδομένων είναι να βοηθήσει τους χρήστες να βελτιστοποιήσουν τη χρήση ενέργειας, να αυξήσουν την ιδιοκατανάλωση της ηλιακής ενέργειας και να μειώσουν τους λογαριασμούς ηλεκτρικού ρεύματος.

Τι παρέχει το API ιστορικού ενέργειας

Το νέο endpoint είναι:

GET /api/energyhistory

Επιστρέφει ενεργειακές ενδείξεις σε kWh, με δειγματοληψία γύρω από τα ακόλουθα όρια μισής ώρας σε UTC:

  • 00:00
  • 00:30
  • 01:00
  • 01:30
  • και ούτω καθεξής

Το firmware διατηρεί έως 96 εγγραφές, δηλαδή 48 ώρες ιστορικού σε διαστήματα 30 λεπτών. Οι εγγραφές αποθηκεύονται στη μνήμη RAM της μονάδας Wi-Fi, οπότε χάνονται μετά την επανεκκίνηση της συσκευής.

Μια τυπική απόκριση περιλαμβάνει:

  • utc: η τρέχουσα χρονική σήμανση UTC της μονάδας
  • timeSynced: αν η μονάδα διαθέτει έγκυρη ώρα UTC
  • interval: το διάστημα δειγματοληψίας, προς το παρόν 1800 δευτερόλεπτα
  • count: ο αριθμός των διαθέσιμων εγγραφών ιστορικού
  • order: προς το παρόν newest_first
  • unit: προς το παρόν kWh
  • channels: τα ονόματα καναλιών που αντιστοιχούν σε κάθε τιμή
  • Datas: οι εγγραφές ιστορικού ανά μισή ώρα

Κάθε στοιχείο στο Datas περιλαμβάνει μια χρονική σήμανση UTC και έναν πίνακα τιμών kWh. Οι τιμές ακολουθούν την ίδια σειρά με τον πίνακα channels.

Γιατί έχει σημασία το ιστορικό kWh ανά μισή ώρα

Τα δεδομένα ενέργειας ανά μισή ώρα είναι πρακτικά, επειδή δίνουν στους χρήστες μια συμπαγή αλλά ουσιαστική εικόνα της ενεργειακής συμπεριφοράς. Αντί να αποθηκεύουν κάθε σημείο σε πραγματικό χρόνο, οι χρήστες μπορούν να αναλύουν τις συσσωρευμένες τιμές εισαγωγής και εξαγωγής σε σταθερά χρονικά διαστήματα.

Για παράδειγμα, ένας χρήστης μπορεί να χρησιμοποιήσει τα τοπικά δεδομένα για να:

  • Εξετάσει την πρόσφατη εισαγόμενη και εξαγόμενη ενέργεια χωρίς να περιμένει αναφορές από το cloud.
  • Εξαγάγει τις τελευταίες 48 ώρες ενδείξεων kWh σε τοπική βάση δεδομένων ή αρχείο CSV.
  • Συγκρίνει τα μοτίβα εξαγωγής της ηλιακής ενέργειας με την κατανάλωση του νοικοκυριού.
  • Ελέγξει αν μια στρατηγική αυτοματισμού μεταβάλλει τη χρήση ηλεκτρικής ενέργειας σε συγκεκριμένες περιόδους.
  • Δημιουργήσει έναν τοπικό πίνακα ελέγχου για το πρόσφατο ιστορικό ενέργειας.

Για ευρύτερα σενάρια παρακολούθησης φωτοβολταϊκών, δείτε τη λύση παρακολούθησης ηλιακής ενέργειας IAMMETER. Για παρακολούθηση ηλεκτρικής ενέργειας σε κατοικίες, δείτε τη λύση παρακολούθησης ενέργειας στο σπίτι IAMMETER.

Υποστηριζόμενες διατάξεις καναλιών

Το πεδίο channels δείχνει στον πελάτη πώς να ερμηνεύει τις τιμές σε κάθε εγγραφή ιστορικού. Διαφορετικές διαμορφώσεις μετρητή επιστρέφουν διαφορετικές διατάξεις καναλιών.

Μονοφασικό

["imp", "exp"]

Διφασικό (split phase)

["a_imp", "a_exp", "b_imp", "b_exp"]

Τριφασικό

["a_imp", "a_exp", "b_imp", "b_exp", "c_imp", "c_exp"]

Τριφασικό με ενεργοποιημένη καθαρή μέτρηση (net metering)

["a_imp", "a_exp", "b_imp", "b_exp", "c_imp", "c_exp", "nem_imp", "nem_exp"]

Επειδή τα ονόματα των καναλιών επιστρέφονται στην απόκριση, το προσαρμοσμένο λογισμικό θα πρέπει πρώτα να διαβάζει τον πίνακα channels και στη συνέχεια να αντιστοιχίζει ανάλογα κάθε τιμή στο Datas[].values.

Παραδείγματα αρχικής απόκρισης του API

Τα δύο παραδείγματα που ακολουθούν δείχνουν τις αρχικές τιμές απόκρισης του API για μια κενή απόκριση και για μια απόκριση με δεδομένα.

Παράδειγμα κενής απόκρισης

Μετά την εκκίνηση της συσκευής, ο πίνακας ιστορικού μπορεί να είναι κενός μέχρι να υπάρξουν έγκυρη ώρα UTC και έγκυρα πλαίσια μετρητή. Σε αυτή την περίπτωση, το API μπορεί να επιστρέψει count: 0 και έναν κενό πίνακα Datas.

{
  "utc": 1780023600,
  "timeSynced": 1,
  "interval": 1800,
  "count": 0,
  "order": "newest_first",
  "unit": "kWh",
  "source": "wifi",
  "channels": ["a_imp", "a_exp", "b_imp", "b_exp", "c_imp", "c_exp"],
  "Datas": []
}

Αυτή η απόκριση είναι φυσιολογική μετά την εκκίνηση. Ένας τοπικός πίνακας ελέγχου ή ένα σενάριο θα πρέπει να χειρίζεται αυτή την κατάσταση και να περιμένει νέα δείγματα ανά μισή ώρα.

Παράδειγμα απόκρισης με δεδομένα

Το ακόλουθο παράδειγμα δείχνει δύο εγγραφές ανά μισή ώρα από έναν τριφασικό μετρητή. Η απόκριση είναι ταξινομημένη από τη νεότερη προς την παλαιότερη.

{
  "utc": 1780023700,
  "timeSynced": 1,
  "interval": 1800,
  "count": 2,
  "order": "newest_first",
  "unit": "kWh",
  "source": "wifi",
  "channels": ["a_imp", "a_exp", "b_imp", "b_exp", "c_imp", "c_exp"],
  "Datas": [
    {
      "utc": 1780023600,
      "values": [11.337, 11.201, 11.039, 10.908, 10.975, 10.846]
    },
    {
      "utc": 1780021800,
      "values": [11.330, 11.198, 11.030, 10.900, 10.970, 10.840]
    }
  ]
}

Στη νεότερη εγγραφή, το a_imp είναι 11.337 kWh, το a_exp είναι 11.201 kWh και ούτω καθεξής. Η σημασία κάθε τιμής καθορίζεται από τον πίνακα channels.

Χρήση των τιμών απόκρισης σε λογισμικό

Τα παραδείγματα αρχικών αποκρίσεων παραπάνω αρκούν για τη δημιουργία απλής τοπικής λογικής ανάλυσης. Το κλειδί είναι να διαβάσετε πρώτα το channels και στη συνέχεια να εφαρμόσετε αυτή τη σειρά σε κάθε στοιχείο του Datas.

Αντιστοίχιση channels σε values

Όταν αναπτύσσετε λογισμικό γύρω από αυτό το API, αποφύγετε τη σκληρή κωδικοποίηση θέσεων, εκτός αν η διαμόρφωση του μετρητή είναι σταθερή. Μια ασφαλέστερη προσέγγιση είναι να μετατρέψετε τη λίστα καναλιών και τον πίνακα τιμών σε ένα αντικείμενο με ονόματα.

const response = await fetch("http://<meter-ip>/api/energyhistory").then((res) => res.json());
const latest = response.Datas[0];

const latestByChannel = Object.fromEntries(
  response.channels.map((name, index) => [name, latest.values[index]])
);

console.log(latest.utc, latestByChannel);

Για το δείγμα τριφασικής απόκρισης παραπάνω, το latestByChannel θα περιείχε:

{
  "a_imp": 11.337,
  "a_exp": 11.201,
  "b_imp": 11.039,
  "b_exp": 10.908,
  "c_imp": 10.975,
  "c_exp": 10.846
}

Αυτό κάνει τα δεδομένα ευκολότερα στην αποθήκευση, την εμφάνιση ή την εξαγωγή σε ένα τοπικό εργαλείο ανάλυσης.

Υπολογισμός μεταβολής kWh ανά μισή ώρα

Αν χρησιμοποιείτε τις τιμές kWh που επιστρέφονται ως συσσωρευμένες ενεργειακές ενδείξεις, η μεταβολή μεταξύ δύο διαδοχικών εγγραφών μπορεί να υπολογιστεί αφαιρώντας την παλαιότερη τιμή από τη νεότερη τιμή για το ίδιο κανάλι.

Χρησιμοποιώντας το τριφασικό παράδειγμα παραπάνω:

a_imp change = 11.337 - 11.330 = 0.007 kWh
a_exp change = 11.201 - 11.198 = 0.003 kWh
b_imp change = 11.039 - 11.030 = 0.009 kWh
b_exp change = 10.908 - 10.900 = 0.008 kWh

Αυτού του είδους ο υπολογισμός μπορεί να βοηθήσει τους χρήστες να δημιουργήσουν μια αναφορά πρόσφατης εισαγωγής/εξαγωγής, να συγκρίνουν τις ενεργειακές μεταβολές ανά φάση ή να ελέγξουν πόση ενέργεια εισήχθη ή εξήχθη σε ένα συγκεκριμένο διάστημα μισής ώρας.

Σημαντική συμπεριφορά δειγματοληψίας

Το ιστορικό ενέργειας δημιουργείται τοπικά από τη μονάδα Wi-Fi. Η συμπεριφορά δειγματοληψίας είναι σημαντική κατά την ανάπτυξη ενσωματώσεων ή εργαλείων ανάλυσης:

  • Η δειγματοληψία καθοδηγείται από έγκυρα πλαίσια μετρητή UART.
  • Η μονάδα αποθηκεύει το δείγμα που βρίσκεται πλησιέστερα σε κάθε όριο μισής ώρας UTC.
  • Η ώρα UTC πρέπει να είναι έγκυρη πριν αποθηκευτούν εγγραφές ιστορικού.
  • Αν το timeSynced είναι 0, δεν καταγράφονται νέα δείγματα ιστορικού.
  • Μετά την εκκίνηση, το Datas μπορεί να είναι κενό μέχρι να συλλεχθούν αρκετά έγκυρα δείγματα.
  • Η τρέχουσα αποθήκευση βασίζεται στη μνήμη RAM, οπότε το API προορίζεται για πρόσφατο τοπικό ιστορικό και όχι για μακροπρόθεσμη αποθήκευση.

Αυτό καθιστά το API κατάλληλο για τοπική δειγματοληψία (polling), βραχυπρόθεσμη ανάλυση και δοκιμές ενσωμάτωσης. Για μακροπρόθεσμες αναφορές ενέργειας, οι χρήστες θα πρέπει να διατηρούν μια μόνιμη πηγή δεδομένων, όπως τα δεδομένα του IAMMETER cloud ή τη δική τους βάση δεδομένων.

Ιδέες για παραδείγματα ενσωμάτωσης

Οι προγραμματιστές και οι προχωρημένοι χρήστες μπορούν να χρησιμοποιήσουν το /api/energyhistory ως μια απλή τοπική πηγή δεδομένων για το πρόσφατο ιστορικό kWh.

Μια συνηθισμένη προσέγγιση είναι η περιοδική δειγματοληψία (polling) του endpoint, η ανάγνωση της λίστας channels και η αποθήκευση των νέων εγγραφών Datas σε μια τοπική βάση δεδομένων. Αυτό μπορεί να υποστηρίξει τοπικούς πίνακες ελέγχου, προσαρμοσμένες αναφορές ή σενάρια ανάλυσης εκτός σύνδεσης.

Ένα άλλο χρήσιμο σενάριο είναι η ανάλυση της ιδιοκατανάλωσης ηλιακής ενέργειας. Συγκρίνοντας τις τιμές kWh εισαγωγής και εξαγωγής ανά διαστήματα μισής ώρας, οι χρήστες μπορούν να κατανοήσουν καλύτερα πότε τα φορτία του νοικοκυριού καταναλώνουν τοπικά την ηλιακή παραγωγή και πότε εξάγεται το πλεόνασμα ενέργειας. Αυτό μπορεί να υποστηρίξει καλύτερες αποφάσεις αυτοματισμού, όπως η μετατόπιση ευέλικτων φορτίων σε περιόδους με υψηλότερη ηλιακή παραγωγή.

Αν αναπτύσσετε τοπικές ενσωματώσεις, δείτε επίσης το Τοπικό API, Modbus/TCP και MQTT και τον IAMMETER Local API Explorer.

Πώς αυτό εντάσσεται στη διαχείριση ενέργειας

Η αξία ενός API ιστορικού ενέργειας δεν έγκειται μόνο στο ότι εκθέτει περισσότερα δεδομένα. Το βασικό σημείο είναι τι μπορούν να κάνουν οι χρήστες με αυτά τα δεδομένα.

Με το ιστορικό kWh ανά μισή ώρα, οι χρήστες μπορούν να αναλύουν την πρόσφατη εισαγωγή και εξαγωγή ηλεκτρικής ενέργειας, να εντοπίζουν μοτίβα χρήσης και να αξιολογούν αν οι στρατηγικές ηλιακής ενέργειας ή ελέγχου φορτίων βοηθούν πραγματικά. Αυτό υποστηρίζει τον ευρύτερο στόχο του IAMMETER: να μετατρέπει τα δεδομένα παρακολούθησης ενέργειας σε πρακτικές αποφάσεις που βελτιώνουν την ενεργειακή απόδοση και μειώνουν τους λογαριασμούς ηλεκτρικού ρεύματος.

Για χρήστες που συνδυάζουν το IAMMETER με πλατφόρμες αυτοματισμού, το τοπικό ιστορικό ενέργειας μπορεί επίσης να παρέχει ένα βολικό επίπεδο δεδομένων για τη δοκιμή και την επικύρωση της λογικής ελέγχου. Για παράδειγμα, χρήστες του Home Assistant που βελτιστοποιούν τη χρήση του πλεονάσματος ηλιακής ενέργειας μπορούν να εξετάζουν τις πρόσφατες μεταβολές kWh μαζί με τη συμπεριφορά του αυτοματισμού. Δείτε τον αυτοματισμό ηλιακής ενέργειας με Home Assistant και IAMMETER για μια σχετική περίπτωση χρήσης.

Συχνές ερωτήσεις

Μπορεί αυτό το API να αντικαταστήσει το μακροπρόθεσμο ιστορικό ενέργειας;

Όχι. Το API αποθηκεύει έως 96 εγγραφές, δηλαδή 48 ώρες δεδομένων ανά μισή ώρα, στη μνήμη RAM. Έχει σχεδιαστεί για πρόσφατο τοπικό ιστορικό. Τα δεδομένα χάνονται μετά την επανεκκίνηση.

Γιατί το Datas είναι κενό μετά την εκκίνηση;

Μετά την εκκίνηση, η μονάδα χρειάζεται έγκυρη ώρα UTC και έγκυρα πλαίσια μετρητή προτού καταγραφούν δείγματα ιστορικού. Μέχρι να συλλεχθούν αρκετά έγκυρα δείγματα, το API μπορεί να επιστρέψει κενό πίνακα Datas.

Οι χρονικές σημάνσεις βασίζονται στην τοπική ώρα;

Όχι. Τα διαστήματα δειγματοληψίας είναι ευθυγραμμισμένα με τα όρια μισής ώρας σε UTC.

Πώς πρέπει το λογισμικό να ερμηνεύει τον πίνακα τιμών;

Να διαβάζετε πάντα πρώτα το πεδίο channels. Οι τιμές σε κάθε πίνακα Datas[].values ακολουθούν την ίδια σειρά με τα ονόματα των καναλιών.

Πάνω