Vidéo explicative du système :
Projet de Surveillance de l'Énergie Solaire
Système complet de surveillance de l'énergie solaire utilisant :
Disjoncteur WiFi 4P100A avec mesure bidirectionnelle
Compteur intelligent dédié à la production solaire
Utility Meter de Home Assistant
Cartes personnalisées (Mushroom + Card Mod + Browser Mod)
Automatisation propre pour la réinitialisation du cycle de facturation
Le projet effectue le calcul automatique de :
Consommation
Production
Énergie injectée
Solde énergétique
Valeur estimée de la facture
Sans dépendre du décalage (offset) automatique de l'Utility Meter.
Équipements Utilisés
RMshebei Tuya Smart WiFi Disjoncteur 4P100A
Sonoff POWR2
Intégrations Utilisées
Home Assistant
Browser Mod
Mushroom Cards
Card Mod
Ce que le projet calcule automatiquement
Production solaire quotidienne
Production solaire mensuelle
Production solaire annuelle
Énergie injectée dans le réseau
Consommation totale de la résidence
Calcul automatique de la valeur de la facture (basé sur le coût configuré du kWh)
Solde mensuel en kWh
Bilan énergétique cumulé
Crédit ou débit énergétique du mois
Clôture du Cycle (IMPORTANT)
Ce projet n'utilise pas d'offset dans l'Utility Meter.
La clôture de la facture est réalisée via :
Automatisation personnalisée
Réinitialisation manuelle contrôlée
Exécution automatique au jour défini (ex : le 25 à 23h59)
Cela permet :
Un plus grand contrôle sur la période de facturation
Une indépendance par rapport au cycle fixe de l'Utility Meter
Un ajustement facile au cas où le fournisseur d'énergie modifie la date de relevé
Atouts du Projet
Système entièrement modulaire
N'interfère pas avec d'autres cartes utilisant les mêmes capteurs
Réinitialisation centralisée et organisée
Adaptation facile à n'importe quel tarif de kWh
Structure prête pour une publication sur GitHub
sensors.yaml
Valeur de production, Valeur du KW et Bilan Total
##################################################
# CAPTEURS (NOUVEAU FORMAT TEMPLATE)
##################################################
template:
- sensor:
##################################################
# PRODUCTION SOLAIRE (BASE)
##################################################
- name: "Production Solaire Hebdomadaire"
unit_of_measurement: "kWh"
state: >
{{ states('sensor.sonoff_1000916c58_energy') | float(0) }}
##################################################
# CONSOMMATION ACTUELLE DEUX PHASES
##################################################
- name: "Consommation Actuelle du Réseau (kW)"
unit_of_measurement: "kW"
state: >
{{
states('sensor.breaker_potencia_da_fase_a_2') | float(0)
+
states('sensor.breaker_potencia_da_fase_b_2') | float(0)
}}
- name: "Consommation Actuelle du Réseau (W)"
unit_of_measurement: "W"
state: >
{{
(
states('sensor.breaker_potencia_da_fase_a_2') | float(0)
+
states('sensor.breaker_potencia_da_fase_b_2') | float(0)
) * 1000
}}
##################################################
# COÛTS (base fixe 1.11)
##################################################
- name: "Valeur kWh"
unit_of_measurement: "R$/kWh"
state: "1.11"
- name: "Coût Consommation Mensuelle"
unit_of_measurement: "R$"
state: >
{{ states('sensor.consumo_energia_mensal') | float(0) * 1.11 }}
- name: "Coût Production Mensuelle"
unit_of_measurement: "R$"
state: >
{{ (states('sensor.producao_solar_mensal') | float(0) * 1.11) | round(2) }}
- name: "Coût Injecté Mensuel"
unit_of_measurement: "R$"
state: >
{{ (states('sensor.injecao_energia_mensal') | float(0) * 1.11) | round(2) }}
- name: "Coût Production Hebdomadaire"
unit_of_measurement: "R$"
state: >
{{ (states('sensor.producao_solar_semanal') | float(0) * 1.11) | round(2) }}
- name: "Coût Production Annuelle"
unit_of_measurement: "R$"
state: >
{{ (states('sensor.producao_solar_anual') | float(0) * 1.11) | round(2) }}
- name: "Coût Injecté Hebdomadaire"
unit_of_measurement: "R$"
state: >
{{ (states('sensor.energia_injetada_semanal') | float(0) * 1.11) | round(2) }}
- name: "Coût Injecté Annuel"
unit_of_measurement: "R$"
state: >
{{ (states('sensor.energia_injetada_anual') | float(0) * 1.11) | round(2) }}
- name: "Coût Consommation Hebdomadaire"
unit_of_measurement: "R$"
state: >
{{ (states('sensor.breaker_energia_total_2') | float(0) * 1.11) | round(2) }}
- name: "Coût Consommation Annuelle"
unit_of_measurement: "R$"
state: >
{{ (states('sensor.consumo_energia_anual') | float(0) * 1.11) | round(2) }}
- name: "Coût Puissance Actuelle"
unit_of_measurement: "R$"
state: >
{{ ((states('sensor.sonoff_1000916c58_power') | float(0) / 1000) * 1.11) | round(2) }}
- name: "Coût Énergie Injectée"
unit_of_measurement: "R$"
state: >
{{ (states('sensor.breaker_total_production_2') | float(0) * 1.11) | round(2) }}
- name: "Coût Énergie Consommée Totale"
unit_of_measurement: "R$"
state: >
{{ (states('sensor.breaker_energia_total_2') | float(0) * 1.11) | round(2) }}
- name: "Coût Consommation Aujourd'hui"
unit_of_measurement: "R$"
state: >
{{ (states('sensor.consumo_energia_diario') | float(0) * 1.11) | round(2) }}
- name: "Coût Énergie Jour"
unit_of_measurement: "R$"
state: >
{{ (states('sensor.consumo_energia_diario') | float(0) * 1.11) | round(2) }}
- name: "Coût Énergie Mois"
unit_of_measurement: "R$"
state: >
{{ (states('sensor.consumo_energia_mensal') | float(0) * 1.11) | round(2) }}
- name: "Valeur de la Facture Actuelle"
unit_of_measurement: "R$"
state: >
{{ (states('sensor.consumo_mensal_fatura') | float(0) * 1.11) | round(2) }}
##################################################
# BILANS
##################################################
- name: "Bilan Énergétique Cumulé"
unit_of_measurement: "kWh"
state: >
{{ (states('sensor.breaker_energia_total_2') | float(0)
- states('sensor.breaker_total_production_2') | float(0)) | round(2) }}
- name: "Solde de la Facture (kWh)"
unit_of_measurement: "kWh"
state: >
{{ (states('sensor.producao_solar_mensal') | float(0)
- states('sensor.consumo_energia_mensal') | float(0)) | round(2) }}
utility_meter.yaml
consumo_energia_mensal:
source: sensor.breaker_energia_total_2
cycle: monthly
offset:
days: 20
injecao_energia_mensal:
source: sensor.breaker_total_production_2
cycle: monthly
offset:
days: 20
producao_solar_mensal:
source: sensor.sonoff_1000916c58_energy
cycle: monthly
offset:
days: 20
consumo_energia_anual:
source: sensor.breaker_energia_total_2
cycle: yearly
energia_injetada_anual:
source: sensor.breaker_total_production_2
cycle: yearly
producao_solar_anual:
source: sensor.sonoff_1000916c58_energy
cycle: yearly
# Maintenant c'est propre, organisé et sans duplication inutile.
Aperçu du Tableau de Bord

Carte avec Popup (cards/card_popup.yaml)
type: custom:mushroom-template-card
primary: >
Production Solaire : {{ states("sensor.sonoff_1000916c58_power") | float(0) |
round(2) }} W
secondary: >
Jour : {{ states("sensor.sonoff_1000916c58_energy") | float(0) | round(2) }} kWh
| Mois : {{ states("sensor.producao_solar_mensal") | float(0) | round(2) }} kWh
icon: mdi:solar-panel
icon_color: green
badge_icon: mdi:solar-power-variant-outline
badge_color: green
tap_action:
action: fire-dom-event
browser_mod:
service: browser_mod.sequence
data:
sequence:
- action: script.pc_click
- action: browser_mod.popup
data:
content:
type: custom:mod-card
style: |
ha-card {
background: linear-gradient(
rgba(0,0,0,0.65),
rgba(0,0,0,0.65)
), url("/local/cardpainel2.jpg") center/cover no-repeat;
background-size: cover;
background-position: center;
border-radius: 18px;
padding: 16px;
box-shadow: 0 8px 30px rgba(0,0,0,0.4);
}
card:
type: vertical-stack
cards:
- type: entities
title: Production Solaire
card_mod:
style: |
ha-card {
background: transparent;
box-shadow: none;
}
entities:
- entity: sensor.sonoff_1000916c58_power
name: Puissance Actuelle
icon: none
- entity: sensor.producao_solar_mensal
name: Production du Mois
icon: none
- entity: sensor.producao_solar_anual
name: Production de l'Année
icon: none
- type: entities
title: Consommation de la Maison
card_mod:
style: |
ha-card {
background: transparent;
box-shadow: none;
}
entities:
- entity: sensor.consumo_atual_rede_w
name: Consommation Actuelle
icon: none
- entity: sensor.breaker_energia_total_2
name: Énergie Totale
icon: none
- entity: sensor.consumo_energia_mensal
name: Consommation Mensuelle
icon: none
- entity: sensor.valor_conta_mensal_real
name: Valeur Actuelle de la Facture
icon: none
- type: entities
title: Énergie Injectée
card_mod:
style: |
ha-card {
background: transparent;
box-shadow: none;
}
entities:
- entity: sensor.injecao_energia_mensal
name: Injecté dans le Mois
icon: none
- entity: sensor.energia_injetada_anual
name: Injecté dans l'Année
icon: none
- type: custom:mushroom-template-card
entity: sensor.saldo_mensal_kwh
primary: Solde de la Facture (Mensuel)
secondary: >
{% set v = states('sensor.saldo_mensal_kwh')|float %}
{% if v >= 0 %}
+ {{ v | round(2) }} kWh
{% else %}
- {{ (v | abs) | round(2) }} kWh
{% endif %}
icon: mdi:circle
icon_color: |
{% if states('sensor.saldo_mensal_kwh')|float >= 0 %}
green
{% else %}
red
{% endif %}
layout: horizontal
fill_container: true
|
Carte Simple (cards/card_simples.yaml)
type: custom:mod-card
style: |
ha-card {
background: linear-gradient(
rgba(0,0,0,0.65),
rgba(0,0,0,0.65)
), url("/local/cardpainel2.jpg") center/cover no-repeat;
background-size: cover;
background-position: center;
border-radius: 18px;
padding: 16px;
box-shadow: 0 8px 30px rgba(0,0,0,0.4);
}
card:
type: vertical-stack
cards:
- type: entities
title: Production Solaire
card_mod:
style: |
ha-card {
background: transparent;
box-shadow: none;
}
entities:
- entity: sensor.sonoff_1000916c58_power
name: Puissance Actuelle
- entity: sensor.producao_solar_mensal
name: Production du Mois
- entity: sensor.producao_solar_anual
name: Production de l'Année
- type: entities
title: Consommation de la Maison
card_mod:
style: |
ha-card {
background: transparent;
box-shadow: none;
}
entities:
- entity: sensor.breaker_energia_total_2
name: Énergie Totale
- entity: sensor.consumo_energia_mensal
name: Consommation Mensuelle
- entity: sensor.valor_conta_mensal_real
name: Valeur Actuelle de la Facture
- type: entities
title: Énergie Injectée
card_mod:
style: |
ha-card {
background: transparent;
box-shadow: none;
}
entities:
- entity: sensor.injecao_energia_mensal
name: Injecté dans le Mois
- entity: sensor.energia_injetada_anual
name: Injecté dans l'Année
- type: custom:mushroom-template-card
entity: sensor.saldo_mensal_kwh
primary: Solde de la Facture (Mensuel)
secondary: >
{% set v = states('sensor.saldo_mensal_kwh')|float %} {% if v >= 0
%}
+ {{ v | round(2) }} kWh
{% else %}
- {{ (v | abs) | round(2) }} kWh
{% endif %}
icon: mdi:circle
icon_color: |
{% if states('sensor.saldo_mensal_kwh')|float >= 0 %}
green
{% else %}
red
{% endif %}
layout: horizontal
fill_container: true
Automatisation de Réinitialisation des Cycles Énergétiques
alias: RÉINITIALISATION GÉNÉRALE TOTALE LE 25
description: Réinitialise les capteurs mensuel, hebdomadaire et quotidien avant le relevé du 26
trigger:
- trigger: time
at: "23:59:00"
condition:
- condition: template
value_template: "{{ now().day == 25 }}"
action:
##################################################
# RÉINITIALISATION QUOTIDIENNE
##################################################
- action: utility_meter.calibrate
target:
entity_id:
- sensor.consumo_energia_diario
- sensor.para_rede_diario
- sensor.via_rede_diario
- sensor.solar_diario
- sensor.tempo_aquecedor_diario
data:
value: "0"
##################################################
# RÉINITIALISATION HEBDOMADAIRE
##################################################
- action: utility_meter.calibrate
target:
entity_id:
- sensor.producao_solar_semanal
- sensor.energia_injetada_semanal
- sensor.consumo_energia_semanal
- sensor.tempo_aquecedor_semanal
data:
value: "0"
##################################################
# RÉINITIALISATION MENSUELLE (CARTE)
##################################################
- action: utility_meter.calibrate
target:
entity_id:
- sensor.consumo_energia_mensal
- sensor.injecao_energia_mensal
- sensor.producao_solar_mensal
data:
value: "0"
##################################################
# RÉINITIALISATION DES ENTRÉES
##################################################
- action: input_number.set_value
target:
entity_id:
- input_number.tempo_inicial
- input_number.tempo_final
- input_number.tempo_total
- input_number.consumo_boiler
- input_number.custo_boiler
- input_number.qtd_ligado
- input_number.tempo_medio_aquecimento
- input_number.producao_mensal_hoymiles
data:
value: 0
mode: single
Vini©¿©ius Mendes Corporations® 27/02/2026
Système avancé de surveillance énergétique développé pour la domotique intelligente ave

