Bonjour,
Comme beaucoup, je ne suis pas à jour de la dernière version:
- Raspberry 3B + boitier element14 + SSD 128 Giga
- Bien sur, il n’y a pas de SD, ça boote direct sur le SSD
- Raspberry buster 64 bits (à jour et pour cause, il n’y a plus d’évolution)
- Scripts pour boitier element14
- jeedom 4.4.19
- Un zwave en openzWave.
- Un thermostat RadioThermostat CT50 avec son module Wifi piloté par des scripts python en version 2
- Un dongle zwve AEOTEC
Il tourne parfaitement, pas de reboot
2 jeedoms :
- un sous la main et un autre à 300km
- Ils font la gestion et la surveillance du chauffage (gestion des pages horaires, consignes, etc)
La mise à jour avec changement d’OS (qui entre autre mettra python V3 et z-Wave JS), il y a aucune chance que cela fonctionne. Pas question de faire 12 aller retour de 300km …
Pas sur non plus que Raspberry 3B soit suffisant pour Debian 11 …
Alors, les mises à jour, c’est uniquement l’été surtout pour un jeedom à distance …
Donc la version 4.5.2 ce sera pour cet été …
Alors il semblerait que la cause provient d’un test de date dans la fonction isDateOk du fichier /var/www/html/core/jeedom.class.php qui interdit les dates supérieures au 1 janvier 2026.
Patch avec l’éditeur de fichier:
1 - j’ai sauvegardé la version courante (çà peut servir)
2 - j’ai recherché la fonction « public static function isDateOk() » (située un peu après le milieu du fichier
/**
*
* @return boolean
*/
public static function isDateOk() {
if (config::byKey('ignoreHourCheck') == 1) {
return true;
}
$cache = cache::byKey('hour');
$lastKnowDate = $cache->getValue();
if ($lastKnowDate > strtotime('UTC')) {
self::forceSyncHour();
sleep(3);
if ($lastKnowDate > strtotime('UTC')) {
return false;
}
}
$minDateValue = new \DateTime('2020-01-01');
$mindate = strtotime($minDateValue->format('Y-m-d 00:00:00'));
$maxDateValue = $minDateValue->modify('+6 year')->format('Y-m-d 00:00:00');
$maxdate = strtotime($maxDateValue);
if (strtotime('now') < $mindate || strtotime('now') > $maxdate) {
self::forceSyncHour();
sleep(3);
if (strtotime('now') < $mindate || strtotime('now') > $maxdate) {
log::add('core', 'error', __('La date du système est incorrecte (avant ' . $minDateValue . ' ou après ' . $maxDateValue . ') :', __FILE__) . ' ' . (new \DateTime())->format('Y-m-d H:i:s'), 'dateCheckFailed');
return false;
}
}
return true;
}
3 - J’ai remplacé la ligne suivante:
$maxDateValue = $minDateValue->modify(‹ +6 year ›)->format(‹ Y-m-d 00:00:00 ›);
par
$maxDateValue = $minDateValue->modify(‹ +16 year ›)->format(‹ Y-m-d 00:00:00 ›);
4 - 10 ans de plus ça laisse de la marge pour installer un nouveau système.
Pas sur que cela soit suffisant comme patch temporaire mais les scénarios semblent se lancer correctement
Cordialement Michel