This repository contains everything needed to build and run the (WIP) remote access server for Tinkerforge WARP Chargers, WARP Energy Managers and ESP32-/ESP32-Ethernet-Bricks.
- esp32-firmware Please report any issues concerning WARP hard- and software here! Source code of the ESP32 firmware shared between all WARP Chargers and Energy Managers
 - tfjson SAX style JSON serializer and deserializer
 - tfmodbustcp Modbus TCP server and client implementation
 - tfocpp OCPP 1.6 implementation
 - tftools Miscellaneous tools and helpers
 - esp32-remote-access Source code of the my.warp-charger.com remote access server
 - warp-charger The source code of (docs.)warp-charger.com and the printed manual, released firmwares, datasheets and documents, as well as some tools and hardware design files
 - api.warp-charger.com Serves APIs that are used by WARP Chargers to obtain relevant public information like day ahead prices
 - vislog.warp-charger.com Visualizes WARP Charger logs and EVSE debug protocols
 - dbus-warp-charger Integrates WARP Chargers into a Victron Energy Venus OS device (e.g. Cerbo GX)
 
- esp32-brick Hardware design files of the ESP32 Brick
 - evse-bricklet Firmware source code and hardware design files of the EVSE Bricklet
 - rs485-bricklet Firmware source code and hardware design files of the RS485 Bricklet
 
- esp32-ethernet-brick Hardware design files of the ESP32 Ethernet Brick
 - evse-v2-bricklet Firmware source code and hardware design files of the EVSE 2.0 Bricklet
 - nfc-bricklet Firmware source code and hardware design files of the NFC Bricklet
 
- warp-esp32-ethernet-brick Hardware design files of the WARP ESP32 Ethernet Brick
 - evse-v3-bricklet Firmware source code and hardware design files of the EVSE 3.0 Bricklet
 - nfc-bricklet Firmware source code and hardware design files of the NFC Bricklet
 
- esp32-ethernet-brick Hardware design files of the ESP32 Ethernet Brick
 - warp-energy-manager-bricklet Firmware source code and hardware design files of the WARP Energy Manager Bricklet
 
- esp32-ethernet-brick Hardware design files of the ESP32 Ethernet Brick
 - warp-energy-manager-v2-bricklet Firmware source code and hardware design files of the WARP Energy Manager 2.0 Bricklet
 - warp-front-panel-bricklet Firmware source code and hardware design files of the WARP Front Panel Bricklet
 
. ├── backend ├── db_connector ├── docker ├── frontend ├── tun └── wg-webclient
backendThe http backend server and relay server between the charger and the users browserdb_connectorA crate containing the types needed to interface with the database serverdockerFiles to run and build the docker containersfrontendWebsite that is served by the webservertunA cli tool able to create a WireGuard tunnel on linux platforms to a WARP Devicewg-webclientThe Wireguard implementation containing also a network stack and Http and Websocket client.
- Rust toolchain: https://www.rust-lang.org/tools/install
 - Node: https://nodejs.org/en
 - Wasm-pack: https://github.com/rustwasm/wasm-pack
 - docker: https://www.docker.com/get-started/
 
For the production build only docker is needed since everything is build in a container.
- Create a 
certsdirectory indocker/nginxand place a X.509 certificate and key in pem format namedcert.pemandkey.peminside. - Clone the warp-charger ropository
 - Fill in the needed variables in the env variables. All needed variables are listed inside the .env.example files.
 - build the wg-package by running 
wasm-pack buildinsidewg-webclient. - build the website by running 
npm install && npm run buildinsideremote-access-page. - start the webserver + database by running 
docker compose -f docker-compose-dev.yml up --buildinsidedocker. - start the backend server by running 
cargo runinsidebackend. 
- Ensure that the host is accessible via a Fully Qualified Domain Name, otherwise creating a Lets Encrypt Certificate will fail.
 - Clone the warp-charger repository to the same parent directory as this repository.
 - Fill in the needed variables in the env file. All needed variables are listed inside the .env.example files.
 - Start everything with 
docker compose upinside thedockerdirectory.