[Home Assistant, MSunPV et Batterie DIY] Mes quelques travaux sur mon install
- domwood
- Hors Ligne
- Nouveau membre
-
- Messages : 5
- Remerciements reçus 0
Faudrait que je revoies mes bases (j'ai un bac F3, qui date, certe).
edit : plus rapide que de revoir mes bases, mesure avec un pont de diodes aux fesses du transfo : 46V. Je suis bon pour rebobiner le transfo.
Bon, je plaisante, j'ai passé l'âge. Par contre, le copain Seb, je lui en reparlerai, ça c'est sûr !
Connexion ou Créer un compte pour participer à la conversation.
- patmtp35
- Hors Ligne
- Membre elite
-
- Messages : 165
- Remerciements reçus 9
Voila le chargeur 24V a basse d'Emerson R48 + Dps5020 , basé sur le Msupv ou le shelly est opérationnel
Hier j'ai grace a lui finit de charger mes batteries a 13h a la place de 16h , du coup apres chauffage de l'eau et de la maison
Connexion ou Créer un compte pour participer à la conversation.
- Ixio_Jo
- Auteur du sujet
- Hors Ligne
- Membre junior
-
- Messages : 38
- Remerciements reçus 17
Connexion ou Créer un compte pour participer à la conversation.
- patmtp35
- Hors Ligne
- Membre elite
-
- Messages : 165
- Remerciements reçus 9
j'ai testé en remplaçant le shelly par le msun ca marche nickel aussi .
NE PAS OUBLIER DE MONTER UN disjoncteur DC 63A + du DPS5020 ET Le + DE LA BATTERIE
github.com/patmtp35/Esphome_charger-hybride-lifepo4
Connexion ou Créer un compte pour participer à la conversation.
- patmtp35
- Hors Ligne
- Membre elite
-
- Messages : 165
- Remerciements reçus 9
Alors a la place de la diode moffset , il vaut mieux utiliser un disjoncteur DC , j'ai donc opter comme j'en utilise déjà pour un TONGOU DV 12v-48v 63A piloter .
La diode moffset bloquant le retour du courant vers le DSP5020 celui ci ne peu du coup pas connaitre le voltage de la batterie .
Connexion ou Créer un compte pour participer à la conversation.
- patmtp35
- Hors Ligne
- Membre elite
-
- Messages : 165
- Remerciements reçus 9
Connexion ou Créer un compte pour participer à la conversation.
- patmtp35
- Hors Ligne
- Membre elite
-
- Messages : 165
- Remerciements reçus 9
seule modif afin d'avoir de vraix valeur pour la batteries et non estimées , j'ai installer un smartshunt 500A . j'envisage dans l'année a venir a passer chez les grands en 48v....
Connexion ou Créer un compte pour participer à la conversation.
- Ixio_Jo
- Auteur du sujet
- Hors Ligne
- Membre junior
-
- Messages : 38
- Remerciements reçus 17
Moi la batterie est en pause, pas assez de soleil je consomme déjà tout ! Sauf les jours rouges où je me permets une charge nocturne pour limiter encore plus les heures pleines.
Ca marche bien le smartshunt. J'en avait fait un avec un shunt 100A, un INA226 et un ESP8266 (le tout sous ESPHome) et il était très précis pour évaluer ce qui restait dans ma batterie. Il m'a même permis de remonter à la consommation du BMS !
Mais quand j'ai voulu le basculer sur l'ESP32 S3 qui gère tout, ça n'a pas fonctionné (visiblement l'esp32 est plus sensible faut un montage beaucoup plus rigoureux). En voulant réhaussé les niveaux (l'INA226 accepte du 5V), j'ai cramé l'INA226 et l'esp32 (qui lui n'accepte pas du 5V). J'ai racheté un ESP32 S3 et mon système est de nouveau fonctionnel, mais pour le moment le smartshunt, je laisse tomber même si je penser retravailler sur le sujet.. peut être
A bientôt dans le monde des 16s !
Connexion ou Créer un compte pour participer à la conversation.
- patmtp35
- Hors Ligne
- Membre elite
-
- Messages : 165
- Remerciements reçus 9
Concernant l'AC coupling bidirectionel (ce que l'on fait avec ce système) je vous conseil la chaine E2-nomy sebby a sortie un super système DIY au petit oignon !
Pour ma part j'ai réussi a trouver un multiplus II a un prix imbattable sur LBC , je vais donc pas tarder a Basculer vers la solution que ma inspiré Patrick , j'attend juste un RPI 4 pour y installer venus OS + EPS32 pour la gestion du VE-Direct.
Je change de stratégie voulant Aller vers l'autonomie on sait jamais avec les temps qui courent...
Connexion ou Créer un compte pour participer à la conversation.
- Ixio_Jo
- Auteur du sujet
- Hors Ligne
- Membre junior
-
- Messages : 38
- Remerciements reçus 17
Hello Merci !
Concernant l'AC coupling bidirectionel (ce que l'on fait avec ce système) je vous conseil la chaine E2-nomy sebby a sortie un super système DIY au petit oignon !
Pour ma part j'ai réussi a trouver un multiplus II a un prix imbattable sur LBC , je vais donc pas tarder a Basculer vers la solution que ma inspiré Patrick , j'attend juste un RPI 4 pour y installer venus OS + EPS32 pour la gestion du VE-Direct.
Je change de stratégie voulant Aller vers l'autonomie on sait jamais avec les temps qui courent...
Oui oui, depuis qu'il a repris ce que j'ai fait sur l'alimentation, je suis de près ce qu'il fait, il va beaucoup plus vite que moi ! Du coup ça m'a motiver pour avancer dans le même sens avec mon matériel (je rappel, le chargeur Emerson, un onduleur GTN1200 et le MSunPV), c'est à dire que ça soit l'ESP32S3 qui gère la régulation, HA ne servant qu'à ordonner le mode.
N'ayant pas de mesure de la puissance Enedis consommée directement sur l'ESP32, je dois récupérer l'info directement sur le routeur. Dans la mesure où il ne fait pas de MQTT (un jour j'espère !!), et juste le status.xml accessible en HTTP.
Avec HTTP request c'est facilement faisable, mais c'est une tache synchrone, c'est à dire que l'ESP se met en attente le temps que la réponse arrive, ce qui fait qu'il ramait à mort et ça n'était pas du tout gérable.
L'AI (Claude Sonnet 4.5), m'a suggéré quelques optimisation dont le fait de passer le HTTP request sur le deuxième core.
Vu que je pense que je pense que ça peut intéresser du monde, voila comment je récupère la conso de la maison depuis le MSUNPV sur un esp32 :
on_boot:
priority: -100
then:
- lambda: |-
#include "esp_http_client.h"
xTaskCreatePinnedToCore(
[](void *pvParameters) {
ESP_LOGI("http_task", "Démarrage sur core %d", xPortGetCoreID());
// Configuration du client HTTP avec keep-alive
esp_http_client_config_t config = {};
config.url = "http://192.168.1.XXX/status.xml";
config.timeout_ms = 2000;
config.keep_alive_enable = true;
config.keep_alive_idle = 5;
config.keep_alive_interval = 5;
config.keep_alive_count = 3;
esp_http_client_handle_t client = esp_http_client_init(&config);
char buffer[2048];
float last_power = -999.0;
float last_panel = -999.0;
float last_routage = -999.0;
while(true) {
uint32_t start = millis();
esp_err_t err = esp_http_client_open(client, 0);
if (err == ESP_OK) {
int content_length = esp_http_client_fetch_headers(client);
int total_read = 0;
if (content_length > 0 && content_length < sizeof(buffer)) {
total_read = esp_http_client_read(client, buffer, content_length);
buffer[total_read] = '\0';
if (total_read > 0) {
std::string data(buffer, total_read);
// Parser le XML
size_t start_pos = data.find("<inAns>");
if (start_pos != std::string::npos) {
start_pos += 7;
size_t end_pos = data.find("<", start_pos);
std::string inAns_content = data.substr(start_pos, end_pos - start_pos);
// Extraire les valeurs
size_t first_semi = inAns_content.find(";");
if (first_semi != std::string::npos) {
std::string val1_str = inAns_content.substr(0, first_semi);
std::replace(val1_str.begin(), val1_str.end(), ',', '.');
size_t second_semi = inAns_content.find(";", first_semi + 1);
if (second_semi != std::string::npos) {
std::string val2_str = inAns_content.substr(first_semi + 1, second_semi - first_semi - 1);
std::replace(val2_str.begin(), val2_str.end(), ',', '.');
size_t third_semi = inAns_content.find(";", second_semi + 1);
if (third_semi != std::string::npos) {
std::string val3_str = inAns_content.substr(second_semi + 1, third_semi - second_semi - 1);
std::replace(val3_str.begin(), val3_str.end(), ',', '.');
// Mise à jour thread-safe des globales
float power = atof(val1_str.c_str());
float panel = atof(val2_str.c_str());
float routage = atof(val3_str.c_str());
// Mettre à jour seulement si changement > 0.5W
if (fabs(power - last_power) > 0.5) {
id(latest_power) = power;
last_power = power;
// Publish depuis le core 0
id(consommation_maison).publish_state(power);
}
if (fabs(panel - last_panel) > 0.5) {
id(latest_panel) = panel;
last_panel = panel;
id(puissance_panneau).publish_state(panel);
}
if (fabs(routage - last_routage) > 0.5) {
id(latest_routage) = routage;
last_routage = routage;
id(routage_cumulus).publish_state(routage);
}
ESP_LOGD("http_task", "Power: %.1f W, Panel: %.1f W, Routage: %.1f (en %d ms)",
power, panel,routage, millis() - start);
}
}
}
}
}
}
esp_http_client_close(client);
} else {
ESP_LOGW("http_task", "Erreur connexion HTTP: %s", esp_err_to_name(err));
}
// Attendre 1 seconde
vTaskDelay(1000 / portTICK_PERIOD_MS);
}
esp_http_client_cleanup(client);
},
"HTTP_Task",
8192,
NULL,
0,
NULL,
0 // Core 0
);
ESP_LOGI("main", "Tâche HTTP créée sur core 0 avec keep-alive");globals:
- id: latest_power
type: float
restore_value: no
initial_value: '0.0'
- id: latest_panel
type: float
restore_value: no
initial_value: '0.0'
- id: latest_routage
type: float
restore_value: no
initial_value: '0.0' sensor:
- platform: template
name: "Consommation Maison"
id: consommation_maison
unit_of_measurement: "W"
device_class: power
state_class: measurement
accuracy_decimals: 1
device_id: powermeter
lambda: return id(latest_power);
update_interval: never
- platform: template
name: "Puissance Panneau"
id: puissance_panneau
unit_of_measurement: "W"
device_class: power
state_class: measurement
accuracy_decimals: 1
device_id: powermeter
lambda: return id(latest_panel);
update_interval: never
- platform: template
name: "Routage Cumulus"
id: routage_cumulus
unit_of_measurement: "%"
device_class: power_factor
state_class: measurement
accuracy_decimals: 1
device_id: powermeter
lambda: return id(latest_routage);
update_interval: never Pour la suite, j'ai intégré un PID trouvé sur le git de E2-nomy sebby, j'ai modifié quelques points pour que ça régule mieux et la je suis assez satisfait. Je n'ai plus qu'à modifié tous mes automatismes sur HA maintenant !
Connexion ou Créer un compte pour participer à la conversation.
- patmtp35
- Hors Ligne
- Membre elite
-
- Messages : 165
- Remerciements reçus 9
J'ai avancé aussi de mon coté install du RPI4 + venusos 3.70 + Esp32-Ve-Direct ca parle et communique avec HA , il me manque qques cable et je bascule sur le Multiplus II en 48V je garderais le R48 mais du coup avec ton système en Secours.
Ceci étant Petit Retex en mode 24V pour ceux qui souhaiterais , le système évoqué et tre stable, mais depend beaucoup de Ha, on a la possibilité de s'en abrogé ceci etant. J'ai 3 fois moins injecté (et c'est le but) qu avant de l'avoir, du coup moins consommé sur le GRID , la batterie etant bien vite et plus souvent pleinne.
Bien reglé il faut trouver les bons seuils ca cohabite tres bien avec notre super MSunPV !
j'ai mis toutes les sources sur le github , plus simple a maintenir
Connexion ou Créer un compte pour participer à la conversation.
- patrick
-
- Hors Ligne
- Administrateur
-
- Messages : 3881
- Remerciements reçus 588
Pas encore de MQTT mais si tu as moyen d'envoyer avec HA un msg en UDP, les nouvelles versions de firmware à venir devraient bien améliorer la récup des données...Dans la mesure où il ne fait pas de MQTT (un jour j'espère !!)
Connexion ou Créer un compte pour participer à la conversation.
- Ixio_Jo
- Auteur du sujet
- Hors Ligne
- Membre junior
-
- Messages : 38
- Remerciements reçus 17
Connexion ou Créer un compte pour participer à la conversation.
- Ixio_Jo
- Auteur du sujet
- Hors Ligne
- Membre junior
-
- Messages : 38
- Remerciements reçus 17
Après quelques tests et amélioration, j'ai une version qui tient à peu près la route.
Je vous propose l'ensemble du YAML du développement ESPHome sur mon github. Il n'a pas vocation à utilisé tel quel mais si ça peut aider :
github.com/IxioJo/ESP_Battery/blob/main/README.md
Il est un peu bordélique, mais je vais essayer de nettoyer un peu
Connexion ou Créer un compte pour participer à la conversation.
- patmtp35
- Hors Ligne
- Membre elite
-
- Messages : 165
- Remerciements reçus 9
merci pour le partage !
Connexion ou Créer un compte pour participer à la conversation.
- Vous êtes ici :
-
Accueil
-
forum
-
MSun-PV
-
Vos installations
- [Home Assistant, MSunPV et Batterie DIY] Mes quelques travaux sur mon install