Zum Hauptinhalt springen

Ladetracker

Das charge_tracker-Modul zeichnet Ladevorgänge auf. Ladevorgänge werden in einem kompakten Binärformat gespeichert und können in diesem, oder aufbereitet als PDF-Dokument abgerufen werden.

charge_tracker/state

Zustand des Ladetrackers

Beispiel
# $HOST z.B. warp-AbCd

Lesen

curl http://$HOST/charge_tracker/state
{ "tracked_charges": 206, "first_charge_timestamp": 28090609 }

28090609 * 60 = 1685436540 = 2023-05-30T08:49:00+00:00

NameBedeutung
tracked_charges
int

Anzahl der insgesamt aufgezeichneten Ladevorgänge.

first_charge_timestamp
int (min)

Ein Unix-Timestamp in Minuten, der den Startzeitpunkt des ersten Ladevorgangs angibt. 0 falls zum Startzeitpunkt keine Zeitsynchronisierung verfügbar war.




charge_tracker/last_charges

Die letzten (bis zu) 30 aufgezeichneten Ladevorgänge

Beispiel
# $HOST z.B. warp-AbCd

Lesen

curl http://$HOST/charge_tracker/last_charges
[
{
"timestamp_minutes": 28568514,
"charge_duration": 27479,
"user_id": 0,
"energy_charged": 39.83935547
},
{
"timestamp_minutes": 28572916,
"charge_duration": 37806,
"user_id": 0,
"energy_charged": 33.81298828
},
{
"timestamp_minutes": 28574252,
"charge_duration": 27915,
"user_id": 0,
"energy_charged": 34.23388672
}
]
IndexBedeutung
[0..29]
object

Ein getrackter Ladevorgang

NameBedeutung
timestamp_minutes
int (min)

Ein Unix-Timestamp in Minuten, der den Startzeitpunkt des Ladevorgangs angibt. 0 falls zum Startzeitpunkt keine Zeitsynchronisierung verfügbar war.

charge_duration
int (s)

Dauer des Ladevorgangs.

user_id
int

ID des Benutzers der den Ladevorgang gestartet hat. 0 falls eine Freigabe ohne Nutzerzuordnung erfolgt ist.

energy_charged
float (kWh)

Geladene Energie. null falls zum Start- oder Endzeitpunkt kein Zähler verfügbar war.




charge_tracker/current_charge

Information zum aktuell laufenden Ladevorgang. Falls kein Ladevorgang läuft, hat die user_id den Wert -1

Beispiel
# $HOST z.B. warp-AbCd

Lesen

curl http://$HOST/charge_tracker/current_charge
{
"user_id": 0,
"meter_start": 886.1900024,
"evse_uptime_start": 786598059,
"timestamp_minutes": 28577341,
"authorization_type": 0,
"authorization_info": null
}
NameBedeutung
user_id
int

ID des Benutzers der den Ladevorgang gestartet hat. 0 falls eine Freigabe ohne Nutzerzuordnung erfolgt ist. -1 falls gerade kein Ladevorgang läuft.

meter_start
float (kWh)

Zählerstand bei Start des Ladevorgangs. null falls zum Startzeitpunkt kein Zähler verfügbar war.

evse_uptime_start
int (s)

Uptime des Ladecontrollers beim Start des Ladevorgangs. Um zu berechnen, wie lange der Ladevogang bereits läuft kann die aktuelle Uptime aus evse/low_level_state verwendet werden.

timestamp_minutes
int (min)

Ein Unix-Timestamp in Minuten, der den Startzeitpunkt des Ladevorgangs angibt. 0 falls zum Startzeitpunkt keine Zeitsynchronisierung verfügbar war.

authorization_type
int

Gibt an wie der Ladevorgang freigeschaltet wurde.

  • 0 - Benutzerfreigabe deaktiviert, Ladevorgang wurde bei Anstecken des Fahrzeugs freigegeben. authorization_info ist null.
  • 1 - Typ der Freischaltung ging verloren, da der ESP während des Ladevorgangs neugestartet wurde. authorization_info ist null.
  • 2 - Ladevorgang wurde durch NFC-Tag freigegeben. NFC-Tag wurde physisch an den WARP Charger gehalten. authorization_info enthält tag_id und tag_type.
  • 3 - Ladevorgang wurde durch NFC-Tag freigegeben. NFC-Tag wurde per nfc/inject_tag vorgetäuscht. authorization_info enthält tag_id und tag_type.
authorization_info
None

Weiterführende Informationen zur Benutzerfreigabe. Format hängt vom authorization_type ab.




charge_tracker/remove_all_charges

Löscht alle aufgezeichneten Ladevorgänge und die Nutzernamenhistorie. Kann nicht rückgängig gemacht werden! Danach wird automatisch ein Neustart ausgeführt.

Beispiel
# $HOST z.B. warp-AbCd

Schreiben

curl http://$HOST/charge_tracker/remove_all_charges -d '{ "do_i_know_what_i_am_doing": false }'
NameBedeutung
do_i_know_what_i_am_doing
bool

Gibt an ob der Löschvorgang ausgeführt werden soll

  • true - Alle aufgezeichneten Ladevorgänge und die Nutzernamenhistorie löschen
  • false - Keine Aktion durchführen



charge_tracker/charge_log

Gibt alle aufgezeichneten Ladevorgänge in folgendem Binärformat aus. Einträge entsprechen jeweils einem Ladevorgang, sind 16 Byte lang und werden nacheinander ausgegeben. Die folgenden Indizes sind Byte-Offsets relativ zum Start eines aufgezeichneten Ladevorgangs. Alle Werte sind im Little-Endian-Format.

Beispiel
# $HOST z.B. warp-AbCd
curl http://$HOST/charge_tracker/charge_log
offset      timestamp kwh_start id duration kwh_end
0x00000000: c2eb b301 3bf8 8c45 00 57 6b00 f236 8e45
0x00000010: f4fc b301 2738 8e45 00 ae 9300 a846 8f45
0x00000020: 2c02 b401 df46 8f45 00 0b 6d00 be58 9045

Dieses Beispiel enthält die selben Ladevorgänge wie das charge_tracker/last_charges-Beispiel

IndexBedeutung
[0..3]
int (min)

Ein Unix-Timestamp in Minuten, der den Startzeitpunkt des Ladevorgangs angibt. 0 falls zum Startzeitpunkt keine Zeitsynchronisierung verfügbar war.

[4..7]
float (kWh)

Zählerstand bei Start des Ladevorgangs. NaN falls zum Startzeitpunkt kein Zähler verfügbar war.

[8]
int

ID des Benutzers der den Ladevorgang gestartet hat. 0 falls eine Freigabe ohne Nutzerzuordnung erfolgt ist.

[9..11]
int (s)

Dauer des Ladevorgangs.

[12..15]
float (kWh)

Zählerstand bei Ende des Ladevorgangs. NaN falls zum Endzeitpunkt kein Zähler verfügbar war.




charge_tracker/config

Die Ladetracker-Konfiguration.

Beispiel
# $HOST z.B. warp-AbCd

Lesen

curl http://$HOST/charge_tracker/config
{ "electricity_price": 3381 }

Schreiben

curl http://$HOST/charge_tracker/config -d '{ "electricity_price": 3381 }'

oder abgekürzt:

curl http://$HOST/charge_tracker/config -d '3381'
NameBedeutung
electricity_price
int (ct/kWh/100)

Strompreis der im Webinterface und Ladelog verwendet wird um Ladekosten zu berechnen