{"id":4225,"date":"2026-01-12T17:41:43","date_gmt":"2026-01-12T16:41:43","guid":{"rendered":"https:\/\/domo.rem81.com\/?p=4225"},"modified":"2026-01-12T17:44:30","modified_gmt":"2026-01-12T16:44:30","slug":"ha-integrer-et-superviser-un-systeme-victron-dans-home-assistant-configuration-mqtt-v2026","status":"publish","type":"post","link":"https:\/\/domo.rem81.com\/index.php\/2026\/01\/12\/ha-integrer-et-superviser-un-systeme-victron-dans-home-assistant-configuration-mqtt-v2026\/","title":{"rendered":"HA-Int\u00e9grer et superviser un syst\u00e8me Victron dans Home Assistant : Configuration MQTT -V2026"},"content":{"rendered":"\n\n\n\n<h1 class=\"wp-block-heading\" id=\"block-d2161f53-aed0-45f8-bcf5-e663a130f831\">Intro<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">L\u2019article pr\u00e9c\u00e9dent intitul\u00e9 :<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><em>HA \u2013 Int\u00e9grer et superviser un syst\u00e8me Victron dans Home Assistant (configuration MQTT, Modbus et automatisation vers Node-RED)<\/em><\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-wp-embed is-provider-domo-rem-81 wp-block-embed-domo-rem-81\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"wp-embedded-content\" data-secret=\"4ianY1rPM5\"><a href=\"https:\/\/domo.rem81.com\/index.php\/2025\/03\/15\/ha-integrer-et-superviser-un-systeme-victron-dans-home-assistant-configuration-mqtt-modbus-et-automatisation-vers-node-red\/\">HA-Int\u00e9grer et superviser un syst\u00e8me Victron dans Home Assistant : Configuration MQTT, Modbus et Automatisation vers Node-RED<\/a><\/blockquote><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; visibility: hidden;\" title=\"\u00ab\u00a0HA-Int\u00e9grer et superviser un syst\u00e8me Victron dans Home Assistant : Configuration MQTT, Modbus et Automatisation vers Node-RED\u00a0\u00bb &#8212; Domo Rem81\" src=\"https:\/\/domo.rem81.com\/index.php\/2025\/03\/15\/ha-integrer-et-superviser-un-systeme-victron-dans-home-assistant-configuration-mqtt-modbus-et-automatisation-vers-node-red\/embed\/#?secret=lwQ1a75CnL#?secret=4ianY1rPM5\" data-secret=\"4ianY1rPM5\" width=\"600\" height=\"338\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n<\/div><\/figure>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">reposait sur :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>une configuration <strong>MQTT manuelle<\/strong>,<\/li>\n\n\n\n<li>des capteurs <strong>d\u00e9clar\u00e9s directement depuis le flux Victron MQTT brut<\/strong>,<\/li>\n\n\n\n<li>et une logique de supervision\/automatisation fortement coupl\u00e9e \u00e0 Node-RED.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">\ud83d\udc49 <strong>Cette approche est d\u00e9sormais obsol\u00e8te dans mon installation.<\/strong><br>Elle fonctionnait, mais elle \u00e9tait :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>complexe \u00e0 maintenir,<\/li>\n\n\n\n<li>fragile lors des mises \u00e0 jour,<\/li>\n\n\n\n<li>peu standardis\u00e9e c\u00f4t\u00e9 Home Assistant.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Depuis, j\u2019ai migr\u00e9 vers une solution <strong>beaucoup plus propre, modulaire et p\u00e9renne<\/strong>, bas\u00e9e sur l\u2019int\u00e9gration communautaire :<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ud83d\udd17 <strong>ha-victron-mqtt<\/strong><br><a href=\"https:\/\/github.com\/tomer-w\/ha-victron-mqtt\">https:\/\/github.com\/tomer-w\/ha-victron-mqtt<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Cet article pr\u00e9sente donc <strong>la nouvelle architecture compl\u00e8te<\/strong>, actuellement en production chez moi.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"block-659ee641-0241-43c1-ade9-d392e9099e64\">Dans cet article, je vous partage la configuration .yaml que j\u2019ai mise en place dans Home Assistant pour superviser mon syst\u00e8me Victron, compos\u00e9 d\u2019un MultiPlus II, d\u2019un MPPT 250\/70, d\u2019un SmartShunt, et de compteurs d&rsquo;\u00e9nergie (ET112). Cette configuration utilise le protocoles MQTT pour r\u00e9cup\u00e9rer et traiter les donn\u00e9es. En bonus, je vous pr\u00e9sente deux automatisations (une pour envoyer des informations \u00e0 Node-RED, une autre pour g\u00e9rer la charge forc\u00e9e en fonction de la couleur Tempo), ainsi que deux exemples de cartes Lovelace pour visualiser, contr\u00f4ler et programmer ces donn\u00e9es. Que vous souhaitiez suivre votre production solaire, l\u2019\u00e9tat de vos batteries ou votre consommation, ce guide vous donnera une base solide pour int\u00e9grer un syst\u00e8me Victron dans Home Assistant.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">Int\u00e9gration Victron MQTT Int\u00e9gration<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">J&rsquo;ai choisi celle ci car beaucoup plus r\u00e9ative que la version Modbus mais aussi moins gourmande en ressources au niveau du CerboGX<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Et facile \u00e0 mettre en oeuvre: <a href=\"https:\/\/github.com\/tomer-w\/ha-victron-mqtt\">https:\/\/github.com\/tomer-w\/ha-victron-mqtt<\/a><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"843\" height=\"631\" src=\"https:\/\/domo.rem81.com\/wp-content\/uploads\/2026\/01\/image-6.png\" alt=\"\" class=\"wp-image-4233\" srcset=\"https:\/\/domo.rem81.com\/wp-content\/uploads\/2026\/01\/image-6.png 843w, https:\/\/domo.rem81.com\/wp-content\/uploads\/2026\/01\/image-6-300x225.png 300w, https:\/\/domo.rem81.com\/wp-content\/uploads\/2026\/01\/image-6-768x575.png 768w\" sizes=\"auto, (max-width: 843px) 100vw, 843px\" \/><\/figure>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"block-4f2f1625-b1d0-410f-8983-2ab54bfae409\">MQTT : R\u00e9cup\u00e9ration des donn\u00e9es via MQTT<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Voici le fichier de configuration que j\u2019ai ajout\u00e9 \u00e0 un fichier victron.yaml dans Home Assistant<\/p>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"block-29c66b18-428c-41ff-9e10-c25a0ccd8df2\">Je commence par configurer des capteurs MQTT pour r\u00e9cup\u00e9rer les donn\u00e9es publi\u00e9es par mon syst\u00e8me Victron (via un broker MQTT, configur\u00e9 s\u00e9par\u00e9ment). Ces capteurs couvrent des m\u00e9triques cl\u00e9s li\u00e9s \u00e0 la pr\u00e9vision de productions et \u00e0 la gestion de mon DESS.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mqtt:\n  sensor:\n  # MQTT\n\n  \n      # DESS Remy\n    - name: \"MP2 Prod VRM TOTAL MQTT\"\n      unique_id: mp2_prod_vrm_total_mqtt\" \n      state_topic: \"mp2\/dess_remy\/prod_total\"\n      unit_of_measurement: 'kW'\n      device_class: power\n      state_class: measurement      \n\n    - name: \"MP2 Cible SOC par MQTT\"\n      unique_id: mp2_cible_soc_par_mqtt\" \n      state_topic: \"mp2\/dess_remy\/cible_soc\"\n      unit_of_measurement: '%'\n      device_class: battery\n      state_class: measurement\n\n    - name: \"MP2 DESS Difference Cible-SOC\"\n      unique_id: mp2_difference_cible_soc\" \n      state_topic: \"mp2\/dess_remy\/diff_soc\"\n      unit_of_measurement: '%'\n      device_class: battery\n      state_class: measurement\n\n    - name: \"MP2 DESS H_Debut DESS Remy\"\n      unique_id: mp2_dess_h_debut\" \n      state_topic: \"mp2\/dess_remy\/h_debut\"   \n\n    - name: \"MP2 DESS Dur\u00e9e DESS Remy\"\n      unique_id: mp2_dess_duree\" \n      state_topic: \"mp2\/dess_remy\/duree\"   <\/code><\/pre>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"block-04da0dca-5f98-431b-9b4f-9c7a1b4edad4\">Automatisations<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"block-56bf64db-bf45-4cdd-9608-63b44516c18d\">Envoi des informations de Home Assistant vers Node-RED<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"block-30d090d1-7621-41e9-a67f-b5823eb69ac7\">Pour aller plus loin dans l\u2019int\u00e9gration entre Home Assistant et Node-RED, j\u2019ai cr\u00e9\u00e9 une automatisation qui envoie des informations cl\u00e9s de Home Assistant vers Node-RED via MQTT. Cela permet \u00e0 Node-RED de prendre des d\u00e9cisions bas\u00e9es sur l\u2019\u00e9tat de mon syst\u00e8me, par exemple pour ajuster dynamiquement la charge des batteries ou le mode de fonctionnement du MultiPlus II. Voici l\u2019automatisation que j\u2019ai mise en place.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"block-e780861c-2aa6-4233-89e2-247001006c5a\">Code de l\u2019automatisation<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"block-aae3f2ef-777e-43e3-9673-bfeaf6eab0c4\">Cette automatisation, nomm\u00e9e \u00ab\u00a0Recopie Etat HA vers NR MP2\u00a0\u00bb, est d\u00e9clench\u00e9e soit toutes les heures, soit lorsqu\u2019un des capteurs ou entr\u00e9es surveill\u00e9s change d\u2019\u00e9tat. Elle publie ensuite les valeurs correspondantes sur des topics MQTT que Node-RED peut \u00e9couter.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>alias: Recopie Etat HA vers NodeRed MP2\ndescription: Lien entre HA et le nodered du MP2\ntriggers:\n  - id: mn\n    trigger: time_pattern\n    seconds: \/10\n  - entity_id:\n      - input_boolean.mp2_valid_ess_charge_prog_1\n      - input_boolean.forcage_charge_pgm_mp1_100\n      - input_number.mp2_niveau_forcage_cp1\n      - sensor.esp124_tic_linky_ptec\n    trigger: state\nconditions: &#091;]\nactions:\n  - action: mqtt.publish\n    metadata: {}\n    data:\n      evaluate_payload: false\n      qos: \"0\"\n      retain: false\n      topic: ha\/mp2\/cp\/validcp\n      payload: \"\\\"{{ states('input_boolean.mp2_valid_ess_charge_prog_1') }}\\\"\"\n  - action: mqtt.publish\n    metadata: {}\n    data:\n      evaluate_payload: false\n      qos: \"0\"\n      retain: false\n      topic: ha\/mp2\/cp\/forcage100\n      payload: \"\\\"{{ states('input_boolean.forcage_charge_pgm_mp1_100') }}\\\"\"\n  - action: mqtt.publish\n    metadata: {}\n    data:\n      evaluate_payload: false\n      qos: \"0\"\n      retain: false\n      topic: ha\/mp2\/cp\/niveauforcagecp1\n      payload: \"\\\"{{ states('input_number.mp2_niveau_forcage_cp1') }}\\\"\"\n  - action: mqtt.publish\n    metadata: {}\n    data:\n      evaluate_payload: false\n      qos: \"0\"\n      retain: false\n      topic: ha\/mp2\/cp\/hc\n      payload: \"\\\"{{ states('sensor.esp124_tic_linky_ptec') }}\\\"\"\nmode: single\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"block-8bf29245-45d3-47c1-828c-fbcae2d485bf\">Explications de l\u2019automatisation<\/h3>\n\n\n\n<ol id=\"block-03c54594-f375-4eb3-a242-45124c2a9f60\" class=\"wp-block-list\">\n<li><strong>D\u00e9clencheurs<\/strong> :\n<ul class=\"wp-block-list\">\n<li><strong>Toutes les 10 s<\/strong> (time_pattern: seconds: \/10) : Cela garantit que Node-RED re\u00e7oit les informations m\u00eame si aucun changement d\u2019\u00e9tat n\u2019a lieu.<\/li>\n\n\n\n<li><strong>Changement d\u2019\u00e9tat<\/strong> (trigger: state) : L\u2019automatisation se d\u00e9clenche d\u00e8s qu\u2019un des capteurs ou entr\u00e9es suivants change :\n<ul class=\"wp-block-list\">\n<li>input_boolean.mp2_valid_ess_charge_prog_1 : Indique si le programme de charge ESS est valide.<\/li>\n\n\n\n<li>input_boolean.forcage_charge_pgm_mp2_100 : Indique si un for\u00e7age de charge \u00e0 100 % est activ\u00e9.<\/li>\n\n\n\n<li>input_number.mp2_niveau_forcage_cp1 : Niveau de for\u00e7age pour le programme de charge.<\/li>\n\n\n\n<li>sensor.linky_ptec : P\u00e9riode tarifaire en cours (par exemple, Heures Creuses ou Heures Pleines, via l\u2019int\u00e9gration Linky).<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Actions<\/strong> :\n<ul class=\"wp-block-list\">\n<li>L\u2019automatisation publie les valeurs des entit\u00e9s sur des topics MQTT sp\u00e9cifiques :\n<ul class=\"wp-block-list\">\n<li>ha\/mp2\/cp\/validcp : \u00c9tat du programme de charge ESS.<\/li>\n\n\n\n<li>ha\/mp2\/cp\/forcage100 : \u00c9tat du for\u00e7age \u00e0 100 %.<\/li>\n\n\n\n<li>ha\/mp2\/cp\/niveauforcagecp1 : Niveau de for\u00e7age.<\/li>\n\n\n\n<li>ha\/mp2\/cp\/hc : P\u00e9riode tarifaire (HC\/HP).<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Les messages sont envoy\u00e9s avec un QoS de 0 (pas de garantie de livraison) et sans r\u00e9tention (retain: false), pour \u00e9viter d\u2019encombrer le broker MQTT.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"block-32c42e56-73bb-476d-beb7-9335bfb1380b\">Utilit\u00e9 de cette automatisation<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"block-6b37d0b7-39ed-4e1f-b415-e8430ad2ee3e\">Cette automatisation permet \u00e0 Node-RED de recevoir des informations en temps r\u00e9el (ou toutes les heures) sur l\u2019\u00e9tat de mon syst\u00e8me dans Home Assistant. Par exemple :<\/p>\n\n\n\n<ul id=\"block-ea231ee8-b017-4b20-9a1a-871ba9fdeb38\" class=\"wp-block-list\">\n<li>Node-RED peut ajuster le SOC cible du MultiPlus II en fonction des heures creuses (sensor.linky_ptec).<\/li>\n\n\n\n<li>Si un for\u00e7age de charge \u00e0 100 % est activ\u00e9 (input_boolean.forcage_charge_pgm_mp2_100), Node-RED peut d\u00e9clencher une logique sp\u00e9cifique, comme d\u00e9sactiver d\u2019autres automatisations.<\/li>\n\n\n\n<li>Le niveau de for\u00e7age (input_number.mp2_niveau_forcage_cp1) peut \u00eatre utilis\u00e9 pour moduler la charge des batteries.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"block-012677b2-e6f4-4617-a739-dae80d74a1f1\">Dans mon cas, Node-RED utilise ces donn\u00e9es pour optimiser la gestion de la charge des batteries en fonction des tarifs \u00e9lectriques et des pr\u00e9visions de production solaire (comme vu dans mes articles pr\u00e9c\u00e9dents sur Node-RED et Victron).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"block-9f5c91f5-8fc3-494a-9546-5f2b20afd490\">Activation de la charge forc\u00e9e en cas de Tempo Rouge<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"block-dbdbc9fb-820a-44d4-ad8e-2dacf64863fb\">Pour optimiser encore davantage la gestion de la charge de mes batteries, j\u2019ai ajout\u00e9 une automatisation qui active ou d\u00e9sactive les programmations de charge forc\u00e9e en fonction de la couleur Tempo du lendemain, d\u00e9tect\u00e9e via le capteur sensor.rte_tempo_prochaine_couleur. Cette automatisation s\u2019assure que la charge forc\u00e9e (d\u00e9finie dans la carte custom:scheduler-card pr\u00e9sent\u00e9e plus loin) est activ\u00e9e uniquement les jours pr\u00e9c\u00e9dant une journ\u00e9e Tempo rouge, o\u00f9 les tarifs \u00e9lectriques sont plus \u00e9lev\u00e9s.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"block-efb1ba96-26a8-4762-a96a-d94dad32dfb1\">Code de l\u2019automatisation<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"block-e4e344a6-e2eb-4b3e-83a3-e38d4f507d30\">Cette automatisation, nomm\u00e9e \u00ab\u00a0Activation Forcage Charge Programm\u00e9e 1 si tempo Rouge\u00a0\u00bb, est d\u00e9clench\u00e9e par un changement d\u2019\u00e9tat du capteur sensor.rte_tempo_prochaine_couleur. Elle active les programmations de charge forc\u00e9e si la couleur passe \u00e0 \u00ab\u00a0Rouge\u00a0\u00bb, et les d\u00e9sactive si la couleur n\u2019est plus \u00ab\u00a0Rouge\u00a0\u00bb.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>alias: Activation Forcage Charge Programm\u00e9e 1 si tempo Rouge\ndescription: \"\"\ntriggers:\n  - trigger: time\n    at: \"21:59:00\"\nconditions: &#091;]\nactions:\n  - choose:\n      - conditions:\n          - condition: state\n            entity_id: sensor.rte_tempo_prochaine_couleur\n            state:\n              - Rouge\n        sequence:\n          - action: input_number.max\n            metadata: {}\n            target:\n              entity_id: input_number.mp2_niveau_forcage_cp1\n            data: {}\n          - action: input_boolean.turn_on\n            metadata: {}\n            target:\n              entity_id: input_boolean.forcage_charge_pgm_mp1_100\n            data: {}\n      - conditions:\n          - condition: not\n            conditions:\n              - condition: state\n                entity_id: sensor.rte_tempo_prochaine_couleur\n                state:\n                  - Rouge\n        sequence:\n          - action: input_boolean.turn_off\n            metadata: {}\n            target:\n              entity_id: input_boolean.forcage_charge_pgm_mp1_100\n            data: {}\nmode: single\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"block-85c42282-4dfb-434f-a538-7193e13aa45c\">Explications de l\u2019automatisation<\/h3>\n\n\n\n<ol id=\"block-6491e99f-4914-4447-a969-20b30c48c51a\" class=\"wp-block-list\">\n<li><strong>D\u00e9clencheurs<\/strong> :\n<ul class=\"wp-block-list\">\n<li><strong>Passage \u00e0 Tempo Rouge<\/strong> (id: vers_rouge) : L\u2019automatisation se d\u00e9clenche lorsque sensor.rte_tempo_prochaine_couleur passe \u00e0 l\u2019\u00e9tat \u00ab\u00a0Rouge\u00a0\u00bb, indiquant que le lendemain sera une journ\u00e9e Tempo rouge.<\/li>\n\n\n\n<li><strong>Sortie de Tempo Rouge<\/strong> (id: sortie_rouge) : L\u2019automatisation se d\u00e9clenche lorsque sensor.rte_tempo_prochaine_couleur quitte l\u2019\u00e9tat \u00ab\u00a0Rouge\u00a0\u00bb, indiquant que le lendemain ne sera plus une journ\u00e9e Tempo rouge.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Actions<\/strong> :\n<ul class=\"wp-block-list\">\n<li><strong>Si passage \u00e0 Tempo Rouge<\/strong> : On force une charge program\u00e9e \u00e0 100% (r\u00e9glable)<\/li>\n\n\n\n<li><strong>Si sortie de Tempo Rouge<\/strong> : L\u2019action switch.turn_off d\u00e9sactive la charge programm\u00e9e, suspendant ainsi les programmations de charge forc\u00e9e.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Mode<\/strong> : mode: single garantit que l\u2019automatisation ne s\u2019ex\u00e9cute qu\u2019une seule fois par d\u00e9clencheur, \u00e9vitant des ex\u00e9cutions multiples en cas de changements rapides d\u2019\u00e9tat.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"block-9e7fa8fb-b398-4e95-97ad-9ed70e41df36\">Utilit\u00e9 de cette automatisation<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"block-137c533e-28fa-4ea9-ad81-b611ecab9534\">En activant les programmations uniquement les jours pr\u00e9c\u00e9dant une journ\u00e9e Tempo rouge, je m\u2019assure que ma batterie est charg\u00e9e \u00e0 100 % (ou au niveau d\u00e9fini dans input_number.mp2_niveau_forcage_cp1) pour affronter les tarifs \u00e9lev\u00e9s du lendemain. Si le lendemain n\u2019est pas une journ\u00e9e Tempo rouge, les programmations sont d\u00e9sactiv\u00e9es pour \u00e9viter une charge inutile, optimisant ainsi l\u2019utilisation de l\u2019\u00e9nergie solaire et r\u00e9duisant les co\u00fbts.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"block-63a3680b-cfb3-4695-9a3e-7e1576d386a3\">Visualisation dans Home Assistant :<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"block-1a49eb1d-19a9-48de-be11-f000fdd875dc\">Exemple de carte Lovelace<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">L&rsquo;integration g\u00e9n\u00e9re au tant de service pr\u00e9sents dans votre architecture Victron<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"659\" height=\"704\" src=\"https:\/\/domo.rem81.com\/wp-content\/uploads\/2026\/01\/image-5.png\" alt=\"\" class=\"wp-image-4231\" srcset=\"https:\/\/domo.rem81.com\/wp-content\/uploads\/2026\/01\/image-5.png 659w, https:\/\/domo.rem81.com\/wp-content\/uploads\/2026\/01\/image-5-281x300.png 281w\" sizes=\"auto, (max-width: 659px) 100vw, 659px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"block-8012a9f8-e01b-42d6-ac4a-540519c5d532\">A adapter \u00e0 votre systeme:<\/p>\n\n\n\n<pre id=\"block-6f6c1113-9b15-4664-9e2c-609179f7c07e\" class=\"wp-block-code\"><code>type: grid\ncards:\n  - type: custom:auto-entities\n    card:\n      type: entities\n      title: Victron System\n      show_header_toggle: false\n    filter:\n      include:\n        - entity_id: \"*victron_mqtt*system_0*\"\n          options: {}\n      exclude:\n        - entity_id: \"*victron_mqtt*system_dynamicess*\"\n          options: {}\n    sort:\n      method: entity_id\n    grid_options:\n      columns: 18\n      rows: auto\ncolumn_span: 2\n<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>type: grid\ncards:\n  - type: custom:auto-entities\n    card:\n      type: entities\n      title: Victron MO\n      show_header_toggle: false\n    filter:\n      include:\n        - entity_id: \"*victron_mqtt*32*\"\n          options: {}\n      exclude: &#091;]\n    sort:\n      method: entity_id\n    grid_options:\n      columns: 18\n      rows: auto\ncolumn_span: 2\n<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>type: grid\ncards:\n  - type: custom:auto-entities\n    card:\n      type: entities\n      title: Victron MP2\n      show_header_toggle: false\n    filter:\n      include:\n        - entity_id: \"*victron_mqtt*276*\"\n          options: {}\n      exclude: &#091;]\n    sort:\n      method: entity_id\n    grid_options:\n      columns: 18\n      rows: auto\ncolumn_span: 2\n<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>type: grid\ncards:\n  - type: custom:auto-entities\n    card:\n      type: entities\n      title: Victron MPPT1\n      show_header_toggle: false\n    filter:\n      include:\n        - entity_id: \"*victron_mqtt*279*\"\n          options: {}\n      exclude: &#091;]\n    sort:\n      method: entity_id\n    grid_options:\n      columns: 18\n      rows: auto\ncolumn_span: 2\n<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>type: grid\ncards:\n  - type: custom:auto-entities\n    card:\n      type: entities\n      title: Victron PU Reseau\n      show_header_toggle: false\n    filter:\n      include:\n        - entity_id: \"*victron_mqtt*31*\"\n          options: {}\n      exclude: &#091;]\n    sort:\n      method: entity_id\n    grid_options:\n      columns: 18\n      rows: auto\ncolumn_span: 2\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"block-465c71c8-badc-41a6-9ea7-ed18a1f5a2e5\">Explications de la carte<\/h3>\n\n\n\n<ul id=\"block-d508fc62-3b4b-4379-8d40-208106b83421\" class=\"wp-block-list\">\n<li><strong>Type de carte<\/strong> : J\u2019utilise une carte de type entities, qui permet d\u2019afficher une liste d\u2019entit\u00e9s avec leurs \u00e9tats et des options de contr\u00f4le.<\/li>\n\n\n\n<li><strong>Entit\u00e9s affich\u00e9es<\/strong> :\n<ul class=\"wp-block-list\">\n<li>input_boolean.mp2_valid_ess_charge_prog_1 : Un interrupteur pour activer\/d\u00e9sactiver le programme de charge ESS, avec l\u2019heure de la derni\u00e8re modification (last-changed).<\/li>\n\n\n\n<li>sensor.mp2_prod_vrm_total_mqtt : La production totale pr\u00e9vue (via VRM), mise \u00e0 jour avec l\u2019heure de la derni\u00e8re actualisation (last-updated).<\/li>\n\n\n\n<li>sensor.mp2_soc_mqtt : L\u2019\u00e9tat de charge (SOC) actuel des batteries.<\/li>\n\n\n\n<li>sensor.mp2_cible_soc_par_mqtt : Le SOC cible d\u00e9fini pour les batteries.<\/li>\n\n\n\n<li>input_number.mp2_memoire_estimation_production_jour : Une entr\u00e9e num\u00e9rique pour m\u00e9moriser l\u2019estimation de production journali\u00e8re.<\/li>\n\n\n\n<li>sensor.mp2_total_energie_produite_jour : L\u2019\u00e9nergie totale produite dans la journ\u00e9e (non d\u00e9fini dans la configuration pr\u00e9c\u00e9dente, mais ajout\u00e9 ici pour le suivi).<\/li>\n\n\n\n<li>input_boolean.forcage_charge_pgm_mp2_100 : Un interrupteur pour forcer la charge des batteries \u00e0 100 %.<\/li>\n\n\n\n<li>input_number.mp2_niveau_forcage_cp1 : Une entr\u00e9e num\u00e9rique pour d\u00e9finir le niveau de for\u00e7age de la charge.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Options<\/strong> :\n<ul class=\"wp-block-list\">\n<li>title: Automatismes MP2 NodeRed : Le titre de la carte, qui refl\u00e8te son objectif.<\/li>\n\n\n\n<li>show_header_toggle: false : D\u00e9sactive l\u2019interrupteur global dans l\u2019en-t\u00eate de la carte.<\/li>\n\n\n\n<li>state_color: true : Active la coloration des \u00e9tats (par exemple, les interrupteurs s\u2019affichent en vert lorsqu\u2019ils sont activ\u00e9s).<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"block-830ebc2b-edc2-4241-bb77-ad12aeb42e9e\">Cette carte me permet de visualiser rapidement les informations essentielles (SOC, production, \u00e9nergie produite) et de contr\u00f4ler les param\u00e8tres de charge (for\u00e7age, niveau de for\u00e7age) directement depuis mon tableau de bord. Les indications last-changed et last-updated sont utiles pour v\u00e9rifier la fra\u00eecheur des donn\u00e9es et des actions. C\u2019est un compl\u00e9ment parfait \u00e0 la configuration et \u00e0 l\u2019automatisation d\u00e9crites plus haut, car elle rend l\u2019ensemble interactif et visuel.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"block-0455a4a2-080c-4bbb-9c57-1778bdf16b05\">En compl\u00e9ment de la carte pr\u00e9c\u00e9dente, j\u2019utilise une autre carte personnalis\u00e9e, bas\u00e9e sur le composant custom:scheduler-card, pour programmer et valider la charge forc\u00e9e de mes batteries \u00e0 un niveau de SOC d\u00e9fini dans input_number.mp2_niveau_forcage_cp1 (souvent 100 %). Cette programmation est configur\u00e9e pour se d\u00e9clencher pendant les heures creuses, de 22h00 \u00e0 6h00, afin de commencer une journ\u00e9e Tempo rouge avec une batterie pleinement charg\u00e9e. Voici le code YAML de cette carte :<\/p>\n\n\n\n<pre id=\"block-4b6f1aac-840a-43cd-b50f-97000ff0f7a7\" class=\"wp-block-code\"><code>type: custom:scheduler-card<br>discover_existing: false<br>display_options:<br>  icon: mdi:radiator<br>  primary_info:<br>    - &lt;b&gt;{entity} \/ {name}&lt;\/b&gt;<br>    - \"&lt;b&gt;Next&lt;\/b&gt; : {relative-time} | &lt;b&gt;Action&lt;\/b&gt; : {action}\"<br>    - additional-tasks<br>  secondary_info:<br>    - \"{days} {time}\"<br>include:<br>  - input_boolean.forcage_charge_pgm_mp2_100<br>title: Forcage CP1<br>how_header_toggle: false<br>style: |<br>  ha-card {<br>    border: solid 2px var(--primary-color);<br>  }<br>show_header_toggle: true<br>exclude: &#091;]<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"block-d6758fe7-0fbb-4f4c-ac5c-9a50928a9d8d\">Explications de la carte<\/h3>\n\n\n\n<ul id=\"block-84d8113d-56b7-4421-8c69-6a1afdac7840\" class=\"wp-block-list\">\n<li><strong>Type de carte<\/strong> : J\u2019utilise custom:scheduler-card, un composant personnalis\u00e9 qui permet de programmer des actions dans Home Assistant (il faut l\u2019installer via HACS ou manuellement si ce n\u2019est pas d\u00e9j\u00e0 fait).<\/li>\n\n\n\n<li><strong>Objectif<\/strong> : Cette carte g\u00e8re l\u2019activation de input_boolean.forcage_charge_pgm_mp2_100 pour forcer la charge des batteries \u00e0 un niveau de SOC d\u00e9fini dans input_number.mp2_niveau_forcage_cp1 (souvent 100 %). La programmation est configur\u00e9e pour les heures creuses (22h00 \u00e0 6h00), ce qui me permet d\u2019optimiser la charge avant une journ\u00e9e Tempo rouge, o\u00f9 les tarifs \u00e9lectriques sont plus \u00e9lev\u00e9s.<\/li>\n\n\n\n<li><strong>Options<\/strong> :\n<ul class=\"wp-block-list\">\n<li>discover_existing: false : D\u00e9sactive la d\u00e9couverte automatique des programmations existantes, pour un contr\u00f4le manuel.<\/li>\n\n\n\n<li>display_options : Personnalise l\u2019affichage de la carte :\n<ul class=\"wp-block-list\">\n<li>icon: mdi:radiator : Utilise une ic\u00f4ne de radiateur pour repr\u00e9senter la charge.<\/li>\n\n\n\n<li>primary_info : Affiche le nom de l\u2019entit\u00e9, l\u2019heure de la prochaine action, et les t\u00e2ches suppl\u00e9mentaires.<\/li>\n\n\n\n<li>secondary_info : Montre les jours et l\u2019heure de la programmation (par exemple, \u00ab\u00a0Tous les jours 22:00\u00a0\u00bb).<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>include: input_boolean.forcage_charge_pgm_mp2_100 : Seule cette entit\u00e9 est incluse dans la programmation.<\/li>\n\n\n\n<li>title: Forcage CP1 : Le titre de la carte, qui indique qu\u2019elle concerne le for\u00e7age de la charge programm\u00e9e (CP1).<\/li>\n\n\n\n<li>style : Ajoute une bordure color\u00e9e autour de la carte, en utilisant la couleur principale du th\u00e8me Home Assistant.<\/li>\n\n\n\n<li>show_header_toggle: true : Affiche un interrupteur dans l\u2019en-t\u00eate pour activer\/d\u00e9sactiver rapidement la programmation.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"block-c2e77fa2-c35d-4b33-bc4b-7d23e2ea2e3c\">Pourquoi cette carte ?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"block-90d4be36-a158-41f4-862a-761b3e4eaa87\">Cette carte est essentielle pour g\u00e9rer automatiquement la charge de mes batteries pendant les heures creuses, en anticipant les journ\u00e9es Tempo rouge o\u00f9 l\u2019\u00e9lectricit\u00e9 est plus ch\u00e8re. En programmant le for\u00e7age de la charge \u00e0 100 % entre 22h00 et 6h00, je m\u2019assure que ma batterie est pr\u00eate \u00e0 alimenter ma maison d\u00e8s le matin, r\u00e9duisant ainsi ma d\u00e9pendance au r\u00e9seau pendant les heures co\u00fbteuses. La visualisation claire de la prochaine action et des horaires me permet de v\u00e9rifier facilement que tout est bien configur\u00e9.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"block-46b5e7b7-df63-46b3-b893-4190ac2fde5b\">Ce que cette configuration m\u2019apporte<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"block-14cc5705-d79d-43ed-8ec5-dd0df57379f3\">Gr\u00e2ce \u00e0 cette configuration, \u00e0 l\u2019automatisation, et \u00e0 la visualisation via Lovelace, j\u2019ai une vue compl\u00e8te et d\u00e9taill\u00e9e de mon syst\u00e8me Victron dans Home Assistant :<\/p>\n\n\n\n<ul id=\"block-38dee238-f0e4-4b62-8b29-4ebe056007bb\" class=\"wp-block-list\">\n<li><strong>Production solaire<\/strong> : Je peux suivre la production de mes panneaux (via le MPPT et le compteur PV) et l\u2019\u00e9nergie totale produite.<\/li>\n\n\n\n<li><strong>Batteries<\/strong> : Je surveille le SOC, la tension, le courant, la puissance de charge\/d\u00e9charge, et m\u00eame le temps restant avant d\u2019atteindre le SOC minimum.<\/li>\n\n\n\n<li><strong>R\u00e9seau<\/strong> : Je vois l\u2019\u00e9nergie inject\u00e9e ou soutir\u00e9e du r\u00e9seau, ainsi que la consommation AC.<\/li>\n\n\n\n<li><strong>Supervision et contr\u00f4le<\/strong> : Les capteurs template me permettent d\u2019afficher des informations claires (par exemple, \u00ab\u00a0Charge\u00a0\u00bb au lieu d\u2019un simple 1) et de calculer des m\u00e9triques utiles comme l\u2019autonomie restante. L\u2019automatisation vers Node-RED ajoute une couche de contr\u00f4le dynamique, en permettant \u00e0 Node-RED de r\u00e9agir aux changements dans Home Assistant. L\u2019automatisation pour les jours Tempo rouge garantit que la charge forc\u00e9e est activ\u00e9e uniquement quand c\u2019est n\u00e9cessaire, optimisant les co\u00fbts. Enfin, les cartes Lovelace me donnent un acc\u00e8s rapide et visuel \u00e0 toutes ces donn\u00e9es, avec la possibilit\u00e9 de programmer des actions comme la charge forc\u00e9e pendant les heures creuses.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"block-38bcdee6-bd80-43e1-953b-147b8ce66e38\">Ces donn\u00e9es sont ensuite utilis\u00e9es dans des tableaux de bord Home Assistant (comme ceux montr\u00e9s ci-dessus) et dans Node-RED pour des automatisations, comme ajuster le SOC cible en fonction des pr\u00e9visions solaires ou des tarifs \u00e9lectriques.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"block-1be86262-3f60-4e7b-a864-77ec010a1f8e\">Pr\u00e9requis pour reproduire ce projet<\/h1>\n\n\n\n<ul id=\"block-771001a5-f0e9-4db6-87c7-6377bb8d03e9\" class=\"wp-block-list\">\n<li>Un syst\u00e8me Victron avec un Cerbo GX (ou \u00e9quivalent) connect\u00e9 \u00e0 votre r\u00e9seau.<\/li>\n\n\n\n<li>L\u2019int\u00e9gration MQTT configur\u00e9e dans Home Assistant, avec un broker MQTT actif.<\/li>\n\n\n\n<li>L\u2019int\u00e9gration \ud83d\udd17 <strong>ha-victron-mqtt<\/strong> <a href=\"https:\/\/github.com\/tomer-w\/ha-victron-mqtt\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/github.com\/tomer-w\/ha-victron-mqtt<\/a><\/li>\n\n\n\n<li>Les capteurs MQTT doivent \u00eatre publi\u00e9s par un autre syst\u00e8me (par exemple, un script ou Node-RED, comme mentionn\u00e9 dans mes articles pr\u00e9c\u00e9dents).<\/li>\n\n\n\n<li>Node-RED install\u00e9 et configur\u00e9 pour \u00e9couter les topics MQTT publi\u00e9s par l\u2019automatisation.<\/li>\n\n\n\n<li>Les entit\u00e9s comme input_boolean.mp2_valid_ess_charge_prog_1, input_boolean.forcage_charge_pgm_mp2_100, input_number.mp2_niveau_forcage_cp1, et sensor.linky_ptec doivent \u00eatre cr\u00e9\u00e9es dans Home Assistant (via des helpers ou des int\u00e9grations comme Linky).<\/li>\n\n\n\n<li>Pour l\u2019automatisation Tempo, l\u2019int\u00e9gration RTE Tempo doit \u00eatre configur\u00e9e pour fournir le capteur sensor.rte_tempo_prochaine_couleur.<\/li>\n\n\n\n<li>Pour les cartes Lovelace, assurez-vous que toutes les entit\u00e9s list\u00e9es existent dans votre configuration Home Assistant.<\/li>\n<\/ul>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"block-c7431f7c-d60f-4edd-916c-277f9a3b92af\">Conclusion<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"block-686cb6e7-4829-440b-8d31-20098689d3be\">Si vous avez un syst\u00e8me Victron, cette configuration est une excellente base pour l\u2019int\u00e9grer dans Home Assistant, interagir avec Node-RED, et visualiser vos donn\u00e9es dans un tableau de bord Lovelace. Vous pouvez l\u2019adapter \u00e0 vos appareils (en ajustant  les topics MQTT) et personnaliser les capteurs template, les automatisations, et les cartes selon vos besoins. Ce projet m\u2019a permis de mieux comprendre et optimiser mon installation photovolta\u00efque, et j\u2019esp\u00e8re qu\u2019il vous inspirera ! N\u2019h\u00e9sitez pas \u00e0 partager vos propres configurations ou questions en commentaire.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Intro L\u2019article pr\u00e9c\u00e9dent intitul\u00e9 : reposait sur : \ud83d\udc49 Cette approche est d\u00e9sormais obsol\u00e8te dans mon installation.Elle fonctionnait, mais elle \u00e9tait : Depuis, j\u2019ai migr\u00e9 vers une solution beaucoup plus &hellip; <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4,6],"tags":[59,66,63],"class_list":["post-4225","post","type-post","status-publish","format-standard","hentry","category-homeassistant","category-photovoltaique","tag-mqtt","tag-nodered","tag-victron"],"_links":{"self":[{"href":"https:\/\/domo.rem81.com\/index.php\/wp-json\/wp\/v2\/posts\/4225","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/domo.rem81.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/domo.rem81.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/domo.rem81.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/domo.rem81.com\/index.php\/wp-json\/wp\/v2\/comments?post=4225"}],"version-history":[{"count":9,"href":"https:\/\/domo.rem81.com\/index.php\/wp-json\/wp\/v2\/posts\/4225\/revisions"}],"predecessor-version":[{"id":4237,"href":"https:\/\/domo.rem81.com\/index.php\/wp-json\/wp\/v2\/posts\/4225\/revisions\/4237"}],"wp:attachment":[{"href":"https:\/\/domo.rem81.com\/index.php\/wp-json\/wp\/v2\/media?parent=4225"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/domo.rem81.com\/index.php\/wp-json\/wp\/v2\/categories?post=4225"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/domo.rem81.com\/index.php\/wp-json\/wp\/v2\/tags?post=4225"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}