Data storage example
From PhotoVoltaic Logger new generation
Default
As example we will store a temperature.
Parameter | Value | since |
---|---|---|
API key | a10d3cca-370c-121e-b79c-2f0a58030a01 | r1 |
Channel GUID | 87fd-cc15-cb33-71a8-6b78-3855-4c11-a79e | r1 |
Temperature | 23.45 °C | r1 |
- We have to make a PUT request with JSON encoded body content: {"data":"<value>"} from a console with curl.
- The API key must be send as a Header field named X-PVLng-key
- Here only the measuring data is send, the timestamp will be used from server.
Interesting is the HTTP code returned and the response body for error analysis in case of HTTP code is not 200 or 201.
$ set $(curl --request PUT \ –-write-out %{http_code} \ --output /tmp/pvlng.curl \ --header "X-PVLng-key: a10d3cca-370c-121e-b79c-2f0a58030a01" \ --data-binary {"data":"23.45"} \ http://your.domain.here/api/r3/data/87fd-cc15-cb33-71a8-6b78-3855-4c11-a79e.txt)
To get readable error messages back, request content type text/plain (triggered by file extension .txt).
Check the return code like this:
$ test $1 -eq 200 -o $1 -eq 201 || echo "Error ($1): $(</tmp/pvlng.curl)" && exit 1
With timestamp
If you run the command from a remote equipment and want to use its time, you can send it as well.
Parameter | Value | since |
---|---|---|
Timestamp | Sat, 30 Aug 2014 22:11:11 GMT == 1409436671 | r1 |
- We have to make a PUT request with JSON encoded body content: {"data":"<value>","timestamp":"<timestamp>"}
$ set $(curl --request PUT \ –-write-out %{http_code} \ --output /tmp/pvlng.curl \ --header "X-PVLng-key: a10d3cca-370c-121e-b79c-2f0a58030a01" \ --data-binary {"data":"23.45","timestamp":"1409436671"} \ http://your.domain.here/api/r3/data/87fd-cc15-cb33-71a8-6b78-3855-4c11-a79e.txt)