Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mk4001/ve.direct2mqtt-2.0
Victron Energy VE.Direct UART data output capture via MQTT based on ESP32
https://github.com/mk4001/ve.direct2mqtt-2.0
Last synced: about 1 month ago
JSON representation
Victron Energy VE.Direct UART data output capture via MQTT based on ESP32
- Host: GitHub
- URL: https://github.com/mk4001/ve.direct2mqtt-2.0
- Owner: mk4001
- Created: 2024-01-26T09:10:21.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2024-01-26T14:04:57.000Z (11 months ago)
- Last Synced: 2024-01-27T11:31:47.725Z (11 months ago)
- Language: C++
- Size: 2.41 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# VE.Direct2MQTT-2.0
Victron Energy VE.Direct UART data output capture via MQTT based on ESP32
Victron Energy VE.Direct UART data output over MQTT using Espressif ESP32 (based on the Arduino platform)The idea of untying the Victron Energy Smart Solar MPPT 75/15 from the smartphone's BLE APP and being able to send it to an MQTT broker led me to create this project.
The VE.Direct interface, on most Victron Energy products, is in fact a UART that transmits at a record speed of one per second at 19200 baud.
It is necessary to create a simple adapter cable with the help of a JST 2.0 PH 4 connector easily available on both Amazon and Aliexpress.
For the pins of the UART port in question, I only used PINs 1 (GND) and 3 (TX), then connected to Serial2 of a "DEVIT V1 ESP32-WROOM-32 Development Board" (GND and GPIO16 ports).
Data flows from the UART port at a rate of 1 record/sec.
Detailed documentation of the fields, their format and content is collected here:
https://www.victronenergy.com/upload/documents/VE.Direct-Protocol-3.33.pdf
Once the record has been captured on ESP32, we need to parse the fields and collect the data we need before sending it to the MQTT broker
In this new version 2.0 I used the official Victron Energy library "VeDirectFrameHandler" which is able to manage the "Chesum" field very well at the end of each record coming from a Victron device.
The "ParsingData.ino" function takes on, in this new version, a less relevant role and is no longer invoked for each entire record but rather for each field every time an entire and correct record is validated at Checksum level.
When your broker finally receives the data you can decide to collect it (perhaps using InfluxDB TELEGRAF):
https://www.influxdata.com/time-series-platform/telegraf/
and create a wonderful Dashboard on Grafana (always in the cloud, always free)
https://grafana.com/auth/sign-up/create-user?pg=hp&plcmt=hero-btn1&cta=create-free-account
With a little imagination and above all practice, you can also create dashboards like this:
![image1](https://github.com/mk4001/VE.Direct2MQTT-2.0/blob/5b6c22a4f9a01b6e5497d393e531245881a66e8c/Screenshot%202024-01-26%20at%2010.20.00.png)
(Grafana Dashboard file: Victron Energy-1700659129739.json)Alternatively you can use node red and manipulate the data as you see fit or create an ad hoc dashboard.
https://nodered.org
the obviously "interesting" thing is that you can consult the data of your Victron Energy devices quickly and easily from anywhere and customize them as you prefer.