Skip to content

Commit 2c54ead

Browse files
authored
Merge pull request #34 from bugsounet/develop
v1.2.1
2 parents dc2ef96 + 486afe1 commit 2c54ead

File tree

5 files changed

+32
-12
lines changed

5 files changed

+32
-12
lines changed

README.md

+13-5
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ Si vous choisissez de récupérer les données de l'année précédente une comp
88

99
Le header est également dynamique et changera en fonction de la période sélectionnée !
1010

11-
Les données sont actualisées chaque jour entre 12h et 12h15.
11+
Les données sont actualisées une fois par jour.
1212

1313
## ScreenShots
1414

@@ -58,7 +58,8 @@ Pour utiliser ce module, ajoutez-le au tableau modules dans le fichier `config/c
5858
header: 1,
5959
energie: 1,
6060
updateDate: 1,
61-
updateNext: 1
61+
updateNext: 1,
62+
updateHour: 14
6263
},
6364
},
6465
```
@@ -95,6 +96,7 @@ Option|Default|Description
9596
`energie`|1|Affiche l'indicateur de consomation d'énergie. <br>`1` : afficher <br>`0` : masquer
9697
`updateDate`|1|Affiche la date de récupération des données. <br>`1` : afficher <br>`0` : masquer
9798
`updateNext`|1|Affiche la date du prochain cycle de récupération des données. <br>`1` : afficher <br>`0` : masquer
99+
`updateHour`|14|Heure de la tâche planifiée pour la mise à jours des données. (voir ci-dessous)
98100

99101
### APIs
100102

@@ -109,15 +111,15 @@ Il est également possible d'afficher vos données de production d'energie.
109111
* `getDailyProduction`: Récupère la production quotidienne.
110112
* `getProductionLoadCurve`: Récupère la puissance moyenne produite sur un intervalle de 30 min.
111113

112-
## Mise en cache des données
114+
### Mise en cache des données
113115

114116
Afin d'éviter une surcharge de l'API, une mise en cache des données a été mise en place.
115117

116118
De ce fait, lors d'un redémarrage de `MagicMirror²`, `MMM-Linky` utilisera les dernières données reçues de l'API.
117119

118120
La validité de ce cache à été fixée à 10h.
119121

120-
## Effacer le cache des données
122+
### Effacer le cache des données
121123

122124
Vous pouvez toute fois détruire ce cache avec la commande: `npm run reset:cache`
123125

@@ -134,7 +136,7 @@ Malheurement, nous n'avons aucun pouvoir pour la débloquer...
134136

135137
Pour rappel un appel API est une requête. si vous utilisez 2 API en config... c'est donc 2 requêtes !
136138

137-
## Changement de configuration
139+
### Changement de configuration
138140

139141
Afin de générer un nouveau cache, une nouvelle requête sera relancé pour les API suivantes (si utilisées)
140142

@@ -149,6 +151,12 @@ Afin de générer un nouveau cache, une nouvelle requête sera relancé pour les
149151
* `getDailyConsumption`
150152
* `getDailyProduction`
151153

154+
### Changement de l'heure de la jour des données (tâche planifiée)
155+
156+
Par défaut, les mises à jours des données sont programmés à 14h (`14` dans la configuration `updateHour`) avec une selection aléatoire dans les 15 premières minutes.
157+
158+
Vous pouvez changer l'heure de cette mise jour par une autre heure comprise entre `6` et `14`.
159+
152160
## Mise à jour
153161

154162
```sh

package-lock.json

+2-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "MMM-Linky",
3-
"version": "1.2.0",
3+
"version": "1.2.1",
44
"description": "Un module pour récupérer et afficher les données de consommation Linky sur MagicMirror.",
55
"keywords": [
66
"MagicMirror",
@@ -64,5 +64,5 @@
6464
"stylelint-config-standard": "^37.0.0",
6565
"stylelint-prettier": "^5.0.3"
6666
},
67-
"rev": "20250309"
67+
"rev": "20250311"
6868
}

src/MMM-Linky.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,8 @@ Module.register("MMM-Linky", {
1818
header: 1,
1919
energie: 1,
2020
updateDate: 1,
21-
updateNext: 1
21+
updateNext: 1,
22+
updateHour: 14
2223
},
2324

2425
start () {

src/components/timers.js

+13-2
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,25 @@ const dayjs = require("dayjs");
55
var log = () => { /* do nothing */ };
66

77
class TIMERS {
8+
89
constructor (Tools, config) {
910
this.config = config;
1011
if (this.config.debug) log = (...args) => { console.log("[LINKY] [TIMERS]", ...args); };
1112
this.sendSocketNotification = (...args) => Tools.sendSocketNotification(...args);
1213
this.refreshData = () => Tools.refreshData();
1314
this.timers = {};
1415
this.timer = null;
15-
this.cronExpression = "0 0 12 * * *";
16+
17+
Number.prototype.between = function (lower, upper) {
18+
return lower <= this && this <= upper;
19+
};
20+
21+
if (!Number.isInteger(this.config.updateHour) || !this.config.updateHour.between(6, 14)) {
22+
this.config.updateHour = 14;
23+
console.warn("[LINKY] [TIMERS] La configuration updateHour n'est pas correcte.");
24+
console.warn("[LINKY] [TIMERS] Correction de updateHour avec la valeur par defaut:", this.config.updateHour);
25+
}
26+
this.cronExpression = `0 0 ${this.config.updateHour} * * *`;
1627
}
1728

1829
// Retry Timer en cas d'erreur, relance la requete 2 heures apres
@@ -41,7 +52,7 @@ class TIMERS {
4152
const randomMinute = Math.floor(Math.random() * 15);
4253
const randomSecond = Math.floor(Math.random() * 59);
4354

44-
this.cronExpression = `${randomSecond} ${randomMinute} 12 * * *`;
55+
this.cronExpression = `${randomSecond} ${randomMinute} ${this.config.updateHour} * * *`;
4556
cron.schedule(this.cronExpression, () => {
4657
log("Exécution de la tâche planifiée de récupération des données.");
4758
this.refreshData();

0 commit comments

Comments
 (0)