Cache... et là le serveur http de domoticz gère globalement et se fout même des directives qu'on peut indiquer dans une page custom. Pas trouvé de solution propre a ce pb, peut-être plus vaste/global.
Vu que c'est un script qui contrôle, cela peut aussi venir de l'event system de domoticz qui fait le scheduling: Par exemple la MAJ de compteurs d'énergie virtuels direct de Lua peut d'expérience poser des pb que l'on n'a pas avec la même action via l'api http/json et cette action directe peut elle même moins mal fonctionner si réalisée via un 'OpenURL' avec une commande "postée" classiquement à l'event system via le commandArray (=> va faire re-trigger immédiatement le script attaché au matos si de type device, ce qui ne sera pas voulu).
Si la commande HTTP/JSON est préparée au préalable dans une chaine cmd, par exemple, substituer l'OpenURL (ici commentée) par un appel à la commande curl (on peut faire un check du OK dans le JSON retourné sans même le parser précisément si on se fout du reste du résultat, ce qui est fait ici):
Code : Tout sélectionner
-- OpenURL (being async) may trigger multiple events if base HW retriggers before API call is processed => use curl.
-- table.insert (commandArray, { ['OpenURL'] = cmd } )
config = assert(io.popen('curl --retry 1 --connect-timeout 1 -m 3 \"'..cmd..'\"'))
result = config:read('*all')
-- Returned JSON format : {"status" : "OK","title" : "Update Device"}
config:close()
if not string.find(tostring(result), "OK") then
print('ERROR : '..cmd)
print('ERROR : updateNum/useHttpApi returned '..tostring(result))
end