Files
home-data-collection-tools/README.md

51 lines
2.4 KiB
Markdown

# Home Data Collection Tools
A mono repository containing all the homebrew collectors and REST APIs running on the local server. See it in action [here](https://valkendaal.duckdns.org).
## Contents
This repository houses various projects. All are listed below.
- The Zeverlution S3000 logger, [documentation](docs/SOLAR_LOGGER.md)
- The Landis Gyr E350 logger, [documentation](docs/ELECTRICITY_LOGGER.md)
- Two pistache REST HTTP APIs, [documentation](docs/SERVER.md)
- A solar panel log server, [documentation](docs/SOLAR_API.md)
- An electricity log server, [documentation](docs/ELECTRICITY_API.md)
- A migrator to convert and build data structures yielded by the loggers, [documentation](docs/MIGRATOR.md)
## Project Directory
|- `.vscode` => A folder with Visual Studio Code IDE specific files, for developing this project </br>
|- `docs` => A folder housing all the documentation files (`*.md`) </br>
|- `include` => A folder housing all the header files used by the source files in `src/` </br>
|- `script` => A folder with handy bash scripts to create and migrate databases </br>
|- `src` => A folder with all the source files of the different projects that require compilation </br>
|....|- `electricity-logger` => The Landis Gyr E350 logger source files </br>
|....|- `electricity-server` => The pistache REST API sources for serving the electricity logs </br>
|....|- `migrator ` => The migrator source files </br>
|....|- `solar-logger` => The Zeverlution S3000 logger source files </br>
|....|- `solar-server` => The pistache REST API sources for serving the solar panel logs </br>
|- `systemd` => A folder with example systemd service files for the servers </br>
## Miscellaneous
A few benchmarks have been done for the solar-server project, which can be found [here](docs/BENCHMARK.md).
## Dependencies
### Runtime (server)
- Curl: the multiprotocol file tranfser library, [website](https://curl.haxx.se/libcurl/)
- cxxopts, [website](https://github.com/jarro2783/cxxopts/tree/v3.0.0)
- Docker CE, [website](https://www.docker.com/)
- GNU Make, [website](https://www.gnu.org/software/make/)
- Pistache: an elegant C++ REST framework, [website](http://pistache.io/)
- Spdlog, [website](https://github.com/gabime/spdlog)
- Sqlite3: a small SQL database engine, [website](https://www.sqlite.org/index.html)
### Development
In addition to all the runtime dependencies the following dependencies are required for development:
- A C++20 compatible compiler