Reduxi API vodiči
Povežite sopstvene sisteme sa Reduxijem: External API isporučuje podatke iz oblaka preko HTTPS-a, a MQTT API vam daje direktan pristup Reduxi Controlleru preko vašeg MQTT brokera.
1 Koji API vodič vam je potreban?
Reduxi nudi dva API vodiča. External API koristite za preuzimanje podataka o vašim kontrolerima, uređajima, prognozama i cenama iz Reduxi oblaka. MQTT API koristite za čitanje vrednosti iz Reduxi Controllera i slanje zadatih vrednosti i komandi preko sopstvenog MQTT brokera.
| External API | MQTT API | |
|---|---|---|
| Tip | 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, podešeni u Reduxi Configuratoru |
| Smer | Preuzima podatke | Čita podatke, šalje zadate vrednosti i komande |
| Namena | Kontrolne table, izveštavanje i integracije sa podacima o kontrolerima, uređajima, prognozama i cenama | Praćenje i upravljanje kontrolerom u realnom vremenu |
2 External API (REST)
External API vam daje pristup podacima vaših kontrolera u Reduxi oblaku. Sve vrednosti snage i energije isporučuju se u osnovnim jedinicama: W i Wh. Zahtevi se autorizuju Bearer tokenom.
- Kontroleri: spisak kontrolera, detalji kontrolera i poslednje poznato stanje njegovih uređaja
- Alarmi: aktivni alarmi kontrolera
- Podaci o uređajima: merenja po uređaju, agregirana merenja po kategoriji uređaja i upiti za više uređaja
- Tipovi podataka: tipovi podataka dostupni za uređaj
- Prognoze: podaci o prognozama po lokaciji ili po kontroleru
- Cene: cene na spot tržištu za sledeći dan, regioni spot tržišta i cenovnici po lokaciji
3 MQTT API
MQTT API povezuje Reduxi Controller sa vašim MQTT brokerom. Kontroler objavljuje očitavanja i informacije o uređajima i strategijama u topice, a vi mu šaljete zadate vrednosti, komande i podešavanja preko drugih topica. Trenutna specifikacija je verzija 1.5 i zahteva verziju softvera kontrolera 20260421084600.
- Kontroler: identifikator, keep-alive, intervali očitavanja i keep-alive, mrežna podešavanja
- Uređaji: spisak uređaja, informacije o uređaju, očitavanja i zadate vrednosti
- Strategije: spisak strategija, informacije, očitavanja, parametri, status aktivnosti i podešavanja spoljnog EMS-a
- Komande: osvežavanje metapodataka i ponovno pokretanje
MQTT dokumentacija je napisana iz ugla uređaja Reduxi Controller.
Kada čitate iz Reduxi MQTT, videćete pojam "PUB". Zašto PUB? Zato što objavljujemo podatke sa uređaja Reduxi Controller na temu.
Kada postavljate vrednosti na Reduxi Controller preko MQTT, videćete pojam "SUB". Zašto SUB? Zato što se pretplaćujemo na temu i čitamo podatke iz nje, čime se na Reduxi Controller postavljaju vrednosti koje ste poslali.
Poglavlja od 4 do 8 pokazuju kako podesiti Reduxi Configurator da kontroler šalje podatke na vaš MQTT broker. Završavaju primerom čitanja jednog uređaja i podešavanja njegovih zadatih vrednosti.
4 Podrška za MQTT verzije
Podržavamo verziju 3. x. Međutim, ne podržavamo 5. x.
5 Konfiguracija Reduxi MQTT interfejsa
Prijavite se na uređaj Reduxi Controler i idite na System settings. Pod System settings izaberite MQTT v3 i definišite podatke MQTT brokera:
- Host (samo domen/IP adresa, bez mqtts://)
- Port
- Korisničko ime
- Lozinka
Tekstualni opis ove slike
Snimak ekrana stranice MQTT v3 connection u Reduxi Configurator. Levi meni pod reduxi CONFIGURATOR logotipom: Users; Devices; Strategies; System (proširen, znak minus); Identifier; Network; Open VPN; Connector (proširen); Cloud; MQTT v3 (izabrano, podebljano); iFlex; Configuration (skupljeno, znak plus); Distribution System Operators; Time. Zaglavlje stranice: MQTT v3 connection, zelena ikona veze desno. Tabela statusa: Client: prazno; Host: prazno; Connected: zelena kvačica. Odeljak obrasca Mqtt connection: Host: mqtt.example.com (sivo, stil rezervisanog 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. Dugmad: Clear, Save.
6 Windows klijent (MQTT Explorer)
Podatke možete prikupljati pomoću MQTT Explorer povezivanjem na MQTT broker sa sledećim postavkama:
Na MQTT broker možete se povezati kada pokrenete aplikaciju MQTT Explorer.
Tekstualni opis ove slike
Snimak ekrana MQTT Explorer (gornja traka: DISCONNECT, polje za pretragu) sa otvorenim dijalogom MQTT Connection iznad zatamnjenog glavnog prozora. Leva lista: žuto dugme plus sa oznakom Connections; jedna sačuvana stavka mqtt.example.com sa sitnim tekstom mqtt://mqtt.example.com:1883/ (izabrano). Naslov dijaloga: MQTT Connection, a pored njega mqtt://mqtt.example.com:1883/. Polja: Name: mqtt.example.com; Validate certificate: prekidač isključen; Encryption (tls): prekidač isključen; Protocol: mqtt:// (padajuća lista); Host: mqtt.example.com; Port: 1883; Username: prazno; Password: maskirano tačkicama, sa ikonom oka za prikaz/skrivanje. Dugmad: DELETE, ADVANCED, SAVE (žuto), CONNECT (tamno). U zatamnjenoj pozadini vidi se deo panela Topic i JSON vrednost sa unosima type POWER_ACTIVE, target FIXED, phaseType null.
7 Komande
7.1. Osvežavanje metapodataka
Zatražite od sistema Reduxi da ponovo objavi sve metapodatke o sistemu, uređajima i strategijama na MQTT. U suprotnom se periodično objavljuju samo očitavanja i zadate vrednosti.
Topic: controllers/controller_unit_id/commands/refresh
Tekstualni opis ove slike
Snimak ekrana MQTT Explorer (status DISCONNECT, polje za pretragu pri vrhu) koji se koristi za slanje komande refresh. Levo stablo tema: e8c1fe29.ala.eu-central-1.emqxsl.com; controllers; ZGFE sa keepAlive = 1734965285703; commands sa stavkom refresh; identifier = {"unitId":"ZGFE","unitIdFormatted":"ZGE","boardModel":"REDUXI_1","CPUSerial":"16516642034211ad","EMMCSerial":"4.(odsečeno); settings; interval: readout = 15000, keepAlive = 60000; devices: 2 sa 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 sa 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 sa 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 (izabrano) sa 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) sa putanjom controllers / ZGFE / strategies / 27; panel Value sa History; panel Publish sa Topic: controllers/ZGFE/commands/refresh; format raw, xml, json sa izabranim json; prazno telo poruke; dugme PUBLISH sa crvenom strelicom koja pokazuje na njega.
7.2. Ponovno pokretanje
Ponovo pokreće Reduxi Controller.
Topic: controllers/controller_unit_id/commands/reboot
Tekstualni opis ove slike
Snimak ekrana aplikacije MQTT Explorer (status DISCONNECT, polje za pretragu pri vrhu) koji se koristi za slanje komande reboot. Levo 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":.} (izabran red); settings (2 teme, 2 poruke); keepAlive = 1675762462861. Desna strana: pregled JSON poruke pri vrhu sa softwareVersion "20230207091611", hwVersion "0", hasWifiModule false, dso {.}; History: 1. Panel Publish sa Topic: /controllers/ … /commands/reboot, sa crvenom zagradom na kraju polja teme. Opcije formata raw, xml, json: izabran je json. Telo poruke je prazno. Dugme PUBLISH je zaokruženo crvenom bojom. QoS: 0; retain: polje nije označeno.
8 Zadate vrednosti
Zadate vrednosti upravljaju snagom ili strujom uređaja. Reduxi Controller objavljuje aktivne zadate vrednosti svakog uređaja, a nove podešavate preko odgovarajućeg /set topica.
8.1. Prikaz svih aktivnih zadatih vrednosti za uređaj
Topic: controllers/controller_unit_id/devices/device_id/setpoint
Tekstualni opis ove slike
Snimak ekrana MQTT Explorer (status DISCONNECT, polje za pretragu pri vrhu) koji prikazuje zadatu vrednost uređaja 15. Levo stablo tema: $SYS (48 tema, 862 poruke); controllers; devices; 13 (3 teme, 235 poruka); 14 (3 teme, 235 poruka); 15 raš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".} (izabran red, 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, po 233 poruke); 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, sa dugmetom formatiranog prikaza zaokruženim crvenom bojom i JSON vrednošću okvirenom 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 zadatih vrednosti za uređaj
Topic: controllers/controller_unit_id/devices/device_id/setpoint/set
Tekstualni opis ove slike
Snimak ekrana MQTT Explorer (status DISCONNECT, polje za pretragu pri vrhu) koji se koristi za objavljivanje zadate vrednosti za uređaj 15. Levo stablo tema: $SYS (48 tema, 1192 poruke); controllers; devices (istaknuto); 13 (3 teme, 341 poruka); 14 (3 teme, 341 poruka); 15 raširen sa readout = {"time":1675762794195,"values":[{"deviceId":15,"dataTypeId":174,"dataTypeEnum":"VOLTAGE_L1"; setpoint = {"deviceId":15,"values":[{"action":"NONE","type":"POWER_ACTIVE","target":"FIXED","phaseType":"L1".} (izabran red); 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, po 339 poruka); 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 je označeno crvenim zagradama, a reč set je podvučena crvenom bojom. Format raw, xml, json: izabran je json. Telo poruke, okvireno crvenom zagradom: { "values": [ { "action": "SET", "type": "POWER_ACTIVE", "target": "FIXED", "phaseType": null, "value": 1000, "priority": 10000, "validForTime": 60000 } ] }. Dugme PUBLISH je zaokruženo crvenom bojom. QoS: 0; retain nije označeno. Ispod je odeljak History.
8.2.1. Primer 1
Postavite aktivnu 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. Primer 2
Ograničite maksimalnu struju na 10A na fazi L2 u trajanju od 30 sekundi.
{
"values": [
{
"action": "SET",
"type": "CURRENT",
"target": "MAX",
"phaseType": "L2",
"value": 10,
"priority": 10000,
"validForTime": 30000
}
]
}