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 !