
Salut à tous ! 👋 Aujourd’hui, on continue notre série sur la batterie, mais cette fois, on passe à l’étape chargement. Dans la vidéo précédente, on avait vu comment décharger la batterie avec le Power Stream en mode développeur. Maintenant, on va voir comment la recharger efficacement.
Choisir le bon chargeur 💡
Au départ, j’avais un chargeur acheté sur un site chinois, mais il n’a pas tenu. Après quelques recherches sur un forum, je suis tombé sur le R48 3000E3 d’Emerson. À la base, ce n’est pas un chargeur de batterie classique : c’est un redresseur 48V utilisé dans les télécoms et data centers. Il est conçu pour fonctionner 24h/24 et possède un rendement élevé.
Ses caractéristiques clés :
- Entrée : 90 à 275V AC ✅ compatible France.
- Sortie : 43 à 58V DC, parfait pour nos batteries.
- Courant max : 52A → environ 3000W. Perso, je reste à 1500W pour la sécurité.
- Fiable et sécuritaire : protections contre surtensions entrée/sortie.
- Prix : environ 80 € sur AliExpress (occasion pro).
Petit bonus : ce type de matériel est vendu d’occasion par les grosses boîtes télécom qui le remplacent avant panne.
Contrôler la charge avec un ESP32 ⚡
Pour piloter ce chargeur, il nous faut :
- Un ESP32 (~4€ sur AliExpress)
- Un module MCP2515 pour la liaison CAN
Cela permet de contrôler la charge depuis Home Assistant, par exemple pour injecter l’excédent solaire dans la batterie.
Installation du programme dans l’ESP32 🖥️
- On utilise ESPHome, ici en Docker, pour gérer l’ESP32.
- On récupère le fichier de configuration spécifique au R48 3000E3.
- On compile et installe le programme sur l’ESP32 via USB.
- Une fois installé, l’ESP32 est branché au chargeur et à la batterie.
esphome:
name: batterie_r48
friendly_name: Batterie
min_version: 2024.6.0
on_boot:
priority: 800.0
then:
- delay: 5s
- logger.log: "Vérification WiFi au boot"
external_components:
- source:
type: git
url: http://github.com/IxioJo/esphome-emerson-vertiv-r48
ref: main
refresh: 0s
esp32:
board: esp32dev
framework:
type: esp-idf
logger:
level: DEBUG
api:
wifi:
ssid: xxxxxxxxxx
password: xxxxxxxxxxxxx
ap:
ssid: "Esphome-Emerson-Jkbms"
password: "qwertyzxc"
ota:
- platform: esphome
password: xxxx
spi:
id: shared_spi
clk_pin: GPIO18
mosi_pin: GPIO23
miso_pin: GPIO19
canbus:
- platform: mcp2515
id: can
spi_id: shared_spi
use_extended_id: true
cs_pin: GPIO5
can_id: 0x0607FF83
bit_rate: 125kbps
mode: NORMAL
data_rate: 10Mhz
emerson_r48:
canbus_id: can
update_interval: 1s
time:
- platform: sntp
id: esphome_time
servers: pool.ntp.org
switch:
- platform: emerson_r48
ac_sw:
name: "R48 AC switch Turn OFF"
restore_mode: ALWAYS_ON
dc_sw:
name: "R48 DC switch Turn OFF"
restore_mode: ALWAYS_ON
fan_sw:
name: "R48 FAN switch MAX"
led_sw:
name: "R48 LED switch"
binary_sensor:
- platform: status
name: "ESP Controller Status"
button:
- platform: emerson_r48
set_offline_values:
name: "R48 Set offline values"
- platform: restart
name: "Restart ESP"
number:
- platform: emerson_r48
output_voltage:
name: "R48 Set output voltage"
max_output_current:
name: "R48 Max output current"
unit_of_measurement: '%'
max_input_current:
name: "R48 Max input current"
sensor:
- platform: emerson_r48
output_voltage:
name: "R48 Output voltage"
id: r48_output_voltage
output_current:
name: "R48 Output current"
id: r48_output_current
output_temp:
name: "R48 Temperature"
input_voltage:
name: "R48 AC Voltage"
max_output_current:
name: "R48 DC max current"
unit_of_measurement: '%'
- platform: template
name: outPower
id: outpower
unit_of_measurement: W
device_class: power
update_interval: 6s
accuracy_decimals: 2
lambda: |-
if(id(r48_output_current).state>0) { return ( id(r48_output_current).state * id(r48_output_voltage).state ); }
else {return 0;}
Important : respecter les broches choisies pour le CAN H et CAN L ainsi que l’alimentation 5V de l’ESP32.
Intégration dans Home Assistant 🏠
- Installer l’intégration ESPHome si ce n’est pas déjà fait.
- Ajouter l’ESP32 via son IP fixe.
- Toutes les données remontent automatiquement : tension, courant, état de charge…
Astuce : utiliser un scanner d’IP comme Advanced IP Scanner pour retrouver facilement l’adresse de l’ESP32 sur le réseau.
Câblage et réglages pratiques 🔧
- Les deux broches MCP2515 doivent être reliées.
- Attention aux mauvais contacts sur les ponts : il faut bien appuyer ou souder pour garantir la stabilité.
- La tension de charge peut se régler très précisément depuis Home Assistant, jusqu’à 1-2V près.
Bonus : monitorer la batterie en temps réel 📊
J’ai fabriqué un petit boîtier connecté qui :
- Contrôle le JK BMS et le chargeur.
- Affiche les informations sur un petit écran.
- Permet de changer de page pour voir différentes données.
Prochaine vidéo : je vous montrerai l’impression 3D et l’organisation de ce boîtier.
En résumé
Avec ce setup, vous obtenez un chargeur pro, fiable et contrôlable via Home Assistant. Vous pouvez charger votre batterie en toute sécurité, gérer l’excédent solaire et monitorer la tension et le courant en temps réel.
💡 Prix total : environ 85€ pour un chargeur 3000W + ESP32 + module MCP2515. Pas mal pour du matos pro recyclé !
Si ça vous a plu, abonnez-vous pour ne pas rater la suite où on verra le boîtier de contrôle et d’autres astuces pour gérer vos batteries comme un pro. ⚡
👍 Si ce guide vous a aidé, pensez à liker, à vous abonner et à activer la cloche 🔔 pour ne rien rater des prochains tutos.
📹 Regardez la vidéo complète ici :
