Skip to content

Commit 9b72f16

Browse files
author
xlyric
committed
ajout gestions batteries
1 parent 9790cb3 commit 9b72f16

File tree

5 files changed

+100
-6
lines changed

5 files changed

+100
-6
lines changed

data/minuteur.html

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,7 @@ <h1 class="h3 mb-2 text-gray-800">Configuration minuteur d'appoint</h1>
111111
<div id="tabs">
112112
<ul class="nav nav-tabs">
113113
<li class="nav-item"><a class="nav-link" href="#dimmer">Configuration dimmer</a></li>
114+
<li class="nav-item"><a class="nav-link" href="#batterie">Configuration batterie</a></li>
114115
<li class="nav-item"><a class="nav-link" href="#relay1">Configuration relais 1</a></li>
115116
<li class="nav-item"><a class="nav-link" href="#relay2">Configuration relais 2</a></li>
116117
</ul>
@@ -137,6 +138,39 @@ <h1 class="h3 mb-2 text-gray-800">Configuration minuteur d'appoint</h1>
137138
</form>
138139
</div>
139140

141+
<div id="batterie">
142+
<form class="user" id="batterie-form" method="post" action="">
143+
<div class="form-group">
144+
Heure de démarrage: (format hh:mm)
145+
<input type="text" class="form-control form-control-user" id="heure_demarrage_batterie" placeholder="%heure_demarrage%">
146+
</div>
147+
<div class="form-group">
148+
Heure d'arrêt:
149+
<input type="text" class="form-control form-control-user" id="heure_arret_batterie" placeholder="%heure_arret%">
150+
</div>
151+
<div class="form-group">
152+
Température d'activation (°C):
153+
<input type="number" step="1" class="form-control form-control-user" id="temperature_batterie" placeholder="%temperature%">
154+
</div>
155+
<div class="form-group">
156+
Offset de delta batterie (décalage de -x W):
157+
<input type="number" step="1" class="form-control form-control-user" id="puissance_batterie" placeholder="%puissance%">
158+
</div>
159+
<input type="submit" value="Application des paramètres batterie" class="btn btn-primary btn-user btn-block">
160+
</form>
161+
<h2>Minuteur spécifique pour la batterie :</h2>
162+
<p>Ce minuteur permet de modifier le déclenchement de la régulation et de donner la priorité à la charge de la batterie lorsque la température dépasse la consigne.</p>
163+
164+
<h3>Fonctionnement :</h3>
165+
<ul>
166+
<li>Une valeur positive de puissance déplace les seuils Delta et Delta négatif de -x Watts, favorisant ainsi la charge de la batterie.</li>
167+
<li>Une fois la batterie chargée, le routage vers l'ECS (Eau Chaude Sanitaire) reprendra jusqu'à atteindre la température maximale autorisée.</li>
168+
</ul>
169+
170+
<h3>Recommandations :</h3>
171+
<p>La valeur recommandée est de 100W. Une valeur inférieure peut entraîner un comportement imprévisible.</p>
172+
</div>
173+
140174
<div id="relay1">
141175
<form class="user" id="relay1-form" method="post" action="">
142176
<div class="form-group">
@@ -205,6 +239,13 @@ <h1 class="h3 mb-2 text-gray-800">Configuration minuteur d'appoint</h1>
205239
$("#heure").html( heure + ":" + minute );
206240
});
207241

242+
$.get("/getminiteur?batterie", function(data) {
243+
$("#heure_demarrage_batterie").val(data.heure_demarrage);
244+
$("#heure_arret_batterie").val(data.heure_arret);
245+
$("#temperature_batterie").val(data.temperature);
246+
$("#puissance_batterie").val(data.puissance);
247+
});
248+
208249
// Envoi des données de formulaire au serveur lors de la soumission du formulaire
209250
$("#dimmer-form").submit(function(event) {
210251
event.preventDefault();
@@ -215,6 +256,15 @@ <h1 class="h3 mb-2 text-gray-800">Configuration minuteur d'appoint</h1>
215256
$.get("/setminiteur?dimmer", {"heure_demarrage": heure_demarrage, "heure_arret": heure_arret, "temperature": temperature, "puissance": puissance});
216257
});
217258

259+
$("#batterie-form").submit(function(event) {
260+
event.preventDefault();
261+
var heure_demarrage = $("#heure_demarrage_batterie").val();
262+
var heure_arret = $("#heure_arret_batterie").val();
263+
var temperature = $("#temperature_batterie").val();
264+
var puissance = $("#puissance_batterie").val();
265+
$.get("/setminiteur?batterie", {"heure_demarrage": heure_demarrage, "heure_arret": heure_arret, "temperature": temperature, "puissance": puissance});
266+
});
267+
218268
$("#relay1-form").submit(function(event) {
219269
event.preventDefault();
220270
var heure_demarrage = $("#heure_demarrage_relay1").val();

data/version

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
20250324
1+
20250624

src/config/config.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -154,8 +154,8 @@ constexpr size_t NTP_UPDATE_INTERVAL_MS = 3600000; /// synch de l'heure toute le
154154
// #define ARDUINO_RUNNING_CORE 1
155155
#endif
156156

157-
#define RELEASE "Version 20250611"
158-
constexpr const int FS_RELEASE = 20250324;
157+
#define RELEASE "Version 20250624"
158+
constexpr const int FS_RELEASE = 20250624;
159159
constexpr const char* FS_UPDATE = "<br>!! FS pas à jour !!"; /// paramettre FS pas à jour
160160

161161
#ifdef LIGHT_FIRMWARE

src/functions/webFunctions.h

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ extern Programme programme;
3131
extern Programme programme_relay1;
3232
extern Programme programme_relay2;
3333
extern Programme programme_marche_forcee;
34+
extern Programme programme_batterie;
3435
extern Memory task_mem;
3536
extern SemaphoreHandle_t mutex;
3637

@@ -246,14 +247,15 @@ void call_pages() {
246247
delay(1000);
247248
yield();
248249
config.restart = true;
249-
//ESP.restart();
250+
ESP.restart();
250251
});
251252

252253
// reset de la detection dallas précédente
253254
server.on("/resetdallas", HTTP_ANY, [](AsyncWebServerRequest *request){
254255
config.dallas_present = false;
255256
config.saveConfiguration();
256257
request->redirect("/");
258+
257259
});
258260

259261
server.onNotFound(notFound);
@@ -430,6 +432,7 @@ void call_pages() {
430432
if (request->hasParam("dimmer")) { request->send(200, "application/json", getMinuteur(programme)); }
431433
else if (request->hasParam("relay1")) { request->send(200, "application/json", getMinuteur(programme_relay1)); }
432434
else if (request->hasParam("relay2")) { request->send(200, "application/json", getMinuteur(programme_relay2)); }
435+
else if (request->hasParam("batterie")) { request->send(200, "application/json", getMinuteur(programme_batterie)); }
433436
else { request->send(200, "application/json", getMinuteur()); }
434437
}); // /get
435438

@@ -443,6 +446,14 @@ void call_pages() {
443446
programme.saveProgramme();
444447
request->send(200, "application/json", getMinuteur(programme));
445448
}
449+
if (request->hasParam("batterie")) {
450+
if (request->hasParam("heure_demarrage")) { request->getParam("heure_demarrage")->value().toCharArray(programme_batterie.heure_demarrage,6); }
451+
if (request->hasParam("heure_arret")) { request->getParam("heure_arret")->value().toCharArray(programme_batterie.heure_arret,6); }
452+
if (request->hasParam("temperature")) { programme_batterie.temperature = request->getParam("temperature")->value().toInt(); }
453+
if (request->hasParam("puissance")) { programme_batterie.puissance = request->getParam("puissance")->value().toInt(); }
454+
programme_batterie.saveProgramme();
455+
request->send(200, "application/json", getMinuteur(programme_batterie));
456+
}
446457
if (request->hasParam("relay1")) {
447458
if (request->hasParam("heure_demarrage")) { request->getParam("heure_demarrage")->value().toCharArray(programme_relay1.heure_demarrage,6); }
448459
if (request->hasParam("heure_arret")) { request->getParam("heure_arret")->value().toCharArray(programme_relay1.heure_arret,6); }

src/main.cpp

Lines changed: 35 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,7 @@ Programme programme;
146146
Programme programme_relay1;
147147
Programme programme_relay2;
148148
Programme programme_marche_forcee;
149+
Programme programme_batterie;
149150

150151
//***********************************
151152
//************* VARIABLES GLOBALES
@@ -493,6 +494,9 @@ void setup()
493494
programme_relay1.loadProgramme();
494495
programme_relay2.set_name("/relay2");
495496
programme_relay2.loadProgramme();
497+
programme_batterie.set_name("/batterie");
498+
programme_batterie.loadProgramme();
499+
496500
// Initialize Dimmer State
497501
gDisplayValues.dimmer = 0;
498502

@@ -770,7 +774,9 @@ void setup()
770774

771775
void loop() {
772776

773-
777+
static int delta_backup = 0;
778+
static int deltaneg_backup = 0;
779+
static bool batterie_active = false;
774780

775781
#ifdef DEBUGLEVEL1
776782
// test de la connexion client mqtt
@@ -925,6 +931,32 @@ void loop() {
925931
} // if (config.dimmerlocal)
926932

927933

934+
/// gestion de l'offset batterie
935+
936+
//if (programme_batterie.start_progr() && !batterie_active && gDisplayValues.temperature > programme_batterie.temperature ) {
937+
if ( gDisplayValues.temperature > programme_batterie.temperature && !batterie_active ) {
938+
// Sauvegarde des valeurs d'origine
939+
delta_backup = config.delta;
940+
deltaneg_backup = config.deltaneg;
941+
// Application de l'offset puissance_batterie (utilise temperature comme offset selon ta consigne)
942+
config.delta = delta_backup - programme_batterie.puissance;
943+
config.deltaneg = deltaneg_backup - programme_batterie.puissance;
944+
batterie_active = true;
945+
logging.Set_log_init("Batterie active, offset appliqué \n", true);
946+
}
947+
948+
//else if (batterie_active ) {
949+
// if ( ( programme_batterie.run && programme_batterie.stop_progr()) || gDisplayValues.temperature < programme_batterie.temperature) {
950+
else if ( gDisplayValues.temperature < programme_batterie.temperature && batterie_active ) {
951+
config.delta = delta_backup;
952+
config.deltaneg = deltaneg_backup;
953+
batterie_active = false;
954+
logging.Set_log_init("Batterie désactivée, offset réinitialisé \n", true);
955+
}
956+
//}
957+
958+
/// fin gestion de l'offset batterie
959+
928960
//***********************************
929961
//************* Loop - gestion des programmes
930962
//***********************************
@@ -1110,4 +1142,5 @@ bool boost(){
11101142
programme_marche_forcee.temperature = config.tmax;
11111143
programme_marche_forcee.puissance = programme.puissance;
11121144
return true;
1113-
}
1145+
}
1146+

0 commit comments

Comments
 (0)