Add README and start to work on build for prod guide
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
Pierre HUBERT 2024-10-15 22:48:26 +02:00
parent f8bcb63513
commit 540d10bf78
2 changed files with 65 additions and 1 deletions

View File

@ -1,2 +1,18 @@
# SolarEnergy
WIP project
A project to optimize solar energy production and consumption. It connect to a current meter to decides whether some appliances controlled by relays shall be turned on or not, based on criterias such as:
* Minimal uptime
* Minimal downtime
* Daily minimal runtime
* Estimated consumption
* Dependencies, conflicts
## Components
* [`central_backend`](./central_backend): The core component that connects all the other one and make the decisions to turn on or off devices
* [`central_frontend`](./central_frontend): Web UI to configure the devices and monitor them
* [`custom_consumtion`](./custom_consumption): Development tool used to test different production values
* [`esp32_device`](./esp32_device/): The code installed in the MCU that controls relays (Wt32-Eth01 devices)
* [`python_device`](./python_device/): An alternative to the esp32 to control relays. Not production ready.
## Documentation
* [Setup for development](./docs/SETUP_DEV.md) guide
* [Setup for production](./docs/SETUP_PROD.md) guide

48
docs/SETUP_PROD.md Normal file
View File

@ -0,0 +1,48 @@
# Configure project for production
## Create production build
### Central
The production release of central backend and frontend can be realised on a computer which has NodeJS and Rust installed by executing the following command at the root of the project:
```bash
make
```
The backend will be available at this location:
```
central_backend/target/release/central_backend
```
### Python device
The Python device isn't production ready yet.
### ESP32 device
#### Flashing the device directly
Use the following commands to flash a device (inside ESP-IDF environnment):
```bash
idf.py build
idf.py flash
```
#### Getting an OTA update
Use the following command to build an OTA update:
```bash
idf.py build
```
The OTA update is then located in `build/main.bin`
## Pre-requisites
* A server running a recent Linux (Debian / Ubuntu preferred) with `central` as hostname
* DHCP configured on the network
## Configure server
TODO