Production renouvelable

1 863 kWh

Énergie totale dépensée

8 183 kWh

Énergie voiture (domicile)

2 006 kWh

Distance parcourue (trajets)

5 013 km

Température min | max

-8.46 | 18.87 °C

Couverture solaire (autoconso ÷ conso)

18 %

Sensibilité thermique

+5.4 kWh/j par °C

Part charge voiture

25 %

Chiffres d’énergie cumulés sur la période couverte : janv. 2026 – avr. 2026 (mois d’énergie complets). Ils deviendront des totaux annuels dès qu’un export Zappi plus long sera importé (les mois passés se remplissent automatiquement). La distance a sa propre fenêtre (avr. 2026 – juil. 2026) : elle vient des trajets de l’app voiture, qui ne conserve qu’environ 100 jours d’historique.

Consommation mesurée (mois complets)

8 183 kWh

Part charge voiture (maison)

25 %

Mois le plus énergivore

janv. 2026 · 2909 kWh

Production solaire

1 863 kWh

Consommation mensuelle — maison vs charge voiture

Les mois estompés sont incomplets (données manquantes). Données d’énergie fiables jusqu’au 14 mai 2026.

Import réseau · Production · Export (mois complets)

Énergie de charge déclarée (janv. 2026 – juil. 2026)

2 363 kWh

Part rechargée hors domicile (avr. 2026 – juil. 2026)

11 %

Sessions de charge (janv. 2026 – juil. 2026)

213

Consommation en roulant (avr. 2026 – juil. 2026)

21.6 kWh/100 km

Charge voiture par mois — domicile (compté) vs bornes publiques (estimé)

Ce graphique montre la méthode par soustraction, et elle est fragile. « Public » = charge totale (app) − charge domicile (Zappi). Deux défauts mesurés : sur 3 mois d’énergie pourtant complets, la charge domicile mesurée dépasse la charge totale déclarée par l’app — arithmétiquement impossible, le « public » y est écrasé à 0 ; et sur les mois estompés, l’énergie maison manquante est intégralement reversée au « public », qui explose. Le graphique en bas à droite confronte cette estimation à une mesure directe.

Kilométrage par mois (km)

Distance mesurée : chaque trajet porte son odomètre de départ et d’arrivée, et la chaîne est continue — un jour sans trajet vaut donc réellement 0 km. Mois estompés = distance en partie estimée par interpolation d’odomètre, faute d’export de trajets sur la période.

Efficience réelle par mois (kWh/100 km, mesurée en roulant)

4ᵉ « énergie voiture », à ne pas confondre avec les autres. Il s’agit de l’énergie dépensée en roulant (côté batterie, négative en descente = récupération), pas d’une charge. Elle ne se compare donc ni au Zappi (charge au domicile, côté compteur) ni aux sessions de l’app (charge totale). Trait pointillé = moyenne de la période.

Charge publique : estimée par soustraction (barres) vs mesurée (points)

Recoupement indépendant. Les points noirs ne doivent rien au Zappi : c’est le gain de SOC réellement obtenu aux bornes, converti en kWh (0.77 kWh par % de SOC, déduit des données). L’écart avec les barres mesure ce que la panne Zappi injecte à tort dans le « public » — jusqu’à 14× en juin. C’est la mesure directe qui alimente la tuile Part rechargée hors domicile.

Température minimale (extrême)

-8.46 °C · 07 janv. 2026

Température maximale (extrême)

31.67 °C · 27 juin 2026

Historique disponible

709 jours

Tendance mensuelle — moyenne et enveloppe min/max
Température journalière et tendance de fond

Corrélation température ↔︎ conso totale

-0.89

Corrélation température ↔︎ maison seule (hors voiture)

-0.96

Température moyenne ↔︎ consommation totale (jour)
Température moyenne ↔︎ maison seule, charge voiture exclue (jour)
Mois
kWh
Couv.
Import Production Export Conso totale Maison seule Charge voiture
janv. 2026 2 785 124 1 2 909 2 330 579 100%
févr. 2026 1 819 279 3 2 095 1 605 491 100%
mars 2026 1 487 512 21 1 977 1 415 562 100%
avr. 2026 582 948 328 1 202 827 375 100%
mai 2026 212 408 122 497 347 150 46%
Mois complets — total consommé : 8 183 kWh (maison 6 177 · charge voiture 2 006). Lignes grisées = mois incomplets (données manquantes).
Mois
kWh
Sessions ΔSOC moy.
Totale (app) Domicile (Zappi) Public (est.)
janv. 2026 353 579 0 40 19 pt
févr. 2026 362 491 0 38 18 pt
mars 2026 436 562 0 39 19 pt
avr. 2026 462 375 87 32 23 pt
mai 2026 368 150 218 33 18 pt
juin 2026 351 0 351 30 17 pt
juil. 2026 31 0 31 1 44 pt
« Domicile » compté par le Zappi · « Public » = totale − domicile (estimé). Valeurs grisées = mois où l’énergie maison est incomplète → répartition non fiable.
Mois Moyenne Min Max Écart-type
juil. 2024 22.4 18.1 28.0 2.0
août 2024 19.9 14.2 26.2 2.4
sept. 2024 13.4 5.1 24.4 4.1
oct. 2024 11.3 4.2 19.6 2.5
nov. 2024 5.0 −3.9 10.7 3.0
déc. 2024 1.2 −3.0 9.0 2.3
janv. 2025 1.8 −6.0 9.9 3.8
févr. 2025 3.1 −4.4 14.2 3.4
mars 2025 7.7 1.3 16.8 3.1
avr. 2025 9.8 2.7 18.5 2.9
mai 2025 13.4 7.0 25.3 3.2
juin 2025 20.1 10.4 28.3 3.6
juil. 2025 18.7 10.1 28.7 3.4
août 2025 18.9 10.7 28.4 3.9
sept. 2025 13.5 6.0 20.7 3.1
oct. 2025 9.3 3.4 16.5 2.3
nov. 2025 4.6 −6.4 16.4 4.5
déc. 2025 3.2 −5.3 11.5 3.4
janv. 2026 1.4 −8.5 11.4 4.2
févr. 2026 4.6 −0.8 11.9 2.5
mars 2026 5.5 −3.8 12.4 3.1
avr. 2026 10.9 −1.7 18.9 4.0
mai 2026 14.2 3.5 26.7 5.3
juin 2026 19.8 9.2 31.7 5.0
juil. 2026 21.4 14.3 29.9 3.1

Mesures brutes conservées

106 173

Contrôles de cohérence à chaque mise à jour

7

Contrôles en alerte (tous compris et documentés)

5

Tests du pipeline sur données fabriquées

193 / 193

Kilométrage réellement mesuré (le reste est interpolé)

100 %

Rien n’est saisi à la main dans ce tableau de bord. Chaque chiffre affiché descend d’un fichier d’export brut par une chaîne de transformations écrite une seule fois, versionnée, et rejouable à l’identique.

Quatre étapes, quatre responsabilités distinctes. Une carte du chemin, de l’export brut au chiffre affiché.

Étape Ce qui s’y passe Ce qui en sort
1. Exports bruts Les fichiers sont déposés dans import/, lus, puis archivés tels quels. Ils ne sont jamais modifiés : tout peut être recalculé depuis eux. les fichiers d’origine, dans data/archive_imported/
2. Canonique Un lecteur par format (R/sources.R) traduit chaque export dans un vocabulaire unique : les Wh deviennent des kWh, les horodatages deviennent des instants datés d’un fuseau explicite. Rien n’est encore agrégé. Les adresses et coordonnées GPS de l’export de trajets sont volontairement écartées — ces tables sont publiées. 5 tables, 106 173 mesures
3. Analytique Les mesures sont regroupées par jour, semaine et mois (R/build_analytics.R) — en heure locale, pour que « juillet » désigne le même mois que la facture. Chaque agrégat emporte son indicateur de qualité : combien d’heures ont réellement été mesurées, quelle part de la distance est mesurée plutôt qu’interpolée. 13 tables jour / semaine / mois
4. Dashboard Aucun calcul de fond ici. La page met en forme, et estompe ce qui est incomplet. ce que vous lisez

Entre les étapes 2 et 4, 7 contrôles de cohérence et 193 tests du pipeline sont exécutés à chaque mise à jour, et consignés dans logs/.

Quatre garanties tenues par le code.
Garantie Ce qu’elle empêche
Idempotence — chaque table a une clé naturelle, réimporter dédoublonne Qu’un export redéposé double les totaux R/ingest.R
Contrat de schéma — les colonnes attendues sont déclarées Qu’un champ renommé en amont vide un total en silence R/schema.R
Bilan de lecture — lignes du fichier vs lignes retenues Que des lignes disparaissent sans que personne ne le voie R/schema.R
Découpage en heure locale Que des heures glissent d’un mois à l’autre R/build_analytics.R
Source Ce qu'elle mesure Nature Lignes Période couverte Réserve
Compteur Zappi (myenergi) Import, export et production réels de la maison, au pas horaire Mesuré (compteur) 4 792 31.12.2025 → 19.07.2026 Muet depuis mi-mai 2026 : les mois suivants sont incomplets, pas à zéro.
App véhicule — sessions Chaque branchement : durée, SOC avant/après, énergie annoncée Déduit du SOC 213 01.01.2026 → 18.07.2026 L'énergie annoncée est sous-déclarée d'environ 13 % (voir « Ce qu'on ne sait pas »).
App MySkoda — trajets Chaque trajet : odomètre départ et arrivée, durée, SOC, arrêts publics Mesuré (odomètre) 199 22.04.2026 → 30.07.2026 L'app ne conserve que ~100 jours : sans import trimestriel, l'historique est perdu.
Sonde Eve Weather Température extérieure Mesuré (sonde) 100 968 26.07.2024 → 31.07.2026 Une seule sonde aujourd'hui ; le code accepte déjà plusieurs sondes.
Relevés d'odomètre Compteur kilométrique total, noté à la main Mesuré (saisie humaine) 1 19.07.2026 → 19.07.2026 Source d'appoint uniquement, pour les périodes sans trajets.
Les lignes brutes ne sont jamais modifiées : elles sont archivées telles quelles dans data/archive_imported/, et tout peut être recalculé depuis elles.
Indicateur Statut Comment il est obtenu
Consommation de la maison (kWh) Mesuré Compteur physique, pas horaire.
Production solaire (kWh) Mesuré Compteur physique, pas horaire.
Charge voiture à domicile (kWh) Mesuré Compteur physique au mur (surplus solaire dévié + complément réseau).
Température extérieure (°C) Mesuré Sonde, relevés réguliers.
Distance parcourue (km) Mesuré Odomètre au départ et à l’arrivée de chaque trajet. Hors fenêtre de trajets, la distance est interpolée entre deux relevés manuels — le dashboard le signale.
Consommation en roulant (kWh) Déduit L’app ne mesure pas l’énergie : elle convertit un écart de SOC arrondi au pourcent. Résolution ±0,77 kWh — négligeable sur un mois, énorme sur un trajet.
Charge publique (kWh) Déduit Gain de SOC obtenu aux bornes × 0,77 kWh. Indépendant du compteur maison.
Charge totale déclarée par l'app (kWh) Déduit Sous-déclaré d’environ 13 % : à lire comme une tendance, jamais comme un niveau.
Efficience (kWh/100 km) Calculé Rapport des totaux de la période, jamais moyenne des ratios par trajet (qui surpondérerait les trajets courts).
Couverture solaire (%) Calculé (Production − export) ÷ consommation, sur les mois complets uniquement.
Sensibilité thermique (kWh/jour/°C) Modélisé Pente d’une régression linéaire consommation ~ température. C’est un modèle, pas une observation.
Mesuré = un instrument l’a compté · Déduit = reconstitué depuis une autre grandeur (le plus souvent l’état de charge) · Calculé = combinaison de mesures · Modélisé = issu d’un ajustement statistique.
Contrôle Statut Résultat actuel
Fenêtres temporelles Informatif énergie (Zappi) mesurée 2026-01-01 → 2026-05-15 · sessions de charge 2026-01-01 → 2026-07-18 · trajets 2026-04-22 → 2026-07-30 · température 2024-07-26 → 2026-07-31 · odomètre manuel 2026-07-19 → 2026-07-19
Odomètre manuel ↔︎ trajets OK 1 relevé(s) recoupé(s), écart max 0 km (les deux sources concordent)
Continuité des trajets Alerte 1 rupture(s) de la chaîne d'odomètre, 12 km hors trajet enregistré (0.24 % des 5013 km) · Dates : 2026-06-10 · Ces km sont RÉINTÉGRÉS dans distance_daily (le total colle à l'odomètre), mais sans conso associée : ils sont exclus du calcul d'efficience.
Arrêts publics ↔︎ sessions OK 6/6 arrêt(s) de charge publique retrouvé(s) dans les sessions de l'app — les deux sources concordent
Sessions : énergie ↔︎ SOC (même ligne) Alerte biais moyen -3.59 kWh/session sur 213 sessions — l'énergie déclarée est incohérente avec le SOC de la MÊME ligne ; ne pas s'en servir comme niveau absolu
Bilan charge ↔︎ consommation Alerte 2026-04-22 → 2026-07-18 : entrée 842 kWh, sortie 975 kWh, dérive SOC -6 kWh → bilan -127 kWh (-13 %) · Physiquement impossible : la voiture ne peut pas consommer plus qu'elle n'a reçu. · L'énergie des sessions est sous-déclarée d'autant.
Charge domicile ≤ charge totale (mois fiables) Alerte 3/4 mois incohérent(s) : janv. 2026 (domicile 579 > total 353 kWh), févr. 2026 (domicile 491 > total 362 kWh), mars 2026 (domicile 562 > total 436 kWh) · Le « public estimé » y est écrasé à 0 : la ventilation par soustraction n'a pas de sens sur ces mois.
Charge publique : deux estimations Alerte avr. 2026 : soustraction 87 kWh vs trajets 0 kWh · mai 2026 : soustraction 218 kWh vs trajets 86 kWh · juin 2026 : soustraction 351 kWh vs trajets 25 kWh · juil. 2026 : soustraction 31 kWh vs trajets 7 kWh · Écart >2× : la soustraction est gonflée par les heures Zappi manquantes. · Préférer l'estimation par les trajets (indépendante du Zappi).
Exécutés à chaque mise à jour (R/check_coherence.R), rapport horodaté dans logs/. Les 5 alertes en cours sont comprises et documentées : elles décrivent des limites réelles des sources, pas des erreurs de calcul. Ce qui compte, c’est qu’elles ne s’aggravent pas.

Question : « Quelle part de notre électricité part dans la voiture ? » Voici le trajet complet du chiffre affiché en page Synthèse.

Étape Ce qui se passe Ordre de grandeur
1. Export brut Le Zappi produit une ligne par heure, en Wh, horodatée en UTC. 4 792 lignes horaires
2. Lecture Wh → kWh. La charge voiture est la somme de six colonnes (surplus solaire dévié L1–L3 + complément réseau L1–L3). La consommation totale se déduit : import + production − export. mêmes 4 792 lignes
3. Jour local Chaque heure est rattachée à son jour civil suisse, pas à son jour UTC. Les jours sans aucune mesure existent quand même dans la table, avec n_hours = 0. 200 jours
4. Mois Somme par mois, plus la couverture : part d’heures réellement mesurées. 7 mois
5. Filtre honnête Seuls les mois dont la couverture atteint 90 % entrent dans le total. Un mois amputé par la panne du compteur ne doit pas se lire comme un mois économe. 4 mois retenus
6. Affichage charge voiture ÷ consommation totale sur ces mois. 25 %
ImportantCe que ce chiffre ne dit pas

Il s’agit de la charge à domicile, mesurée au mur. Elle ignore ce qui a été rechargé aux bornes publiques (par construction : ce courant ne passe pas par notre compteur), et elle est plus grande que l’énergie réellement arrivée dans la batterie, à cause des pertes de charge. C’est le bon chiffre pour comprendre notre facture — pas pour mesurer ce que consomme la voiture.

La transparence utile n’est pas seulement de montrer d’où viennent les chiffres : c’est de dire où ils s’arrêtent. Quatre limites connues, aucune masquée.

1. Le compteur maison est muet depuis mi-mai 2026. Les mois suivants ne sont pas des mois sobres : ce sont des mois non mesurés. Ils apparaissent estompés, sont exclus des classements et des totaux, et la répartition domicile / public y est marquée non fiable. C’est aussi la réparation qui débloquerait le plus de valeur.

2. L’app du véhicule sous-déclare l’énergie d’environ 13 %. Établi par deux contrôles indépendants : d’une part son propre champ « énergie » contredit l’état de charge de la même ligne ; d’autre part, sur trois mois à état de charge quasi constant, elle déclare moins d’énergie entrée que d’énergie dépensée en roulant — physiquement impossible. Ce champ est donc traité comme une tendance, jamais comme un niveau.

3. Il n’existe aucun kilométrage avant le 22 avril 2026. Les trajets de l’app commencent à cette date, et le seul relevé manuel d’odomètre disponible est postérieur — il n’y a donc rien à interpoler, mais rien non plus à montrer. Le jour où des relevés plus anciens seront saisis, les kilomètres seront répartis uniformément entre deux relevés : le total d’une période restera exact, mais la répartition jour par jour sera une hypothèse. Le dashboard le dira (part mesurée inférieure à 100 %).

4. Une seule sonde de température, dans un seul jardin. Elle décrit le microclimat de la maison, pas la météo régionale. La corrélation avec la consommation est robuste ; l’extrapolation au-delà de ce lieu ne l’est pas.

Dernière vérification du pipeline le 2026-07-31 15:46 : 193 tests sur données fabriquées, 0 échec. Ces tests rejouent la chaîne complète sur un jeu de données dont la bonne réponse est connue d’avance — changement d’heure, trou de mesure, trajet à cheval sur minuit, rupture d’odomètre, réimport en double. Ils ne disent pas que les sources sont justes ; ils disent que le code ne les déforme pas.