Plugin Séquencement d’actions --> Nouveau plugin pour Beta-tests!

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 ?)

Oui ça correspondra plus au cas d’usage que SeniorCare

Tu dois être la première à permettre à tes utilisateurs d’essayer ton plugin avant de l’acheter, Bravo !!!

1 « J'aime »

Bonjour,

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é

RAS dans les autres logs.

Voilà ma config :

Ok, corrigé…

j’avais laissé les même nom pour les onglets de déclencheurs et déclencheurs d’annulation, donc ça interférait…

Nouvelle beta dispo avec la correction !

Hello,

Petite suggestion pour la prochaine version :

En ligne 492 :

        } 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

ok, corrigé (chez moi, je vais pas lancer une beta pour ca !)

Salut,

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 le seul onglet comme ça d’ailleurs

PS machine et sèche linge branchés

C’est fait :


Effet secondaire (les 2 trames sont liées), j’ai du raccourcir un peu le champs « label » des actions :

D’autres trucs ?

(dispo sur le market en beta, avec la correction d’hier)

1 « J'aime »

Non, c’est vraiment les dernières optimisations je pense

Ok super ! Finalement cette « stable v2 » m’aura prise plus de temps que la première version ! :joy:

@Theduck38, plus de commentaires de ton coté non plus où tu veux un peu plus de temps pour tester ?
Tu me donnes le go et je la passe en stable !

Merci beaucoup à tous les 2 en tout cas pour tous ces tests et le temps passé à améliorer ce plugin ! :blush:

Certes, mais niveau fonctionnalités, c’est un cran au dessus aussi…

J’me suis bien amusé moi :face_with_hand_over_mouth:

1 « J'aime »

Hello,
Laisse moi encore une journée pour quelques tests STP

Pas de soucis prend ton temps ! Dis moi quand c’est good !

Bon, je viens de refaire des tests sur les séquencements, sans arriver à trouver de problème… j’ai trituré les virtuels dans tous les sens.

Je pense que les retours viendront des utilisateurs, maintenant. Félicitations pour ce beau plugin !

:+1:

Merci !
Voilà je viens de mettre la stable en v2 sur le market !! :smile:

Salut,

Un c’hiot nouveau warning :innocent:

PHP Warning:  date() expects parameter 2 to be int, string given in /var/www/html/plugins/sequencing/core/class/sequencing.class.php on line 218

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 ! :slightly_smiling_face:

Salut @agp.com

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

Pour le reste ça marche impec

Salut @naboleo,

Ok, c’est ajouté en beta ! Merci !

Bonne nouvelle ! :blush: