From 42a012239fc7004c120a74c555a48202f5775bac Mon Sep 17 00:00:00 2001 From: Bennett Wetters Date: Sun, 14 Jan 2024 23:19:45 +0100 Subject: [PATCH] Update README.md to reflect new features --- README.md | 50 ++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 40 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 8fda72e..12c7c67 100644 --- a/README.md +++ b/README.md @@ -3,28 +3,58 @@ `spaceapid` serves a [SpaceAPI](https://spaceapi.io)-compatible JSON on port 8080: ```shell -curl -X GET http://localhost: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](./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](#running) for details. + +## Updating values + The state of the boolean `state->open` property can be modified via `/state/open`: ```shell -curl -X PUT -u user:password -d true http://localhost:8080/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. + +```shell +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. - -```shell -go build . -``` +See the `go.mod` file for minimum required Go version. +There are currently no dependencies apart from the Go standard library. ## Running -Substitute the environment variables with appropriate custom values. +Set the environment variable to a comma-separated list of config files or pass the `-c` flag. ```shell -env BA_USERNAME=user BA_PASSWORD=password JSON_TEMPLATE_PATH=ccchh-template.json go run . +env CONFIG_PATH=config-template.json go run . +# OR +go run . -c credentials.json,dynamic.json,response.json ```