Reduxi API vodiči
Povežite vlastite sustave s Reduxijem: External API isporučuje podatke iz oblaka putem HTTPS-a, a MQTT API daje vam izravan pristup Reduxi Controlleru putem vašeg MQTT brokera.
1 Koji vam je API vodič potreban?
Reduxi nudi dva API vodiča. External API koristite za dohvat podataka o vašim kontrolerima, uređajima, prognozama i cijenama iz Reduxi oblaka. MQTT API koristite za čitanje vrijednosti iz Reduxi Controllera i slanje zadanih vrijednosti i naredbi putem vlastitog MQTT brokera.
| External API | MQTT API | |
|---|---|---|
| Vrsta | REST API preko HTTPS-a (OpenAPI 3.0) | MQTT poruke (verzija 3.x) na vašem MQTT brokeru |
| Izvor podataka | Reduxi oblak | Reduxi Controller |
| Pristup | Bearer token | Host, port, korisničko ime i lozinka MQTT brokera, postavljeni u Reduxi Configuratoru |
| Smjer | Dohvaća podatke | Čita podatke, šalje zadane vrijednosti i naredbe |
| Namjena | Nadzorne ploče, izvještavanje i integracije s podacima o kontrolerima, uređajima, prognozama i cijenama | Praćenje i upravljanje kontrolerom u stvarnom vremenu |
2 External API (REST)
External API daje vam pristup podacima vaših kontrolera u Reduxi oblaku. Sve vrijednosti snage i energije isporučuju se u osnovnim jedinicama: W i Wh. Zahtjevi se autoriziraju Bearer tokenom.
- Kontroleri: popis kontrolera, detalji kontrolera i posljednje poznato stanje njegovih uređaja
- Alarmi: aktivni alarmi kontrolera
- Podaci o uređajima: mjerenja po uređaju, agregirana mjerenja po kategoriji uređaja i upiti za više uređaja
- Vrste podataka: vrste podataka dostupne za uređaj
- Prognoze: podaci o prognozama po lokaciji ili po kontroleru
- Cijene: cijene na spot tržištu za idući dan, regije spot tržišta i cjenici po lokaciji
3 MQTT API
MQTT API povezuje Reduxi Controller s vašim MQTT brokerom. Kontroler objavljuje očitanja te informacije o uređajima i strategijama u topice, a vi mu šaljete zadane vrijednosti, naredbe i postavke putem drugih topica. Trenutačna specifikacija je verzija 1.5 i zahtijeva verziju softvera kontrolera 20260421084600.
- Kontroler: identifikator, keep-alive, intervali očitanja i keep-alive, mrežne postavke
- Uređaji: popis uređaja, informacije o uređaju, očitanja i zadane vrijednosti
- Strategije: popis strategija, informacije, očitanja, parametri, status aktivnosti i postavke vanjskog EMS-a
- Naredbe: osvježavanje metapodataka i ponovno pokretanje
MQTT dokumentacija izrađena je iz perspektive Reduxi Controllera.
Kad čitate iz Reduxi MQTT-a, vidjet ćete pojam "PUB". Zašto PUB? Zato što podatke iz Reduxi Controllera objavljujemo (publish) na temu.
Kad vrijednosti postavljate na Reduxi Controller putem MQTT-a, vidjet ćete pojam "SUB". Zašto SUB? Zato što se pretplaćujemo (subscribe) na temu i čitamo podatke iz nje, čime na Reduxi Controller postavljamo vrijednosti koje ste poslali.
Poglavlja 4 do 8 pokazuju kako postaviti Reduxi Configurator da kontroler šalje podatke na vaš MQTT broker. Završavaju primjerom čitanja jednog uređaja i postavljanja njegovih zadanih vrijednosti.
4 Podrška za MQTT verzije
Podržavamo verziju 3. x. Međutim, ne podržavamo 5. x.
5 Konfiguracija Reduxi MQTT sučelja
Prijavite se na uređaj Reduxi Controler i idite na System settings. Pod System settings odaberite MQTT v3 i definirajte podatke MQTT brokera:
- Host (samo domena/IP, bez mqtts://)
- Port
- Korisničko ime
- Lozinka
Tekstualni opis ove slike
Snimka zaslona stranice MQTT v3 connection u Reduxi Configuratoru. Lijevi izbornik pod logotipom reduxi CONFIGURATOR: Users; Devices; Strategies; System (prošireno, znak minus); Identifier; Network; Open VPN; Connector (prošireno); Cloud; MQTT v3 (odabrano, podebljano); iFlex; Configuration (sažeto, znak plus); Distribution System Operators; Time. Zaglavlje stranice: MQTT v3 connection, zelena ikona veze desno. Tablica statusa: Client: prazno; Host: prazno; Connected: zelena kvačica. Odjeljak obrasca Mqtt connection: Host: mqtt.example.com (sivo, u stilu rezerviranog teksta); Port: 1883 (sivo); Username: prazno; Password: prazno; Server CA chain (PEM format): Choose File, No file chosen; Client public certificate (PEM format): Choose File, No file chosen; Client private key (PEM format): Choose File, No file chosen; Readout interval: 5 sec. Gumbi: Clear, Save.
6 Windows klijent (MQTT Explorer)
Podatke možete prikupljati pomoću MQTT Explorera i povezivanjem s MQTT brokerom sa sljedećim postavkama:
S MQTT brokerom možete se povezati kad pokrenete aplikaciju MQTT Explorer.
Tekstualni opis ove slike
Snimka zaslona aplikacije MQTT Explorer (gornja traka: DISCONNECT, okvir za pretraživanje) s otvorenim dijalogom MQTT Connection preko zatamnjenog glavnog prozora. Lijevi popis: žuti gumb plus s oznakom Connections; jedna spremljena stavka mqtt.example.com s malim tekstom mqtt://mqtt.example.com:1883/ (odabrana). Naslov dijaloga: MQTT Connection, a pokraj njega mqtt://mqtt.example.com:1883/. Polja: Name: mqtt.example.com; Validate certificate: prekidač isključen; Encryption (tls): prekidač isključen; Protocol: mqtt:// (padajući izbornik); Host: mqtt.example.com; Port: 1883; Username: prazno; Password: maskirano točkicama, s ikonom oka za prikaz/skrivanje. Gumbi: DELETE, ADVANCED, SAVE (žuti), CONNECT (tamni). U zatamnjenoj pozadini vidi se dio panela Topic i JSON vrijednost sa stavkama type POWER_ACTIVE, target FIXED, phaseType null.
7 Naredbe
7.1. Osvježavanje metapodataka
Zatražite od Reduxija da ponovno objavi sve metapodatke o sustavu, uređajima i strategijama na MQTT. Inače se periodično objavljuju samo očitanja i zadane vrijednosti.
Topic: controllers/controller_unit_id/commands/refresh
Tekstualni opis ove slike
Snimka zaslona aplikacije MQTT Explorer (status DISCONNECT, okvir za pretraživanje na vrhu) koja se koristi za slanje naredbe refresh. Lijevo stablo tema: e8c1fe29.ala.eu-central-1.emqxsl.com; controllers; ZGFE s keepAlive = 1734965285703; commands sa stavkom refresh; identifier = {"unitId":"ZGFE","unitIdFormatted":"ZGE","boardModel":"REDUXI_1","CPUSerial":"16516642034211ad","EMMCSerial":"4.(odrezano); settings; interval: readout = 15000, keepAlive = 60000; devices: 2 s info = {"id":2,"name":"Tesla Wall Connector Gen 3","typeId":59,"type":{"id":59,"categoryId":3,"category":{"id":3,"name":"EV charger","enumeration":"EV_CHARGER"; 4 (1 tema, 2 poruke); 12 s info = {"id":12,"name":"Iskraemeco AM550","typeId":16,"type":{"id":16,"categoryId":1,"category":{"id":1,"name":"Energy meter","enumeration":"ENERGY_METER"; 17 (1 tema, 2 poruke); 18 (1 tema, 2 poruke); strategies: 8 s info = {"id":8,"typeId":7,"type":{"id":7,"name":"1-phase current based ON/OFF regulation","enumeration":"DISCRETE_CURRENT_PHASE_1"}; parameters (3 teme, 12 poruka); 20 (2 teme, 8 poruka); 27 (odabrano) s info = {"id":27,"typeId":8,"type":{"id":8,"name":"Energy manager coordinator for PV, EVSE, battery and heat pump","enumeration":"UMBRELLA"}; parameters (1 tema, 4 poruke); list = [{"id":8,"typeId":7. Desna strana: panel Topic (oznaka 2) s putanjom controllers / ZGFE / strategies / 27; panel Value s History; panel Publish s Topic: controllers/ZGFE/commands/refresh; format raw, xml, json uz odabran json; prazno tijelo poruke; gumb PUBLISH s crvenom strelicom koja pokazuje na njega.
7.2. Ponovno pokretanje
Ponovno pokreće Reduxi Controller.
Topic: controllers/controller_unit_id/commands/reboot
Tekstualni opis ove slike
Snimka zaslona aplikacije MQTT Explorer (status DISCONNECT, okvir za pretraživanje na vrhu) koja se koristi za slanje naredbe reboot. Lijevo stablo tema: $SYS (48 tema, 406 poruka); controllers; devices (29 tema, 865 poruka); strategies (38 tema, 884 poruke); commands (0 tema, 1 poruka); identifier = {"unitId","unitIdFormatted","CPUSerial":.} (odabrani redak); settings (2 teme, 2 poruke); keepAlive = 1675762462861. Desna strana: pregled JSON poruke na vrhu sa softwareVersion "20230207091611", hwVersion "0", hasWifiModule false, dso {.}; History: 1. Panel Publish s Topic: /controllers/ … /commands/reboot, s crvenom zagradom na kraju polja teme. Opcije formata raw, xml, json: odabran je json. Tijelo poruke je prazno. Gumb PUBLISH zaokružen je crveno. QoS: 0; retain: potvrdni okvir nije označen.
8 Zadane vrijednosti (setpoints)
Zadane vrijednosti upravljaju snagom ili strujom uređaja. Reduxi Controller objavljuje aktivne zadane vrijednosti svakog uređaja, a nove postavljate putem odgovarajućeg /set topica.
8.1. Pregled svih aktivnih zadanih vrijednosti za uređaj
Topic: controllers/controller_unit_id/devices/device_id/setpoint
Tekstualni opis ove slike
Snimka zaslona aplikacije MQTT Explorer (status DISCONNECT, okvir za pretraživanje na vrhu) koja prikazuje zadanu vrijednost uređaja 15. Lijevo stablo tema: $SYS (48 tema, 862 poruke); controllers; devices; 13 (3 teme, 235 poruka); 14 (3 teme, 235 poruka); 15 proširen sa stavkama readout = {"time":1675762671666,"values":[{"deviceId":15,"dataTypeId":174,"dataTypeEnum":"VOLTAGE_L1"; setpoint = {"deviceId":15,"values":[{"action":"NONE","type":"POWER_ACTIVE","target":"FIXED","phaseType":"L1".} (odabrani redak, označen crvenom zagradom); info = {"id":15,"name":"Baterija","typeId":14,"type":{"id":14,"name":"Victron Energy MultiPlus II","enumeration":"BATTE; zatim 18, 8, 9, 10, 11, 12 (3 teme, 233 poruke svaki); list = [{"id":8,"name":"Sončna elektrarna","typeId":7,"type":{"id":7,"name":"SolarEdge","enumeration":"SOLAR_SOLARE; types = [{"id":40,"name":"ABB","enumeration":"CHARGER_ABB"; strategies (38 tema, 2104 poruke); commands (0 tema, 1 poruka); identifier = {"unitId","unitIdFormatted","CPUSerial"; settings (2 teme, 2 poruke); keepAlive = 1675762644772. Desna strana, Topic / controllers / / devices / 15 / setpoint. Panel Value, QoS: 0, 02/07/2023 10:37:53 AM, s gumbom formatiranog prikaza zaokruženim crveno i JSON vrijednošću označenom crvenom zagradom: { "deviceId": 15, "values": [ { "action": "NONE", "type": "POWER_ACTIVE", "target": "FIXED", "phaseType": "L1", "value": 0, "priority": 100, "validForTime": 28571 }, {. (nastavlja se). History: 20.
8.2. Postavljanje zadanih vrijednosti za uređaj
Topic: controllers/controller_unit_id/devices/device_id/setpoint/set
Tekstualni opis ove slike
Snimka zaslona aplikacije MQTT Explorer (status DISCONNECT, okvir za pretraživanje na vrhu) koja se koristi za objavu zadane vrijednosti za uređaj 15. Lijevo stablo tema: $SYS (48 tema, 1192 poruke); controllers; devices (istaknuto); 13 (3 teme, 341 poruka); 14 (3 teme, 341 poruka); 15 proširen sa stavkama readout = {"time":1675762794195,"values":[{"deviceId":15,"dataTypeId":174,"dataTypeEnum":"VOLTAGE_L1"; setpoint = {"deviceId":15,"values":[{"action":"NONE","type":"POWER_ACTIVE","target":"FIXED","phaseType":"L1".} (odabrani redak); info = {"id":15,"name":"Baterija","typeId":14,"type":{"id":14,"name":"Victron Energy MultiPlus II","enumeration":"BATTE; 18 (3 teme, 339 poruka); 8 (3 teme, 340 poruka, istaknuto); 9, 10, 11, 12 (3 teme, 339 poruka svaki); list = [{"id":8,"name":"Sončna elektrarna","typeId":7,"type":{"id":7,"name":"SolarEdge"; types = [{"id":40,"name":"ABB","enumeration":"CHARGER_ABB"; strategies (38 tema, 3062 poruke); commands (0 tema, 1 poruka); identifier = {"unitId","unitIdFormatted","CPUSerial":; settings (2 teme, 2 poruke); keepAlive = 1675762764833. Desna strana: oznaka History 20, zatim panel Publish. Topic: /controllers/ … /devices/15/setpoint/set; polje teme označeno je crvenim zagradama, a riječ set podcrtana je crveno. Format raw, xml, json: odabran je json. Tijelo poruke, označeno crvenom zagradom: { "values": [ { "action": "SET", "type": "POWER_ACTIVE", "target": "FIXED", "phaseType": null, "value": 1000, "priority": 10000, "validForTime": 60000 } ] }. Gumb PUBLISH zaokružen je crveno. QoS: 0; retain nije označen. Ispod je odjeljak History.
8.2.1. Primjer 1
Postavite radnu snagu na -1 kW (izvoz) na svim fazama u trajanju od 15 sekundi.
{
"values": [
{
"action": "SET",
"type": "POWER_ACTIVE",
"target": "FIXED",
"phaseType": null,
"value": 1000,
"priority": 10000,
"validForTime": 15000
}
]
}
8.2.2. Primjer 2
Ograničite maksimalnu struju na 10 A na fazi L2 u trajanju od 30 sekundi.
{
"values": [
{
"action": "SET",
"type": "CURRENT",
"target": "MAX",
"phaseType": "L2",
"value": 10,
"priority": 10000,
"validForTime": 30000
}
]
}