Intégration Beem Energy

Bonjour à tous

Grâce à l’aide de certains membres ici (un grand merci à @jrvrcd ! :wink:), j’ai pu récupérer les données de ma batterie Beem peu après son installation en juillet dernier.

Depuis, j’ai pris le temps de développer une intégration Home Assistant pour Beem Energy, que je mets aujourd’hui à disposition de la communauté. Cette intégration permet de récupérer les données liées à votre installation Beem directement dans Home Assistant.

:battery: Actuellement, seule la partie « batterie » a été testée, car c’est le seul produit dont je dispose personnellement. L’intégration fonctionne bien pour cet usage, mais j’aimerais élargir la compatibilité aux autres équipements Beem.

:test_tube: Je suis donc à la recherche de personnes possédant d’autres produits Beem pour m’aider à valider et améliorer l’intégration. Si vous êtes partants, ce serait super utile !

:package: Le lien vers l’intégration (GitHub) : GitHub - CharlesP44/Beem_Energy: Intégration Home Assistant pour Beem Energy

Merci d’avance pour votre aide et vos retours :pray:
Et n’hésitez pas si vous avez des questions ou suggestions !



L’intégration récupéré les données auprès de Beem via REST ou via MQTT ?

Rest avec un rafraîchissement toutes les x secondes.
En test depuis quelques mois maintenant (pour la batterie)

Hello, Je dispose de panneaux solaire BeemKit 420W et je serais ravi d’aider au développement de cete intégration.

Bonjour à tous
Voici le lien GitHub GitHub - CharlesP44/Beem_Energy

Bonjour à tous,

Suite à des essais pour fiabiliser l’intégration de Beem Energy dans Home Assistant, je partage ici une solution complète que j’ai mise en place chez moi.
Si ma contribution peut aider d’autres membres à récupérer leurs données de production de manière stable, j’en serais ravi :pray:

Intégration Beem Energy – Récupération dans Home Assistant

Objectif : Récupérer la production Beem sans surcharge API, avec gestion automatique du token, stockage local et capteurs personnalisés.


Pré-requis

  • Accès SSH ou File Editor dans Home Assistant
  • Un dossier /config/scripts/
  • Vos identifiants Beem (email + mot de passe)

:closed_lock_with_key: 1. Stockage des identifiants (sécurisé)

Dans secrets.yaml :

yaml

Copier / Modifier

beem_email: votre@email.fr
beem_password: votre_mot_de_passe

:closed_lock_with_key: 2. Script de récupération du token Beem

:file_folder: /config/scripts/get_tokenbeem.sh

Copier / Modifier

#!/bin/bash

email="$1"
password="$2"

token=$(curl -s -X POST https://api-x.beem.energy/beemapp/user/login \
  -H "Content-Type: application/json" \
  --data "{\"email\":\"$email\",\"password\":\"$password\"}" \
  | jq -r '.accessToken')

echo "$token"
echo "$token" > /config/beem_token.txt

3. Script de récupération de la production

:file_folder: /config/scripts/get_productionbeem.sh

bash

Copier / Modifier

#!/bin/bash

# Récupère les informations système
month=$(date +%-m)
year=$(date +%Y)

# Fichier de destination
output_file="/config/beem_data.json"

# Récupère le token stocké dans beem_token.txt
token=$(cat /config/beem_token.txt)

# Vérifie que le token n'est pas vide
if [[ -z "$token" ]]; then
  echo "Erreur : token vide" > "$output_file"
  exit 1
fi

# Appelle l'API Beem pour récupérer la production mensuelle
curl -s -X POST https://api-x.beem.energy/beemapp/box/summary \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $token" \
  --data "{\"month\": $month, \"year\": $year}" \
  -o "$output_file"

# Vérifie si la réponse contient bien "wattHour"
if ! grep -q "wattHour" "$output_file"; then
  echo "Erreur : aucune donnée wattHour dans la réponse" >> "$output_file"
  exit 1
fi

echo "✅ Données de production sauvegardées dans $output_file"


:jigsaw: 4. Déclaration des shell_command

Dans configuration.yaml :

yaml

Copier / Modifier

shell_command:
  update_beem_token: bash /config/scripts/get_tokenbeem.sh !secret beem_email !secret beem_password
  update_beem_data: bash /config/scripts/get_productionbeem.sh

:stopwatch: 5. Automatisations

Dans automations.yaml :

yaml

Copier / Modifier

- alias: "MAJ token Beem chaque nuit ou quand vous le souhaitez"
  trigger:
    - platform: time
      at: "02:00:00"
  action:
    - service: shell_command.update_beem_token

- alias: "MAJ données Beem toutes les 5 min"
  trigger:
    - platform: time_pattern
      minutes: "/5"
  action:
    - service: shell_command.update_beem_data

6. Sensor personnalisé

yaml

CopierModifier

- platform: command_line
  name: "Beem Production"
  command: "cat /config/beem_data.json"
  scan_interval: 300
  unit_of_measurement: "Wh"
  value_template: >
    {% set j = value_json.get('content', [{}])[0] %}
    {{ j.get('wattHour', 0) }}
  json_attributes:
    - power
    - totalDay
    - totalMonth
    - serialNumber
    - boxId
    - weather
  availability_template: >
    {{ 'error' not in value_json }}

7 voici ce que cela donne.

Après de nombreuses recherches, j’ai réussi à bénéficier des données de production de Beem dans Home Assistant.
Cette méthode permet de consommer l’API Beem grâce à un stockage local, une gestion sécurisée du token, et des automatisations.

Si cela peut vous aider dans votre intégration, notamment en complément de votre batterie, n’hésitez pas à vous en inspirer.
Au plaisir et bonne intégration à tous ! :blush:

1 « J'aime »

bonjour,
comment vous l’integre dans le dashboard.
merci

:wave: Bonjour,
(désolé pour mon retard de réponse :sweat_smile:)

Pour répondre à la question :
Le script get_productionbeem.sh sert à récupérer les données de production de ton installation Beem et à les enregistrer dans un fichier appelé beem_data.json (dans le dossier /config de Home Assistant).

Mais pour que ces données s’affichent dans ton dashboard Home Assistant, il faut créer un capteur personnalisé qui lit ce fichier.


Étape 1 : Créer le capteur dans Home Assistant

Dans ton fichier configuration.yaml (ou sensors.yaml si tu l’utilises), ajoute ce bloc :

Copier / Modifier

- platform: command_line
  name: "Beem Production"
  command: "cat /config/beem_data.json"
  scan_interval: 300
  unit_of_measurement: "Wh"
  value_template: >
    {% set j = value_json.get('content', [{}])[0] %}
    {{ j.get('wattHour', 0) }}

Ce capteur va afficher la production électrique mensuelle de ta box Beem, en Wh.


Étape 2 : Afficher le capteur dans ton dashboard

Va dans ton dashboard Home Assistant > clique sur « Modifier » > « Ajouter une carte » > choisis « Carte Entité », puis sélectionne sensor.beem_production.

Tu verras alors ta production Beem directement sur l’interface :blush:


  1. Le script télécharge les données Beem
  2. Le capteur lit ces données depuis un fichier
  3. Tu peux afficher ce capteur dans ton dashboard comme n’importe quel capteur

Bon courage pour la suite ! :muscle:

1 « J'aime »

Merci !

Super intéressant. J’essai de scanner le réseau de l’app mobile pour mieux comprendre les api utilisées.
Je galère a trouver l’API utilisé pour récupérer les infos extraites de l’energie switch pour savoir exactement quel est ma conso enedis et ma production excédentaire afin de mieux la calculer.
Si dans vos expérimentation vous trouvez l’endpoint de l’energy switch ça m’intéresse.

Bonjour à tous,

Une nouvelle version est disponible avec la prise en charge des capteurs MQTT de la batterie !

:arrow_right: GitHub : CharlesP44/Beem_Energy

Les capteurs pour l’intégration à l’Energy Dashboard sont aussi disponibles.
Beem Batteries, PnP et Energy Switches sont désormais pris en charge.

Je n’ai pu tester que la batterie, vos retours sur Energy Switch et PnP sont les bienvenus !

Bonjour Charly3944,

Merci pour cette intégration.

Je regarde de mon coté pour installer une solution Beem avec des batteries uniquement. Pour le moment, je ne prévois pas l’installation de panneaux solaire.

L’objectif de cette installation est de traiter dans un premier temps des défaillances du réseau d’électrique (coupures, microcoupures, …) et probablement dans un second temps de gérer la charge et la décharge des batteries en fonction du prix de l’électricité (heures pleines / heures creuses).

Je constate que l’intégration permet de suivre beaucoup de paramètres. Cependant, est-il possible de gérer les périodes de charge et décharge et de forcer ces opérations dans le temps (charge si heures creuses ou batteries vides / décharge en heures pleines ou coupure du réseau)

je te remercie d’avance pour ces précisions.

Bonjour @chklein

​La batterie fonctionne parfaitement pour les coupures de courant (j’en ai encore eu une ce lundi !).
​Je suppose que tu as un abonnement Tempo et que tu cherches à éviter de consommer pendant les jours rouges en heures pleines (HP). :grin:

​Actuellement, l’intégration ne permet pas encore de piloter ou de forcer la charge et la décharge des batteries. Seule l’application Beem propose cette fonctionnalité.
​Je prévois cependant d’étudier la possibilité d’intégrer cette fonctionnalité.

1 « J'aime »

Bonjour @chklein

Finalement, c’était plus simple à mettre en place que prévu.

Je publierai une nouvelle release très bientôt

.

2 « J'aime »

Super @Charly3944 , tiens nous informé.
De mon coté, je suis au tarif réglementé, mais compte tenu que les coupures sont maintenant de plus en plus fréquente et suite à l’installation de la domotique, ces coupures ne sont pas conseillés, je réfléchis activement à changer toute cette partie de fourniture d’électricité.

Oui l’objectif est de passer à la formule Tempo et de charger les batteries pendant les périodes creuses et les utiliser uniquement en heures creuses et pendant les jours rouges.

Il me restera à voir comment je peux m’assurer de couper l’alimentation par le réseau.

En tout cas, merci pour le travail que tu faits pour traiter les demandes.

Bonne journée.

Bonjour @chklein

Encore quelques tests pour éviter des régressions, et je publie la release.

Je pense la publier d’ici ce week-end au plus tard.

Nouvelle version de l’intégration disponible :slight_smile: