Receive data from devices in your space and publish them as part of your SpaceAPI JSON :3
				
			
		| config | ||
| handlers | ||
| persistence | ||
| 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/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 config-credentials.json,config-dynamic.json,config-response.json