SmartPi API
Mit der integrierten REST-API ist es möglich, alle relevanten Daten auszulesen und in eigenen Applikationen zu verwenden. Das Webinterface des SmartPi nutzt auch die REST-API.
Aktuelle Werte
Geben Sie zum Beispiel in der Adresszeile Ihres Browsers http://<ipaddress:1080>/api/all/all/now
ein. Sie bekommen alle aktuellen Werte angezeigt.
Die Struktur der URL ist immer gleich aufgebaut: http://<ipaddress>:<port>/api/<phaseid>/<valueid>/now
Für valueid sind folgende Parameter erlaubt:
current | Strom [A] (Für Phase 1,2,3 und Neutralleiter (4)) |
voltage | Spannung [V](Nur für Phase 1,2,3) |
power | Leistung [W] (Nur für Phase 1,2,3) |
cosphi | cos φ (Nur für Phase 1,2,3) |
frequency | Frequenz [Hz] (Nur für Phase 1,2,3) |
all | Alle Werte |
Für phaseid sind folgende Parameter erlaubt:
1 | Phase 1 |
2 | Phase 2 |
3 | Phase 3 |
4 | Nur beim Parameter valueid current gültig (Strom des Neutralleiters) |
all | Alle Phasen |
Historische- und Diagrammdaten
Die REST-API kann auch historische Daten liefern.
Zum Beispiel gibt http://<ipaddress:1080>/api/chart/123/power/from/2016-09-29T00:00:00.000Z/to/2016-09-29T14:00:00.000Z
alle am 29. September 2016 zwischen 0:00 Uhr und 14:00 Uhr gemessenen Werte aus.
Auch hier ist die Struktur der URL immer gleich aufgebaut: http://<ipaddress>:<port>/api/chart/<phaseid>/<valueid>
Für valueid sind folgende Parameter erlaubt
current | Strom [A] (available for phase 1,2,3, neutral conductor) |
voltage | Spannung [V] (available for phase 1,2,3) |
power | Leistung [W] (available for phase 1,2,3) |
cosphi | cos φ (available for phase 1,2,3 – it is important to measure the voltage) |
energy_pos | Energie [Wh] (Energieverbrauch) |
energy_neg | Energie [Wh] (Energieerzeugung) |
Für phaseid sind folgende Parameter erlaubt
1 | Phase 1 |
2 | Phase 2 |
3 | Phase 3 |
4 | Nur beim Parameter valueid current gültig (Strom des Neutralleiters) |
123 | All Phasen |
SmartPi Modbus TCP/RTU
Mindestanforderung: Version 0.9.4
Mit der integrierten Modbus Schnittstelle ist es möglich, alle relevanten Daten über TCP oder RTU auszulesen und in eigenen Applikationen zu verwenden.
Bei Modbus RTU muss sicher gestellt werden, dass der RS485 richtig konfiguriert wurde. Siehe RS485 Aktivierung
Modbus TCP
TCP-Port: 502
Slave Address: 1
Unterstütze Funktionen: 3,4
Transaktionsnummer |
Protokollkennzeichen |
Zahl der noch folgenden Bytes |
Adresse |
Funktion |
Daten |
2 Byte |
2 Byte (immer 0x0000) |
2 Byte (n+2) |
1 Byte |
1 Byte |
n Byte |
Modbus RTU
Baudrate: 19200 8N1
Slave Address: einstellbar (Standard: 1)
Unterstütze Funktionen: 3,4
Adresse |
Funktion |
Daten |
CR-Check |
1 Byte |
1 Byte |
n Bytes |
2 Bytes |
Register
No |
Name |
Address |
Type |
Data format |
Unit |
Function code |
Note |
1 |
I1 |
0-1 |
R |
Float |
A |
3,4 |
I1>0 = Bezug |
2 |
I2 |
2-3 |
R |
Float |
A |
3,4 |
I2>0 = Bezug I2<0 = Einspeisung |
3 |
I3 |
4-5 |
R |
FLOAT |
A |
3,4 |
I3>0 = Bezug I3<0 = Einspeisung |
4 |
I4 |
6-7 |
R |
FLOAT |
A |
3,4 |
I4>0 = Bezug I4<0 = Einspeisung |
5 |
U1 |
8-9 |
R |
FLOAT |
V |
3,4 |
|
6 |
U2 |
10-11 |
R |
FLOAT |
V |
3,4 |
|
7 |
U3 |
12-13 |
R |
FLOAT |
V |
3,4 |
|
8 |
P1 |
14-15 |
R |
FLOAT |
W |
3,4 |
P1>0 = Bezug P1<0 = Einspeisung |
9 |
P2 |
16-17 |
R |
FLOAT |
W |
3,4 |
P2>0 = Bezug P2<0 = Einspeisung |
10 |
P3 |
18-19 |
R |
FLOAT |
W |
3,4 |
P3>0 = Bezug |
11 |
CosPhi1 |
20-21 |
R |
FLOAT |
|
3,4 |
|
12 |
CosPhi2 |
22-23 |
R |
FLOAT |
|
3,4 |
|
13 |
CosPhi2 |
24-25 |
R |
FLOAT |
|
3,4 |
|
14 |
F1 |
26-27 |
R |
FLOAT |
Hz |
3,4 |
|
15 |
F2 | 28-29 | R | FLOAT | Hz | 3,4 | |
16 |
F3 | 30-31 | R | FLOAT | Hz | 3,4 |
Float
Formatierung nach IEEE-754
Beispiel:
Messwert: 230V
4 Bytes: 0x43 0x66 0x00 0x00
Beispiel Modbus RTU
Alle Daten auslesen.
Master => SmartPi
Adresse |
Funktion |
Start Register |
Anzahl Register |
CRC |
0x01 |
0x03 |
0x00 0x00 |
0x00 0x20 |
0x44 0x12 |
SmartPi => Master
Adresse |
Funktion |
Anzahl Bytes |
Daten |
CRC |
0x01 |
0x03 |
0x40 |
0x 0x 0xBD 0xA7 0xA0 0x76 0xBD 0x9E 0xCF 0xFB 0xBD 0xA8 0x23 0xA7 0xBD 0x9B 0x46 0xC4 0x3E 0xC9 0x51 0x83 0x3E 0xCC 0x63 0xF1 0x3E 0xCA 0x71 0xDE 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xBC 0x9F 0x08 0x03 0x3F 0x77 0x4D 0xD9 0xBE 0x71 0x7D 0xBD 0xBE 0xEA 0xAD 0xFF 0x43 0x91 0xC9 0x2F 0x43 0x7E 0xFA 0xE7 0x42 0xA4 0x0C 0xCC |
0x52 0x94 |