Forum eedomus
https://forum.eedomus.com/

Inclure les IF dans le JSON
https://forum.eedomus.com/viewtopic.php?f=13&t=9480
Page 1 sur 1
Auteur:  thrymartin [ 05 Avr 2020 09:18 ]
Sujet du message:  Inclure les IF dans le JSON

NB : je me sers de https://jsoneditoronline.org pour tester et surtout écrire les json et cela accepte toutes les possibilités, même celles qui ne sont pas comprises par l'Eedomus
et dont j'aimerai bien qu'elles y figurent.


SI l'équipe Eedomus voulait bien faire en sorte que les conditionnels if/then/else soient pris en compte pour les json, ça deviendrait bysance, puisqu'on pourrait faire des installations conditionnelles autrement qu'avec une case à cocher ou une position dans une liste qui ne permet pas grand chose de personnalisé :

je donne un exemple : (impossible à réaliser autrement, il faudrait pour cela soit les if then else, soit inclure aussi les AND, OR etc. dans les conditionnels de create : pour effectivement lister tous les cas et interdire les choix contradictoires - Ce serait bien aussi que ce soit inclus d'ailleurs)

j'ai suivi la syntaxe d'un json, puisque évidemment, le conditionnel existe... mais ailleurs
alors ça ne provoque pas de message d'erreur, mais "if" "then" "else" sont tout simplement ignorés ! donc ça ignore carrément cette partie de code.

soit une case à cocher: un périphérique Master (qui doit être créé que s'il n'existe pas)
et si pas coché, combo : choix dans une liste de périphériques (json/list...)
et une case à cocher Capteur de création d'un périphérique

à la place d'un simple

device :
create selon check box Master (sinon c'est qu'il existe deja, la liste doit pointer dessus)
...
device :
create selon checkbox Capteur
et la ... on est coincé puisqu'on ne peut différencier si Master existait ou si on vient de le créer
(le nom de PARENT n'est pas le même !)

sauf si on avait ceci (qui ne provoque pas d'erreur) fonctionnel :
(je mets des // commentaires, même si c'est interdit, juste pour ici)

à l'endroit ou on aurait le
"parent_id": .... // qui serait différent selon le choix de création ou choix dans la liste

"if": {
"plugin.parameters.Master": true // si on crée le périphérique maître
},
"then": {
"parent_id": "celui créé" // alors c'est lui le parent
},
"else": {
"parent_id": "plugin.parameters.celui choisit dans la liste" // sinon, c'est celui de la liste
},

même la, il manque quand même aussi le cas ou l'utilisateur fait une erreur et qu'il ne crée pas ET qu'il n'y ai rien qui convienne dans la liste (qu'elle soit vide) - avec if ... ça pourrait se tester aussi
Page 1 sur 1 Le fuseau horaire est UTC+1 heure