Je rencontre un problème que je n'arrive pas à m'expliquer et ça fait plusieurs heures que je fais des tests dans tous les sens :
A l'intérieur d'un script, je cherche à mettre à jour une variable Domoticz et à réutiliser cette variable une fois modifiée (besoin lié à l'utilisation de cette variable dans un script php externe).
Or lorsque je modifie la variable via la commande :
- commandArray['Variable:Ma_Variable'] = tostring(1)
...je la vois bien prendre la valeur 1 une fois sortie du script, mais si je cherche à l'afficher à l'intérieur du script juste à la suite de la mise à jour précédente via la commande :
- print(tonumber(uservariables['Ma_Variable'])
Elle n'est pas mise à jour...
Exemple, en mettant la variable à 0 dans Domoticz avant l'execution du script, j'obtiens dans la log Domoticz lors de l'execution du code suivant :
Code : Tout sélectionner
commandArray = {}
commandArray['Variable:Ma_Variable'] = tostring(1)
print(tonumber(uservariables['Ma_Variable'])
commandArray['Variable:Ma_Variable'] = tostring(2)
print(tonumber(uservariables['Ma_Variable'])
commandArray['Variable:Ma_Variable'] = tostring(3)
print(tonumber(uservariables['Ma_Variable'])
return commandArray Le résultat :
- 0
0
0
Et lorsque je regarde après l'execution du script dans Domoticz, la variable a bien pris la dernière valeur et est affichée à 3
J'ai essayé de mettre un délai entre chaque mise à jour / affichage au cas où il faille un petit instant entre l'ordre et la mise à jour mais ça ne change rien
Quelqu'un a-t-il une explication ? (la variable n'est elle par exemple mise à jour qu'à l'execution du return commandarray à la fin du script et si oui, y-a-t-il une commande pour la mettre à jour avant la fin du script ?).
Merci d'avance pour votre aide !
Très bonne soirée !
- NB: j'ai essayé en faisant une mise à jour via l'API JSON et la commande :
- commandArray['OpenURL']='http://192.168.0.13:8080/json.htm?type= ... 0&vvalue=5'
...même résultat (variable mise à jour à la sortie du script mais pas à l'intérieur)