Intégration Home Assistant pour les batteries Enphase IQ 5P avec support étendu des fonctionnalités non disponibles dans l'intégration officielle.
Si cette intégration vous est utile, vous pouvez soutenir son développement avec un don en Bitcoin :
🪙 Adresse Bitcoin : bc1qhe4ge22x0anuyeg0fmts6rdmz3t735dnqwt3p7
Vos contributions m'aident à continuer d'améliorer ce projet et à ajouter de nouvelles fonctionnalités. Merci ! 🙏
L'intégration officielle Enphase Envoy de Home Assistant ne gère pas correctement les batteries IQ 5P. Cette intégration custom vise à :
- ✅ Triple-mode : Local, Cloud OU Hybride (local + cloud)
- ✅ Mode local : Latence 64ms, pas de quota API, polling 10s
- ✅ Mode hybride : Données locales rapides + contrôle cloud (recommandé pour firmware 8.x)
- ✅ Synchronisation temps réel : États de contrôle lus depuis le cloud en mode hybride
- ✅ Stockage persistant : Données d'énergie quotidienne conservées après redémarrage
- ✅ Capturer toutes les données disponibles de l'app mobile Enphase Energy Enlighten
- ✅ Exposer l'état de charge (SOC) en temps réel
- ✅ Contrôler les modes de fonctionnement des batteries
- ✅ Accéder aux statistiques détaillées de charge/décharge
- ✅ Gérer les paramètres de backup et réserve
- Home Assistant 2024.1.0 ou supérieur
- Système Enphase avec batteries IQ 5P
- Passerelle Enphase Envoy
- (Optionnel)
mitmproxypour capturer les données de l'app mobile
- Ouvrez HACS dans Home Assistant
- Allez dans "Intégrations"
- Cliquez sur les 3 points en haut à droite
- Sélectionnez "Dépôts personnalisés"
- Ajoutez l'URL :
https://github.com/foXaCe/enphase-battery - Catégorie : "Integration"
- Cliquez sur "Télécharger"
- Redémarrez Home Assistant
- Téléchargez ce dépôt
- Copiez le dossier
custom_components/enphase_batteryversconfig/custom_components/ - Redémarrez Home Assistant
⚡ Meilleur des deux mondes : données locales rapides + contrôle cloud fonctionnel
- Allez dans Configuration → Intégrations
- Cliquez sur + Ajouter une intégration
- Recherchez "Enphase Battery IQ 5P"
- Choisir "Local" (Envoy direct)
- Entrez les informations :
- Hostname ou IP :
envoy.localou IP fixe (ex:192.168.1.50) - Email Enphase : Votre email Enlighten (requis pour firmware 7.x/8.x)
- Mot de passe Enphase : Votre mot de passe Enlighten
- ✅ Activer le contrôle cloud (mode hybride) : Cocher cette case
- Hostname ou IP :
Avantages du mode hybride :
- 📊 Capteurs ultra-rapides (polling local 10s, latence 64ms)
- 🎛️ Switch et select fonctionnels (via API cloud)
- 🔄 États de contrôle synchronisés en temps réel depuis le cloud
- ⚡ UI réactive (changements visibles dès le prochain update ~10s max)
- ❌ Pas de quota API pour les données (seulement pour les contrôles)
Note firmware 8.x : L'API locale ne supporte plus le contrôle des batteries depuis le firmware 8.2.4225. Le mode hybride est donc obligatoire pour utiliser les switch/select.
- Même procédure que le mode hybride
- Ne PAS cocher "Activer le contrôle cloud"
- Les switch et select seront désactivés (limitation firmware 8.x)
- Même procédure, mais choisir "Cloud" (Enlighten)
- Entrez vos identifiants Enphase Enlighten :
- Email : Votre email Enphase
- Mot de passe : Votre mot de passe Enphase
- Site ID : (optionnel, auto-détecté)
- User ID : (optionnel, auto-détecté)
Inconvénients :
- ⏱️ Polling lent (60s au lieu de 10s)
- 🌐 Latence élevée (accès via serveurs Enphase)
- 📊 Quota API consommé pour tous les appels
📖 Documentation détaillée du mode local
| Entité | Description | Unité |
|---|---|---|
sensor.battery_soc |
État de charge de la batterie | % |
sensor.battery_power |
Puissance instantanée | W |
sensor.battery_voltage |
Tension | V |
sensor.battery_current |
Courant | A |
sensor.battery_temperature |
Température | °C |
sensor.battery_energy_charged |
Énergie chargée aujourd'hui | kWh |
sensor.battery_energy_discharged |
Énergie déchargée aujourd'hui | kWh |
sensor.battery_capacity |
Capacité totale | kWh |
sensor.battery_health |
État de santé | % |
binary_sensor.battery_charging: Batterie en chargebinary_sensor.battery_connected: Batterie connectée
Important : Les contrôles nécessitent le mode cloud ou mode hybride (firmware 8.x ne supporte plus le contrôle via API locale)
switch.enphase_battery_iq_5p_charge_depuis_le_reseau: Activer/désactiver la charge depuis le réseau- 🔄 En mode hybride : état synchronisé en temps réel depuis le cloud (visible en ~10s max)
select.enphase_battery_iq_5p_mode_de_la_batterie: Sélection du mode de fonctionnement- Autoconsommation (self-consumption)
- Optimisation IA (cost_savings)
- 🔄 En mode hybride : état synchronisé en temps réel depuis le cloud (visible en ~10s max)
| Appareil | Supporté | Notes |
|---|---|---|
| Enphase IQ Battery 5P | ✅ Complet | Toutes les fonctionnalités |
| Enphase IQ Battery 10T | ✅ Compatible | Via API Cloud/Enlighten |
| Enphase Envoy (IQ Gateway) | ✅ Requis | Firmware 7.x et 8.x |
| Enphase IQ Combiner 4C | Données réseau uniquement |
Non supporté :
- Micro-onduleurs Enphase (utiliser l'intégration officielle)
- Systèmes Enphase sans batterie
Optimisation autoconsommation solaire : Utilisez le mode hybride pour surveiller le SOC en temps réel et créer des automatisations qui ajustent le mode de batterie selon la production solaire et les tarifs d'électricité.
Backup monitoring :
Surveillez l'autonomie estimée (sensor.battery_backup_time) et recevez une notification quand le niveau de charge descend sous un seuil critique.
Exemple d'automatisation :
automation:
- alias: "Alerte batterie faible"
trigger:
- platform: numeric_state
entity_id: sensor.enphase_battery_iq_5p_etat_de_charge
below: 20
action:
- service: notify.mobile_app
data:
message: "Batterie Enphase sous 20%"Pour découvrir de nouvelles fonctionnalités ou déboguer :
# Installation de mitmproxy
pip install mitmproxy
# Lancer la capture
cd /mnt/Media/Codage/GitHub/enphase-battery
mitmproxy -s scripts/enphase_mitm_capture.py --listen-port 8080Consultez scripts/README_CAPTURE.md pour le guide complet.
Problème de connexion
- Vérifiez que votre Envoy est accessible sur le réseau
- Testez l'accès via navigateur :
http://[IP_ENVOY]
Données manquantes
- Certaines fonctionnalités nécessitent un firmware Envoy récent
- Vérifiez les logs : Configuration → Journaux
Erreur d'authentification
- Vérifiez vos identifiants Enphase
- Assurez-vous que le compte a accès au système
Les contributions sont les bienvenues ! Voir CONTRIBUTING.md
MIT License - voir LICENSE
If this integration is useful to you, you can support its development with a Bitcoin donation:
🪙 Bitcoin Address: bc1qhe4ge22x0anuyeg0fmts6rdmz3t735dnqwt3p7
Your contributions help me continue improving this project and adding new features. Thank you! 🙏
The official Enphase Envoy integration in Home Assistant doesn't properly support IQ 5P batteries. This custom integration aims to:
- ✅ Triple-mode: Local, Cloud OR Hybrid (local + cloud)
- ✅ Local mode: 64ms latency, no API quota, 10s polling
- ✅ Hybrid mode: Fast local data + cloud control (recommended for firmware 8.x)
- ✅ Real-time sync: Control states read from cloud in hybrid mode
- ✅ Persistent storage: Daily energy data preserved after restart
- ✅ Capture all available data from the Enphase Energy Enlighten mobile app
- ✅ Expose real-time state of charge (SOC)
- ✅ Control battery operation modes
- ✅ Access detailed charge/discharge statistics
- ✅ Manage backup settings and reserve
- Home Assistant 2024.1.0 or higher
- Enphase system with IQ 5P batteries
- Enphase Envoy gateway
- (Optional)
mitmproxyfor capturing mobile app data
- Open HACS in Home Assistant
- Go to "Integrations"
- Click on the 3 dots in the top right
- Select "Custom repositories"
- Add URL:
https://github.com/foXaCe/enphase-battery - Category: "Integration"
- Click "Download"
- Restart Home Assistant
- Download this repository
- Copy the
custom_components/enphase_batteryfolder toconfig/custom_components/ - Restart Home Assistant
⚡ Best of both worlds: fast local data + functional cloud control
- Go to Settings → Integrations
- Click + Add Integration
- Search for "Enphase Battery IQ 5P"
- Choose "Local" (Envoy direct)
- Enter information:
- Hostname or IP:
envoy.localor fixed IP (e.g.,192.168.1.50) - Enphase Email: Your Enlighten email (required for firmware 7.x/8.x)
- Enphase Password: Your Enlighten password
- ✅ Enable cloud control (hybrid mode): Check this box
- Hostname or IP:
Hybrid mode benefits:
- 📊 Ultra-fast sensors (10s local polling, 64ms latency)
- 🎛️ Functional switch and select (via cloud API)
- 🔄 Control states synced in real-time from cloud
- ⚡ Responsive UI (changes visible within next update ~10s max)
- ❌ No API quota for data (only for controls)
Firmware 8.x note: Local API no longer supports battery control since firmware 8.2.4225. Hybrid mode is required to use switch/select.
- Same procedure as hybrid mode
- Do NOT check "Enable cloud control"
- Switch and select will be disabled (firmware 8.x limitation)
- Same procedure, but choose "Cloud" (Enlighten)
- Enter your Enphase Enlighten credentials:
- Email: Your Enphase email
- Password: Your Enphase password
- Site ID: (optional, auto-detected)
- User ID: (optional, auto-detected)
Disadvantages:
- ⏱️ Slow polling (60s instead of 10s)
- 🌐 High latency (access via Enphase servers)
- 📊 API quota consumed for all calls
📖 Detailed local mode documentation
| Entity | Description | Unit |
|---|---|---|
sensor.battery_soc |
Battery state of charge | % |
sensor.battery_power |
Instantaneous power | W |
sensor.battery_voltage |
Voltage | V |
sensor.battery_current |
Current | A |
sensor.battery_temperature |
Temperature | °C |
sensor.battery_energy_charged |
Energy charged today | kWh |
sensor.battery_energy_discharged |
Energy discharged today | kWh |
sensor.battery_capacity |
Total capacity | kWh |
sensor.battery_health |
Battery health | % |
binary_sensor.battery_charging: Battery charging statusbinary_sensor.battery_connected: Battery connection status
Important: Controls require cloud mode or hybrid mode (firmware 8.x no longer supports control via local API)
switch.enphase_battery_iq_5p_charge_depuis_le_reseau: Enable/disable charging from grid- 🔄 In hybrid mode: state synced in real-time from cloud (visible within ~10s max)
select.enphase_battery_iq_5p_mode_de_la_batterie: Battery operation mode selection- Self Consumption (self-consumption)
- AI Optimization (cost_savings)
- 🔄 In hybrid mode: state synced in real-time from cloud (visible within ~10s max)
| Device | Supported | Notes |
|---|---|---|
| Enphase IQ Battery 5P | ✅ Full | All features |
| Enphase IQ Battery 10T | ✅ Compatible | Via Cloud/Enlighten API |
| Enphase Envoy (IQ Gateway) | ✅ Required | Firmware 7.x and 8.x |
| Enphase IQ Combiner 4C | Grid data only |
Not supported:
- Enphase microinverters (use the official integration)
- Enphase systems without battery
Solar self-consumption optimization: Use hybrid mode to monitor SOC in real-time and create automations that adjust battery mode based on solar production and electricity rates.
Backup monitoring:
Monitor estimated backup time (sensor.battery_backup_time) and receive a notification when charge level drops below a critical threshold.
Automation example:
automation:
- alias: "Low battery alert"
trigger:
- platform: numeric_state
entity_id: sensor.enphase_battery_iq_5p_etat_de_charge
below: 20
action:
- service: notify.mobile_app
data:
message: "Enphase battery below 20%"To discover new features or debug:
# Install mitmproxy
pip install mitmproxy
# Start capture
cd /mnt/Media/Codage/GitHub/enphase-battery
mitmproxy -s scripts/enphase_mitm_capture.py --listen-port 8080See scripts/README_CAPTURE.md for the complete guide.
Connection issues
- Verify your Envoy is accessible on the network
- Test access via browser:
http://[ENVOY_IP]
Missing data
- Some features require recent Envoy firmware
- Check logs: Settings → Logs
Authentication error
- Verify your Enphase credentials
- Ensure the account has access to the system
Contributions are welcome! See CONTRIBUTING.md
MIT License - see LICENSE