Receive data from devices in your space and publish them as part of your SpaceAPI JSON :3
config | ||
handlers | ||
types | ||
util | ||
.gitignore | ||
config-template.json | ||
go.mod | ||
LICENSE | ||
main.go | ||
README.md |
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/{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