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.
This is an overview of all repositories that make up the WARP Charger and WARP Energy Manager ecosystem.
Please report any issue concerning WARP hard- or software in the esp32-firmware repository, no matter which repository it originates from.
- esp32-firmware - Source code of the ESP32 firmware shared between all WARP Chargers and Energy Managers
Libraries used by the firmware:
- tfjson - SAX style JSON serializer and deserializer
- tfmodbustcp - Modbus TCP server and client implementation
- tfocpp - OCPP 1.6 implementation
- tftools - Miscellaneous tools and helpers
Remote access:
- esp32-remote-access - Source code of the my.warp-charger.com remote access server
Documentation, tools and integrations:
- warp-charger - 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)
Current charger generation.
- warp-esp32-ethernet-v2-brick - Hardware design files of the WARP ESP32 Ethernet Brick 2.0
- warp-esp32-ethernet-v2-co-bricklet - Firmware source code of the WARP ESP32 Ethernet 2.0 Co Bricklet (co-processor)
- evse-v4-bricklet - Hardware design files of the EVSE 4.0 Bricklet (firmware shared with 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 - Hardware design files of the EVSE 3.0 Bricklet (firmware shared with the EVSE 2.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
- 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
- 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
Current energy manager generation.
- 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
- 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
. ├── 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 Devicewarp_emuWARP Energy Manager emulator for testingwg-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 buildinsidefrontend. - 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.