23/05/2017, 18:04:07
Euréka !!!!
J'ai trouvé l'origine de l'erreur. Elle ne venait pas du script mais de la déclaration de la rule.
Lors de la création de la rule, l'élément déclencheur était la non-égalité de valeur entre 2 objets. Knxweb avait donc généré le xml suivant :
<condition type="object-compare" id="DT_EDF_TEST2" op="ne" value="DT_EDF_gachette" trigger="true" ></condition>
Or ce xml est pour la comparaison d'un objet avec une valeur et non pas la comparaison entre 2 objets.
Le xml de la condition aurait du être :
<condition type="object-compare" id="DT_EDF_TEST2" id2="DT_EDF_gachette" op="ne" trigger="true" ></condition>
Si je corrige manuellement le xml et que je reboote le PI tout se passe "tranquilou" et la rule ainsi que le script se déroulent ensuite normalement.
J'ai prévenu par mail Energy01 (l'auteur de knxweb) de ce bug mais pour le moment je n'ai pas de retour de sa part.
Attention si vous utilisez la comparaison entre objets comme condition dans une règle car même après avoir manuellement corrigé le bug, lors de la lecture suivante du xml, knxweb "re-corrige" de lui-même le id2 en value ce qui fait que lors de la sauvegarde de votre xml avec une nouvelle règle ou une règle modifiée, linknx va systématiquement planter à cause du bug décrit et non pas à cause de votre dernière modif.
Le perfectionnement de soi et l'accession à sa légende personnelle passe obligatoirement par le partage de son savoir et de son expérience avec les profanes en demande d'initiation. (R. Bach)