[Store] Mon Réveil - Horloge - Date du jour

Discussion et échanges de scripts pour la box eedomus

Re: [Store] Mon Réveil - Horloge - Date du jour

Messagepar fred1964 » 12 Oct 2020 13:13

Bonjour Influmann,
serait il possible d'ajouter un capteur "date" et un capteur "mois" cela me permettrai de créer des règles sur la date du jour et sur le mois
exemple pour la date du "15 octobre" le capteur jour serai "15" et le capteur mois serai "10"

merci d'avance
fred1964
 
Messages : 84
Inscription : 09 Fév 2016

Re: [Store] Mon Réveil - Horloge - Date du jour

Messagepar struddel » 15 Fév 2021 16:41

Bonjour, j'ai essayé de programmer la récupération de l'heure de mon réveil android (l'appli basique d'android) mais sans succès :?

J'ai suivi votre discussion et le tuto sur jeedom suivant : http://sarakha63-domotique.fr/synchroni ... fdJI37nA7Q

J'ai essayé de regarder la doc API d'eedomus pour avoir les bonnes URL mais je comprends rien :?

Si quelqu'un veut bien donner quelques info sur ce qu'il faut faire ça serait super gentil ^^

Dans la doc eedomus je vois ce type d'URL :

Code : Tout sélectionner
http://192.168.0.30/api/get?action=auth.test&api_user=XXXX&api_secret=XXXX


Dans le tuto jeedom je vois ça :

Code : Tout sélectionner
https://URLJEEDOM/core/api/jeeApi.php?apikey=APIKEYJEEDOM&type=virtual&id=IDCMD&value=%taskertime


J'ai tenté de mettre une URL de type

Code : Tout sélectionner
http://192.168.0.150/api/get?action=


mais je sais pas quoi mettre après :?
struddel
 
Messages : 66
Inscription : 05 Fév 2021

Re: [Store] Mon Réveil - Horloge - Date du jour

Messagepar díadeluz » 11 Nov 2021 12:35

Bonjour,

J’ai un (petit) souci avec le plugin Mon Réveil d’@Influman :

J’utilise une règle du type “si heure du jour devient égale à périphérique heure de réveil”, alors faire sonner les cloches :D

Malheureusement, dans 1% des cas (comme aujourd’hui par exemple :roll: ), “heure du jour”, saute la valeur d’heure de réveil et n’y passe donc jamais (cf l’historique ci-dessous).

Pour y remédier, il faudrait que la règle teste heure du hour avec “heure de réveil OU “heure de réveil + 1 minute”… D’ailleurs un plugin qui donne valeur de tel périphérique (xx:ss) plus ou moins tant de temps (yy:yy) serait super utile, je pense.

Autre solution: modifier le plugin Mon Réveil de telle sorte que, lorsqu’il s’aperçoit qu’il va passer de minute n à minute n+2, il mette fugacement (quelques secondes) “heure du jour’ à n+1 avant de passer à n+2 ?

Quelqu’un a-t-Il d’autres idées ?

Bonne journée.

2D8F89B9-EE5F-4080-927C-BCEFAAC17537.png
Comment l’eedomus ne m’a pas réveillé :-)
2D8F89B9-EE5F-4080-927C-BCEFAAC17537.png (428.73 Kio) Consulté 3236 fois
díadeluz
 
Messages : 81
Inscription : 24 Fév 2020

Re: [Store] Mon Réveil - Horloge - Date du jour

Messagepar merguez07 » 11 Nov 2021 12:40

bonjour diadeluz

díadeluz a écrit:Quelqu’un a-t-Il d’autres idées ?


oui
tu mets devient maintenant supérieur à
et tu règles le "autoriser le redéclenchement" sur 24h
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: [Store] Mon Réveil - Horloge - Date du jour

Messagepar díadeluz » 11 Nov 2021 12:47

Bonjour merguez07,
Ta suggestion est nickel, sauf que « supérieur à » n’est pas plus possible que mon « ou plus une minute », vu que les valeurs manipulées par le plugin Mon réveil (format xx:xx) sont des chaînes de caractères et non des numériques. Arghhh…
díadeluz
 
Messages : 81
Inscription : 24 Fév 2020

Re: [Store] Mon Réveil - Horloge - Date du jour

Messagepar merguez07 » 11 Nov 2021 13:17

díadeluz a écrit:Arghhh…


je confirme : Arghhh

je vais regarder de plus près ce plugin pour étudier une alternative
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: [Store] Mon Réveil - Horloge - Date du jour

Messagepar merguez07 » 11 Nov 2021 14:09

en modifiant le script ainsi, on active le reveil dès qu'on est supérieur ou égal au seuil d' alarme, et ce, jusqu'à minuit

Code : Tout sélectionner
<?php
   $xml = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?>";     
   //***********************************************************************************************************************
   // V1.0 : Script de gestion d'une alarme réveil
   //*********************************************************************************************************
   
     // mode
     $mode = getArg("mode", $mandatory = true, $default = 'poll');
     // alarm
     $alarm = getArg("alarm", $mandatory = true, $default = 1);
     // jour
     $jour = getArg("jour", $mandatory = false, $default = 'LUN-MAR-MER-JEU-VEN');
     // code api du capteur appelant
     $actualapi = getArg('eedomus_controller_module_id');
 
 
  if ($mode == "set") {
   // l'api du périphérique appelant est celle de l'alarme
   // on stocke ce code en mémoire
        saveVariable("MYREVEIL".$alarm, $actualapi);
   die();
  }

  if ($mode == "poll") {
   $apireveil = $actualapi;
   

   $heurenum = date("H").":".date("i");
     $heurelit = date("G")." heure ".date("i");
   $currentday = date("N");
   $currentmonth = date("n");
    $calendriernum = date("d")."/".date("m")."/".date("Y");
   $tabjoursem = array("1" => "Lundi", "2" => "Mardi", "3" => "Mercredi", "4" => "Jeudi", "5" => "Vendredi", "6" => "Samedi", "7" => "Dimanche");
   $tabjourparam = array("LUN" => 1, "MAR" => 2, "MER" => 3, "JEU" => 4, "VEN" => 5, "SAM" => 6, "DIM" => 7);
   $tabmois = array("1" => "janvier", "2" => "février", "3" => "mars", "4" => "avril", "5" => "mai", "6" => "juin", "7" => "juillet", "8" => "août", "9" => "septembre", "10" => "octobre", "11" => "novembre", "12" => "décembre");
   $jourlit = date("j");
   if (date("j") == 1) {
      $jourlit = "1er";
   }
   $calendrierlit = $tabjoursem[date("N")]." ".$jourlit." ".$tabmois[date("n")]." ".date("Y");

   // test des paramétres de jour de l'alarme
    $tabjour = explode("-", $jour);
    $cejournum = date("N");
   $jouralarm = false;
   foreach ($tabjour as $testjour) {
      if ($tabjourparam[$testjour] == $cejournum) {
         $jouralarm = true;
      }
   }

   // Lecture des données de l'alarme liée au réveil
     if (loadVariable("MYREVEIL".$alarm)) {
        $apialarm = loadVariable("MYREVEIL".$alarm);
    } else {
        $apialarm  = 0;
        }
     
   $reveil = 0;
     if ($apialarm == 0) {
      // l'actionneur alarm n'a pas été positionné encore
      $alarm_value = 0;
      $alarm_text = "";
     } else {
      // récupération de la valeur de l'alarme
      $tabalarm = getValue($apialarm, true);
      $alarm_value = $tabalarm["value"];
      $alarm_text = $tabalarm["value_text"];
           // test si réveil sonne
       $nbalarm_text=    str_replace(":", "",$alarm_text);
       $nbheurenum=    str_replace(":", "",$heurenum);
       if (($nbheurenum >= $nbalarm_text) && $jouralarm) {
   //   if ($alarm_text == $heurenum && $jouralarm) {
         $reveil = 1;      
              }
     }

   $xml .= "<REVEIL>";
    $xml .= "<ALARM>".$reveil."</ALARM>";
   $xml .= "<HORLOGE>".$heurenum."</HORLOGE>";
   $xml .= "<HORLOGEL>".$heurelit."</HORLOGEL>";
    $xml .= "<CALENDRIER>".$calendriernum."</CALENDRIER>";
   $xml .= "<CALENDRIERL>".$calendrierlit."</CALENDRIERL>";
   $xml .= "<DAY>".$currentday."</DAY>";
   $xml .= "<MONTH>".$currentmonth."</MONTH>";
    $xml .= "</REVEIL>";
   sdk_header('text/xml');
   echo $xml;
  }

?>
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: [Store] Mon Réveil - Horloge - Date du jour

Messagepar opa95 » 11 Nov 2021 17:17

Salut Merguez07
J'arrivais à une autre solution, active pendant 5 minutes (ou plus si on veut en modifiant le 5 de la ligne 75), de plus je trouve utile de renvoyer la valeur de DeltaT qui permet d'utiliser des règles plus finement : appel avec //DELTATIME qui donne toujours le temps depuis l'alarme (négatif si non déclenchée). Je garantis rien vers minuit (il faudrai raffiner).
mais tu m'as devancé.
Cdt
Code : Tout sélectionner
<?php
   $xml = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?>";     
   //***********************************************************************************************************************
   // V1.0 : Script de gestion d'une alarme réveil
   //*********************************************************************************************************
   
     // mode
     $mode = getArg("mode", $mandatory = true, $default = 'poll');
     // alarm
     $alarm = getArg("alarm", $mandatory = true, $default = 1);
     // jour
     $jour = getArg("jour", $mandatory = false, $default = 'LUN-MAR-MER-JEU-VEN');
     // code api du capteur appelant
     $actualapi = getArg('eedomus_controller_module_id');
 
 
  if ($mode == "set") {
   // l'api du périphérique appelant est celle de l'alarme
   // on stocke ce code en mémoire
        saveVariable("MYREVEIL".$alarm, $actualapi);
   die();
  }

  if ($mode == "poll") {
   $apireveil = $actualapi;
   

   $heurenum = date("H").":".date("i");
     $heurelit = date("G")." heure ".date("i");
   $currentday = date("N");
   $currentmonth = date("n");
    $calendriernum = date("d")."/".date("m")."/".date("Y");
   $tabjoursem = array("1" => "Lundi", "2" => "Mardi", "3" => "Mercredi", "4" => "Jeudi", "5" => "Vendredi", "6" => "Samedi", "7" => "Dimanche");
   $tabjourparam = array("LUN" => 1, "MAR" => 2, "MER" => 3, "JEU" => 4, "VEN" => 5, "SAM" => 6, "DIM" => 7);
   $tabmois = array("1" => "janvier", "2" => "février", "3" => "mars", "4" => "avril", "5" => "mai", "6" => "juin", "7" => "juillet", "8" => "août", "9" => "septembre", "10" => "octobre", "11" => "novembre", "12" => "décembre");
   $jourlit = date("j");
   if (date("j") == 1) {
      $jourlit = "1er";
   }
   $calendrierlit = $tabjoursem[date("N")]." ".$jourlit." ".$tabmois[date("n")]." ".date("Y");

   // test des paramétres de jour de l'alarme
    $tabjour = explode("-", $jour);
    $cejournum = date("N");
   $jouralarm = false;
   foreach ($tabjour as $testjour) {
      if ($tabjourparam[$testjour] == $cejournum) {
         $jouralarm = true;
      }
   }

   // Lecture des données de l'alarme liée au réveil
     if (loadVariable("MYREVEIL".$alarm)) {
        $apialarm = loadVariable("MYREVEIL".$alarm);
    } else {
        $apialarm  = 0;
        }
     
   $reveil = 0;
     if ($apialarm == 0) {
      // l'actionneur alarm n'a pas été positionné encore
      $alarm_value = 0;
      $alarm_text = "";
     } else {
      // récupération de la valeur de l'alarme
      $tabalarm = getValue($apialarm, true);
      $alarm_value = $tabalarm["value"];
      $alarm_text = $tabalarm["value_text"];
        list($heurealarm, $minutealarm) = sscanf($heurenum, "%d:%d");
        $alarm_gmt=$heurealarm*60+$minutealarm;
        list($heure, $minute) = sscanf($alarm_text, "%d:%d");
        $heure_gmt=$heure*60+$minute;
        $deltatime=$alarm_gmt-$heure_gmt;// en minutes
           // test si réveil sonne
      if ($jouralarm && ($delta_time>=0) && (($alarm_text == $heurenum) || ($deltatime <5))) {
         $reveil = 1;      
              }
     }

   $xml .= "<REVEIL>";
    $xml .= "<ALARM>".$reveil."</ALARM>";
    $xml .= "<DELTATIME>".$deltatime."</DELTATIME>";
   $xml .= "<HORLOGE>".$heurenum."</HORLOGE>";
   $xml .= "<HORLOGEL>".$heurelit."</HORLOGEL>";
    $xml .= "<CALENDRIER>".$calendriernum."</CALENDRIER>";
   $xml .= "<CALENDRIERL>".$calendrierlit."</CALENDRIERL>";
   $xml .= "<DAY>".$currentday."</DAY>";
   $xml .= "<MONTH>".$currentmonth."</MONTH>";
    $xml .= "</REVEIL>";
   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 : 731
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 : Google [Bot] et 13 invité(s)