Add README and start to work on build for prod guide
	
		
			
	
		
	
	
		
	
		
			All checks were successful
		
		
	
	
		
			
				
	
				continuous-integration/drone/push Build is passing
				
			
		
		
	
	
				
					
				
			
		
			All checks were successful
		
		
	
	continuous-integration/drone/push Build is passing
				
			This commit is contained in:
		
							
								
								
									
										18
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										18
									
								
								README.md
									
									
									
									
									
								
							@@ -1,2 +1,18 @@
 | 
				
			|||||||
# SolarEnergy
 | 
					# 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
									
								
							
							
						
						
									
										48
									
								
								docs/SETUP_PROD.md
									
									
									
									
									
										Normal 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
 | 
				
			||||||
		Reference in New Issue
	
	Block a user