Intégration Zendure

Bonjour Nicolas,
Je suis également novice dans le domaine et je te confirme que ce Forum est très enrichissant. J’ai mon installation de panneaux photovoltaïques depuis le mois de mai 2025 date à laquelle j’ai pris connaissance de l’exitance de Home assistant. Depuis j’apprends tranquillement les bases et j’utilise le forum quand je suis bloqué malgré l’assistance de chat GPT (c’est mon ingénieur en domotique pour transformer mes idées en code :wink:).

J’ai utilisé le Dashboard de Julien_Galliot qui a des Hyper 2000 pour l’adapter à Mon SolarFlow 2400 AC et à ma configuration :
5 kWc de panneaux photovoltaïques avec micro-onduleurs en toiture. Installation RGE et stockage 3 kWh. J’ai l’option tarifaire de base, car je ne rentabilise pas les heures creuses compte tenu que je suis à la retraite et que je peux profiter de ma production solaire au maximum (recharge VE).

Je te joins ce Dashboard qui est encore en phase de test et améliorations.

Je fonctionne donc en mode couplage intelligent avec la connexion ZenSDK et la version 1.1.4 de l’intégration, sans soucis particulier. J’ai bien sûr désactivé dans l’application Zendure Android le HEMS.

La question que je me pose encore c’est : Si Home Assistant a un problème, comment retourner à l’application Zendure Android sans conflits avec Home Assistant :

  1. Activer le HEMS sur l’application Zendure
  2. Activer le connexion Cloud à la place de ZenSDK dans l’intégration Zendure ?

Tout a l’air d’être correctement paramétré. Mon soupçon se porte sur ton smart meter. Quel capteur as-tu renseigné dans l’intégration ? Es-tu sûr qu’il fonctionne correctement et renvoie bien les bonnes données ?

Par contre pour le mode manuel, il ne faut passer QUE par le manager et setup la puissance: positif ça décharge, négatif ça charge. En effet, le mode de fonctionnement AC sur le SF lui-même est automatiquement écrasé par l’intégration. Les seuls paramètres qu’il faut toucher c’est ceux dans le manager.

Si tu veux retourner dans l’appli Zendure en cas de pépin, tu remets tes devices en HEMS en effet, et ça écrasera l’intégration. Tu peux également la désactiver pour qu’elle ne contrôle plus rien:

1 « J'aime »

Bonjour, oui j’ai l’impression que tout est pourtant bien paramétré.
Oui, j’utilise le mode manuel et la charge avec le paramètre numérique, je n’utilise pas les input et output limites.

Comme je disais, le bouton charge manuelle fonctionne. C’est le mode smart qui ne fonctionne pas.

Il y a une automatisation à créer ? ou c’est natif ?

Je joins quelques screens:

Bon he bien la boulette, je sais pas pourquoi, je n’ai tilté que ce matin, c’est bien le capteur qui n’était pas le bon…

Partout j’ai mis le “p” et pour l’intégration, j’ai mis le “q” ….. bhouuu honte à moi…

Ça fonctionne maintenant !

À moi les automatisations et autres réglages !

Par contre, une question, pour tempo, impossible de créer son compte sur rte, j’ai essayé avec plusieurs mails, on dirait qu’ils ont un bug de site, et ça depuis 2 semaines où j’ai essayé…

Pas de soucis de votre côté ?

1 « J'aime »

Le site RTE est régulièrement en carafe, pas d’autre solution que d’attendre. Je conserve précieusement ma clé depuis plusieurs années maintenant…

Et tant mieux pour ton souci, c’était donc bien le capteur :slight_smile:

Merci, du coup, il ne faut pas que je sois surpris, en attendant, j’utilise:

api-couleur-tempo. Fr

J’ai terminé mon Dashboard inspiré de celui de Julien Galliot et dédié au Solarflow 2400 AC (et je pense aussi à l’Hyper 2000).

Il est plus simple et fonctionne sans automatisation en reprenant les modes de fonctionnements et les contrôles de l’intégration Home Assistant, avec les capteurs que j’ai trouvé opportun de représenter.

views:
  - type: sections
    max_columns: 4
    path: new-solar
    layout:
      grid-template-columns: 300px 300px 300px 300px
    sections:
      - type: grid
        cards:
          - show_current: false
            show_forecast: true
            type: weather-forecast
            entity: weather.eyguieres
            forecast_type: daily
          - type: custom:bubble-card
            card_type: separator
            name: Production solaire 5 kWc S.O. / jour
            icon: mdi:solar-power-variant
            grid_options:
              columns: 12
              rows: 0.7
            styles: ''
            card_layout: large-2-rows
          - type: horizontal-stack
            cards:
              - type: custom:bubble-card
                show_state: true
                show_attribute: false
                show_last_changed: false
                force_icon: false
                sub_button: []
                show_icon: false
                scrolling_effect: false
                card_layout: large
                icon: ''
                name: Prévu / j
                button_type: state
                styles: |-
                  .bubble-button-card-container {
                    border-radius: 32px 0 0 32px !important;
                  }
                attribute: friendly_name
                show_name: true
                card_type: button
                entity: sensor.solcast_pv_forecast_previsions_pour_aujourd_hui
              - type: custom:bubble-card
                show_state: true
                show_attribute: false
                show_last_changed: false
                force_icon: false
                sub_button: []
                show_icon: false
                scrolling_effect: false
                card_layout: large
                icon: ''
                name: Demain
                button_type: state
                styles: |-
                  .bubble-button-card-container {
                      border-radius: 0 0 0 0 !important;
                  }
                attribute: friendly_name
                show_name: true
                card_type: button
                entity: sensor.solcast_pv_forecast_previsions_pour_demain
              - type: custom:bubble-card
                show_state: true
                show_attribute: false
                show_last_changed: false
                force_icon: false
                sub_button: []
                show_icon: false
                scrolling_effect: false
                card_layout: large
                icon: ''
                name: Prévu /s
                button_type: state
                styles: |-
                  .bubble-button-card-container {
                      border-radius: 0 0 0 0 !important;
                  }
                attribute: friendly_name
                show_name: true
                card_type: button
                entity: sensor.solcast_pv_forecast_puissance_maintenant
              - type: custom:bubble-card
                show_state: true
                show_attribute: false
                show_last_changed: false
                force_icon: false
                sub_button: []
                show_icon: false
                scrolling_effect: false
                card_layout: large
                icon: ''
                name: Pic prévu
                button_type: state
                styles: |-
                  .bubble-button-card-container {
                    border-radius: 0 32px 32px 0 !important;
                  }
                attribute: friendly_name
                show_name: true
                card_type: button
                entity: sensor.solcast_pv_forecast_previsions_du_pic_aujourd_hui
            grid_options:
              columns: 12
              rows: 1
          - type: custom:bubble-card
            card_type: button
            button_type: state
            animated_icons: true
            entity: sensor.shellyproem50_08f9e0e89e74_em0_power
            styles: |-
              :host {
                  --color-ok: #bf8d1a;
                  --color-background: var(--bubble-button-main-background-color, var(--bubble-main-background-color, var(--background-color-2, var(--secondary-background-color))));
                  --color-notification-bubble: --color-notification-bubble: #FFFACD;
                  --color-bar: var(--color-ok);
                  /* Calcul de la progress % prod max de 5000 W) */
                  --progress: ${Math.round((Number(state) < 5000 ? Number(state) : 5000) / 5000 * 100)}%;
                }
              .bubble-button-card-container {
                background: var(--color-background) !important;
                position: relative;
              }

              /* Barre de progression qui évolue en fonction de la prod */
              .bubble-button-card-container::before {
                content: "";
                position: absolute;
                left: 0;
                top: 0;
                height: 100%;
                width: var(--progress) !important;
                background: var(--color-bar) !important;
                z-index: 0;
              }
              .bubble-icon {
                color: #bf8d1a !important;
              }
            name: Puissance
            icon: mdi:solar-power-variant
            sub_button:
              - entity: sensor.shellyproem50_08f9e0e89e74_em0_power
                show_state: true
                show_icon: false
                state_background: false
                name: Jour
                show_name: true
              - entity: input_number.pic_journalier_production_solaire
                name: Pic
                show_icon: false
                show_name: true
                show_state: true
                state_background: false
                show_background: true
            card_layout: large
            grid_options:
              columns: 12
              rows: 1
            show_state: false
            scrolling_effect: false
          - type: custom:bubble-card
            card_type: button
            button_type: state
            animated_icons: true
            entity: sensor.production_solaire_jour
            styles: |-
              :host {
                  --color-ok: #bf8d1a;
                  --color-background: var(--bubble-button-main-background-color, var(--bubble-main-background-color, var(--background-color-2, var(--secondary-background-color))));
                  --color-notification-bubble: --color-notification-bubble: #FFFACD;
                  --color-bar: var(--color-ok);
                  /* Calcul de la progress % prod max de 35 kWh) */
                  --progress: ${Math.round((Number(state) < 35 ? Number(state) : 35) / 35 * 100)}%;
                }
              .bubble-button-card-container {
                background: var(--color-background) !important;
                position: relative;
              }

              /* Barre de progression qui évolue en fonction de la prod */
              .bubble-button-card-container::before {
                content: "";
                position: absolute;
                left: 0;
                top: 0;
                height: 100%;
                width: var(--progress) !important;
                background: var(--color-bar) !important;
                z-index: 0;
              }
              .bubble-icon {
                color: #bf8d1a !important;
              }
            name: Energie
            icon: mdi:solar-power-variant
            sub_button:
              - entity: sensor.production_solaire_jour
                show_icon: false
                show_state: true
                state_background: false
                show_background: true
                show_name: true
                name: Jour
              - entity: sensor.energie_annuelle_arrondie
                name: Année
                show_name: true
                show_icon: false
                state_background: false
                show_state: true
            card_layout: large
            grid_options:
              columns: 12
              rows: 1
            show_state: false
            scrolling_effect: false
          - type: custom:bubble-card
            card_type: separator
            name: Zendure Manager
            icon: mdi:home-battery-outline
            grid_options:
              columns: 12
              rows: 0.7
            styles: ''
            card_layout: large-2-rows
          - type: custom:bubble-card
            card_type: select
            force_icon: false
            show_state: true
            show_last_changed: false
            icon: mdi:format-list-bulleted-square
            name: Mode
            grid_options:
              columns: 6
              rows: 1
            styles: |-
              .bubble-icon {
                color: #bf8d1a !important;
                opacity: 1 !important;
                }
            entity: select.zendure_manager_operation
            scrolling_effect: true
          - type: custom:bubble-card
            card_type: button
            button_type: slider
            styles: |-
              :host {
                 .bubble-icon {
                color: #bf8d1a !important;
              }
            grid_options:
              columns: 6
              rows: 1
            sub_button: []
            entity: number.zendure_manager_manual_power
            min_value: 0
            max_value: 2400
            step: 50
            read_only_slider: false
            relative_slide: true
            name: Puissance manuelle
            show_attribute: false
            show_last_updated: false
            show_last_changed: false
            show_state: true
            force_icon: false
            show_icon: true
            scrolling_effect: false
            icon: mdi:battery-charging-high
            show_name: true
            slider_live_update: true
          - type: custom:bubble-card
            card_type: separator
            name: Contrôles SolarFlow 2400 AC
            icon: mdi:tune
            rows: 1
            grid_options:
              columns: 12
              rows: 0.7
            card_layout: large-2-rows
          - type: custom:bubble-card
            card_type: button
            button_type: slider
            styles: |-
              :host {
                 .bubble-icon {
                color: #bf8d1a !important;
              }
            name: Limite entrée
            grid_options:
              columns: 6
              rows: 1
            show_state: false
            slider_live_update: true
            entity: number.solarflow_2400_ac_input_limit
            icon: mdi:battery-charging-high
            read_only_slider: false
            tap_to_slide: false
            relative_slide: true
            step: 50
            max_value: 2400
            min_value: 0
            scrolling_effect: false
            sub_button:
              - entity: number.solarflow_2400_ac_input_limit
                show_state: true
                show_icon: false
                show_background: true
                state_background: false
            show_icon: true
          - type: custom:bubble-card
            card_type: button
            button_type: slider
            styles: |-
              :host {
                 .bubble-icon {
                color: #bf8d1a !important;
              }
            name: Limite sortie
            grid_options:
              columns: 6
              rows: 1
            show_state: false
            slider_live_update: true
            entity: number.solarflow_2400_ac_output_limit
            icon: mdi:battery-charging-high
            sub_button:
              - entity: number.solarflow_2400_ac_output_limit
                state_background: false
                show_name: false
                show_state: true
            scrolling_effect: false
            show_last_changed: false
            relative_slide: true
            min_value: 0
            max_value: 2400
            step: 50
          - type: custom:bubble-card
            card_type: select
            force_icon: false
            show_state: true
            show_last_changed: false
            icon: mdi:format-list-bulleted-square
            name: Protection
            grid_options:
              columns: 6
              rows: 1
            styles: |-
              :host {
                 .bubble-icon {
                color: #bf8d1a !important;
                opacity: 1 !important;
              }
            scrolling_effect: true
            entity: select.solarflow_2400_ac_fuse_group
          - type: custom:bubble-card
            card_type: select
            force_icon: false
            show_state: true
            show_last_changed: false
            icon: mdi:format-list-bulleted-square
            name: Connexion
            grid_options:
              columns: 6
              rows: 1
            styles: |-
              .bubble-icon {
                color: #bf8d1a !important;
                opacity: 1 !important;
                }
            scrolling_effect: false
            entity: select.solarflow_2400_ac_connection
          - type: custom:bubble-card
            card_type: select
            force_icon: false
            show_state: true
            show_last_changed: false
            icon: mdi:format-list-bulleted-square
            name: Utilisation
            grid_options:
              columns: 6
              rows: 1
            styles: |-
              .bubble-icon {
                color: #bf8d1a !important;
                opacity: 1 !important;
                }
            scrolling_effect: true
            entity: select.solarflow_2400_ac_ac_mode
            show_icon: true
          - type: custom:bubble-card
            card_type: select
            force_icon: false
            show_state: true
            show_last_changed: false
            icon: mdi:format-list-bulleted-square
            name: Hors réseau
            grid_options:
              columns: 6
              rows: 1
            styles: |-
              .bubble-icon {
                color: #bf8d1a !important;
                opacity: 1 !important;
                }
            scrolling_effect: true
            entity: select.solarflow_2400_ac_grid_off_mode
          - type: custom:bubble-card
            card_type: button
            button_type: slider
            styles: |-
              .bubble-range-fill { 
                background: #85a210 !important;
                opacity: 1 !important;
              }
              .bubble-icon {
                color: #bf8d1a !important;
              }
            show_icon: true
            show_last_changed: false
            show_attribute: false
            force_icon: false
            show_state: false
            slider_live_update: false
            sub_button:
              - entity: number.solarflow_2400_ac_min_soc
                show_state: true
                state_background: false
                show_icon: false
            icon: mdi:battery-outline
            name: Charge mini
            grid_options:
              columns: 6
              rows: 1
            entity: number.solarflow_2400_ac_min_soc
            scrolling_effect: false
          - type: custom:bubble-card
            card_type: button
            button_type: slider
            styles: |-
              .bubble-range-fill { 
                background: #85a210 !important;
                opacity: 1 !important;
              }
              .bubble-icon {
                color: #bf8d1a !important;
              }
            show_icon: true
            show_last_changed: false
            show_attribute: false
            force_icon: false
            show_state: false
            slider_live_update: false
            sub_button:
              - entity: number.solarflow_2400_ac_soc_set
                state_background: false
                show_icon: false
                show_state: true
            icon: mdi:battery-high
            name: Charge maxi
            grid_options:
              columns: 6
              rows: 1
            entity: number.solarflow_2400_ac_soc_set
            scrolling_effect: false
          - type: custom:bubble-card
            card_type: separator
            name: Capteurs SF 2400 AC 3 kWc - Gains de production
            icon: mdi:gauge-low
            rows: 1
            grid_options:
              columns: 12
              rows: 0.7
            card_layout: large-2-rows
          - type: horizontal-stack
            cards:
              - type: custom:bubble-card
                show_state: true
                show_attribute: false
                show_last_changed: false
                force_icon: true
                sub_button: []
                show_icon: false
                scrolling_effect: false
                card_layout: large
                icon: ''
                name: LED
                button_type: switch
                styles: |-
                  .bubble-button-card-container {
                    border-radius: 32px 0 0 32px !important;
                  }
                attribute: friendly_name
                show_name: true
                card_type: button
                entity: switch.solarflow_2400_ac_lamp_switch
              - type: custom:bubble-card
                show_state: true
                show_attribute: false
                show_last_changed: false
                force_icon: false
                sub_button: []
                show_icon: false
                scrolling_effect: false
                card_layout: large
                icon: ''
                name: HEMS
                button_type: state
                styles: |-
                  .bubble-button-card-container {
                      border-radius: 0 0 0 0 !important;
                  }
                attribute: friendly_name
                show_name: true
                card_type: button
                entity: binary_sensor.solarflow_2400_ac_hems_state
              - type: custom:bubble-card
                show_state: true
                show_attribute: false
                show_last_changed: false
                force_icon: false
                sub_button: []
                show_icon: false
                scrolling_effect: false
                card_layout: large
                icon: ''
                name: Etat
                button_type: state
                styles: |-
                  .bubble-button-card-container {
                      border-radius: 0 0 0 0 !important;
                  }
                attribute: friendly_name
                show_name: true
                card_type: button
                entity: sensor.solarflow_2400_ac_pack_state
              - type: custom:bubble-card
                show_state: true
                show_attribute: false
                show_last_changed: false
                force_icon: false
                sub_button: []
                show_icon: false
                scrolling_effect: false
                card_layout: large
                icon: ''
                name: Wi-Fi
                button_type: state
                styles: |-
                  .bubble-button-card-container {
                    border-radius: 0 32px 32px 0 !important;
                  }
                attribute: friendly_name
                show_name: true
                card_type: button
                entity: sensor.solarflow_2400_ac_rssi
            grid_options:
              columns: 12
              rows: 1
          - type: horizontal-stack
            cards:
              - type: custom:bubble-card
                show_state: true
                show_attribute: false
                show_last_changed: false
                force_icon: false
                sub_button: []
                show_icon: false
                scrolling_effect: false
                card_layout: large
                icon: ''
                name: Rendemt / an
                button_type: state
                styles: |-
                  .bubble-button-card-container {
                    border-radius: 32px 0 0 32px !important;
                  }
                attribute: friendly_name
                show_name: true
                card_type: button
                entity: sensor.rendement_batterie
              - type: custom:bubble-card
                show_state: true
                show_attribute: false
                show_last_changed: false
                force_icon: false
                sub_button: []
                show_icon: false
                scrolling_effect: false
                card_layout: large
                icon: ''
                name: Efficacité / j
                button_type: state
                styles: |-
                  .bubble-button-card-container {
                      border-radius: 0 0 0 0 !important;
                  }
                attribute: friendly_name
                show_name: true
                card_type: button
                entity: sensor.efficacite_batterie
              - type: custom:bubble-card
                show_state: true
                show_attribute: false
                show_last_changed: false
                force_icon: false
                sub_button: []
                show_icon: false
                scrolling_effect: false
                card_layout: large
                icon: ''
                name: Gain EDF OA
                button_type: state
                styles: |-
                  .bubble-button-card-container {
                      border-radius: 0 0 0 0 !important;
                  }
                attribute: friendly_name
                show_name: true
                card_type: button
                entity: sensor.gain_edf_oa
              - type: custom:bubble-card
                show_state: true
                show_attribute: false
                show_last_changed: false
                force_icon: false
                sub_button: []
                show_icon: false
                scrolling_effect: false
                card_layout: large
                icon: ''
                name: Auto conso
                button_type: state
                styles: |-
                  .bubble-button-card-container {
                    border-radius: 0 32px 32px 0 !important;
                  }
                attribute: friendly_name
                show_name: true
                card_type: button
                entity: sensor.gain_edf
            grid_options:
              columns: 12
              rows: 1
          - type: custom:bubble-card
            card_type: button
            button_type: state
            styles: |-
              :host {
                --color-negative: #85a210; 
                --color-positive: #FF0000; 
                --color-neutral: #4D4D4D; 
                --color-zero-line: #FFFFFF; /* Trait central */
              }

              .bubble-button-card-container {
                position: relative;
                border-radius: 8px;
                height: 20px;
                overflow: hidden;
              }

              .bubble-button-card-container::before {
                content: '';
                position: absolute;
                top: 0;
                height: 100%;
                width: 2px;
                left: 50%;
                background: var(--color-zero-line);
                z-index: 2;
                transform: translateX(-50%);
              }
              /* Flèche : masquée pour -10 W */

              .bubble-button-card-container::after {
                content: '';
                position: absolute;
                top: 0;
                height: 100%;
                display: ${hass.states['sensor.a_batterie_power'].state == -10 ? 'none' : 'block'};
                width: max(calc(${Math.abs(hass.states['sensor.a_batterie_power'].state) / 2400 * 50}%),
                           ${(""+Math.round(hass.states['sensor.a_batterie_power'].state)).length * 10 + 20}px);
                left: ${hass.states['sensor.a_batterie_power'].state < 0 
                  ? 'calc(50% - max(calc(' + (Math.abs(hass.states['sensor.a_batterie_power'].state) / 2400 * 50) + '%), ' + ((""+Math.round(hass.states['sensor.a_batterie_power'].state)).length * 10 + 20) + 'px))'
                  : '50%'};
                background: ${hass.states['sensor.a_batterie_power'].state < 0 ? 'var(--color-negative)' : hass.states['sensor.a_batterie_power'].state == 0 ? 'var(--color-neutral)' : 'var(--color-positive)'};
                z-index: 1;
                clip-path: ${hass.states['sensor.a_batterie_power'].state < 0
                  ? 'polygon(40% 0%, 40% 20%, 100% 20%, 100% 80%, 40% 80%, 40% 100%, 0% 50%)'
                  : 'polygon(40% 0%, 40% 20%, 0 20%, 0 80%, 40% 80%, 40% 100%, 100% 50%)'};
              }

              ha-card::after {
                position: absolute;
                top: 50%;
                /* Pour une valeur négative (dont -7 W) texte est positionné à gauche du trait central */
                left: ${hass.states['sensor.a_batterie_power'].state < 0
                  ? 'calc(50% - max(calc(' + (Math.abs(hass.states['sensor.a_batterie_power'].state) / 2400 * 50) + '%), ' + ((""+Math.round(hass.states['sensor.a_batterie_power'].state)).length * 10 + 20) + 'px) / 2)'
                  : 'calc(50% + max(calc(' + (Math.abs(hass.states['sensor.a_batterie_power'].state) / 2400 * 50) + '%), ' + ((""+Math.round(hass.states['sensor.a_batterie_power'].state)).length * 10 + 20) + 'px) / 2)'};
                transform: translate(-50%, -50%);
                padding: 2px 10px;
                border-radius: 25px;
                border: 0;
                color: #fff;
                content: "${Math.round(state)} W";
                background: none;
                text-align: center;
                display: block;
                z-index: 3;
              }

              card_mod:
              style: |
                ha-icon {
                  color: {% if states('sensor.zen_flow') | float(0) < 0 %} var(--color-negative) 
                         {% else %} var(--color-positive) {% endif %} !important;
                }

              .bubble-icon {
                color: #bf8d1a !important;
                }
                
            icon: mdi:battery-charging-high
            name: Flux
            sub_button:
              - entity: sensor.solarflow_2400_ac_available_kwh
                show_icon: false
                icon: energie disponible
                show_name: true
                show_state: true
                name: Disponible
                show_background: true
                state_background: false
            card_layout: large
            slider_live_update: true
            show_state: false
            show_attribute: false
            show_last_changed: false
            force_icon: false
            grid_options:
              columns: 12
              rows: 1
            scrolling_effect: false
            show_icon: true
            show_name: true
            double_tap_action:
              action: more-info
            hold_action:
              action: more-info
            tap_action:
              action: navigate
              navigation_path: '#shelly'
            entity: sensor.a_batterie_power
          - type: custom:bubble-card
            card_type: button
            button_type: state
            entity: sensor.solarflow_2400_ac_electric_level
            name: Charge
            icon: mdi:battery-high
            card_layout: large
            grid_options:
              columns: 12
              rows: 1
            styles: |
              :host {
                  --color-ok: #85a210;
                  --color-background: var(--bubble-button-main-background-color, var(--bubble-main-background-color, var(--background-color-2, var(--secondary-background-color))));
                  --color-notification-bubble: #46d246;
                  --color-bar: var(--color-ok);
                       
                  /* Calcul de la progress % en fonction de l'état de charge en % */
                  --progress: ${Math.min(Math.max(Number(state),0),100)}%;
              }

              .bubble-button-card-container {
                background: var(--color-background) !important;
                position: relative;
              }

              /* Barre de progression qui évolue en fonction de la prod */
              .bubble-button-card-container::before {
                content: "";
                position: absolute;
                left: 0;
                top: 0;
                height: 100%;
                width: var(--progress) !important;
                background: var(--color-bar) !important;
                z-index: 0;
              }
              .bubble-icon {
                color: #bf8d1a !important;
              }
            sub_button:
              - entity: sensor.solarflow_2400_ac_electric_level
                show_icon: false
                show_state: true
                show_background: true
                state_background: false
                show_name: false
              - entity: sensor.solarflow_2400_ac_hyper_tmp
                show_state: true
                show_background: true
                state_background: false
                show_icon: false
              - entity: sensor.solarflow_2400_ac_remaining_time
                name: Tps de déch
                show_name: true
                show_icon: false
                show_state: true
                state_background: false
            force_icon: false
            scrolling_effect: false
            show_state: false
      - type: grid
        cards:
          - type: heading
            heading_style: title
          - type: custom:power-flow-card-plus
            entities:
              home:
                color_icon: true
                secondary_info:
                  icon: ''
                  color_value: true
                color_value: true
                icon: mdi:home-lightning-bolt
                override_state: false
                circle_animation: true
                subtract_individual: false
                use_metadata: false
                hide: false
              fossil_fuel_percentage:
                icon: mdi:pine-tree
                color_icon: true
                display_zero: true
                name: Décarboné
                state_type: percentage
                secondary_info: {}
                entity: >-
                  sensor.electricity_maps_pourcentage_d_energies_fossiles_du_reseau
                color_value: true
              grid:
                icon: mdi:transmission-tower
                name: ENEDIS
                secondary_info: {}
                color_circle: true
                color_icon: true
                invert_state: false
                entity: sensor.c_injection_soutirage_power
              solar:
                icon: mdi:brightness-7
                secondary_info:
                  entity: input_number.pic_journalier_production_solaire
                  icon: mdi:summit
                  color_value: true
                  unit_of_measurement: W
                entity: sensor.shellyproem50_08f9e0e89e74_em0_power
                name: Solaire
                color_value: true
                color_icon: true
                invert_state: false
              battery:
                name: Batterie
                icon: mdi:battery-charging-medium
                entity: sensor.a_batterie_power
                color_circle: true
                color_icon: true
                invert_state: true
                color_value: true
                state_of_charge: sensor.solarflow_2400_ac_electric_level
                state_of_charge_unit_white_space: false
                show_state_of_charge: true
                color_state_of_charge_value: true
              individual:
                - secondary_info:
                    entity: sensor.intensite_borne_ve
                    unit_of_measurement: A
                    color_value: true
                    display_zero: false
                  name: Borne VE
                  icon: mdi:ev-station
                  color_value: true
                  color_icon: true
                  display_zero: true
                  color:
                    - 247
                    - 2
                    - 2
                  entity: sensor.puissance_borne_ve_en_w
                - entity: sensor.b_pac_power
                  secondary_info: {}
                  color_icon: true
                  color_value: true
                  name: PAC
                  icon: mdi:air-conditioner
                  unit_white_space: true
                  show_direction: false
                  use_metadata: false
                  display_zero: true
            w_decimals: 0
            kw_decimals: 2
            min_flow_rate: 0.9
            max_flow_rate: 6
            watt_threshold: 10000
            clickable_entities: true
            title: Puissances actives
            display_zero_lines:
              mode: show
              transparency: 50
              grey_color:
                - 189
                - 189
                - 189
          - type: custom:energy-period-selector-plus
            card_background: true
            today_button: true
            prev_next_buttons: true
            period_buttons:
              - day
              - week
              - month
              - year
              - custom
            compare_button_label: Définir la période des mesures d'énergie
            today_button_type: icon
            compare_button_type: ''
          - type: custom:energy-flow-card-plus
            entities:
              battery:
                entity:
                  production: sensor.solarflow_2400_ac_aggr_charge_total
                  consumption: sensor.solarflow_2400_ac_aggr_discharge_total
                color_state_of_charge_value: true
                state_of_charge_decimals: 1
                name: Batterie
                icon: mdi:battery-charging-medium
                color_circle: true
                color_icon: true
              grid:
                entity:
                  consumption: sensor.c_injection_soutirage_total_active_energy
                  production: sensor.c_injection_soutirage_total_active_returned_energy
                name: ENEDIS
                icon: mdi:transmission-tower
                color_icon: true
                color_circle: true
                display_state: two_way
                invert_state: false
              solar:
                display_zero_state: true
                name: Solaire
                icon: mdi:brightness-7
                use_metadata: false
                color_value: true
                color_icon: true
                entity: sensor.shellyproem50_08f9e0e89e74_em0_total_active_energy
              individual1:
                entity: sensor.shellyproem50_3c8a1fd0b12c_energy_meter_1_energy
                name: PAC
                icon: mdi:air-conditioner
                color_value: true
                color_icon: true
              individual2:
                entity: sensor.energie_borne_ve_en_kwh
                name: Borne VE
                color_icon: true
                color_value: true
                icon: mdi:ev-station
              home:
                color_value: true
                color_icon: true
            clickable_entities: true
            display_zero_lines: true
            use_new_flow_rate_model: true
            energy_date_selection: true
            wh_decimals: 1
            kwh_decimals: 1
            min_flow_rate: 6
            max_flow_rate: 10
            max_expected_energy: 35
            min_expected_energy: 10
            wh_kwh_threshold: 1000
            title: Energie
    cards: []

J’ai créé une barre d’information intéressante qui indique :

  • Le rendement de la batterie sur une année
  • L’efficacité (ou rendement) sur une journée
  • Le Gain EDF OA depuis le début de l’année sur l’injection
  • Le gain sur l’autoconsommation (Production solaire - Injection - pertes batterie)

Mais pour que cette barre d’information fonctionne, il faut créer des Utility Meter :

  • Production solaire annuelle
  • Injection annuelle
  • Charge batterie annuelle
  • Décharge batterie annuelle
  • Charge sur 24 h
  • Décharge sur 24 h

Et des templates de capteurs :

  • Gain EDF OA
  • Gain EDF (calculé avec une option tarifaire de base sans HC)
  • Rendement batterie
  • Efficacité batterie

Si vous le souhaitez je peux vous partager ces codes également.

Ce qu’il me reste à faire : un autre Dashboard qui sauvegarde toutes ces informations de rentabilité par mois, saisons et années.

De voir ces informations en live sans avoir à prendre une calculatrice, ça m’a permis de constater que lorsque notre stockage a un rendement de 75 %, ce n’est pas la peine d’investir dans une batterie si on a un contrat de revente du surplus EDF OA à 0,1269 € le kWh.
Pour un rendement batterie à 75 % un prix d’injection de 0,1269 €, un prix d’électricité acheté à PRIMEO ENERGIE à 0,163 € / kWh (option tarifaire de base hors abonnement), la batterie me fait même perdre 3,6 % par rapport à l’injection, sans compter l’amortissement du SolaFlow 2400 AC…
Moi qui voulais acheter un autre élément de batterie pour avoir 6 kWh, on a beau être geek ça fait réfléchir !
Pour ceux qui ont contracté récemment avec EDF OA, la revente du surplus est maintenant à 0, 04 € du kWh donc on gagne un peu. Pour ceux qui ne revendent pas le surplus c’est rentable.

Je vous invite donc à essayer mon Dashboard pour vérifier le rendement de votre batterie, notamment Julien Galliot qui a fait un automatisme qui optimise le rendement de la batterie. Je comprend mieux maintenant son utilité ! A ce sujet est-il possible d’intégrer ces automatismes de minimum de charges et décharges au fonctionnement de l’intégration en mode couplage intelligent pour le SolarFlow 2400 AC ?

Pour rappel voici ce que nous disait Julien Galliot plus haut dans ce sujet :
Seuil minimum de la consigne de décharge pour éviter la décharge lente avec fortes pertes = 325W pour rendement > 90%. Réglage de Julien = 200W pour effacer son talon moyen.
Seuil minimum de la consigne de charge pour éviter la charge lente avec fortes pertes = 450W pour rendement > 90%

Merci pour le dashboard, je l’utilise !

Perso, voilà ce que j’ai automatisé depuis quelques jours et récap de ma configuration.

:high_voltage: Configuration

2 kWc PV
Zendure SolarFlow 2400 AC
3 × AB3000X
Smart meter 3ct
VE chargé via relais / prise connectée
Contrat EDF Tempo


:battery: Stratégie SolarFlow / batteries

Fonctionnement par défaut en mode Smart

Pilotage du SOC minimum dynamique :

:red_circle: Jour rouge → SOC min = 5 %

:blue_circle: / :white_circle: Jours bleus / blancs (hiver) → SOC min = 20 %

Objectif : exploiter la capacité en jours rouges, éviter la stagnation basse prolongée en hiver

Anti-stagnation hivernale

Surveillance du SOC min sur 24 h

Si SOC < 21 % pendant 3 jours consécutifs (hors rouge) :

recharge douce en HC via Zendure Manager

remontée limitée à 30 %

retour en Smart


:automobile: Gestion charge VE

Autorisation charge 22h–6h

Détection charge via puissance réelle de la prise

Pendant charge VE :

passage SF2400 en smart_charging

batterie protégée (pas de décharge vers le VE)

Retour automatique en Smart en fin de charge


:red_circle: Gestion Tempo

Veille jour rouge :

charge batterie forcée en HC

Jour rouge :

exploitation maximale du stockage

Garde-fous pour éviter conflits VE / batterie

Tu peux intégrer le smart3CT dans HA ? Ca marche correctement ?

Ça fonctionne correctement oui, en mqtt.

Il faut juste sauvegarder, a chaque reboot de HA, dans les paramètres mqtt du smart meter dans l’application Zendure sinon les infos ne remontent pas.

1 « J'aime »

Bonjour à tous,

Tout d’abord merci pour ce precieux partage ici pour l’intégration des Zendure sur HA!

Je viens de passer sur Fireson depuis 1 mois suite à l’achat d’un deuxieme HYPER 2000.

J’etais initialement sur iobroker et ça fonctionnait au top et pour ça merci @Julien_Galliot pour son post initial :slight_smile:

MAIS depuis j’ai un de mes 2 hyper qui se met en carafe :frowning: .

Il passe à l’état “unknow” sur HA et est completement figé sur l’application.

Je suis obligé de l’eteindre et le remettre sur le wifi pour qu’il revienne à la vie.

Chose bizarre je n’ai pas les memes version de firmware sur mes 2 Hyper 2000:

V2.1.14 pour celui qui déconne (mon premier Hyper) (je n’ai pas de notification pour le mettre à jour)

v3.1.2 pour mon nouveau qui lui fonctionne bien.

Pas de soucis de Wifi

HELP !!!

Bonjour, j’ai bien regardé vos différents posts. Je suis dans la même config que vous. SolarFlow 2400 AC + 2 AB3000X + 1 smart meter.

J’ai bien compris qu’il fallait désactiver HEMS dans l’application du téléphone .

Il n’y a que la qu’il faut le désactiver?

Lors de la config pour le choix du sensor j’ai laissé par défaut.

Et ensuite il faut désactiver le plan d’énergie

Mais je ne vois pas comment ne pas en activer un. je n’ai pas d’autre choix que d’en avoir un de sélectionné…

Pourriez vous me dire comment faire?

L’intégration s’est bien passé autrement

Edit: je suis passé en V1.1.4

Tu dois en effet retirer le SF2400AC du HEMS et oui c’est uniquement à cet endroit. Une fois retiré du HEMS tu n’as plus aucun plan ni rien donc c’est OK. Tu as mis ton SF en groupe de fusible à 1200W donc il ne dépassera jamais 1200W en charge ou décharge, si c’est OK pour toi c’est parfait (tu n’as pas mis le SF sur une ligne dédiée j’imagine ?).

Par contre pour le sensor smartmeter à mon avis ça va pas le faire. Il faut le nom du capteur dans HA. Tu as intégré ton smartmeter 3CT dans HA ?

1 « J'aime »

Pour le gpe de fusible, on peut modifier après?

Euh non je ne crois pas l’avoir intégré… ce n’est pas le zendure manager?

Aussi l’avantage de ha par rapport à l’app. C’est que l’on n’est pas bridé sur la puissance

???

Tu peux modifier le groupe de fusible quand tu veux oui

Pour le smart meter, il faut l’integration MQTT pour l’avoir et mettre le bon capteur, je te fais quelques screens:

Et tu mets les réglages que tu as à ton niveau, penses a activer le MQTT et à mettre les mêmes réglages dans l’application zendure.

Il faut que tu créé un utilisateur dans Home Assistant pour te permettre de remplir les infos:

Hello,

Dans le même style que le gros dashboard energie publié un peu plus haut, si vous voulez afficher le jour tempo juste en dessous la météo par exemple, j’utilise ce code:

type: horizontal-stack
cards:
  - type: custom:bubble-card
    card_type: button
    button_type: state
    entity: sensor.tempo_today
    name: Aujourd’hui
    icon: mdi:calendar-today
    card_layout: large
    show_name: true
    show_icon: false
    show_state: false
    show_attribute: false
    show_last_changed: false
    force_icon: false
    scrolling_effect: false
    sub_button: []
    styles: |-
      :host {
        --tempo-bg: ${state === 'bleu' ? '#1e88e5' : state === 'blanc' ? '#eeeeee' : state === 'rouge' ? '#c62828' : '#9e9e9e'};
        --tempo-fg: ${state === 'blanc' ? 'black' : 'white'};
      }
      .bubble-button-card-container {
        background: var(--tempo-bg) !important;
        border-radius: 16px !important;
      }
      .bubble-name {
        color: var(--tempo-fg) !important;
        font-weight: 700 !important;
        text-transform: uppercase !important;
        justify-content: center !important;
      }
  - type: custom:bubble-card
    card_type: button
    button_type: state
    entity: sensor.tempo_tomorrow
    name: Demain
    icon: mdi:calendar-arrow-right
    card_layout: large
    show_name: true
    show_icon: false
    show_state: false
    show_attribute: false
    show_last_changed: false
    force_icon: false
    scrolling_effect: false
    sub_button: []
    styles: |-
      :host {
        --tempo-bg: ${state === 'inconnu' ? '#9e9e9e' : state === 'bleu' ? '#1e88e5' : state === 'blanc' ? '#eeeeee' : state === 'rouge' ? '#c62828' : '#9e9e9e'};
        --tempo-fg: ${state === 'blanc' ? 'black' : 'white'};
      }
      .bubble-button-card-container {
        background: var(--tempo-bg) !important;
        border-radius: 16px !important;
      }
      .bubble-name {
        color: var(--tempo-fg) !important;
        font-weight: 700 !important;
        text-transform: uppercase !important;
        justify-content: center !important;
      }

Après avoir créé les sensor suivants bien entendu:

  - platform: rest
    name: tempo_today
    resource: https://www.api-couleur-tempo.fr/api/jourTempo/today
    scan_interval: 3600
    value_template: >
      {% set code = value_json.codeJour | int %}
      {% if code == 1 %}
        bleu
      {% elif code == 2 %}
        blanc
      {% elif code == 3 %}
        rouge
      {% else %}
        inconnu
      {% endif %}

  - platform: rest
    name: tempo_tomorrow
    resource: https://www.api-couleur-tempo.fr/api/jourTempo/tomorrow
    scan_interval: 3600
    value_template: >
      {% set code = value_json.codeJour | int %}
      {% if code == 1 %}
        bleu
      {% elif code == 2 %}
        blanc
      {% elif code == 3 %}
        rouge
      {% else %}
        inconnu
      {% endif %}

Il y a plusieurs pages de config dans mqtt….

Je met dans l’url de configuration http://192.168.1.24

mais ensuite?

:neutral_face:

L’appareil s’affiche automatiquement lorsqu’il sera détecté.

L’adresse IP que j’ai indiqué, c’est l’adresse de mon home assistant à moi.

Il faut que tu mettes la tienne.

Tu as bien créé un utilisateur dans HA ?

Quand tu as fais tout cela, retourne dans l’application Zendure, dans les réglages du smart meter, et dans mqtt, tu fais juste sauvegarder pour que les infos remontent bien dans HA.

Si tu veux fais des screens de tout cela avec ta bonne ip à toi de ton HA et on regarde, mais ça va fonctionner pas de soucis la dessus