spaceapid/README.md

1.5 KiB

SpaceAPI Daemon

spaceapid serves a SpaceAPI-compatible JSON on port 8080:

$ curl -X GET http://[::1]:8080 | jq
{
  "api_compatibility": [
    "14"
  ],
  "space": "CCCHH",
  ...
}

Configuring

spaceapid has to be configured via one or multiple json files. A sample configuration is provided as config-template.json. The config consists of three parts:

  • "credentials"
    • List of Username/Password credentials for HTTP BasicAuth
  • "dynamic"
    • The configuration for the dynamic parts of the message
  • "response"
    • The static (pre-filled) parts of the response

See Running for details.

Updating values

The state of the boolean state->open property can be modified via /state/open:

curl -X PUT -u user:password -d true http://[::1]:8080/state/open

The same is true for the endpoints for sensors configured under "dynamic". Currently only temperature and humidity are implemented.

curl -X PUT -u user:password -d 23.42 http://[::1]:8080/sensors/{temperature,humidity}/location[/name]

Building

See the go.mod file for minimum required Go version. There are currently no dependencies apart from the Go standard library.

Running

Set the environment variable to a comma-separated list of config files or pass the -c flag.

env CONFIG_PATH=config-template.json go run .
# OR
go run . -c credentials.json,dynamic.json,response.json