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 
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)
1. Stockage des identifiants (sécurisé)
Dans secrets.yaml
:
yaml
Copier / Modifier
beem_email: votre@email.fr
beem_password: votre_mot_de_passe
2. Script de récupération du token Beem
/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
/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"
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
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 ! 