https://view.powersentrix.com/api/v1 — všetky cesty endpointov sú relatívne k tejto adrese. 0 Architektúra komunikácie
UPS zariadenie samo iniciuje spojenie so serverom — server na UPS nečaká, UPS sa samo hlási. Server môže zariadenie priamo ovládať cez HTTP volanie na IP adresu UPS, ktorú si server uložil pri registrácii.
Viac UPS zariadení — stačí jedna verejná IP adresa. Pre každú UPS nepotrebujete samostatnú verejnú IP. Stačí nakonfigurovať NAT presmerovanie portov na routri — každá UPS dostane iný port tej istej verejnej IP adresy:
// Nastavenie na routri (príklad) XXX.XXX.XXX.XXX:5000 → 10.10.18.10:443 // UPS 1 (napr. serverovňa A) XXX.XXX.XXX.XXX:5001 → 10.10.19.10:443 // UPS 2 (napr. serverovňa B) XXX.XXX.XXX.XXX:5002 → 10.10.20.10:443 // UPS 3 (napr. pobočka) // ...Do konfigurácie každej UPS (Web Management → Server URL) zadáte jej pridelenú adresu:
https://XXX.XXX.XXX.XXX:5000. Server si po registrácii uloží práve túto adresu a na nej bude zariadenie kontaktovať. NMS server tak jednou verejnou IP adresou obslúži ľubovoľný počet UPS zariadení. 1 Autentifikácia
Manažovacie API endpointy (sekcie 3 a 4) vyžadujú JWT bearer token. Token získate volaním /user/authenticate. Device API (sekcia 2) token nevyžaduje.
Prihlásenie e-mailom a heslom. Vráti JWT token.
{
"email": "your@email.com",
"password": "yourPassword"
}
{
"token": "eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJ1c2VyQGV4YW1...",
"user": {
"id": 42,
"login": "your@email.com",
"name": "Novak Jan",
"role": "ROLE_USER",
"avatar": "base64encodedImage..."
}
}
Authorization: Bearer <token>
{ "message": "invalidEmailOrPassword" }
// alebo / or: "disabledLoginFromWeb"
2 Device API (UPS firmware → server)
Tieto endpointy volá priamo firmware UPS zariadenia. Potrebujete ich len ak prevádzkujete vlastný monitorovací server namiesto cloudového portálu PowerSentrix.
companyId — uchovajte ho v tajnosti. Zaregistruje novú UPS na serveri. Firmware volá tento endpoint pri prvom štarte alebo po továrenskom resete. Server automaticky zachytí IP adresu zariadenia.
| Parameter | Typ | Popis |
|---|---|---|
companyId * | string | ID spoločnosti (z portálu) |
cmm * | string | Jedinečný identifikátor UPS (pole upsId v config) |
upsDescription | string | Voliteľný popis zariadenia |
{
"sn": "PSX-2024-001234", // sériové číslo / serial number
"type": "PWX-12-4422", // model (musí existovať na serveri)
"comFirmware": "v3.2.1", // firmware ESP32 (komunikačný modul)
"mainFirmware": "v2.1.0", // firmware STM32 (hlavný kontrolér)
"comUptime": "2d 14h 33m", // uptime ESP32
"mainUptime": "5d 02h 11m", // uptime STM32
"cpuLoad": 12, // zaťaženie CPU v %
"totalRamSize": 327680, // celková heap pamäť (bytes)
"freeRamSize": 218340, // voľná heap pamäť (bytes)
"info": "" // voliteľný doplňujúci text
}
Odošle kompletný stav zariadenia na server. Firmware volá periodicky (predvolene každých 5 minút).
| Parameter | Typ | Popis |
|---|---|---|
companyId * | string | ID spoločnosti |
cmm * | string | Identifikátor UPS |
{
"config": {
"settings": {
"dhcp": 1, "ip": "192.168.1.100", "netmask": "255.255.255.0",
"gateway": "192.168.1.1", "dns": "8.8.8.8",
"ntpServer": "pool.ntp.org", "timezone": "CET-1CEST,M3.5.0,M10.5.0/3",
"forcePowerFromBatteries": 0,
"remoteServer": { "serverUrl": "https://view.powersentrix.com", "companyId": "abc123", "upsId": "ups-01" }
},
"outputs": [
{ "id": 0, "description": "Router", "status": "ON", "voltage": 4810 },
// ... celkom 12 výstupov (id 0–11) / 12 outputs total (id 0–11)
],
"extraActions": [
{ "id": "0", "event": 1, "baseStatus": 0, "action": 1 }
],
"ident": { /* Ident objekt — rovnaký ako pri setNewUps */ }
},
"upsData": {
"voltages": [4810, 4805, 2410, 2408, 1205, 1202, 502, 501, 0, 0, 0, 0],
// napätia v mV×10 (napr. 4810 = 48.10 V) / voltages in mV×10 (e.g. 4810 = 48.10 V)
"currents": [150, 320, 200, 0, 0, 0, 0, 0, 0, 0, 0, 0],
// prúdy v mA (napr. 150 = 1.50 A) / currents in mA (e.g. 150 = 1.50 A)
"outputs": [1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0],
// 1 = ZAP/ON, 0 = VYP/OFF
"ventilation": 0,
"uptime": "5d 02h 11m",
"temps": { "board": 42, "mcu": 51 },
// teploty v °C (integer) / temperatures in °C
"ps": [
{
"main": 5410, "load": 4810, "batt": 5220, "buv": 4800,
"cell": [1305, 1308, 1302, 1305],
"status": { "h": { "hb": [1], "lb": [0] }, "l": { "hb": [0], "lb": [1] } }
}
// druhý PSU má rovnakú štruktúru / second PSU has the same structure
]
}
}
Odošle jeden záznam udalosti (zmena stavu výstupu, alarm, výpadok napájania…).
{
"ord": 1234, // sekvenčné číslo záznamu
"code": "I/E01", // kód udalosti
"cmm": "ups-01", // identifikátor UPS
"description": "Output 1 turned ON", // popis udalosti
"params": "", // voliteľné parametre
"timestamp": "2026-05-08 14:32:01" // formát: yyyy-MM-dd HH:mm:ss
}
3 Monitorovacie API
Endpointy pre čítanie dát UPS z monitorovacieho servera — pre vlastné dashboardy a integrácie.
Authorization: Bearer <token>
Vráti kompletný stavový objekt UPS — live dáta, konfiguráciu, výstupy, teploty, napájacie zdroje. Rovnaká štruktúra ako telo setUpsData.
| Parameter | Typ | Popis |
|---|---|---|
id * | string | Interné DB ID UPS (z getUpsList alebo portálu) |
{ "responseMessage": "OK", "responseObject": { /* UpsComplexObject */ } }
Vráti záznamy udalostí pre UPS zariadenie. Podporuje stránkovanie.
| Parameter | Typ | Popis |
|---|---|---|
id * | string | ID UPS |
page | integer | Číslo stránky (0-based, predvolene 0) |
limit | integer | Max. záznamov na stránku (predvolene 50) |
[
{
"id": 9901,
"upsId": "42",
"cmm": "ups-01",
"code": "I/E01",
"description": "Output 1 turned ON",
"params": "",
"timestamp": "2026-05-08T14:32:01"
}, // ...
]
Základné informácie o UPS — meno, model, firmware, uptime, teploata, lokalita.
| Parameter | Typ | Popis |
|---|---|---|
id * | string | UPS ID |
{
"name": "Server Room UPS", "ip": "192.168.1.100",
"model": "PWX-12-4422", "serialNumber": "PSX-2024-001234",
"comFirmware": "v3.2.1", "mainFirmware": "v2.1.0",
"comUptime": "2d 14h 33m", "mainUptime": "5d 02h 11m",
"onOffLine": "online", "temperature": 42,
"description": "...", "location": "Rack A",
"company": "Acme Corp", "cmm": "ups-01",
"timestamp": "2026-05-08T14:30:00.000+0000"
}
Zoznam UPS zariadení prístupných prihlásenému používateľovi.
| Parameter | Typ | Popis |
|---|---|---|
searchText | string | Filter podľa mena alebo popisu |
searchType | string | Filter podľa názvu modelu |
{ "responseMessage": "OK", "responseObject": [ /* pole Ups objektov */ ] }
4 Ovládanie UPS
Vzdialené ovládanie výstupných portov UPS. Server nečaká na UPS — keď dostane príkaz, zavolá priamo na HTTP server UPS zariadenia na adrese uloženej pri registrácii.
1. UPS sa zaregistruje volaním
POST /api/setNewUps — server si uloží IP adresu UPS a API Key.2. Keď vy zavoláte
GET /ups/changePortState, server okamžite vykoná: GET http://{ups.ip}/api_actions?apiKey={key}&fn=3¶m1={port}
// priame HTTP volanie na IP adresu UPS
3. UPS spracuje príkaz a odpovie. Server výsledok vráti volajúcemu. setNewUps). Ak je UPS za NAT, router v sieti zákazníka požiadavku preloží a doručí do vnútra siete — server sa o prenos nemusí starať, stačí že je daná adresa a port dostupná z internetu.
API Key — kde ho získať: API Key sa generuje automaticky pri vytvorení používateľského účtu na UPS (Web Management → Users). Každý používateľ má vlastný unikátny API Key. Aby bolo možné cez API aj ovládať UPS (nielen čítať dáta), musí byť v karte daného používateľa zaškrtnuté políčko Enable API Write Actions. Bez tohto práva server požiadavky na zmenu stavu portu odmietne.
UPS /api_actions — referencia fn parametra
| fn | Akcia | Ďalší parameter | Použitie serverom |
|---|---|---|---|
1 | Identifikácia zariadenia | — | testConnection, getBasicInfo |
2 | Kompletné dáta UPS | — | getUpsComplexObject |
3 | Prepnutie stavu portu (ZAP↔VYP) | param1=N (port 0–11) | changePortState |
4 | Reštart portu — VYP na 5 s, potom ZAP | param1=N (port 0–11) | restartPort |
5 | Zmena popisu výstupného portu | param1=N param2=text (URL-kódovaný) | — |
status=ON). Reštart beží asynchrónne (FreeRTOS task) — odpoveď {info:1} znamená že bol reštart spustený, nie že bol dokončený.fn=5 (Zmena popisu) — URL-dekóduje hodnotu
param2 (%20→medzera, +→medzera). Max. 128 znakov. Zmena sa ihneď uloží do SPIFFS konfigurácie.
Prepne stav výstupného portu (ZAP→VYP alebo VYP→ZAP). Server zavolá UPS cez GET /api_actions?fn=3¶m1={port} na uloženom IP.
getUpsComplexObject. | Parameter | Typ | Popis |
|---|---|---|
id * | string | Interné DB ID UPS (z getUpsList) |
port * | integer | Index výstupného portu (0–11) |
GET /ups/changePortState?id=42&port=0 Authorization: Bearer eyJhbGci... // server potom zavolá: GET http://192.168.1.100/api_actions?apiKey=mykey&fn=3¶m1=0
5 Dátové modely
Output
{
"id": 0, // 0–11
"description": "Router", // používateľský názov / user label
"status": "ON", // "ON" alebo "OFF"
"voltage": 4810 // mV×10 → 48.10 V
}
ExtraAction
{
"id": "0", // slot "0"–"3"
"event": 1, // 0=žiadna, 1=IN1↑, 2=IN1↓, 3=IN2↑, 4=IN2↓
"baseStatus": 0, // index výstupu (0–11)
"action": 1 // 0=vypnúť výstup, 1=zapnúť výstup
}
PowerSupply
{
"main": 5410, // vstupné napätie zo siete (mV×10)
"load": 4810, // napätie 48V zbernice (mV×10)
"batt": 5220, // napätie batériového bloku (mV×10)
"buv": 4800, // podpäťová ochrana batérie (mV×10)
"cell": [1305, 1308, 1302, 1305], // napätia jednotlivých článkov (mV×10)
"status": { "h": { "hb": [1], "lb": [0] }, "l": { "hb": [0], "lb": [1] } }
}
Napätia: integer × 10 = mV (napr.
4810 = 48.10 V) · Prúdy: integer = mA (napr. 150 = 1.50 A) · Teploty: integer = °C 6 Chybové kódy
| HTTP | Kedy nastane |
|---|---|
| 200 OK | Požiadavka úspešná. Skontrolujte pole responseMessage. |
| 400 Bad Request | Neplatné prihlasovacie údaje alebo nesprávny formát. |
| 401 Unauthorized | Chýbajúci / neplatný JWT token, alebo companyId neexistuje. |
| 404 Not Found | Požadovaný zdroj (UPS, spoločnosť) nebol nájdený. |
Kódy správ v poli message
| Kód | Popis |
|---|---|
invalidEmailOrPassword | Nesprávny e-mail alebo heslo. |
disabledLoginFromWeb | Webové prihlásenie je zakázané pre tento účet. |
Invalid authorization token | JWT token chýba, vypršal alebo je neplatný. |