Modification du plugin "Horloge"

Ceci suppose que vous avez déjà intégré les mini-didacticiels précédents

Que faut il ajouter ?

Que faut il modifier ?

Essentiellement le Json, on a déjà notre script modifié en principe.

Principe

Le Json "Horloge" ne comporte pas de paramètres, donc pas d'entrée, on va donc lui ajouter les 2 choix, non exclusifs, donc simplement avec des cases à cocher ! (on aurait pu utiliser une liste, mais dans ce cas, le choix aurait été exclusif).
Puis une autre entrée "device" correspondant à notre heure formatée en hh:mm:ss
Notez que le script modifié implique un changement du XPath (nous lui avons supprimé les tags "root")

Modification du device existant

Nommez le DEVICE (l'utilisateur pourra en changer le nom ensuite)
"name_fr": "Horloge",
changez le XPath (accès direct avec la double barre)
remplacez /root/time/heure par //heure

ajout du nouveau device

copiez/collez le device existant pour le dupliquer : ATTENTION, les 2 devices doivent être séparés par une virgule. La copie concerne, puisqu'il n'y a qu'un device, tout ce qui se trouve entre les crochets, puis modifiez comme suit:
, {
"device_id": "heure",
"module_id": "51",
"type": "http",
"name_fr": "Heure",
"icon": "heure.png",
"utilisation_id": "35",
"parameters": {
"value_type": "string",
"ignore_errors": 3,
"RAW_URL": "http://localhost/script/?exec=horloge.php",
"RAW_XPATH": "//horloge",
"POLLING": "1"
}
}
NB heure et horloge sont intervertis dans le XPath, pour respecter le plugin original, mais à ce stade, vous pouvez rétablir la cohérence, dans ce cas, il faudra modifier le script en conséquence. Comme exercice, vous pouvez éventuellement aussi créer un deuxième script en laissant l'original intact ! dans ce cas, vous ne traiterez que le script Heure (hh:mm:ss) que vous appelerez dans la ligne concernée. Si vous procédez ainsi, il faudra donc AUSSI indiquer le 2ème script, dans la section "scripts": [.../... en n'oubliant pas la virgule de séparation.

ajout des paramètres

il s'agit des cases à cocher : elles comporteront leur commentaire, la syntaxe d'une se fait comme suit :
{
"parameter": "box_horloge",
"description": "je veux créer une horloge (hmm) :",
"xtype": "checkbox",
"field": "style: 'margin-top: 6px;', checked: true"
}
vous insérez donc ce paramètre entre les crochets de l'entrée "parameters": [], (le principal ! celui qui se trouve après "forum_link" et pas un de ceux qui concerne les devices) !

Donc l'autre sera (et on n'oublie pas la virgule qui les sépare !)

.../...
}
,
{
"parameter": "box_heure",
"description": "je veux créer un affichage de l'heure (hh:mm:ss) :",
"xtype": "checkbox",
"field": "style: 'margin-top: 6px;', checked: true"
}

conditionnement de la création des devices à l'entrée "case à cocher"

Il faudra à nouveau modifier les 2 entrées "devices": [.../... ! cette fois-ci en ajoutant une instruction "create" qui se réalisera en cas de coche : si la case est cochée, l'expression devient true et le device sera créé, on ajoute donc,

"create":"plugin.parameters.box_horloge",
et respectivement
"create":"plugin.parameters.box_heure",

(notez la syntaxe d'appel plugin.parameters.nom_du_paramètre, que vous pouvez placer juste àprès la définition du device_id

"device_id": "horloge",
"create":"plugin.parameters.box_horloge",
"device_id": "heure",
"create":"plugin.parameters.box_heure",
Voila, je ne vous ai pas maché le travail volontairement pour que vous ajoutiez/corrigiez pas à pas ce Json, mais après avoir contrôlé sa syntaxe (pas d'oubli de virgule ? de guillemet ? d'accolade ?...), il suffit de rezipper tout ça pour tester votre beau plugin...