[TUTO] Connecter/contrôler sa batterie Hyper2000 ZENDURE depuis HA

Bonjour Arnaud_69,

Si les serveurs de Zendure viennent à fermer, il reste la possibilité de passer en full local avec la solution de Reinhard Weber https://github.com/reinhard-brandstaedter/solarflow
Le module iobroker utilisé pour la connexion aux serveurs de Zendure est basé sur son travail de reverse ingenierie.

Actuellement il manque 1 ou 2 contrôles pour que le mode full local soit pleinement fonctionnel (le acMode pour la gestion charge/decharge/veille n’est pas exposé), mais les entités du hyper et des batteries remontent automatiquement par mqtt discovery

A+

1 « J'aime »

Hello @Julien_Galliot,

Non ce n’est pas volontaire, j’étais en train de faire des tests lorsque j’ai fait le copié collé, j’ai mis à jour mon post au dessus avec des pas de +1/+5/+10/-10/-5/-1

Je n’avais pas vu ce problème n’ayant pas eu a redémarrer HA ou iobroker, mais je vais regarder ce que l’on peut faire.

Merci à toi, sans ton travail pour dégrossir le sujet je n’aurais pas eu l’envie de bidouiller.

Bonjour Julien, merci des précisions. Je vais pouvoir finir j’espère dans quelques jours et enfin tester (en jours bleu ou blanc).

Pour info, iobroker tourne en lxc (bcp moins de ressources qu’une vm windows).

ola,

déjà merci pour vos codes
j’ai 2 erreurs avec ton code :confused:
sur :

pour l’instant , je n’ai mis que le package ‹ zendure-entities.yaml ›
et si je mets la ligne en commentaire, quand je teste avant de redémarrer :

une idée ?

Bonjour,

Essayes en enlevant les " sur la ligne mode : slider.

merci Julien mais pareil !

moi aussi en cours de transfert de jeedom mais je galère avec ce yaml

Hello,

j’ai fais une erreur sur les noms de fichiers, il faut remplacer le tiret - par un tiret bas _

Si tu as toujours l’erreur avec mode: slider tu peu essayer en mode: box ou enlever la ligne

Pourtant slider est une valeur valide pour le mode d’un mqtt number

A+

Bonjour,

Je viens de reverser l’application Zendure et je peux maintenant contrôler le démarrage/arrêt/changement de mode ainsi que le passage de smart surplus à smart basé sur les plages horaires par ex.

Qqu’un aurait-il des compétences de dev de module HA ou HACS pour rassembler tout ça ? (des commandes passages par des commandes HTTS et d’autres par MQTT…)

@titom43 c’est une excellente nouvelle! Tu pourrais partager ton travail pour que la communauté essai de développer une intégration HA ?
En tout cas, je suis partant pour essayer :wink:

1 « J'aime »

Bonjour à tous,

Tout d’abord énorme merci Julien et Lexyan pour le travail abattu !

De mon côté j’ai investi dans un Hyper 2000 uniquement en sachant qu’il y avait cette possibilité via iobroker. J’ai préféré racheter un raspi 3 à 30€ pour faire tourner iobroker dans un docker que de remettre 120€ dans un Shelly 3em alors que j’ai déjà un Shelly EM en place dans mon tableau.

Du coup, si j’écris aujourd’hui c’est quand même que j’ai un problème :sweat_smile:

Aucun souci pour la partie récupération des sensors dans H.A. tout est fonctionnel y compris le renvoi des consignes.

Je souhaite utiliser uniquement le mode « Automatique ».

Hier après-midi j’ai profité pour tester et quand il y avait du soleil, je n’ai pas constaté de problème. En réglant le seuil de déclenchement de charge à 50w. Je capte bien l’excédent dans la batterie.

Par contre en soirée, j’aurai dû être en 100% décharge et je constate un comportement complètement erratique.

J’ai beau avoir un talon qui oscille entre 200 et 400w, l’automatisation n’arrête pas de basculer de charge à décharge en passant par la veille. Je me retrouve à charger à 1kW puis je repasse en décharge à 300W.

J’ai du mal à comprendre ce qui ne va pas.

Pour information j’ai recopié les paramètrages de Lexyan mais dans un mqtt.yaml et dans configuration.yaml donc sans passer par des packages. J’ai supprimé tout ce qui ne m’intéressait notamment la partie pour les 4 batteries.

Dans l’histoire j’ai aussi quelques sensors inconnus dans le dashboard (voir la photo).

Je ne sais pas si en l’état quelqu’un aurait une piste ?

Mon besoin c’est vraiment juste de compenser mon talon et stocker l’excédent.

Salut,

Si j’ai bien compris le soir tu bascules en recharge alors que tu n’as plus de production solaire? Normalement si tu as repris le code sans rien modifier, en automatique on passe en recharge si on mesure une injection de 80W pendant 1 minute. As-tu modifié ces valeurs?

Tu parles de 1kW de charge, c’est beaucoup, et pas normal si tu n’as pas de surplus. La consigne de recharge est uniquement calculée sur le surplus, as-tu vu comment se comporte ton entité de surplus à ce moment là?

Hello,

Pour les entités inconnue, il faudrait savoir lesquelles sont inconnues, avec le screen on ne voit que leur type. Surement un problème de nom si tu avait fais des tests auparavant, certaines entités ont peut être un _2 à la fin.

Est-ce que tout les modes sont bien désactivés dans l’application Zendure ?
Au moment des basculements il faudrait voir l’historique d’exécution de l’automatisation Zendure - Mode Intelligent pour voir pourquoi il fait basculer.

A+

Bonjour,

Pour information j’ai modifié la formule de calcul du surplus pour éviter que la décharge de la batterie puisse être considérée comme du surplus.

Sur le principe : Surplus = (Mesure du shelly - P entrée batterie + P sortie batterie) en valeur absolue si résultat négatif, ou valeur 0 si résultat positif

Ci-dessous le nouveau code yaml :

MAJ 2025-02-06 : Ajouts d’une série de IF « has value » ELSE pour palier à tous les cas de valeurs indisponibles (les 2 valeurs dispos ou une des 2 valeurs indispo)

      - name: Surplus PV
        unique_id: "Surplus_PV"
        unit_of_measurement: "W"
        state: >
          {% if has_value('sensor.iobroker_zendure_puissance_reseau_zendure') and has_value('sensor.iobroker_zendure_p_sortie_ac') %}
            {% if (states('sensor.shellypro3em_a0dd6ca18868_phase_c_active_power')|int - states('sensor.iobroker_zendure_puissance_reseau_zendure')|int + states('sensor.iobroker_zendure_p_sortie_ac')|int) < 0 %}
              {{ (states('sensor.shellypro3em_a0dd6ca18868_phase_c_active_power')|int - states('sensor.iobroker_zendure_puissance_reseau_zendure')|int + states('sensor.iobroker_zendure_p_sortie_ac')|int)|abs }}
            {% else %}
              {{ 0 }}
            {% endif %}
          {% else %}
            {% if has_value('sensor.iobroker_zendure_puissance_reseau_zendure') %}
              {% if (states('sensor.shellypro3em_a0dd6ca18868_phase_c_active_power')|int - states('sensor.iobroker_zendure_puissance_reseau_zendure')|int) < 0 %}
                {{ (states('sensor.shellypro3em_a0dd6ca18868_phase_c_active_power')|int - states('sensor.iobroker_zendure_puissance_reseau_zendure')|int)|abs }}
              {% else %}
                {{ 0 }}
              {% endif %}
            {% else %}
              {% if has_value('sensor.iobroker_zendure_p_sortie_ac') %}
                {% if (states('sensor.shellypro3em_a0dd6ca18868_phase_c_active_power')|int + states('sensor.iobroker_zendure_p_sortie_ac')|int) < 0 %}
                  {{ (states('sensor.shellypro3em_a0dd6ca18868_phase_c_active_power')|int + states('sensor.iobroker_zendure_p_sortie_ac')|int)|abs }}
                {% else %}
                  {{ 0 }}
                {% endif %}
              {% else %}
                {% if states('sensor.shellypro3em_a0dd6ca18868_phase_c_active_power')|int < 0 %}
                  {{(states('sensor.shellypro3em_a0dd6ca18868_phase_c_active_power')|int)|abs }}
                {% endif %}
              {% endif %}
            {% endif %}
          {% endif %}

Re-bonjour,

Alors je viens de prendre en compte le nouveau code pour le sensor « Surplus PV ».

Si les modes évoqués pour l’application Zendure font bien références au « Plan énergétique », oui aucun n’est activé.

Je n’ai pas modifié les automatisations, uniquement corrigé le sensor relatif à mon Shelly.

Côté sensor inconnus voici la liste :

Côté charge :
- type: custom:mushroom-entity-card entity: sensor.zendure_energie_entree_ac name: Energie Charge Batterie

Côté décharge :
- type: custom:mushroom-number-card entity: input_number.zendure_p_limite_sortie_ac display_mode: buttons - type: custom:mushroom-entity-card entity: sensor.zendure_energie_sortie_ac name: Energie Décharge Batterie

Pour imager le problème que je rencontre voici un screenshot de mon Shelly qui donne la vue compteur.

J’ai lancé l’automatisme entre 20h10 et 20h12.
On constate des corrections ça oscille entre en -200 et +300 et d’un coup on a pic à plus de 1500W à 20h19

Et lorsqu’on regarde le journal on voit que la batterie est passée en mode charge un cours instant pile à ce moment

Je suis navré je voulais éditer mon précédent post mais j’ai beau chercher je ne trouve pas comment faire…

Voici une autre capture de ce qu’a vu mon Shelly juste après

Après un retour à la normale vers 20h21 et une correction parfaite (il y a 2 pics mais c’est le micro-onde qui a été utilisé), à 20h44 commence un cycle complètement étrange qui ne s’est arrêté que lorsque j’ai repris la main et coupé l’automatisation. Je précise que ma consommation était stable sur cette période aux alentours de 200W à 300W.

Hello,

Avec les graphs c’est plus clair :wink:

Il y a concurrence entre l’automatisation Zendure - Mode Intelligent et les automatisations de Charge et Décharge a cause d’un temps de convergence trop long pour revenir à 0 de consommation.

Tu peux essayer d’augmenter le nombre de répétitions pour les choix entre 200 et 500 et au dessus de 500 et leur équivalent en négatif. Tu peux augmenter à 10 (=100W) et 20 (=200W) répétitions pour coller aux réglages de Julien.

1 « J'aime »

Bonjour,

Oui je rejoins @Lexyan sur un possible manque de réactivité de l’automatisation décharge lorsque la consommation baisse brusquement, et du coup ça repasse en charge.

De mon côté pour augmenter la réactivité je suis passé à 8 choix (au lieu de 6) :

Et pour les choix 1 à 8, je suis à +1/+5/+10/+20 pas et -1/-5/-10/-20 pas sur la consigne.

Bonsoir Messieurs,

Je me suis exécuté et je suis passé à 8 options 30/100/200/500 & 0/-100/-200/-500
Et des pas de 1/5/10/20 -1/-5/-10/-20

J’ai lancé l’automatisation (j’ai une question juste après à ce sujet) à 20h17 (j’avais une batterie à 26%à ce moment là).

La correction s’est bien déroulée jusqu’à 20h29 ou j’ai eu un « rebond » mais le phénomène n’a pas continué.

J’ai eu un second « rebond » à 20h37. Mais malheureusement je n’ai pas pu constaté si ça revenait à la normal car la batterie s’est mis d’elle même en veille à 20h38 alors qu’il restait 13% (mon seuil mini est à 10% pourtant). J’imagine que c’est une sécurité interne car l’automatisation demandait (à juste titre) à sortir 1200W à ce moment là.

Je verrai dans les jours à venir si ces nouveaux réglages ont réglé mon problème (encore une fois merci à vous !).

J’ai tout de même une autre question par rapport au lancement de l’automatisation en mode intelligent. Quel est le mode d’emploi normal ? Car quand j’ai commencé à ma session de test ma batterie était en veille avec un mode charge réglé à 0W sur l’appli.

J’ai tenté un changement de mode depuis mon dashboard HA pour lancer le truc mais rien n’y a fait. Il a fallut que j’aille sur l’appli Zendure pour mettre le mode décharge et une puissance différente de 0 pour que l’automatisation réagisse.

Vous pouvez m’en dire plus ?

Par avance merci.

Bonne soirée

Hello,

Normalement le mode intelligent règle les consignes à 0 et laisse la main à l’automatisation de charge ou décharge à condition que ton talon soit supérieur à 80W pendant 1 minute au moment du choix du mode.
Il faut donc attendre au moins 1 minute pour que l’automatisation commence à réguler.

MAJ 2025-02-06 : modification de l’automatisation décharge avec 8 choix au lieu de 6 voir msg #60

A+