J’ai donc pris /%([\w\sÀ-öø-ÿ-’]*)%/, en lui rajoutant l’apostrophe « française » que je n’ai pas sur mon clavier…
Nouvelle beta dispo avec cette correction et quelques debugs, mais surtout une bonne mise à jour de la doc.
J’ai fait une page séparée pour les exemples avec des copies d’écrans et explications : exemples.md
@naboleo, tu devrais pouvoir mettre ta machine à laver sur ce plugin au lieu de SeniorCare maintenant qu’il y a une détection de durée sur la condition ? Ton capteur de mouvement =0 (ou inférieur à x) pendant plus de xx min ?
Si vous avez des exemples à ajouter à la doc ca serait top !
Je vais faire un post dans la nouvelle section « Fils d’actualité » pour informer de toutes ces évolutions et de la sortie imminente de la stable v2.0.0 (ce dimanche ?)
J’ai lancé quelques tests entre tonte du jardin et débroussailleuse…
J’ai un souci avec la sauvegarde de la parte « Séquencement » : je mets une formule, je mets un temps max, je sauve, et les deux cases sont vides…
J’ai essayé de recréer un équipement, mais c’est pareil.
J’ai essayé sur Chrome, à tout hasard… mais pareil.
Voici le log :
[2020-05-09 15:04:58][DEBUG] : [Aucun][Test séquence 2] - Fct cleanAllDelayedActionsCron
[2020-05-09 15:04:58][DEBUG] : [Aucun][Test séquence 2] - Boucle de $jsSensors : key : trigger
[2020-05-09 15:04:58][DEBUG] : [Aucun][Test séquence 2] - Boucle de $jsSensors : key : trigger_cancel
[2020-05-09 15:04:58][DEBUG] : [Aucun][Test séquence 2] - Fct cleanTriggersListener
[2020-05-09 15:04:58][DEBUG] : [Aucun][Test séquence 2] - Fct cleanLaunchAndCancelSequenceCron
[2020-05-09 15:04:58][DEBUG] : [Aucun][Test séquence 2] - Fct cleanAllTriggersCron
[2020-05-09 15:04:58][DEBUG] : [Aucun][Test séquence 2] - Fct cleanAllDelayedActionsCron
[2020-05-09 15:04:58][DEBUG] : [Aucun][Test séquence 2] - Fct cleanAllTriggerCheckDelayedCron
[2020-05-09 15:04:58][INFO] : [Aucun][Test séquence 2] - Sauvegardé
[2020-05-09 15:05:36][DEBUG] : [Test2][Test séquence 2] - Fct cleanAllDelayedActionsCron
[2020-05-09 15:05:36][DEBUG] : [Test2][Test séquence 2] - Boucle de $jsSensors : key : trigger
[2020-05-09 15:05:36][DEBUG] : [Test2][Test séquence 2] - Capteurs sensor config lue, nom : Truc1 - cmd : #24#
[2020-05-09 15:05:36][DEBUG] : [Test2][Test séquence 2] - Boucle de $jsSensors : key : trigger_cancel
[2020-05-09 15:05:36][DEBUG] : [Test2][Test séquence 2] - New Capteurs config : type : trigger, name : Truc1, cmd : #24#
[2020-05-09 15:05:36][DEBUG] : [Test2][Test séquence 2][Truc1]-> 1
[2020-05-09 15:05:36][DEBUG] : [Test2][Test séquence 2] - Fct cleanTriggersListener
[2020-05-09 15:05:36][DEBUG] : [Test2][Test séquence 2] - set Listener pour déclencheur :[Test2][Test séquence 2][Truc1] - sur l'event : #24#
[2020-05-09 15:05:36][DEBUG] : [Test2][Test séquence 2] - CRON programmation existe pas, et on a pas de programmation => on fait rien
[2020-05-09 15:05:36][DEBUG] : [Test2][Test séquence 2] - CRON programmation_cancel existe pas, et on a pas de programmation => on fait rien
[2020-05-09 15:05:36][DEBUG] : [Test2][Test séquence 2] - Fct cleanAllTriggersCron
[2020-05-09 15:05:36][INFO] : [Test2][Test séquence 2] - Sauvegardé
[2020-05-09 15:06:17][DEBUG] : [Test2][Test séquence 2] - Fct cleanAllDelayedActionsCron
[2020-05-09 15:06:17][DEBUG] : [Test2][Test séquence 2] - Boucle de $jsSensors : key : trigger
[2020-05-09 15:06:17][DEBUG] : [Test2][Test séquence 2] - Capteurs sensor config lue, nom : Truc1 - cmd : #24#
[2020-05-09 15:06:17][DEBUG] : [Test2][Test séquence 2] - Capteurs sensor config lue, nom : Truc2 - cmd : #31#
[2020-05-09 15:06:17][DEBUG] : [Test2][Test séquence 2] - Boucle de $jsSensors : key : trigger_cancel
[2020-05-09 15:06:17][DEBUG] : [Test2][Test séquence 2] - New Capteurs config : type : trigger, name : Truc2, cmd : #31#
[2020-05-09 15:06:17][DEBUG] : [Test2][Test séquence 2][Truc2]-> 1
[2020-05-09 15:06:17][DEBUG] : [Test2][Test séquence 2] - Fct cleanTriggersListener
[2020-05-09 15:06:17][DEBUG] : [Test2][Test séquence 2] - set Listener pour déclencheur :[Test2][Test séquence 2][Truc1] - sur l'event : #24#
[2020-05-09 15:06:17][DEBUG] : [Test2][Test séquence 2] - set Listener pour déclencheur :[Test2][Test séquence 2][Truc2] - sur l'event : #31#
[2020-05-09 15:06:17][DEBUG] : [Test2][Test séquence 2] - CRON programmation existe pas, et on a pas de programmation => on fait rien
[2020-05-09 15:06:17][DEBUG] : [Test2][Test séquence 2] - CRON programmation_cancel existe pas, et on a pas de programmation => on fait rien
[2020-05-09 15:06:17][DEBUG] : [Test2][Test séquence 2] - Fct cleanAllTriggersCron
[2020-05-09 15:06:17][INFO] : [Test2][Test séquence 2] - Sauvegardé
[2020-05-09 15:08:06][DEBUG] : [Test2][Test séquence 2] - Fct cleanAllDelayedActionsCron
[2020-05-09 15:08:06][DEBUG] : [Test2][Test séquence 2] - Boucle de $jsSensors : key : trigger
[2020-05-09 15:08:06][DEBUG] : [Test2][Test séquence 2] - Capteurs sensor config lue, nom : Truc1 - cmd : #24#
[2020-05-09 15:08:06][DEBUG] : [Test2][Test séquence 2] - Capteurs sensor config lue, nom : Truc2 - cmd : #31#
[2020-05-09 15:08:06][DEBUG] : [Test2][Test séquence 2] - Boucle de $jsSensors : key : trigger_cancel
[2020-05-09 15:08:06][DEBUG] : [Test2][Test séquence 2] - Fct cleanTriggersListener
[2020-05-09 15:08:06][DEBUG] : [Test2][Test séquence 2] - set Listener pour déclencheur :[Test2][Test séquence 2][Truc2] - sur l'event : #31#
[2020-05-09 15:08:06][DEBUG] : [Test2][Test séquence 2] - set Listener pour déclencheur :[Test2][Test séquence 2][Truc1] - sur l'event : #24#
[2020-05-09 15:08:06][DEBUG] : [Test2][Test séquence 2] - CRON programmation existe pas, et on a pas de programmation => on fait rien
[2020-05-09 15:08:06][DEBUG] : [Test2][Test séquence 2] - CRON programmation_cancel existe pas, et on a pas de programmation => on fait rien
[2020-05-09 15:08:06][DEBUG] : [Test2][Test séquence 2] - Fct cleanAllTriggersCron
[2020-05-09 15:08:06][INFO] : [Test2][Test séquence 2] - Sauvegardé
} else if(isset($trigger['condition_duree']) && $trigger['condition_duree'] != '' && is_numeric($trigger['condition_duree'])){ // si on doit évaluer nos conditions sur la durée de cette valeur
au lieu de
} else if($trigger['condition_duree'] != '' && is_numeric($trigger['condition_duree'])){ // si on doit évaluer nos conditions sur la durée de cette valeur
Bon j’ai pas eu beaucoup plus de succès avec la regex « super large »… mais comme ça marche pour le moment…
Sinon dans la prochaine version, une petite amélioration cosmétique est à envisager
Dans l’onglet "actions d’annulation"écaler les zones vers la gauche pour gagner un peu de place d’affichage à droite
C’est une valeur en cache pour écrire dans un log… Le cache doit pas encore être initialisé donc il est en « » alors qu’on attend un timestamp de sa part… Dés sa première valeur « valide » il sera ok et ce c’hiot warning n’apparaîtra plus !
Chez moi j’ai corrigé un warning de plus (2 en réalité, produits en ligne 720 et 777) à defaut de chercher à récupérer une valeur vide par défaut depuis la config
--- /var/www/html/plugins/sequencing/core/class/sequencing.class.php. 2020-06-13 16:01:01.715542056 +0200
+++ /var/www/html/plugins/sequencing/core/class/sequencing.class.php 2020-06-13 16:12:02.037150752 +0200
@@ -713,6 +713,9 @@
log::add('sequencing', 'debug', $this->getHumanName() . '################ Exécution de l\'action *sans label ou sans label de référence* ############');
}
+ if(!isset($action['action_label'])){
+ $action['action_label']='';
+ }
$now = time();
if(isset($action['action_time_limit']) && $action['action_time_limit'] != '' && is_numeric($action['action_time_limit'])){ // si on veut limiter la fréquence d'exécution