Reduxis API-guider
Koppla dina egna system till Reduxi: External API levererar molndata via HTTPS och MQTT API ger dig direktåtkomst till en Reduxi Controller via din MQTT-broker.
1 Vilken API-guide behöver du?
Reduxi har två API-guider. Använd External API för att hämta data om dina controllers, enheter, prognoser och priser från Reduxi-molnet. Använd MQTT API för att läsa värden från en Reduxi Controller och skicka börvärden och kommandon till den via din egen MQTT-broker.
| External API | MQTT API | |
|---|---|---|
| Typ | REST API via HTTPS (OpenAPI 3.0) | MQTT-meddelanden (version 3.x) på din MQTT-broker |
| Datakälla | Reduxi-molnet | Reduxi Controller |
| Åtkomst | Bearer-token | MQTT-brokerns värd, port, användarnamn och lösenord, inställda i Reduxi Configurator |
| Riktning | Hämtar data | Läser data, skickar börvärden och kommandon |
| Används för | Dashboards, rapportering och integrationer med data om controllers, enheter, prognoser och priser | Övervaka och styra en controller i realtid |
2 External API (REST)
External API ger dig åtkomst till data från dina controllers i Reduxi-molnet. Alla effekt- och energivärden anges i grundenheter: W och Wh. Förfrågningar auktoriseras med en Bearer-token.
- Controllers: lista över controllers, detaljer om en controller och senast kända status för dess enheter
- Larm: aktiva larm för en controller
- Enhetsdata: mätvärden per enhet, aggregerade mätvärden per enhetskategori och frågor över flera enheter
- Datatyper: de datatyper som finns för en enhet
- Prognoser: prognosdata per plats eller per controller
- Priser: spotmarknadspriser för nästa dygn, spotmarknadsregioner och prislistor per plats
3 MQTT API
MQTT API kopplar en Reduxi Controller till din MQTT-broker. Controllern publicerar sina avläsningar samt information om enheter och strategier i topics, och du skickar tillbaka börvärden, kommandon och inställningar via andra topics. Den aktuella specifikationen är version 1.5 och kräver controllerns programvaruversion 20260421084600.
- Controller: identifierare, keep-alive, avläsnings- och keep-alive-intervall, nätinställningar
- Enheter: enhetslista, enhetsinformation, avläsningar och börvärden
- Strategier: strategilista, information, avläsningar, parametrar, aktiv status och inställningar för extern EMS
- Kommandon: uppdatera metadata och starta om
MQTT-dokumentationen är skriven utifrån Reduxi Controllers perspektiv.
När du läser från Reduxi MQTT ser du termen "PUB". Varför PUB? Därför att vi publicerar data från Reduxi Controller till topicen.
När du anger värden i Reduxi Controller via MQTT ser du termen "SUB". Varför SUB? Därför att vi prenumererar på topicen och läser data från den, och de värden som du har skickat anges i Reduxi Controller.
Avsnitt 4 till 8 visar hur du ställer in Reduxi Configurator så att controllern skickar data till din MQTT-broker. De avslutas med ett exempel på hur du läser en enhet och ställer in dess börvärden.
4 Stöd för MQTT-versioner
Vi stöder version 3. x. Version 5. x stöder vi dock inte.
5 Konfiguration av Reduxis MQTT-gränssnitt
Logga in på enheten Reduxi Controler och gå till System settings. Under System settings väljer du MQTT v3 och anger uppgifterna för MQTT-brokern:
- Host (bara domän/IP, utan mqtts://)
- Port
- Användarnamn
- Lösenord
Textbeskrivning av bilden
Skärmbild av sidan MQTT v3 connection i Reduxi Configurator. Vänstermeny under logotypen reduxi CONFIGURATOR: Users, Devices, Strategies, System (utfälld, minustecken), Identifier, Network, Open VPN, Connector (utfälld), Cloud, MQTT v3 (vald, fetstil), iFlex, Configuration (hopfälld, plustecken), Distribution System Operators, Time. Sidhuvud: MQTT v3 connection, grön länkikon till höger. Statustabell: Client: tomt, Host: tomt, Connected: grön bock. Formulärsektionen Mqtt connection: Host: mqtt.example.com (grå, platshållarstil), Port: 1883 (grå), Username: tomt, Password: tomt, 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. Knappar: Clear, Save.
6 Windows-klient (MQTT Explorer)
Du kan försöka samla in data med MQTT Explorer genom att ansluta till MQTT-brokern med följande uppgifter:
Du kan ansluta till MQTT-brokern när du startar ett MQTT Explorer-program.
Textbeskrivning av bilden
Skärmbild av MQTT Explorer (överfält: DISCONNECT, sökruta) med dialogrutan MQTT Connection öppen över det nedtonade huvudfönstret. Lista till vänster: gul plusknapp med etiketten Connections, en sparad post mqtt.example.com med liten text mqtt://mqtt.example.com:1883/ (vald). Dialogens rubrik: MQTT Connection, med mqtt://mqtt.example.com:1883/ bredvid. Fält: Name: mqtt.example.com, Validate certificate: reglage av, Encryption (tls): reglage av, Protocol: mqtt:// (rullgardinslista), Host: mqtt.example.com, Port: 1883, Username: tomt, Password: maskerat med punkter, med en ikon för visa/dölj. Knappar: DELETE, ADVANCED, SAVE (gul), CONNECT (mörk). I den nedtonade bakgrunden syns en del av panelen Topic och ett JSON-värde med posterna type POWER_ACTIVE, target FIXED, phaseType null.
7 Kommandon
7.1. Refresh metadata
Begär att Reduxi publicerar all metadata om systemet, enheterna och strategierna på nytt till MQTT. Annars publiceras bara avläsningar och börvärden periodiskt.
Topic: controllers/controller_unit_id/commands/refresh
Textbeskrivning av bilden
Skärmbild av MQTT Explorer (status DISCONNECT, sökruta överst) som används för att skicka kommandot refresh. Ämnesträd till vänster: e8c1fe29.ala.eu-central-1.emqxsl.com; controllers; ZGFE med keepAlive = 1734965285703; commands med posten refresh; identifier = {"unitId":"ZGFE","unitIdFormatted":"ZGE","boardModel":"REDUXI_1","CPUSerial":"16516642034211ad","EMMCSerial":"4.(avskuret); settings; interval: readout = 15000, keepAlive = 60000; devices: 2 med 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 topic, 2 messages); 12 med info = {"id":12,"name":"Iskraemeco AM550","typeId":16,"type":{"id":16,"categoryId":1,"category":{"id":1,"name":"Energy meter","enumeration":"ENERGY_METER"; 17 (1 topic, 2 messages); 18 (1 topic, 2 messages); strategies: 8 med info = {"id":8,"typeId":7,"type":{"id":7,"name":"1-phase current based ON/OFF regulation","enumeration":"DISCRETE_CURRENT_PHASE_1"}; parameters (3 topics, 12 messages); 20 (2 topics, 8 messages); 27 (vald) med info = {"id":27,"typeId":8,"type":{"id":8,"name":"Energy manager coordinator for PV, EVSE, battery and heat pump","enumeration":"UMBRELLA"}; parameters (1 topic, 4 messages); list = [{"id":8,"typeId":7. Höger sida: panelen Topic (märke 2) med sökvägen controllers / ZGFE / strategies / 27, panelen Value med History, panelen Publish med Topic: controllers/ZGFE/commands/refresh, format raw, xml, json med json valt, tomt meddelande, knappen PUBLISH med en röd pil som pekar på den.
7.2. Reboot
Startar om Reduxi Controller.
Topic: controllers/controller_unit_id/commands/reboot
Textbeskrivning av bilden
Skärmbild av programmet MQTT Explorer (status DISCONNECT, sökruta överst) som används för att skicka kommandot reboot. Ämnesträd till vänster: $SYS (48 topics, 406 messages), controllers, devices (29 topics, 865 messages), strategies (38 topics, 884 messages), commands (0 topics, 1 message), identifier = {"unitId","unitIdFormatted","CPUSerial":.} (vald rad), settings (2 topics, 2 messages), keepAlive = 1675762462861. Höger sida: en JSON-förhandsvisning överst med softwareVersion "20230207091611", hwVersion "0", hasWifiModule false, dso {.}, History: 1. Panelen Publish med Topic: /controllers/ … /commands/reboot, med en röd klammer i slutet av topic-fältet. Formatalternativ raw, xml, json: json är valt. Meddelandetexten är tom. Knappen PUBLISH är inringad i rött. QoS: 0, retain: kryssrutan är inte ikryssad.
8 Börvärden
Börvärden styr en enhets effekt eller ström. Reduxi Controller publicerar de aktiva börvärdena för varje enhet, och du ställer in nya via motsvarande /set-topic.
8.1. Visa alla aktiva börvärden för enheten
Topic: controllers/controller_unit_id/devices/device_id/setpoint
Textbeskrivning av bilden
Skärmbild av MQTT Explorer (status DISCONNECT, sökruta överst) som visar börvärdet för enhet 15. Ämnesträd till vänster: $SYS (48 topics, 862 messages), controllers, devices, 13 (3 topics, 235 messages), 14 (3 topics, 235 messages), 15 utfälld med posterna readout = {"time":1675762671666,"values":[{"deviceId":15,"dataTypeId":174,"dataTypeEnum":"VOLTAGE_L1"; setpoint = {"deviceId":15,"values":[{"action":"NONE","type":"POWER_ACTIVE","target":"FIXED","phaseType":"L1".} (vald rad, markerad med en röd klammer), info = {"id":15,"name":"Baterija","typeId":14,"type":{"id":14,"name":"Victron Energy MultiPlus II","enumeration":"BATTE; därefter 18, 8, 9, 10, 11, 12 (3 topics, 233 messages vardera), 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 topics, 2104 messages), commands (0 topics, 1 message), identifier = {"unitId","unitIdFormatted","CPUSerial"; settings (2 topics, 2 messages), keepAlive = 1675762644772. Höger sida: Topic / controllers / / devices / 15 / setpoint. Panelen Value, QoS: 0, 02/07/2023 10:37:53 AM, med knappen för formaterad vy inringad i rött och JSON-värdet inramat med en röd klammer: { "deviceId": 15, "values": [ { "action": "NONE", "type": "POWER_ACTIVE", "target": "FIXED", "phaseType": "L1", "value": 0, "priority": 100, "validForTime": 28571 }, {. (fortsätter). History: 20.
8.2. Ange börvärden för enheten
Topic: controllers/controller_unit_id/devices/device_id/setpoint/set
Textbeskrivning av bilden
Skärmbild av MQTT Explorer (status DISCONNECT, sökruta överst) som används för att publicera ett börvärde för enhet 15. Ämnesträd till vänster: $SYS (48 topics, 1192 messages), controllers, devices (markerad), 13 (3 topics, 341 messages), 14 (3 topics, 341 messages), 15 utfälld med readout = {"time":1675762794195,"values":[{"deviceId":15,"dataTypeId":174,"dataTypeEnum":"VOLTAGE_L1"; setpoint = {"deviceId":15,"values":[{"action":"NONE","type":"POWER_ACTIVE","target":"FIXED","phaseType":"L1".} (vald rad), info = {"id":15,"name":"Baterija","typeId":14,"type":{"id":14,"name":"Victron Energy MultiPlus II","enumeration":"BATTE; 18 (3 topics, 339 messages), 8 (3 topics, 340 messages, markerad), 9, 10, 11, 12 (3 topics, 339 messages vardera), list = [{"id":8,"name":"Sončna elektrarna","typeId":7,"type":{"id":7,"name":"SolarEdge"; types = [{"id":40,"name":"ABB","enumeration":"CHARGER_ABB"; strategies (38 topics, 3062 messages), commands (0 topics, 1 message), identifier = {"unitId","unitIdFormatted","CPUSerial":; settings (2 topics, 2 messages), keepAlive = 1675762764833. Höger sida: märket History 20, därefter panelen Publish. Topic: /controllers/ … /devices/15/setpoint/set, topic-fältet är markerat med röda klamrar och ordet set är understruket med rött. Format raw, xml, json: json valt. Meddelandetext, inramad med en röd klammer: { "values": [ { "action": "SET", "type": "POWER_ACTIVE", "target": "FIXED", "phaseType": null, "value": 1000, "priority": 10000, "validForTime": 60000 } ] }. Knappen PUBLISH är inringad i rött. QoS: 0, retain inte ikryssad. Under finns avsnittet History.
8.2.1. Exempel 1
Ange aktiv effekt till -1 kW (export) på alla faser i 15 sekunder.
{
"values": [
{
"action": "SET",
"type": "POWER_ACTIVE",
"target": "FIXED",
"phaseType": null,
"value": 1000,
"priority": 10000,
"validForTime": 15000
}
]
}
8.2.2. Exempel 2
Begränsa maxströmmen till 10A på fas L2 i 30 sekunder.
{
"values": [
{
"action": "SET",
"type": "CURRENT",
"target": "MAX",
"phaseType": "L2",
"value": 10,
"priority": 10000,
"validForTime": 30000
}
]
}