Lokālais enerģijas vēstures API kWh rādījumiem
title: Lokālais enerģijas vēstures API kWh rādījumiem
abstract: Lasiet pusstundas kWh vēsturi lokāli bezsaistes analīzei.
language: lv
author: Jessica
Ievads
Lietotājiem, kuri veido savus paneļus, automatizācijas vai bezsaistes analīzes rīkus, reāli enerģijas dati ir noderīgāki, ja tie ir pieejami ar stabilu intervālu. Viens reāllaika jaudas rādījums parāda, kas notiek tagad, bet pusstundas kWh vēsture palīdz lietotājiem saprast, kā elektroenerģijas imports un eksports mainās laika gaitā.
Sākot ar programmaparatūras versiju i.91.063TS8.bin, kas izlaista 2026. gada 2. jūnijā, IAMMETER atbalsta jaunu lokālo API: GET /api/energyhistory. Šis API atgriež lokāli kešotās kWh vērtības, kas ņemtas paraugos ap UTC pusstundas robežām, tādējādi atvieglojot nesenā enerģijas patēriņa analīzi, nepaļaujoties tikai uz vēsturi mākonī.
Tas ir īpaši noderīgi saules enerģijas uzraudzībai, mājsaimniecības enerģijas uzraudzībai un pielāgotām enerģijas pārvaldības darbplūsmām, kur lietotāji vēlas salīdzināt importa, eksporta un fāzes līmeņa enerģijas datus. IAMMETER nav tikai monitors; šo datu vākšanas mērķis ir palīdzēt lietotājiem optimizēt enerģijas izmantošanu, uzlabot saules enerģijas pašpatēriņu un samazināt elektroenerģijas rēķinus.
Ko nodrošina enerģijas vēstures API
Jaunais galapunkts ir:
GET /api/energyhistory
Tas atgriež enerģijas rādījumus kWh, kas ņemti paraugos ap šīm UTC pusstundas robežām:
00:0000:3001:0001:30- un tā tālāk
Programmaparatūra saglabā līdz 96 ierakstiem, kas atbilst 48 stundām vēstures ar 30 minūšu intervālu. Ieraksti tiek glabāti Wi-Fi moduļa RAM, tāpēc pēc ierīces pārstartēšanas tie tiek zaudēti.
Tipiska atbilde ietver:
utc: pašreizējais moduļa UTC laikspiedolstimeSynced: vai modulim ir derīgs UTC laiksinterval: paraugu ņemšanas intervāls, pašlaik1800sekundescount: pieejamo vēstures ierakstu skaitsorder: pašlaiknewest_firstunit: pašlaikkWhchannels: kanālu nosaukumi, kas atbilst katrai vērtībaiDatas: pusstundas vēstures ieraksti
Katrs elements masīvā Datas ietver UTC laikspiedolu un kWh vērtību masīvu. Vērtības seko tādai pašai secībai kā masīvs channels.
Kāpēc pusstundas kWh vēsture ir svarīga
Pusstundas enerģijas dati ir praktiski, jo sniedz kompaktu, bet jēgpilnu priekšstatu par enerģijas patēriņa uzvedību. Tā vietā, lai saglabātu katru reāllaika punktu, lietotāji var analizēt uzkrātās importa un eksporta vērtības noteiktos laika intervālos.
Piemēram, lietotājs var izmantot lokālos datus, lai:
- pārskatītu nesen importēto un eksportēto enerģiju, negaidot mākoņa pārskatus;
- eksportētu jaunākos 48 stundu kWh rādījumus uz lokālu datubāzi vai CSV failu;
- salīdzinātu saules enerģijas eksporta modeļus ar mājsaimniecības patēriņu;
- pārbaudītu, vai automatizācijas stratēģija maina elektroenerģijas patēriņu noteiktos periodos;
- izveidotu lokālu paneli nesenajai enerģijas vēsturei.
Plašākiem saules enerģijas uzraudzības scenārijiem skatiet IAMMETER saules enerģijas uzraudzības risinājumu. Mājsaimniecības elektroenerģijas uzraudzībai skatiet IAMMETER mājas enerģijas uzraudzības risinājumu.
Atbalstītie kanālu izkārtojumi
Lauks channels norāda klientam, kā interpretēt vērtības katrā vēstures ierakstā. Dažādas skaitītāja konfigurācijas atgriež dažādus kanālu izkārtojumus.
Vienfāzes
["imp", "exp"]
Sadalītā fāze
["a_imp", "a_exp", "b_imp", "b_exp"]
Trīsfāžu
["a_imp", "a_exp", "b_imp", "b_exp", "c_imp", "c_exp"]
Trīsfāžu ar iespējotu neto uzskaiti
["a_imp", "a_exp", "b_imp", "b_exp", "c_imp", "c_exp", "nem_imp", "nem_exp"]
Tā kā kanālu nosaukumi tiek atgriezti atbildē, pielāgotai programmatūrai vispirms jāizlasa masīvs channels un pēc tam attiecīgi jākartē katra vērtība masīvā Datas[].values.
Oriģinālie API atgriešanas piemēri
Šie divi piemēri parāda oriģinālās API atgrieztās vērtības tukšai atbildei un atbildei ar datiem.
Tukšas atbildes piemērs
Pēc ierīces palaišanas vēstures masīvs var būt tukšs, līdz ir pieejams derīgs UTC laiks un derīgi skaitītāja kadri. Šajā gadījumā API var atgriezt count: 0 un tukšu masīvu 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": []
}
Šī atbilde ir normāla pēc palaišanas. Lokālam panelim vai skriptam ir jāapstrādā šis stāvoklis un jāgaida jauni pusstundas paraugi.
Datu atbildes piemērs
Šis piemērs parāda divus pusstundas ierakstus no trīsfāžu skaitītāja. Atbilde ir sakārtota no jaunākā uz vecāko.
{
"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]
}
]
}
Jaunākajā ierakstā a_imp ir 11.337 kWh, a_exp ir 11.201 kWh un tā tālāk. Katras vērtības nozīmi nosaka masīvs channels.
Atgriezto vērtību izmantošana programmatūrā
Iepriekš minētie oriģinālie atgriešanas piemēri ir pietiekami, lai izveidotu vienkāršu lokālās analīzes loģiku. Galvenais ir vispirms nolasīt channels un pēc tam piemērot šo secību katram elementam masīvā Datas.
channels kartēšana uz values
Veidojot programmatūru ap šo API, izvairieties no pozīciju iekodēšanas, ja vien skaitītāja konfigurācija nav fiksēta. Drošāka pieeja ir pārveidot kanālu sarakstu un vērtību masīvu nosauktā objektā.
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);
Iepriekš minētajā trīsfāžu atbildes piemērā latestByChannel saturētu:
{
"a_imp": 11.337,
"a_exp": 11.201,
"b_imp": 11.039,
"b_exp": 10.908,
"c_imp": 10.975,
"c_exp": 10.846
}
Tas padara datus vieglāk saglabājamus, attēlojamus vai eksportējamus uz lokālu analīzes rīku.
Pusstundas kWh izmaiņu aprēķināšana
Ja atgrieztās kWh vērtības izmantojat kā uzkrātos enerģijas rādījumus, izmaiņas starp diviem blakus esošiem ierakstiem var aprēķināt, atņemot vecāko vērtību no jaunākās vērtības vienam un tam pašam kanālam.
Izmantojot iepriekš minēto trīsfāžu piemēru:
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
Šāda veida aprēķins var palīdzēt lietotājiem izveidot nesenā importa/eksporta pārskatu, salīdzināt fāzes līmeņa enerģijas izmaiņas vai pārbaudīt, cik daudz enerģijas tika importēts vai eksportēts konkrētā pusstundas intervālā.
Svarīga paraugu ņemšanas uzvedība
Enerģijas vēsturi lokāli ģenerē Wi-Fi modulis. Paraugu ņemšanas uzvedība ir svarīga, veidojot integrācijas vai analīzes rīkus:
- paraugu ņemšanu nosaka derīgi UART skaitītāja kadri;
- modulis saglabā paraugu, kas ir vistuvāk katrai pusstundas UTC robežai;
- UTC laikam jābūt derīgam, pirms vēstures ieraksti tiek saglabāti;
- ja
timeSyncedir0, jauni vēstures paraugi netiek reģistrēti; - pēc palaišanas
Datasvar būt tukšs, līdz ir savākts pietiekami daudz derīgu paraugu; - pašlaik krātuve ir balstīta uz RAM, tāpēc API ir paredzēts nesenai lokālai vēsturei, nevis ilgtermiņa glabāšanai.
Tas padara API piemērotu lokālai aptaujai, īstermiņa analīzei un integrācijas testēšanai. Ilgtermiņa enerģijas pārskatiem lietotājiem joprojām jāsaglabā pastāvīgs datu avots, piemēram, IAMMETER mākoņa dati vai sava datubāze.
Integrācijas ideju piemēri
Izstrādātāji un pieredzējuši lietotāji var izmantot /api/energyhistory kā vienkāršu lokālu datu avotu nesenajai kWh vēsturei.
Viena izplatīta pieeja ir periodiski aptaujāt galapunktu, nolasīt sarakstu channels un saglabāt visus jaunos ierakstus Datas lokālā datubāzē. Tas var atbalstīt lokālus paneļus, pielāgotus pārskatus vai bezsaistes analīzes skriptus.
Vēl viens noderīgs scenārijs ir saules enerģijas pašpatēriņa analīze. Salīdzinot importētās un eksportētās kWh vērtības pusstundas intervālos, lietotāji var labāk saprast, kad mājsaimniecības slodzes patērē saules ģenerēto enerģiju lokāli un kad enerģijas pārpalikums tiek eksportēts. Tas var atbalstīt labākus automatizācijas lēmumus, piemēram, elastīgo slodžu pārvietošanu uz periodiem ar lielāku saules enerģijas izlaidi.
Ja veidojat lokālas integrācijas, skatiet arī lokālo API, Modbus/TCP un MQTT un IAMMETER lokālā API pārlūku.
Kā tas iekļaujas enerģijas pārvaldībā
Enerģijas vēstures API vērtība nav tikai tajā, ka tas atklāj vairāk datu. Galvenais ir tas, ko lietotāji ar šiem datiem var darīt.
Ar pusstundas kWh vēsturi lietotāji var analizēt nesen elektroenerģijas importu un eksportu, noteikt patēriņa modeļus un novērtēt, vai saules enerģijas vai slodzes kontroles stratēģijas patiešām palīdz. Tas atbalsta IAMMETER plašāko mērķi: pārvērst enerģijas uzraudzības datus praktiskos lēmumos, kas uzlabo energoefektivitāti un samazina elektroenerģijas rēķinus.
Lietotājiem, kuri apvieno IAMMETER ar automatizācijas platformām, lokālā enerģijas vēsture var arī nodrošināt ērtu datu slāni vadības loģikas testēšanai un validēšanai. Piemēram, Home Assistant lietotāji, kuri optimizē saules enerģijas pārpalikuma izmantošanu, var pārskatīt nesenās kWh izmaiņas kopā ar automatizācijas uzvedību. Skatiet Home Assistant saules enerģijas automatizācija ar IAMMETER par saistītu lietošanas gadījumu.
Biežāk uzdotie jautājumi
Vai šis API var aizstāt ilgtermiņa enerģijas vēsturi?
Nē. API glabā līdz 96 ierakstiem jeb 48 stundas pusstundas datu RAM. Tas ir paredzēts nesenai lokālai vēsturei. Pēc pārstartēšanas dati tiek zaudēti.
Kāpēc Datas ir tukšs pēc palaišanas?
Pēc palaišanas modulim ir nepieciešams derīgs UTC laiks un derīgi skaitītāja kadri, pirms var reģistrēt vēstures paraugus. Līdz brīdim, kad ir savākts pietiekami daudz derīgu paraugu, API var atgriezt tukšu masīvu Datas.
Vai laikspiedoli ir balstīti uz vietējo laiku?
Nē. Paraugu ņemšanas intervāli ir saskaņoti ar UTC pusstundas robežām.
Kā programmatūrai jāinterpretē vērtību masīvs?
Vienmēr vispirms nolasiet lauku channels. Vērtības katrā masīvā Datas[].values seko tādai pašai secībai kā kanālu nosaukumi.