RMS VE – Intégration Home Assistant v0.2.3 - Geosr - 05-04-2026
Bonjour à tous,
Je vous partage ici la procédure complète pour installer et utiliser l’intégration RMS VE dans Home Assistant, permettant de piloter et superviser un routeur de charge VE.
J'avais fait un premier post en utilisant les packtages.. mais c'etait pas trés propre....
Installation via HACS
1. Ajouter le dépôt
Dans Home Assistant Community Store (HACS) :- Aller dans Integrations
- Menu (⋮) → Custom repositories
Ajouter :
Code : https://github.com/Geosr600/ha-rms-ve
Type : Integration
2. Installation:- Rechercher RMS VE
- Installer
- Redémarrer Home Assistant
Configuration
Après redémarrage :
- Aller dans :
Paramètres → Appareils & Services
- Ajouter :
RMS VE
Paramètres demandés :- Adresse IP du routeur VE
- Nom de l’équipement
Le nom servira de base pour les entités
Feedback / contributions
N’hésitez pas à :- remonter des bugs
- proposer des améliorations
- partager vos dashboards
Repo GitHub :
https://github.com/Geosr600/ha-rms-ve
chancelog
passage en V0.2.3
- recuperation et controle des valeurs de la page configuration borne VE.
- Choix de modification de mode au branchement / débranchement
- rajout de "énergie à ajouter".
RE: ? RMS VE – Intégration Home Assistant (Guide complet) - grostoto - 05-04-2026
Tu es un champion.
RE: ? RMS VE – Intégration Home Assistant (Guide complet) - Sgb31 - 05-04-2026
Bravo Geosr, c'est TOP !
RE: ? RMS VE – Intégration Home Assistant (Guide complet) - Geosr - 05-04-2026
(05-04-2026, 08:59 AM)grostoto a écrit : Tu es un champion.
Merci...
Cela sera plus simple que la première méthode...
N'hésite pas a me dire s'il y a des bug chez toi
RE: ? RMS VE – Intégration Home Assistant (Guide complet) - grostoto - 05-04-2026
je partage une card, on peut la découper en petits bouts..
Code : type: vertical-stack
cards:
- square: false
type: grid
columns: 4
cards:
- type: custom:button-card
name: Arrêt
icon: mdi:stop-circle
tap_action:
action: call-service
service: script.ve_mode_arret
styles:
card:
- height: 60px
- border-radius: 16px
- background-color: >-
[[[ return states['sensor.borne_ve_api']?.attributes?.mode == 3
? 'rgba(244, 67, 54, 0.8)' : '#1a1a1a' ]]]
- border: >-
[[[ return states['sensor.borne_ve_api']?.attributes?.mode == 3
? '2px solid #f44336' : '1px solid #333' ]]]
- box-shadow: >-
[[[ return states['sensor.borne_ve_api']?.attributes?.mode == 3
? '0 0 15px rgba(244,67,54,0.6)' : 'none' ]]]
icon:
- color: >-
[[[ return states['sensor.borne_ve_api']?.attributes?.mode == 3
? 'white' : '#f44336' ]]]
name:
- color: white
- font-weight: 700
- font-size: 11px
- type: custom:button-card
name: Auto
icon: mdi:flash-auto
tap_action:
action: call-service
service: script.ve_mode_auto
styles:
card:
- height: 60px
- border-radius: 16px
- background-color: >-
[[[ return states['sensor.borne_ve_api']?.attributes?.mode == 0
? 'rgba(76, 175, 80, 0.8)' : '#1a1a1a' ]]]
- border: >-
[[[ return states['sensor.borne_ve_api']?.attributes?.mode == 0
? '2px solid #4caf50' : '1px solid #333' ]]]
- box-shadow: >-
[[[ return states['sensor.borne_ve_api']?.attributes?.mode == 0
? '0 0 15px rgba(76,175,80,0.6)' : 'none' ]]]
icon:
- color: >-
[[[ return states['sensor.borne_ve_api']?.attributes?.mode == 0
? 'white' : '#4caf50' ]]]
name:
- color: white
- font-weight: 700
- font-size: 11px
- type: custom:button-card
name: Semi-auto
icon: mdi:sync
tap_action:
action: call-service
service: script.ve_mode_semi_auto
styles:
card:
- height: 60px
- border-radius: 16px
- background-color: >-
[[[ return states['sensor.borne_ve_api']?.attributes?.mode == 1
? 'rgba(33, 150, 243, 0.8)' : '#1a1a1a' ]]]
- border: >-
[[[ return states['sensor.borne_ve_api']?.attributes?.mode == 1
? '2px solid #2196f3' : '1px solid #333' ]]]
- box-shadow: >-
[[[ return states['sensor.borne_ve_api']?.attributes?.mode == 1
? '0 0 15px rgba(33,150,243,0.6)' : 'none' ]]]
icon:
- color: >-
[[[ return states['sensor.borne_ve_api']?.attributes?.mode == 1
? 'white' : '#2196f3' ]]]
name:
- color: white
- font-weight: 700
- font-size: 11px
- type: custom:button-card
name: Manuel
icon: mdi:hand-back-right
tap_action:
action: call-service
service: script.ve_mode_manuel
styles:
card:
- height: 60px
- border-radius: 16px
- background-color: >-
[[[ return states['sensor.borne_ve_api']?.attributes?.mode == 2
? 'rgba(156, 39, 176, 0.8)' : '#1a1a1a' ]]]
- border: >-
[[[ return states['sensor.borne_ve_api']?.attributes?.mode == 2
? '2px solid #9c27b0' : '1px solid #333' ]]]
- box-shadow: >-
[[[ return states['sensor.borne_ve_api']?.attributes?.mode == 2
? '0 0 15px rgba(156,39,176,0.6)' : 'none' ]]]
icon:
- color: >-
[[[ return states['sensor.borne_ve_api']?.attributes?.mode == 2
? 'white' : '#9c27b0' ]]]
name:
- color: white
- font-weight: 700
- font-size: 11px
- type: tile
entity: number.courant_borne_ve_dynamique
name: réglage intensité
icon: mdi:lightning-bolt
features:
- type: numeric-input
card_mod:
style: |
ha-card {
{% set v = states('number.courant_borne_ve_dynamique') | float(0) %}
{% set c = '#4caf50' if v < 14 else '#ff9800' if v <= 16 else '#f44336' %}
--tile-color: {{ c }} !important;
}
ha-control-slider {
--control-slider-background: rgba(255, 255, 255, 0.2) !important;
--control-slider-thumb-visibility: visible !important;
}
- type: custom:button-card
entity: sensor.etat_de_la_liaison_ve
name: État de la liaison VE
show_icon: true
show_name: true
show_state: true
styles:
grid:
- grid-template-areas: "\"i n s\""
- grid-template-columns: 45px auto max-content
- align-items: center
card:
- padding: 8px 16px
- background: none
- border: none
- box-shadow: none
- "--wave-color": |
[[[
const v = states['sensor.courant_de_charge_ve'].state;
if (v < 14) return '76, 175, 80'; // Vert (#4caf50)
if (v <= 16) return '255, 152, 0'; // Orange (#ff9800)
return '244, 67, 54'; // Rouge (#f44336)
]]]
icon:
- width: 40px
- height: 40px
- margin-left: 10px
- color: |
[[[
const s = entity.state;
if (s.includes('A -')) return '#9e9e9e';
if (s.includes('B -')) return '#00b0ff';
if (s.includes('C -')) return '#00b0ff';
if (s.includes('F -')) return '#ff5252';
return 'white';
]]]
name:
- justify-self: start
- font-size: 14px
- margin-left: 20px
state:
- justify-self: end
- font-size: 14px
custom_fields:
wave: |
[[[
if (entity.state.includes('C -')) {
return `
<div class="wave-container">
<svg class="wave-svg second" viewBox="0 0 1440 320"><path d="M0,160L48,170.7C96,181,192,203,288,218.7C384,235,480,245,576,240C672,235,768,213,864,202.7C960,192,1056,192,1152,181.3C1248,171,1344,149,1392,138.7L1440,128L1440,320L1392,320C1344,320,1248,320,1152,320C1056,320,960,320,864,320C768,320,672,320,576,320C480,320,384,320,288,320C192,320,96,320,48,320L0,320Z"></path></svg>
<svg class="wave-svg" viewBox="0 0 1440 320"><path d="M0,160L48,170.7C96,181,192,203,288,218.7C384,235,480,245,576,240C672,235,768,213,864,202.7C960,192,1056,192,1152,181.3C1248,171,1344,149,1392,138.7L1440,128L1440,320L1392,320C1344,320,1248,320,1152,320C1056,320,960,320,864,320C768,320,672,320,576,320C480,320,384,320,288,320C192,320,96,320,48,320L0,320Z"></path></svg>
</div>
`;
}
]]]
extra_styles: |
.wave-container {
position: absolute;
top: 0px;
left: 8px;
width: 70px;
height: 55px;
border-radius: 50%;
overflow: hidden;
z-index: 0;
background: rgba(var(--wave-color), 0.1); /* Utilise la variable */
pointer-events: none;
}
.wave-svg {
position: absolute;
bottom: -8px;
left: 0;
width: 400%;
height: 140%;
fill: rgba(var(--wave-color), 0.5); /* Utilise la variable */
animation: wave-move 3s infinite linear;
}
.wave-svg.second {
fill: rgba(var(--wave-color), 0.2); /* Utilise la variable */
animation: wave-move 6s infinite linear;
bottom: -0px;
}
@keyframes wave-move {
0% { transform: translateX(0); }
100% { transform: translateX(-70%); }
}
.img-cell {
z-index: 1;
}
- type: custom:config-template-card
entities:
- number.courant_borne_ve_dynamique
- sensor.courant_de_charge_ve
card:
type: custom:bar-card
name: Courant Actuel
direction: right
height: 40px
positions:
icon: "off"
indicator: "off"
name: inside
value: inside
min: 4
max: ${states['number.courant_borne_ve_dynamique'].attributes.max}
severity:
- color: "#00e676"
from: 0
to: 13.9
- color: "#ffeb3b"
from: 14
to: 16
- color: "#ff5252"
from: 16.1
to: 40
style: |
ha-card {
background: #000;
border-radius: 15px;
border: 1px solid #444;
padding: 10px;
}
/* Optionnel : ajoute du contraste au texte sur les couleurs claires */
.bar-card-name, .bar-card-value {
font-weight: bold;
text-shadow: 1px 1px 2px rgba(0,0,0,0.8);
}
entities:
- entity: sensor.courant_de_charge_ve
- type: entities
title: Station de charge VE
show_header_toggle: false
entities:
- entity: sensor.courant_de_charge_ve
name: Courant de charge
icon: mdi:flash
- entity: sensor.routeur_maitre_routeur_rms_puissances_m
name: Production-Consommation
icon: mdi:solar-power-variant-outline
card_mod:
style: |
:host {
--paper-item-icon-color: #ff9800;
background-color: rgba(144, 238, 144, 0.1);
}
- entity: sensor.recharge_cumulee_ve
name: Recharge Cumulée d'énergie
- entity: sensor.temps_de_charge_ve
name: Temps de charge
- entity: sensor.pwm_borne_ve
name: PWM
icon: mdi:pulse
- entity: sensor.etat_de_la_liaison_ve
name: État de la liaison VE
card_mod:
style:
state-badge:
$: |
ha-state-icon {
{% set etat = states('sensor.etat_de_la_liaison_ve') %}
{% if 'A -' in etat %}
color: #9e9e9e !important;
{% elif 'B -' in etat %}
color: #00b0ff !important;
{% elif 'C -' in etat %}
color: #00e676 !important;
animation: blink 2s infinite;
{% elif 'F -' in etat %}
color: #ff5252 !important;
{% endif %}
}
ha-icon {
height: 40px !important;
width: 40px !important;
}
@keyframes blink {
50% { opacity: 0.3; }
}
.: |
:host {
--mdc-icon-size: 40px !important;
}
- entity: sensor.mode_de_fonctionnement_borne_ve
name: Mode de fonctionnement
- entity: number.courant_borne_ve_dynamique
name: "I charge manuel :"
RE: ? RMS VE – Intégration Home Assistant (Guide complet) - Rakibou - 05-04-2026
(05-04-2026, 12:00 AM)Geosr a écrit : Je vous partage ici la procédure complète pour installer et utiliser l’intégration RMS VE dans Home Assistant, permettant de piloter et superviser un routeur de charge VE.
Merci pour ta contribution et pour la doc.
J'ai porté la doc dans la documentation générale Station de charge VE-RMS.
RE: ? RMS VE – Intégration Home Assistant (Guide complet) - Geosr - 06-04-2026
(05-04-2026, 11:45 PM)Rakibou a écrit : (05-04-2026, 12:00 AM)Geosr a écrit : Je vous partage ici la procédure complète pour installer et utiliser l’intégration RMS VE dans Home Assistant, permettant de piloter et superviser un routeur de charge VE.
Merci pour ta contribution et pour la doc.
J'ai porté la doc dans la documentation générale Station de charge VE-RMS.
Avoir plaisir
|