Périphérique Saison

Discussion et échanges de scripts pour la box eedomus

Re: Périphérique Saison

Messagepar merguez07 » 22 Mars 2019 12:46

Stekino a écrit:A la place de "localhost". Ce n'est pas logique ?


si mais je n'avais pas connaissance d'un problème avec localhost. rol ayant eu aussi parfois des problèmes, il y a bien anguille sous roche.

Ce serait intéressant de faire un ticket sur le sujet
tuto 1 -->Programmation des scripts Eedomus
tuto 2 -->SmartDevice
tuto 3 -->Le déclenchement de règles
scripts -->Météo du jour | GH Thermostat | TotalWatt | Detecfire | smartbattery
Skype Eedomus -->lien vers le skype Eedomus
merguez07
 
Messages : 2346
Inscription : 15 Sep 2017
Localisation : Le Teil en Ardèche

Re: Périphérique Saisons

Messagepar Harzhal » 22 Sep 2023 07:54

Bonjour à tous,

J'utilise le périphérique "Saisons" pour des règles concernant la gestion de la fermeture de volets en fonction des saisons justement.

Or, cette année l'automne est le 23 septembre puisqu'il tient compte du décalage de temps lié à une année pré-bissextile.

En éditant le script (aujourd'hui ancien il faut le reconnaitre), je m'aperçois que la méthode de changement de saison est hyper basique à savoir le 21 et c'est tout.

$limits= array( '/12/21' => 'Hiver', // 1
'/09/21' => 'Automne', // 2
'/06/21' => 'Eté', // 3
'/03/21' => 'Printemps',// 4
'/01/01' => 'Hiver'); // 5

Il doit y avoir un moyen d'améliorer cela en faisant appel à une base de données (un peu comme "Soleil Etendu") pour avoir des données plus précises. C'est hors de mes compétences mais je sais que certains ténors du forum pourraient faire ça rapidement.

Alors avis à qui veut s'y coller...
Dernière édition par Harzhal le 22 Sep 2023 12:58, édité 1 fois.
eedomus+ Domotique Z-Wave sur Chauffage + Eclairage + Protection ouvrants + Volets roulants & Vélux + Protection fuite eau & fumée + Vannes connectées + Caméras Foscam - +de 70 objets connectés + Station Netatmo + Somfy Connexoon + Onduleur APC
Harzhal
 
Messages : 675
Inscription : 18 Oct 2018
Localisation : Roazhon - Breizh

Re: Périphérique Saison

Messagepar opa95 » 22 Sep 2023 10:12

Bonjour Harzhal
Harzhal a écrit:Bonjour à tous,

Or, cette année l'automne est le 23 septembre puisqu'il tient compte du décalage de temps lié à une année pré-bissextile.

En éditant le script (aujourd'hui ancien il faut le reconnaitre), je m'aperçois que la méthode de changement de saison est hyper basique à savoir le 21 et c'est tout.

$limits= array( '/12/21' => 'Hiver', // 1
'/09/21' => 'Automne', // 2
'/06/21' => 'Eté', // 3
'/03/21' => 'Printemps',// 4
'/01/01' => 'Hiver'); // 5

Il doit y avoir un moyen d'améliorer cela en faisant appel à une base de données (un peu comme "Soleil Etendu") pour avoir des données plus précises. C'est hors de mes compétences mais je sais que certains ténors du forum pourraient faire ça rapidement.

Alors avis à qui veut s'y coller...

oui à 6h50 GMT exactement.
cf. https://ssp.imcce.fr/forms/seasons
Quand faut-il basculer?
le 22 à 23h59 -> 22
le 23 à 00h01 -> 23
:)
eedomus+, Zibase V1, RFP1000, RFXcom, RadioDriver CPL 630 X2D, capteurs puissance OWL, thermometres Oregon, téléinfo (USB Linky), detecteurs ouverture X2D, pilotage chauffage X2D, Ecoflow River PRO, PAC Shogun (Atlantic-Cozytouch)
opa95
 
Messages : 723
Inscription : 04 Fév 2019
Localisation : Val d'Oise

Re: Périphérique Saisons

Messagepar Harzhal » 22 Sep 2023 12:57

Salut OPA95, merci pour ta réponse mais je ne comprends pas trop… Que proposes-tu exactement ?
eedomus+ Domotique Z-Wave sur Chauffage + Eclairage + Protection ouvrants + Volets roulants & Vélux + Protection fuite eau & fumée + Vannes connectées + Caméras Foscam - +de 70 objets connectés + Station Netatmo + Somfy Connexoon + Onduleur APC
Harzhal
 
Messages : 675
Inscription : 18 Oct 2018
Localisation : Roazhon - Breizh

Re: Périphérique Saisons

Messagepar opa95 » 22 Sep 2023 14:01

Salut Harzhal
Harzhal a écrit:Salut OPA95, merci pour ta réponse mais je ne comprends pas trop… Que proposes-tu exactement ?

Juste que j'ai commencé à regarder, mais j'ai du bricolage en cours, je dois pouvoir faire un script, pour remplacer le PHP actuel, avant lundi si j'ai une heure disponible.
Il pourrait faire appel au site en question une fois par an (ou seulement tous les 10 ans si notre box est toujours en vie) :)
eedomus+, Zibase V1, RFP1000, RFXcom, RadioDriver CPL 630 X2D, capteurs puissance OWL, thermometres Oregon, téléinfo (USB Linky), detecteurs ouverture X2D, pilotage chauffage X2D, Ecoflow River PRO, PAC Shogun (Atlantic-Cozytouch)
opa95
 
Messages : 723
Inscription : 04 Fév 2019
Localisation : Val d'Oise

Re: Périphérique Saison

Messagepar Harzhal » 22 Sep 2023 15:08

Merci OPA95 :thumbup: fais au mieux mais je pense qu’une MAJ annuelle nous donnera les dates exactes de changement des 4 saisons à venir…
eedomus+ Domotique Z-Wave sur Chauffage + Eclairage + Protection ouvrants + Volets roulants & Vélux + Protection fuite eau & fumée + Vannes connectées + Caméras Foscam - +de 70 objets connectés + Station Netatmo + Somfy Connexoon + Onduleur APC
Harzhal
 
Messages : 675
Inscription : 18 Oct 2018
Localisation : Roazhon - Breizh

Re: Périphérique Saison

Messagepar opa95 » 26 Sep 2023 17:10

Bonjour Harzhal
Harzhal a écrit:Merci OPA95 :thumbup: fais au mieux mais je pense qu’une MAJ annuelle nous donnera les dates exactes de changement des 4 saisons à venir…

Voila une version de Saison qui tient compte de la valeur réelle du changement de saison.
Elle est complètement compatible avec l'ancienne version : Le mode d'emploi est en tête du script.
Il suffit de charger le fichier sous le nom de l'ancien (seasons.php).
On peut aussi récupérer les valeurs (date, heure et timestamp) du début et de la fin de la saison en cours et savoir par exemple combien il nous reste de secondes avant l'arrivée de l'hiver...).
On peut aussi obtenir la saison correspondant à n'importe quelle date (option &date=yyyy-mm-dd) (compatible avec le php de l'eedomus, donc entre 1970 et 2038, en attendant une mise à jour pour tenir compte du bug de 2038). L'option permet de vérifier le bon fonctionnement des changements de saison sans attendre 3 mois.
Les valeurs des saisons à venir sont sauvées en mémoire (memxxxxxxx ou xxxxxxx est l'id du device appelant : option &mem=nom). Si plusieurs devices doivent partager la même gamme de dates (environ 1 an), il faut redéfinir un nom de mémoire commun aux divers devices.
Les dates des saisons entre 2023 et 2038 sont définies par défaut dans le php.
Les autres dates sont récupérées d'un serveur et mémorisées. La mise à jour ne se fait que si c'est nécessaire (environ tous les ans).
On peut imposer la source (mem ou tab ou server : &mode=), mais il vaut mieux laisser le php se débrouiller.
Enfin l'option &debug=1 permet l'affichage des valeurs en mémoire.
Le script est nettement plus lourd que l'ancien, mais je pense qu'il est robuste.
Voici le script (chez moi ça marche) :)
Code : Tout sélectionner
<?php

// Script saisons
// V1.0 du 2017/07/18 par Madoma73
// V1.1 du 2023/09/24 par Opa95 : récupération des données réelles depuis
// 1/ mémoire
// 2/ les valeurs préchargées (de 2023 à 2037)
// 3/ ou un serveur si pas dans les valeurs préchargées
//    si la date change peu, l'appel au serveur ne se fait qu'une fois par an
// lancement http://localhost/script/?exec=seasons.php
// options : http://localhost/script/?exec=seasons.php&option=val
//      &date=yyyy-mm-dd (par défaut date et heure actuelles) ou/et
//      &mem=nom (par défaut memdeviceId) ou/et
//      &mode=val (val dans ['all','mem','tab','server'] par défaut 'all' (teste 'mem' puis 'tab' puis 'server'), si 'tab' ou 'server', mise à jour de la mémoire.
// serveur 'https://opale.imcce.fr/api/v1/phenomena/equinoxessolstices/399?calendar=gregorian&timescale=UTC'
// résultats
//   /root/season_id ou //season_id (pour le plugin du store)
//   //timestamp - //timestamp0 -> nombre de secondes écoulées
//   //timestamp1 - //timestamp -> nombre de secondes restantes
//   //round((//timestamp1 - //timestamp)div86400-0.5) -> nombre de jours restants
/*
<root>
   <date>2023-09-26</date><hour>09:30:18</hour><timestamp>1695720618</timestamp>
   <season_txt>Automne</season_txt><season_id>4</season_id>
   <beg_season>
      <date0>2023-09-23</date0><hour0>06:09:00</hour0>
      <timestamp0>1695451800<timestamp0>
   </beg_season>
   <end_season>
      <date1>2023-12-22</date1><hour1>03:12:21</hour1>
      <timestamp1>1703215641</timestamp1>
   </end_season>
   <source>tableau</source>
</root>
*/

$memoire ='';

define('MEM','dev');
define('UNK','Indéfini');
define('WIN','Hiver');
define('SPR','Printemps');
define('SUM','Ete');
define('AUT','Automne');
$seasons_ids = array(UNK=>0,WIN=>1,AUT=>2,SUM=>3,SPR=>4);
define('NBY','3');//Nombre d'années
define('YMAX','2037');//date unix max
$values = array(1671659293,1679347466,1687359470,1695451800,1703215642,1710903984,1718916660,1727009020,1734772834,1742461289,1750473736,1758565161,1766329385,1774017957,1782030270,1790121913,1797886214,1805574281,1813587050,1821679303,1829443330,1837131428,1845144120,1853235918,1860999580,1868688119,1876700898,1884793110,1892556846,1900245126,1908257479,1916350013,1924114178,1931802058,1939814228,1947906918,1955670934,1963358514,1971371326,1979464253,1987228557,1994916164,2002928469,2011020701,2018785560,2026473450,2034485052,2042577575,2050342441,2058030165,2066041989,2074135137,2081899853,2089587771,2097599535,2105691800,2113456374,2121144617,2129156548,2137248787,2145013666);//Changements de saison 2022/12/21:2037/12/21

function sdk_get_from_server($date,$nb_years=NBY)
  {
    //renvoi tableau dates format unix H0,P1,E1,A1,H1,P2,E2,A2,H2.....
    define('URL','https://opale.imcce.fr/api/v1/phenomena/equinoxessolstices/399?calendar=gregorian&timescale=UTC');
    define('MIN','3');//Numéro du premier semestre à lire
    global $mem;
    /* Resultat
    {
    "link" : {
    "self" : "https://opale.imcce.fr/api/v1/phenomena/equinoxessolstices/399?year=2022&calendar=gregorian&nbd=3&timescale=UTC"},
    "request" : {"body" : 399,"calendar" : "gregorian","nbd" : 3,"tag" "equinoxessolstices_default","timescale" : "UTC","year" : 2022},
    "response" : {
      "calendar" : "gregorian",
      "data" : [
        {"date" : "2022-03-20T15:33:25","phenomena" : "VernalEquinox"},
        {"date" : "2022-06-21T09:13:51","phenomena" : "SummerSolstice"},
        {"date" : "2022-09-23T01:03:42","phenomena" : "AutumnalEquinox"},
        {"date" : "2022-12-21T21:48:13","phenomena" : "WinterSolstice"},
        ........
        {"date" : "2024-12-21T09:20:34","phenomena" : "WinterSolstice"}
      ],
      "description" :{"date" : "Date on which the equinox / solstice occurs","phenomena" : "Kind of the equinox / solstice"},
      "timescale" : "UTC",
      "unit" :{"date" : "Gregorian"}
    }
  }
  */
    $year_1= date('Y',$date)-1;//année précédente
    $url = URL.'&nbd='.NBY.'&year='.$year_1;
    $json_response = httpQuery($url);
    $tab=sdk_json_decode($json_response,1);
    $max = MIN + $nb_years*4-6;//Numero du dernier semestre à lire
    for ($num=MIN,$ind=0;$num<$max;$num++,$ind++){
     $datas[$ind] = strtotime($tab['response']['data'][$num]['date']);
    }
    saveVariable($mem,$datas);
    return true;
  }

function sdk_def_datas($date)
  {
    //renvoi tableau dates format unix H0,P1,E1,A1,H1,P2
    //indice%4 : 0 -> Hiver, 1-> Printemps, 2-> Ete, 3 -> Automne
    global $mem;
    global $values;
    $last_31_dec = strtotime('0 hour 31 december',$date);
    if ($last_31_dec>$date) $last_31_dec = strtotime('0 hour 31 december last year',$date);
    $ind_max = count($values);
    for ($ind_min=0;$ind_min<$ind_max;$ind_min++) {
      if ($last_31_dec<$values[$ind_min]) {
        $ind_min = max($ind_min-1,0);
        $ind_max = min($ind_max,$ind_min+INDMAX);
        break;
      }
    }
    for ($ind1=$ind_min,$ind2=0;$ind2<=INDMAX;$ind1++,$ind2++){
      $datas[$ind2] = $values[$ind1];
    }
    saveVariable($mem,$datas);
    return true;
  }

function sdk_season(&$limits,$date,&$ind_season,$first_ind=0,$last_ind=null) {
    if ($last_ind === null) $last_ind = count($limits)-1;
    $season = false;
    if (($date>=$limits[$first_ind]) && ($date<=$limits[$last_ind])){//hors limites
      $ind_season = $first_ind-1;
      for ($ind = $first_ind;$ind<=$last_ind;$ind++) {
        if ($date<=$limits[$ind]) {
          $season = true;
          break;
        }
        $ind_season++;
      }
    }
    if ($season)
      $mois = date('m',$limits[$ind_season]);
    else {
      $mois = 0;
      $ind_season = null;
    }
    switch ($mois) {
      case 0     : return UNK;
      case '03'  : return SPR;
      case '06'  : return SUM;
      case '09'  : return AUT;
      case '12'  : return WIN;
    }
  }
function sdk_get_season($date,&$source,&$season,&$ind_season){
  global $mem;
  $limits = loadVariable($mem);
  if ($limits != ''){
    $season = sdk_season($limits,$date,$ind_season);
    if ($season == UNK) $source = UNK;
  }
  return $limits;
};

//Récupération des paramètres
$adate  = trim(getArg('date',false,''));
if (strlen($adate)==0) {//aujourdhui
  $date = time();
  $adate = date('Y-m-d',$date);
}else $date = strtotime($adate);// date imposée
$ahour = date('H:i:s',$date);
$device_id = getArg('eedomus_controller_module_id');
$mem      = strtolower(getArg('mem',false,''));
if (strlen($mem) == 0)
  $mem = MEM.$device_id;//nom de la mémoire de sauvegarde
$mode      = strtolower(getArg('mode',false,'get'));
if (!in_array($mode,array('all','mem','tab','server'))) $mode = 'all';
$debug = getArg('debug',false,0);//affichage mémoire

// Recupération des données
//Test dans mémoire
//sdk_def_datas($date);//oter sur eedomus //pv
$source = UNK;
$season = UNK;
$ind_season = null;
if (in_array($mode,array('all','mem'))) {//mémoire
  $source = 'memoire';
  $limits = sdk_get_season($date,$source,$season,$ind_season);
  if ($season == UNK) {
    $source = UNK;
    if ($mode != 'mem') $mode = 'all';
  }
}

if ( ($season == UNK) && (in_array($mode,array('all','tab'))) ) {//tableau
  sdk_def_datas($date);//Chargement du tableau vers mémoire
  $source = 'tableau';
  $limits = sdk_get_season($date,$source,$season,$ind_season);
  if ($season == UNK) {
    $source = UNK;
    if ($mode != 'tab') $mode = 'all';
  }

}
if ( ($season == UNK) && (in_array($mode,array('all','server'))) ) {//serveur
  sdk_get_from_server($date);//Chargement du serveur vers mémoire
  $source = 'server';
  $limits = sdk_get_season($date,$source,$season,$ind_season);
  if ($season == UNK) {
    $source = UNK;
  }
}

$season_id = $seasons_ids[$season];
// resultats

$xml = '<?xml version="1.0" encoding="UTF-8"?>'.PHP_EOL;
$xml = "<root>".PHP_EOL;
$xml .= "   <date>".$adate."</date>";
$xml .= "<hour>".$ahour."</hour>";
$xml .= "<timestamp>".$date."</timestamp>".PHP_EOL;
$xml .= "   <season_txt>".utf8_encode($season)."</season_txt>";
$xml .= "<season_id>".$season_id."</season_id>".PHP_EOL;
$xml .= "   <beg_season>".PHP_EOL;
$val = $limits[$ind_season];
$xml .= "      <date0>".date('Y-m-d',$val)."</date0>";
$xml .= "<hour0>".date('H:m:s',$val)."</hour0>";
$xml .= "<timestamp0>".$val."</timestamp0>".PHP_EOL;
$xml .= "   </beg_season>".PHP_EOL;
$xml .= "   <end_season>".PHP_EOL;
$val = $limits[$ind_season+1]-1;
$xml .= "      <date1>".date('Y-m-d',$val)."</date1>";
$xml .= "<hour1>".date('H:m:s',$val)."</hour1>";
$xml .= "<timestamp1>".$val."</timestamp1>".PHP_EOL;
$xml .= "   </end_season>".PHP_EOL;
$xml .= "   <source>".utf8_encode($source)."</source>";
if ($debug){
  $xml .= PHP_EOL."   <limites>".PHP_EOL.'      ';
  foreach ($limits as $item){
    $xml.= date('Y-m-d H:i:s',$item).',';
  }
  $xml .= PHP_EOL."   </limites>".PHP_EOL;
}
$xml .= "</root>";
@sdk_header('text/xml');
echo $xml;
?>

eedomus+, Zibase V1, RFP1000, RFXcom, RadioDriver CPL 630 X2D, capteurs puissance OWL, thermometres Oregon, téléinfo (USB Linky), detecteurs ouverture X2D, pilotage chauffage X2D, Ecoflow River PRO, PAC Shogun (Atlantic-Cozytouch)
opa95
 
Messages : 723
Inscription : 04 Fév 2019
Localisation : Val d'Oise

Re: Périphérique Saison

Messagepar Harzhal » 28 Sep 2023 09:22

Salut OPA95.

Tout d'abord merci pour cette mise à jour mais je ne suis pas familiarisé avec la procédure à réaliser. J'ai essayé de remplacer les données de l'ancien script par les nouvelles en effectuant un copié collé mais ça me répond : "Script invalide".

Peux-tu me dire exactement comment je dois procéder ?
eedomus+ Domotique Z-Wave sur Chauffage + Eclairage + Protection ouvrants + Volets roulants & Vélux + Protection fuite eau & fumée + Vannes connectées + Caméras Foscam - +de 70 objets connectés + Station Netatmo + Somfy Connexoon + Onduleur APC
Harzhal
 
Messages : 675
Inscription : 18 Oct 2018
Localisation : Roazhon - Breizh

Re: Périphérique Saison

Messagepar opa95 » 28 Sep 2023 10:12

Bonjour Harzhal
Harzhal a écrit:Salut OPA95.

Tout d'abord merci pour cette mise à jour mais je ne suis pas familiarisé avec la procédure à réaliser. J'ai essayé de remplacer les données de l'ancien script par les nouvelles en effectuant un copié collé mais ça me répond : "Script invalide".

Peux-tu me dire exactement comment je dois procéder ?


Il y a 2 possibilités (la 1 ou la 2)
1/
Tu copies le texte de la fenêtre code de mon message (sélection puis ^C sur un PC)
Tu sauves le contenu dans un fichier brut nommé seasons.php (éditeur de texte simple sachant stocker en format txt, pas word). Attention, certains éditeurs peuvent créer un fichier seasons.php.txt qui ne fonctionnera pas.
Tu ouvres le lien vers la page de scripts : http://192.168.xxx.yyy/script/ (adresse de secours de ta box).
Tu cliques sur "parcourir" (en bas de la liste) pour sélectionner le fichier que tu viens de créer puis "ouvrir", puis sur "envoyer" (en bas de la liste).
Le système va contacter le serveur eedomus qui vérifie que le fichier est correct puis le retransférer vers ta box (adresse de secours). La fenêtre script va se rafraîchir et ça doit marcher
2/
Tu ouvres la fenêtre de ton device et tu cliques sur "éditer"
Ton navigateur va essayer d'ouvrir http://192.168.xxx.yyyy/script/editor/?src=seasons.php
Si la mention "Veuillez vous connecter au préalable" s'affiche tu cliques sur "connecter"
puis tu rappelles la page d'avant (http://192.168.xxx.yyyy/script/editor/?src=seasons.php), il n'est en général pas nécessaire d'attendre que la page intermédiaire s'affiche.
Tu sélectionnes le texte de l'ancien contenu de seasons.php que tu remplaces par le texte de la fenêtre code de mon message.
Tu cliques sur "Enregistrer".

Test:
Tu retournes dans la fenêtre de ton device et tu cliques sur "tester" pour activer le fenêtre de test
Dans la fenêtre de test tu cliques sur "tester".

Je viens de refaire la manoeuvre complète avec le contenu du code publié et ça marche :)
eedomus+, Zibase V1, RFP1000, RFXcom, RadioDriver CPL 630 X2D, capteurs puissance OWL, thermometres Oregon, téléinfo (USB Linky), detecteurs ouverture X2D, pilotage chauffage X2D, Ecoflow River PRO, PAC Shogun (Atlantic-Cozytouch)
opa95
 
Messages : 723
Inscription : 04 Fév 2019
Localisation : Val d'Oise

Re: Périphérique Saison

Messagepar Harzhal » 28 Sep 2023 14:11

Excellent OPA95 :!:

Le résultat du test donne 2 et apparemment ça correspond bien à "Automne".

Merci encore à toi :clap:
eedomus+ Domotique Z-Wave sur Chauffage + Eclairage + Protection ouvrants + Volets roulants & Vélux + Protection fuite eau & fumée + Vannes connectées + Caméras Foscam - +de 70 objets connectés + Station Netatmo + Somfy Connexoon + Onduleur APC
Harzhal
 
Messages : 675
Inscription : 18 Oct 2018
Localisation : Roazhon - Breizh

Re: Périphérique Saison

Messagepar opa95 » 28 Sep 2023 14:39

Bonjour Harzhal
Harzhal a écrit:Excellent OPA95 :!:

Le résultat du test donne 2 et apparemment ça correspond bien à "Automne".

Merci encore à toi :clap:

Tu peux tester les variations depuis la fenêtre de test en rajoutant dans la commande
&debug=1
Code : Tout sélectionner
http://localhost/script/?exec=seasons.php&eedomus_controller_module_id=xxxxxxx&debug=1

Tu obtiendras
Code : Tout sélectionner
<root>
   <date>2023-09-28</date><hour>15:18:23</hour><timestamp>1695907103</timestamp>
   <season_txt>Automne</season_txt><season_id>2</season_id>
   <beg_season>
      <date0>2023-09-23</date0><hour0>06:09:00</hour0><timestamp0>1695444600</timestamp0>
   </beg_season>
   <end_season>
      <date1>2023-12-22</date1><hour1>03:12:21</hour1><timestamp1>1703212041</timestamp1>
   </end_season>
   <source>memoire</source>
   <limites>
      2022-12-21 21:48:13,2023-03-20 21:24:26,2023-06-21 14:57:50,2023-09-23 06:50:00,2023-12-22 03:27:22,2024-03-20 03:06:24,
   </limites>
</root>

ou une date précise
Par exemple
Code : Tout sélectionner
http://localhost/script/?exec=seasons.php&eedomus_controller_module_id=xxxxxxx&date=2023-12-22%2003:00:00

le "%20" est le code espace dans la fenêtre de test : donc "2023-12-22 03:00:00" devient "2023-12-22%2003:00:00"
Si tu ne mets pas l'heure, tu auras la saison à 00:00:00 -> 2 -> Automne.
donc date=2023-12-22%2003:00:00 renvoie 2 -> Automne
et date=2023-12-22%2004:00:00 renvoie 1 -> Hiver
Changement de saison à 2023-12-22 03:27:22
Pas très logique, mais j'ai du rester compatible avec la version de base. :)
eedomus+, Zibase V1, RFP1000, RFXcom, RadioDriver CPL 630 X2D, capteurs puissance OWL, thermometres Oregon, téléinfo (USB Linky), detecteurs ouverture X2D, pilotage chauffage X2D, Ecoflow River PRO, PAC Shogun (Atlantic-Cozytouch)
opa95
 
Messages : 723
Inscription : 04 Fév 2019
Localisation : Val d'Oise

Précédent

Retour vers Scripts & Périphériques du store

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 12 invité(s)