Page 1 sur 2
dzVents et openUrl
Publié : 28 févr. 2019, 20:01
par feanor
Bonjour,
J'ai un problème avec l'appel de la fonction openUrl de dzVents. Je veux activer la sortie d'un weemos D1 sous easyesp en fonction de certains paramètres (je sais que easyesp peut le faire de façon autonome mais je veux m'entrainer à écrire des scripts...).
Dans mon script j'appelle donc la fonction
Code : Tout sélectionner
domoticz.openUrl("http://192.168.0.192/control?cmd=GPIO,12,1")
mais systématiquement dans le log de domoticz j'ai l'erreur "attempt to call field 'openUrl' (a nil value)"
qu'est-ce qui coince ??? il faut fournir d'autres paramètres ? Je ne trouve pas vraiment de doc à ce sujet...
Re: dzVents et openUrl
Publié : 28 févr. 2019, 21:20
par papoo
il faut definir un callback
et ensuite attendre la réponse de ce callback pour continuer le script
exemple :
https://easydomoticz.com/forum/viewtopi ... 822#p58822
Re: dzVents et openUrl
Publié : 28 févr. 2019, 23:24
par feanor
J'ai donc remplacé comme dans ton exemple par
Code : Tout sélectionner
domoticz.openUrl({url="http://192.168.0.192/control?cmd=GPIO,14,1", callback='trigger'})
et j'obtiens toujours la même erreur : l'URL n'est pas appelée.
Comment je fais pour attendre le callback pour continuer ? Je suis par
Code : Tout sélectionner
if (item.isHTTPResponse and item.ok) then
domoticz.openUrl({url="http://192.168.0.192/control?cmd=GPIO,12,0", callback='trigger'})
end
?
J'ai testé et ça ne marche pas non plus...
Edit :
Je ne comprend vraiment pas comment fonctionne cette fonction. Dans la doc, c'est juste précisé
openURL(url/options): Function. Have Domoticz 'call' a URL. If you just pass a url then Domoticz will execute the url after your script has finished but you will not get notified.
J'avais plusieurs appels de la fonction, mais comme elle n'est sensée être appelée que lorsque le script est terminé, je n'en ai gardé qu'une pour tester... J'obtiens systématiquement le même résultat, comme si j'utilisais juste la fonction sans paramètres... J'ai testé toutes les lignes suivantes, j'obtiens systématiquement le même message d'erreur : il ne parvient pas à récupérer l'url à appeler...
Code : Tout sélectionner
domoticz.openUrl({url='http://192.168.0.192/control?cmd=GPIO,14,1'})
domoticz.openUrl('http://192.168.0.192/control?cmd=GPIO,14,1')
domoticz.openUrl({url='http://192.168.0.192/control?cmd=GPIO,14,1', callback='trigger'})
domoticz.openUrl({url='http://192.168.0.192/control?cmd=GPIO,14,1', method='GET'})
J'ai même testé domoticz.openUrl() tout seul, et j'ai la même erreur

Re: dzVents et openUrl
Publié : 01 mars 2019, 18:02
par papoo
escuse moi je t'ai orienté vers une fausse piste. le callback n'est que lorsque tu attend une info en retour de ta commande
un autre exemple sans callback
https://easydomoticz.com/forum/viewtopi ... 982#p65445
as tu essayé en ligne de commande sur la machine qui utilise ton script de lancer un curl sur cette url voir si la machine distante accepte la requete?
essai aussi de stocker ton url dans une variable puis d'appeler cette variable dans openurl
Re: dzVents et openUrl
Publié : 01 mars 2019, 18:28
par feanor
Cettte URL fonctionne très bien lorsqu'elle est appelée par exemple au changement d'état d'un switch, donc le module esp accepte bien les commandes venant de domoticz. Le problème est surtout qu'en l'état le script ne déclenche même pas d'appel de l'URL, il génère juste une erreur et le script s'arrête...
Pas de changement en stockant l'url dans une variable. Je ne comprend pas pourquoi la fonction interprète systématiquement la chaine de caractères que je lui passe en entrée comme null...
J'ai essayé aussi
Code : Tout sélectionner
url='http://192.168.0.192/control?cmd=GPIO,14,1'
domoticz.openUrl(tostring(url))
pas mieux...
Je suis à cour d'idée...
Re: dzVents et openUrl
Publié : 20 nov. 2020, 17:39
par Tirso
Je suis au même point. Avez-vous pu régler ce soucis?
Merci
Re: dzVents et openUrl
Publié : 20 nov. 2020, 18:44
par Keros
Regarde dans ma signature, j'ai écris quelques conseils à propos du débogage.
Postes nous ton script complet avec tes log. Mets des prints des éléments qui nous intéresse.
Re: dzVents et openUrl
Publié : 21 nov. 2020, 07:29
par Keros
Tiens, Denis vient de poster une
fonction que tu peux adapter pour ouvrir un lien web.
Re: dzVents et openUrl
Publié : 22 janv. 2021, 09:45
par Nass2
Bonjour à tous,
Je me permet de répondre à ce sujet car c'est le premier qui remonte quand on fait une recherche google "dzvents openurl" ou "dzVents attempt to call a nil value (field "'openUrl" ')" et que la réponse au problème n'y figure pas. (j'ai créé mon compte uniquement pour ça)
Le problème vient de l'utilisation de openUrl la bonne fonction est openURL (j'ai eu le même souci avant de trouver la solution sur un autre forum en anglais).
donc si je déterre le sujet désolé, mais celui est bien référencé.
Re: dzVents et openUrl
Publié : 22 janv. 2021, 12:33
par Keros
Bonjour Nass2 et bienvenue sur le forum
Le déterrage n'est pas si vieux, aucun soucis. Même au contraire, merci d'être venu pour partager l'info.
Ce serait donc une différence d'écriture entre
openUrl et
openURL qui expliquerait les soucis ?