Non, ca doit etre que mon truc de log est mal configuré…
PHP Notice: Undefined index: action_label_liee in /var/www/html/plugins/sequencing/core/class/sequencing.class.php on line 660
=> trop galère à corriger pour pas grand chose, je laisse comme ça (c’est un cache qui utilise plusieurs champs dans son nom pour être sur d’être unique, donc si c’est pas action_label qui est vide ça sera action_label_liee…)
PHP Notice: Undefined index: action_label_liee in /var/www/html/plugins/sequencing/core/class/sequencing.class.php on line 737
=> idem
PHP Notice: Undefined index: action_label_liee in /var/www/html/plugins/sequencing/core/class/sequencing.class.php on line 738
=> corrigé (enfin… j’ai viré le log entier…)
Je suis en train de tester la dernière version, c’était bien galère ! Maintenant on peut tester une condition sur la durée et plus de tout le reste.
Genre : Température comprise entre x et y pendant plus de 30 min
(Mais c’est soit sur une durée, soit une répétition de valeur, on peut pas dire "température entre x et y pendant 30 min, 3 fois dans la journée…)
Et il faut évidemment que je refasse (encore…) la doc avec la nouvelle mise en page !
Edit : nouvelle beta en ligne, mes tests sont ok, par contre je ferai la doc demain ! Changelog de cette beta @Theduck38, tu peux tester les différents types de triggers et conditions et me dire si ca correspond bien au comportement qu’avait PLC ou en tout cas à ce que t’avais en tête quand tu me les as demandés ? Merci !
Je regarde pour adapter la regex avec la chaine qui pose problème. Pour les apostrophe, je suis pas certain qu’on arrive à faire quelque chose, c’est le même caractère que la simple quote …
C’est peut-être la faute de mon clavier (Allemand…), pour faire des accents il me faut 2 touches : d’abord je choisi l’accent et puis la lettre…
Si celui là /%([\w\sÀ-öø-ÿ-]*)%/ passe bien aussi chez toi pour cette séquence je pense prendre plutôt celui là et interdire les apostrophes (françaises ou allemandes…)
Je ferai un essai après la mise à jour, possible qu’il ya ait aussi une différence entre php7.0 et mon php7.3
Si jeedom n’est pas d’accord, il va falloir faire avec… celle-ci fonctionne ici. ça permettra de mettre tous le monde au même niveau
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