Vous avez des batteries Zendure ? Et vous chargez votre voiture en même temps ? Pas bieeennn… 😉

Zendure EV Guard

Protegez vos batteries Zendure pendant la charge de votre voiture electrique

Compatible Zendure SolarFlow 2400 AC • Shelly Pro 3EM • Smappee • Windows, Linux, macOS

Vous avez des batteries Zendure et une voiture electrique ?

Vous le savez : quand votre voiture se branche sur la wallbox, elle aspire tout. Vos batteries Zendure se vident a toute vitesse, les cycles s'accumulent, et la duree de vie de vos precieuses cellules fond comme neige au soleil.

Si votre voiture est un vehicule de societe et que l'electricite est payee par votre employeur, c'est dommage de vider vos batteries pour la recharger alors qu'il ne vous restera plus rien le soir pour l'autoconsommation de votre maison.

Autre cas de figure : meme s'il ne s'agit pas d'une voiture de societe, vous souhaitez peut-etre simplement empecher vos batteries de se vider pendant la charge, afin de profiter pleinement de l'electricite produite par vos panneaux solaires en plein soleil, sans puiser dans vos batteries Zendure.

Zendure EV Guard resout ce probleme automatiquement. Des que la charge de votre voiture est detectee, le programme met vos batteries en pause. Quand la charge est terminee, il les reactive. Simple, automatique, sans risque.

Comment ca fonctionne ?

1. Detection

Votre Shelly Pro 3EM (ou Smappee) mesure la consommation. Quand la puissance depasse le seuil (ex: 5000W), le programme sait que votre voiture charge.

🔋

2. Protection

Les batteries Zendure passent en mode OFF instantanement. Elles ne se dechargent plus, vos cycles sont preserves.

3. Reprise

Charge terminee ? Le programme reactive vos batteries automatiquement avec vos parametres d'origine. Aucune intervention manuelle.

🔒 100% sans danger pour vos batteries

Zendure EV Guard utilise exclusivement l'API locale HTTP de votre hub Zendure. Il ne modifie qu'un seul parametre : le minSoc (niveau de charge minimum). Pour mettre en pause, il place le minSoc a 100%, ce qui empeche toute decharge. Pour reprendre, il restaure votre valeur habituelle (par exemple 10%).

Aucun firmware modifie, aucun acces cloud, aucun risque. C'est exactement la meme chose que si vous changiez le reglage manuellement dans l'app Zendure, mais automatiquement et au bon moment.

Prerequis

EquipementDetails
Zendure SolarFlow 2400 ACHub avec API locale HTTP activee (port 80)
Shelly Pro 3EM ou Smappee1 requisPince amperemetrique (Shelly, temps reel) ou moniteur energetique Smappee (cloud API, blocs de 5 min) pour mesurer la consommation
Wallbox / Borne de chargeN'importe quelle borne : la detection se base sur la consommation, pas sur la borne elle-meme
PC, Serveur ou NASWindows, Linux ou macOS, le programme tourne en arriere-plan 24h/24
 

Installation

1. Dezippez l'archive

Extrayez le contenu du fichier ZIP dans le repertoire de votre choix, par exemple :

  • Windows : C:\ZendureEvGuard\
  • Linux : /home/ZendureEvGuard/
  • macOS : /Applications/ZendureEvGuard/

2. Droits d'execution (Linux / macOS uniquement)

Sur Linux et macOS, vous devez rendre le fichier executable avant de le lancer :

chmod +x ZendureEvGuard
./ZendureEvGuard

3. Configurez appsettings.json

Ouvrez le fichier appsettings.json situe a cote de l'executable et remplissez vos parametres (voir la section ci-dessous).

4. Lancez le programme

# Windows
ZendureEvGuard.exe

# Linux / macOS
./ZendureEvGuard

Le programme affiche les informations de connexion au demarrage. Utilisez P pour mettre en pause manuellement, R pour reprendre, et Ctrl+C deux fois pour arreter proprement.

Astuce Linux : Pour que le programme tourne en permanence meme apres deconnexion, installez-le en tant que service systemd. Voici comment faire :

a) Creez un utilisateur dedie (optionnel mais recommande) :

sudo useradd -r -s /usr/sbin/nologin zendure
sudo chown -R zendure:zendure /home/ZendureEvGuard

b) Creez le fichier service :

sudo nano /etc/systemd/system/zendure-evguard.service

Collez le contenu suivant :

[Unit]
Description=ZendureEvGuard - EV Charging Battery Protection Daemon
After=network.target

[Service]
Type=simple
WorkingDirectory=/home/ZendureEvGuard
ExecStart=/home/ZendureEvGuard/ZendureEvGuard
Restart=on-failure
RestartSec=10
SyslogIdentifier=zendure-evguard
User=zendure
Environment=DOTNET_ENVIRONMENT=Production

[Install]
WantedBy=multi-user.target

c) Activez et demarrez le service :

sudo systemctl daemon-reload
sudo systemctl enable zendure-evguard
sudo systemctl start zendure-evguard

d) Commandes utiles :

# Voir le statut
sudo systemctl status zendure-evguard

# Voir les logs en temps reel
sudo journalctl -u zendure-evguard -f

# Redemarrer apres une mise a jour
sudo systemctl restart zendure-evguard

# Arreter le service
sudo systemctl stop zendure-evguard

Configuration : appsettings.json

Voici tous les parametres que vous pouvez configurer. Les sections Shelly et ZendureDevice sont obligatoires.

⚡ Shelly requis

Configuration de votre Shelly Pro 3EM. C'est le capteur qui mesure la consommation electrique de votre maison.

ParametreDescriptionExemple
EnabledActiver le Shelly comme source de mesuretrue
HostAdresse IP de votre Shelly Pro 3EM sur votre reseau local"192.168.1.50"
UseDigestAuthActiver si vous avez protege votre Shelly par un mot de passefalse
UsernameNom d'utilisateur (si auth activee)"admin"
PasswordMot de passe (si auth activee)"monmotdepasse"

🔌 Borne Smappee optionnel

La borne energetique Smappee peut etre utilise de deux facons :

  • Comme source de detection EV (alternative au Shelly) : si le Shelly est desactive, Smappee devient la source de mesure de puissance pour detecter la charge EV. La detection se fait via l'API cloud Smappee (blocs de 5 minutes, moins reactif que le Shelly en temps reel).
  • En parallele du Shelly : si le Shelly est actif comme source de detection, Smappee peut quand meme etre active pour afficher en continu les informations de consommation (solaire, maison, reseau) et de votre borne Smappee EV Wall (puissance de charge, etat, etc.) dans les logs.
ParametreDescriptionExemple
EnabledActiver Smappee (source de detection si Shelly desactive, ou affichage des infos consommation/borne EV en parallele)false
ClientIdClient ID de votre application Smappee (API v3)"votre-client-id"
ClientSecretClient Secret de votre application Smappee"votre-client-secret"
UsernameNom d'utilisateur de votre compte Smappee"user@email.com"
PasswordMot de passe de votre compte Smappee"motdepasse"
ServiceLocationIdID de votre emplacement Smappee (visible dans le dashboard Smappee, ce n'est pas le numero de serie)"190802"
PollingIntervalSecondsFrequence d'interrogation de l'API Smappee30

🔋 Batterie Zendure requis

Configuration de votre hub Zendure SolarFlow 2400 AC ou autres. L'adresse IP se trouve dans l'app Zendure.

ParametreDescriptionExemple
HostAdresse IP de votre hub Zendure sur le reseau local"192.168.1.127"
PortPort HTTP de l'API locale (80 par defaut)80
DefaultOutputLimitPuissance max de sortie en watts a restaurer apres la charge EV2400
DefaultMinSocPlancher de decharge a restaurer apres la charge : le niveau sous lequel vos batteries ne se dechargeront plus (la valeur est ×10 : 100 = 10%, 200 = 20%). Ce n'est pas le niveau de charge maximum.100
TimeoutSecondsDelai d'attente pour les requetes vers le hub10

💡 Comprendre le DefaultMinSoc

Ce parametre definit le plancher de decharge de vos batteries : le niveau sous lequel le hub ne les laissera plus se vider. La valeur est multipliee par 10 dans l'API Zendure :

  • 100 = les batteries peuvent descendre jusqu'a 10%
  • 200 = les batteries peuvent descendre jusqu'a 20%
  • 500 = les batteries s'arretent a 50%, et la moitie de votre capacite ne sert plus a rien

A ne pas confondre avec le plafond de charge. Le niveau auquel vos batteries arretent de se charger, c'est socSet, un autre reglage, celui que vous voyez dans l'application Zendure. Mettre 950 ici ne veut donc pas dire "charge jusqu'a 95%" mais "ne descends jamais sous 95%" : vos batteries deviennent inutilisables. Depuis la 1.3.0, le programme refuse de demarrer avec une valeur hors de 1 a 999, et vous previent au-dela de 500.

A vous de choisir ! Plus la valeur est basse, plus vous utilisez vos batteries ; plus elle est haute, plus vous menagez les cellules, au prix de la capacite disponible. La plupart des utilisateurs choisissent entre 100 (10%) et 200 (20%).

🚗 EvDetection

Reglages de la detection de charge de votre vehicule electrique. L'algorithme utilise une hysterese : il faut plusieurs lectures consecutives au-dessus du seuil pour confirmer une charge, et plusieurs lectures en-dessous pour confirmer l'arret.

ParametreDescriptionDefaut
PowerThresholdWattsSeuil de puissance (en watts) au-dela duquel le programme considere qu'une voiture charge. Adaptez-le a votre wallbox.5000
ConfirmationReadingsNombre de lectures consecutives au-dessus du seuil pour confirmer le debut de la charge2
ReleaseReadingsNombre de lectures consecutives sous le seuil pour confirmer la fin de la charge (24 = ~2 minutes a 5s/lecture)24
PollingIntervalSecondsFrequence de mesure en secondes5
PauseOnSourceUnreachableMinutesNouveau en 1.3.0. Duree pendant laquelle le compteur peut rester injoignable avant que les batteries soient mises en pause par precaution : aveugle, le programme ne peut plus voir votre voiture se brancher. La pause est levee des la premiere mesure valide. Mettez 0 pour desactiver ce garde-fou.3

📬 Notification optionnel

Recevez des emails quand vos batteries se mettent en pause, reprennent, ou en cas d'erreur. Configurez votre serveur SMTP.

ParametreDescriptionDefaut
EnabledActiver les notifications emailfalse
SmtpHostServeur SMTP (ex: smtp.gmail.com)""
SmtpPortPort SMTP587
UseSslUtiliser TLS/SSLtrue
Username / PasswordIdentifiants SMTP""
FromAddressAdresse email de l'expediteur""
ToAddressDestinataire(s), separes par ; pour plusieurs""
RateLimitMinutesIntervalle minimum entre deux alertes (anti-spam)15

📴 Pushover optionnel

Notifications push sur votre telephone via Pushover. Creez une application sur pushover.net pour obtenir votre API Token.

ParametreDescription
EnabledActiver Pushover (true / false)
ApiTokenToken API de votre application Pushover
UserKeyVotre cle utilisateur Pushover
RateLimitMinutesIntervalle minimum entre alertes (defaut: 15)

💬 Telegram optionnel

Notifications via un bot Telegram. Creez un bot avec @BotFather et recuperez votre Chat ID.

ParametreDescription
EnabledActiver Telegram (true / false)
BotsListe de bots. Chacun porte son Name, son BotToken et sa liste ChatIds. C'est ce qui permet de prévenir des personnes différentes dans des groupes différents
RateLimitMinutesIntervalle minimum entre alertes (défaut : 15)

Depuis la 1.2.0, vous pouvez prévenir plusieurs groupes à la fois : deux personnes via un premier bot, trois autres via un second. Chaque envoi est isolé, un destinataire injoignable n'empêche plus les autres de recevoir le message.

"Telegram": {
  "Enabled": true,
  "RateLimitMinutes": 15,
  "Bots": [
    {
      "Name": "Famille",
      "BotToken": "123456:AAExxxxxxxxxxxxxxxxxxxx",
      "ChatIds": [ "11111111", "22222222" ]
    },
    {
      "Name": "Voisins",
      "BotToken": "789012:BBEyyyyyyyyyyyyyyyyyyyy",
      "ChatIds": [ "33333333", "44444444", "55555555" ]
    }
  ]
}

L'ancienne forme, avec un seul BotToken et des ChatId séparés par des points-virgules, continue de fonctionner. Si vous ne changez rien à votre configuration, vos notifications continuent exactement comme avant.

📈 Monitoring optionnel

ParametreDescriptionDefaut
HealthCheckIntervalSecondsFrequence de verification de la connectivite des appareils30
LogStatusIntervalSecondsFrequence de log du statut complet dans les fichiers de log300

🔄 Update optionnel

Depuis la 1.2.0, le programme ne se met plus à jour tout seul. Il vérifie une fois par heure si une version plus récente existe, et il se contente de vous prévenir : un rappel dans les logs à chaque heure tant que vous n'avez pas installé la nouvelle version, et un seul message sur les canaux que vous avez configurés, avec le lien de téléchargement direct.

Remplacer le binaire d'un service qui protège vos batteries pendant qu'il tourne, c'est le geste le plus risqué du produit. Autant que ce soit vous qui décidiez du moment. Les anciennes clés AutoUpdateEnabled et CheckIntervalHours ne sont plus lues : vous pouvez les laisser dans votre fichier, elles sont ignorées.

ParametreDescriptionDefaut
CheckEnabledVérifier chaque heure si une version plus récente existetrue
NotifyOnNewVersionEnvoyer un message sur vos canaux de notification à la première détection d'une version. Une seule fois par version, jamais de relancetrue

🔑 License apres l'essai

Apres la periode d'essai de 30 jours, ajoutez votre clef secrete pour activer la licence PRO. Votre clef se trouve dans votre compte sur en haut à droite > "Mon Compte". La licence se renouvelle automatiquement en arriere-plan.

ParametreDescriptionExemple
SecretKeyVotre clef secrete unique (GUID) depuis votre compte digital3d.com. Laissez vide pour utiliser le mode essai.d79d24cc-eb02-48d7-94f8-xxxxxxxxxxxx

Exemple de configuration minimale

Voici un exemple pret a l'emploi. Remplacez simplement les adresses IP par celles de vos appareils :

{
  "Shelly": {
    "Enabled": true,
    "Host": "192.168.1.50"
  },
  "ZendureDevice": {
    "Host": "192.168.1.127",
    "Port": 80,
    "DefaultOutputLimit": 2400,
    "DefaultMinSoc": 100
  },
  "EvDetection": {
    "PowerThresholdWatts": 5000
  },
  "Subscription": {
    "SecretKey": "d79d24cc-eb02-48d7-94f8-xxxxxxxxxxxx"
  }
}

Avec cette configuration, le programme surveille votre Shelly, detecte toute consommation superieure a 5000W (pour exemple), et restaure vos batteries avec un minimum de 10% (100 ÷ 10) et une sortie maximale de 2400W. La section Subscription est vide par defaut : le programme fonctionne en mode essai pendant 30 jours. Pour activer la licence PRO, ajoutez votre clef secrete depuis votre compte en haut à droite.

Essai gratuit & Abonnement

🎉 30 jours d'essai gratuit, sans engagement !

Telechargez Zendure EV Guard et testez-le pendant 30 jours complets, sans rien payer et sans limite de fonctionnalites. Vous aurez acces a 100% des fonctions pour vous assurer que le programme correspond parfaitement a votre installation.

A l'issue des 30 jours, un abonnement Digital3D est necessaire pour continuer a utiliser le programme. Un seul abonnement vous donne acces a toutes les applications Digital3D (CompactForIA, AutoMouseMove, Zendure EV Guard, etc.).

🔑 Comment activer votre licence

  1. Souscrivez a un abonnement sur "One for All"
  2. Connectez-vous a votre compte sur digital3d.com et copiez votre clef secrete (un identifiant unique au format GUID, par exemple : f89f26cc-eb03-48d7-94f8-xxxxxxxxxxxx)
  3. Ouvrez le fichier appsettings.json et ajoutez votre clef dans la section Subscription :
    "Subscription": {
      "SecretKey": "votre-clef-secrete-guid"
    }
  4. Redemarrez le programme : la licence PRO s'active automatiquement et se renouvelle sans aucune intervention de votre part.

Pret a proteger vos batteries ?

Telechargez gratuitement, configurez en 5 minutes, et dormez tranquille.

Abonnement « One for All » : un seul abonnement pour toutes les applications Digital3D.

Téléchargement — Version 1.3.0

Historique des versions
1.3.0 06/08/2026Actuelle
- Le plancher de décharge par défaut (DefaultMinSoc) passe de 950 à 100 : à 950, les batteries n'avaient plus le droit de descendre sous 95%, donc plus rien à donner - Au démarrage, une valeur de DefaultMinSoc hors de 1 à 999 est refusée, et une valeur au-dessus de 500 déclenche un avertissement - Nouvelle clé EvDetection.PauseOnSourceUnreachableMinutes (3 par défaut) : si le compteur reste injoignable plus longtemps, les batteries sont mises en pause par précaution, jusqu'à la première mesure valide - La clé Smappee.EvThresholdWatts n'existe plus, elle n'était lue nulle part - L'état d'avant-pause est enregistré sur disque : un redémarrage pendant une pause ne perd plus les valeurs à restaurer - Correction : la notification « batteries pleines » se basait sur le plancher de décharge au lieu du plafond de charge du hub - Correction : plus de fausse restauration au démarrage en pleine journée, qui envoyait un e-mail et un message pour rien - Correction : après une reprise, la vérification automatique surveille la valeur réellement envoyée à l'appareil
1.2.0 05/08/2026
- Le programme ne se met plus à jour tout seul : il vérifie chaque heure et vous prévient, une seule fois par version - Rappel horaire dans les logs tant que la nouvelle version n'est pas installée, avec le lien de téléchargement - Nouvelles clés de la section Update : CheckEnabled et NotifyOnNewVersion - Les anciennes clés AutoUpdateEnabled et CheckIntervalHours ne sont plus lues, elles sont simplement ignorées - Telegram : plusieurs bots, chacun avec sa liste de destinataires, via la nouvelle liste Bots - L'ancienne configuration Telegram continue de fonctionner telle quelle - Un destinataire injoignable n'empêche plus les autres de recevoir le message - Correction : une valeur trop grande dans l'ancien intervalle de vérification pouvait arrêter le service
1.1.0 01/04/2026
- Correction de bugs
Rejoignez la conversation

Vous devez avoir un compte pour commenter cet article. La création est gratuite et prend moins d'une minute.

  • Le fichier XMLTV à télécharger gratuitement, chaque jour
  • Commenter les articles et répondre aux autres lecteurs
  • Être averti par e-mail des nouveaux articles que vous suivez

Aucun commentaire pour le moment.

Une erreur s'est produite. Cette application peut ne plus répondre jusqu'à ce qu'elle soit rechargée.Veuillez contacter l'auteur. Reload 🗙