Charger sa batterie avec un chargeur télécom R48 3000e3 et Home Assistant


sans titre

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 🖥️

  1. On utilise ESPHome, ici en Docker, pour gérer l’ESP32.
  2. On récupère le fichier de configuration spécifique au R48 3000E3.
  3. On compile et installe le programme sur l’ESP32 via USB.
  4. 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 🏠

  1. Installer l’intégration ESPHome si ce n’est pas déjà fait.
  2. Ajouter l’ESP32 via son IP fixe.
  3. 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 :

Retour en haut