Pasos para la integración de una controladora solar (Marca Victron) en HomeAssitant. Se detalla de una forma rápida omitiendo ciertos pasos como la integración del ESP32, pero se muestra la config (yaml) utilizada en el BIN compilado y funcionando en el ESP-Home.
**Esta integración viene por medio de un desarrollo y pruebas realizadas por un usuario de Github en este repo, https://github.com/Fabian-Schmidt/esphome-victron_ble/tree/main
En las pruebas que yo he realizado se integran correctamente controladoras de carga, medidores de baterías y balanceadores de baterias, no ha habido problemas en la integración con ningún modelo concreto. (El que se muestra es un 150/35) y sin problemas 🙂

Requerimientos Hardware
· ATOM Lite ESP32 M5Stack

A continuación indico por pasos los procesos que hay que realizar:
1. Lo primero nos deberemos conectar a nuestro controladora para sacar los datos de la MAC (Bluetooth) y la clave de cifrado, para ello nos conectaremos por medio de la APP (Victron Connect), nos fijamos en que tengamos la ultima version, evitándonos de esta manera que no salgan las opciones que se indican a continuación, y una vez seleccionado el equipo a visualizar, haciendo click en el engranaje de la derecha de la APP veremos la información del producto.

Información del producto

Visualización de los datos para la comunicación


2. Fichero Yaml (que a mi me funciona correctamente para este Modelo de placa ESP)
esphome:
name: blue-150
friendly_name: BLUE_150
esp32:
board: esp32dev
framework:
type: esp-idf
# Enable logging
logger:
# Enable Home Assistant API
api:
encryption:
key: "XXXXXXXXXXXXXXXXXXXXXXXXXXXX"
ota:
- platform: esphome
password: "XXXXXXXXXXXXXXXXXXXXXXXXXXXX"
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Blue-150 Fallback Hotspot"
password: "XXXXXXXX"
captive_portal:
external_components:
- source: github://Fabian-Schmidt/esphome-victron_ble
esp32_ble_tracker:
victron_ble:
- id: MySmartSolar
mac_address: "ecfc896a2512"
bindkey: "65d48d291980fd8c9796b670561be1a8"
sensor:
# MySmartSolar
- platform: victron_ble
victron_ble_id: MySmartSolar
name: "MPPT Output Voltage"
type: BATTERY_VOLTAGE
- platform: victron_ble
victron_ble_id: MySmartSolar
name: "MPPT Output Current"
type: BATTERY_CURRENT
- platform: victron_ble
victron_ble_id: MySmartSolar
name: "MPPT Yield Today"
type: YIELD_TODAY
- platform: victron_ble
victron_ble_id: MySmartSolar
name: "MPPT PV Power"
type: PV_POWER
- platform: victron_ble
victron_ble_id: MySmartSolar
name: "MPPT Load Current"
type: LOAD_CURRENT
binary_sensor:
- platform: victron_ble
victron_ble_id: MySmartSolar
name: "MPPT is in Fault state"
type: DEVICE_STATE_FAULT
- platform: victron_ble
victron_ble_id: MySmartSolar
name: "MPPT has Error"
type: CHARGER_ERROR
text_sensor:
- platform: victron_ble
victron_ble_id: MySmartSolar
name: "MPPT state"
type: DEVICE_STATE
- platform: victron_ble
victron_ble_id: MySmartSolar
name: "MPPT Error reason"
type: CHARGER_ERROR
De todo el codigo indicado se ha variado el framework (en este caso esp-idf ), utilizando el base de arduino, «al menos con este modelo de placa, me generaba muchos timeouts la conexión bluetooth», con este cambio me iba perfecto, en cuanto a los valores a recoger, son todos los valores posibles para una controladora solar, si se dispone de otro dispositivo, es irnos a la lista del repo de Github e ir añadiendo lo que necesitemos.
Y si… esto también se puede hacer con una raspi y montar un Venus virtual, y por medio de Ve.Direct llevarnos los datos, e incluso movernos estos datos via MQTT, pero con esto ahorramos la mitad de costes….