zaptec charger#

charger id: 5273dba1-4e80-49ae-ac44-9420ae596ad3

cmds: 506 - stop/pause charging (requires firmware > 3.2) 507 - resume charging (requires firmware > 3.2) 10001 - deauthorize and stop charging.

Get the bearer token#

curl -vs -X POST https://api.zaptec.com/oauth/token -H "content-type: application/x-www-form-urlencoded" --data-raw 'grant_type=password&username=harry.metske%40gmail.com&password=<url-encoded password>'

Or better:

export TOKEN=$(curl -s -X POST https://api.zaptec.com/oauth/token -H "content-type: application/x-www-form-urlencoded" --data-raw 'grant_type=password&username=harry.metske%40gmail.com&password=<url-encoded password>' | jq -r .access_token)

Stop/pause the charger#

curl -X POST "https://api.zaptec.com/api/chargers/5273dba1-4e80-49ae-ac44-9420ae596ad3/sendCommand/506" -H  "accept: */*" -H  "Authorization: Bearer $TOKEN" -d ""

Resume charging#

curl -X POST "https://api.zaptec.com/api/chargers/5273dba1-4e80-49ae-ac44-9420ae596ad3/sendCommand/507" -H  "accept: */*" -H  "Authorization: Bearer $TOKEN" -d ""

Get the current state of the charger#

curl -s "https://api.zaptec.com/api/chargers/5273dba1-4e80-49ae-ac44-9420ae596ad3/state" -H  "accept: */*" -H  "Authorization: Bearer $TOKEN" 
This will return an array of these:
    "ChargerId": "5273dba1-4e80-49ae-ac44-9420ae596ad3",
    "StateId": -2,
    "Timestamp": "2023-06-09T13:35:24.583",
    "ValueAsString": "1"

This requires all the zaptec constants to interpret the StateId's.
To format them in a kind of table, use this jq expression: '.\[] | (.StateId|tostring) + " = " + .ValueAsString'