p00f
Avril 11, 2025, 7:23
1
Coucou!
Je vous présente fièrement mes dashboards actuels. La plupart sont encore en chantier… d’ailleurs pas sûr que le chantier prenne fin un jour
D’abord quelques détails sur mon install:
Panneaux PV 2.4kWc avec micro-onduleurs Hoymiles et OpenDTU;
Voiture élec;
Chargeur de voiture dynamique avec MQTT (SmartEVSE)
Chauffe-eau élec avec routeur solaire MQTT (celui de Cyril Poissonnier);
Récepteur « radar » de trafic aérien(ADS-B);
Presque tous mes devices en Zigbee
Mon dashboard principal
Avec la super carte power-flow-card-plus et un graphique trouvé sur le net, qui affiche les prévisions de la journée et la vraie production.
Solaire
Quand les panneaux produisent, une jauge apparaît pour chacun.
J’ai une prédiction très précise de la production (via l’intétration Solcast).
J’ai une carte Template mushroom qui me calcule le pourcentage max que je peux espérer charger dans la voiture ce jour-ci au solaire seulement.
Une carte des jours Tempo via l’intégration RTE et un yaml trouvé quelque part
Une carte qui me calcule les économies faites grâce au solaire jusqu’à présent, en tenant compte du prix de l’électricité au moment de la production.
Voiture
Celui là est un peu long à expliquer et il est tard . Mais il y a beaucoup d’automatisations en jeu pour optimiser la charge et contourner certaines limitations du SmartEVSE.
Chauffe-Eau
Affichage temps réel et contrôle du routeur solaire.
Une automatisation pour calculer la puissance et l’envoyer au routeur via MQTT.
Une autre pour réinitialiser le contacteur du routeur au tableau électrique s’il venait à planter, ce qui arrive malheureusement souvent.
Graphique de la température mesurée et de la puissance.
Météo / Qualité de l’air
Fusion de différents capteurs et intégrations.
Internet / Réseau
Sources:
Intégration Routeur Asus
Intégration Speedtest (1 test par jour)
Je suis en train d’essayer d’écrire une intégration pour mon routeur 5G Zyxel, afin d’avoir les stats radio notamment.
Batteries
Panneaux (WIP)
Récepteur ADS-B
Sources:
tar1090 (local)
Flightaware (internet)
Santé
Intégration Garmin.
Code source: Home Assistant Garmin Dashboard with Mushroom · GitHub
Suivi du trafic aérien
Webview de tar1090 (adsb-ultrafeeder)
Énergie (dashboard par défaut)
Mesure mes stats du jour, très bonnes par ailleurs
8 « J'aime »
Très sympa
le genre minimaliste que j’aime assez qui reste un maximum dans le standard.
Quelques template plus tard et un jolie travail super dashboard
1 « J'aime »
Bob
Avril 11, 2025, 7:56
3
Je dis que les personnes qui gèrent si bien l’énergie devraient avoir une réduction d’impôt
Bob
4 « J'aime »
p00f:
Intégration Garmin.
Je suis preneur de ta vue si tu veux bien
Merci beaucoup
p00f
Avril 11, 2025, 8:56
5
Bien sûr
J’ai ajouté le code source dans le message original.
1 « J'aime »
Merci beaucoup
Il reste a enregistrer les valeurs pour les statistiques
1 « J'aime »
Très beau dashboard bravo ! Je vais te prendre quelques idées.
p00f
Juillet 8, 2025, 8:27
8
J’avais du temps libre, j’ai donc fait un diagramme de mes intégrations
Chaque item représenté est intégré d’une manière ou d’une autre dans HA.
À part ça, en projets récents:
Passage de HA/mosquitto/Z2M en mode Docker (supervisé via Portainer) en remplacement du mode Supervised, qui va bientôt devenir obsolète
Ajout de influxDB comme base de données, et ajout de Grafana pour faire de beaux graphes des données de HA.
Ajout de l’intégration Tractive pour le traceur GPS de mon chat; agrégation des positions dans InfluxDB, et création d’une heatmap dans Grafana. Puis intégration du panneau Grafana dans un dashboard HA:
1 « J'aime »
Bonsoir P00f, pourrais tu partager le code de ta partie “solaire” stp ? merci
p00f
Novembre 6, 2025, 4:44
10
Hello, le voilà
Il a pas mal bougé, et il est pas forcément “portable” facilement. Voilà à quoi il ressemble actuellement:
Résumé
title: Energy
path: energy
icon: mdi:flash
type: sections
sections:
- type: grid
cards:
- type: heading
heading: Production
heading_style: title
icon: mdi:sun-angle
- type: gauge
entity: sensor.face_est_power
name: East
unit: W
max: 1200
min: 0
needle: false
grid_options:
rows: 2
columns: 4
visibility:
- condition: state
entity: sensor.onduleur_1_power
state_not: unavailable
- type: gauge
entity: sensor.face_sud_power
name: South
unit: W
max: 1200
min: 0
needle: false
grid_options:
rows: 2
columns: 4
visibility:
- condition: state
entity: sensor.face_sud_power
state_not: unavailable
- type: gauge
entity: sensor.onduleur_1_power
name: West
unit: W
max: 1200
min: 0
needle: false
grid_options:
rows: 2
columns: 4
visibility:
- condition: state
entity: sensor.onduleur_1_power
state_not: unavailable
- graph: none
type: sensor
entity: sensor.solar_yield_day_properly_formatted
name: Today's yield
unit: kWh
icon: mdi:solar-power
detail: 1
- type: custom:mushroom-entity-card
entity: sensor.solcast_pv_forecast_peak_forecast_today
primary_info: state
secondary_info: name
name: Peak today
- type: custom:mushroom-entity-card
entity: sensor.solcast_pv_forecast_peak_forecast_tomorrow
primary_info: state
secondary_info: name
name: Peak tomorrow
- type: heading
heading: Forecast
heading_style: title
icon: mdi:timer-sand
badges:
- type: entity
entity: sensor.solcast_pv_forecast_api_last_polled
- type: entities
entities:
- entity: sensor.solcast_pv_forecast_forecast_remaining_today
icon: mdi:clock
name: Today (remaining)
- entity: sensor.solcast_pv_forecast_forecast_tomorrow
name: Tomorrow
icon: mdi:calendar-blank
secondary_info: "{{ states(entity.entity_id) | round(0) }}"
- entity: sensor.solcast_pv_forecast_forecast_day_3
name: D+2
icon: mdi:calendar-plus
secondary_info: "{{ states(entity.entity_id) | round(0) }}"
- entity: sensor.solcast_pv_forecast_forecast_day_4
name: D+3
icon: mdi:calendar-plus-outline
secondary_info: "{{ states(entity.entity_id) | round(0) }}"
- chart_type: bar
period: month
type: statistics-graph
entities:
- entity: sensor.total_solar_yield_template_sensor_with_history
name: Production
- entity: sensor.mybattery_battery_energy_in
name: VBattery charge
- entity: sensor.mybattery_battery_energy_out
name: VBattery discharge
stat_types:
- change
days_to_show: 365
visibility:
- condition: screen
media_query: "(min-width: 768px)"
- type: grid
columns: 1
cards:
- type: heading
heading: Battery
heading_style: title
icon: mdi:car-battery
- type: gauge
entity: sensor.me3000sp_battery
severity:
green: 40
yellow: 25
red: 15
name: State
grid_options:
columns: 6
rows: 2
- type: custom:mushroom-entity-card
entity: sensor.me3000sp_battery_soh
name: Health
primary_info: state
secondary_info: name
- type: custom:mushroom-entity-card
entity: sensor.me3000sp_device_state
name: State
primary_info: state
secondary_info: name
- type: custom:mushroom-template-card
secondary: Battery life
icon: mdi:clock
primary: >
{% set capacity_kwh = 5 *
(states('number.me3000sp_battery_discharge_depth')|float(0)) / 100 %}
{% set soc = states('sensor.me3000sp_battery') | float(0) %}
{% set power_w = states('sensor.me3000sp_battery_power') | float(0) *
-1 %}
{% set available_kwh = capacity_kwh * ((soc - 20) / 100) %}
{% if power_w > 0 %}
{% set hours = available_kwh * 1000 / power_w %}
{% if hours < 2 %}
{% set minutes = (hours * 60) | round(0) %}
{{ minutes }} minutes left
{% else %}
{{ hours | round(0) }} hours left
{% endif %}
{% else %}
Unknown
{% endif %}
icon_color: blue
visibility:
- condition: or
conditions:
- condition: state
entity: sensor.me3000sp_device_state
state: Emergency power supply
- condition: state
entity: sensor.me3000sp_device_state
state: Discharging
- type: custom:mushroom-template-card
icon: mdi:clock
primary: |
{% set capacity_kwh = 5 %}
{% set soc = states('sensor.me3000sp_battery') | float(0) %}
{% set power_w = states('sensor.me3000sp_battery_power') | float(0) %}
{% set remaining_kwh = capacity_kwh - capacity_kwh * (soc / 100) %}
{% if power_w > 0 %}
{{ (remaining_kwh * 1000 / power_w) | round(0) }}
{% if (remaining_kwh * 1000 / power_w) | round(0) == 1 %}
hour
{% else %}
hours
{% endif %}
{% if (remaining_kwh * 1000 % power_w) > 0.2 %}
{{ (remaining_kwh * 1000 % power_w / 60 ) | round(0) }} minutes
{% endif %}
{% else %}
Unknown
{% endif %}
icon_color: blue
visibility:
- condition: state
entity: sensor.me3000sp_device_state
state: Charging
secondary: Time until full
- type: custom:mushroom-entity-card
entity: sensor.me3000sp_battery_cycles
name: Cycles
primary_info: state
secondary_info: name
- type: custom:mushroom-entity-card
entity: sensor.me3000sp_battery_temperature
name: Temperature
primary_info: state
secondary_info: name
- type: heading
heading: Inverter
heading_style: title
icon: mdi:math-norm-box
- type: custom:mushroom-select-card
entity: select.me3000sp_work_mode
name: Mode
layout: horizontal
- type: tile
entity: sensor.me3000sp_temperature
name: Temp
features_position: bottom
vertical: false
- type: tile
entity: sensor.me3000sp_dc_temperature
name: DC
features_position: bottom
vertical: false
- type: heading
heading: Day stats
heading_style: title
icon: mdi:chart-bar
- type: tile
entity: sensor.me3000sp_today_energy_import
name: Import
- type: tile
entity: sensor.me3000sp_today_energy_export
name: Export
- type: tile
entity: sensor.me3000sp_today_load_consumption
name: Load
- type: tile
entity: sensor.me3000sp_today_production
name: Production
- type: tile
entity: sensor.me3000sp_today_production_time
name: Prod. Time
- type: tile
entity: sensor.me3000sp_today_losses
name: Losses
- type: tile
entity: sensor.me3000sp_today_battery_charge
name: Charge (Today)
- type: tile
entity: sensor.me3000sp_today_battery_discharge
name: Discharge (Today)
- type: heading
heading: All-time stats
heading_style: title
icon: mdi:chart-bar
- type: tile
entity: sensor.me3000sp_total_energy_import
name: Import
- type: tile
entity: sensor.me3000sp_total_energy_export
name: Export
- type: tile
entity: sensor.me3000sp_total_load_consumption
name: Load
- type: tile
entity: sensor.me3000sp_total_production
name: Production
- type: tile
entity: sensor.me3000sp_total_production_time
name: Prod. Time
- type: tile
entity: sensor.me3000sp_total_losses
name: Losses
- type: tile
entity: sensor.me3000sp_total_battery_charge
name: Charge (Total)
- type: tile
entity: sensor.me3000sp_total_battery_discharge
name: Discharge (Total)
- type: grid
cards:
- type: heading
heading: Costs
heading_style: title
icon: mdi:currency-eur
- type: custom:mushroom-entity-card
entity: sensor.solar_savings_template
fill_container: false
primary_info: state
secondary_info: name
name: Saved with Solar
- type: custom:mushroom-entity-card
entity: sensor.conso_enedis_mois_courant
primary_info: state
secondary_info: name
name: From grid this month
- chart_type: bar
period: month
type: statistics-graph
entities:
- entity: sensor.solar_savings_template
name: Savings
stat_types:
- change
days_to_show: 90
- type: heading
icon: mdi:factory
heading: Carbon Intensity
heading_style: title
- type: gauge
entity: sensor.electricity_maps_co2_intensity
name: CO² Intensity
grid_options:
columns: 6
rows: auto
unit: " "
- type: gauge
entity: sensor.electricity_maps_grid_fossil_fuel_percentage
name: Fossil Souces
needle: false
grid_options:
columns: 6
rows: auto
- type: heading
heading: Virtual Battery
heading_style: title
icon: mdi:car-battery
- type: custom:mushroom-entity-card
entity: sensor.mybattery
primary_info: state
secondary_info: name
name: Stored Energy
icon: mdi:battery-50
- type: custom:mushroom-template-card
entity: sensor.mybattery
primary_info: state
secondary_info: name
icon: mdi:currency-eur
primary: "{{ ((states('sensor.mybattery') | float) * (0.20-0.08)) | int}} €"
secondary: Stored value
icon_color: blue
tap_action:
action: none
- type: custom:mushroom-template-card
entity: sensor.mybattery
primary_info: state
secondary_info: name
icon: mdi:currency-eur
primary: "{{ ((states('sensor.mybattery') | float) * (0.08)) | int}} €"
secondary: Cost to empty battery
icon_color: blue
- type: vertical-stack
cards:
- type: custom:bubble-card
card_type: pop-up
auto_close: ""
hash: "#forecast-refresh-pop-up"
name: Refreshing
trigger:
- condition: state
entity: input_boolean.action_running
state: "on"
show_header: true
icon: mdi:timer-sand
show_icon: true
hide_backdrop: true
margin_top_desktop: 80vh
bg_opacity: "88"
badges:
- type: entity
show_name: true
show_state: false
show_icon: true
entity: sensor.solcast_pv_forecast_api_last_polled
name: Update Forecast
tap_action:
action: perform-action
perform_action: automation.trigger
target:
entity_id: automation.automation_update_solcast_solar_forecast
data:
skip_condition: true
icon: mdi:reload
- type: entity
show_name: true
show_state: true
show_icon: true
entity: select.me3000sp_work_mode
name: Inverter Mode
tap_action:
action: perform-action
perform_action: select.select_next
target:
entity_id: select.me3000sp_work_mode
data:
cycle: true
- type: custom:mushroom-template-badge
content: >-
{{states('sensor.rte_tempo_couleur_actuelle_visuel')}}
{{states('sensor.rte_tempo_prochaine_couleur_visuel')}}
icon: ""
color: ""
label: Tempo
tap_action:
action: navigate
navigation_path: /dashboard-home/energy
- type: custom:mushroom-template-badge
icon: mdi:battery-charging-30
color: blue
entity: sensor.mybattery
content: "{{ states('sensor.mybattery') | int}} kWh"
tap_action:
action: more-info
1 « J'aime »