Posez ici vos questions d'utilisation, de configuration de DomoticZ, de bugs, de conseils sur le logiciel lui même dans son utilisation et son paramétrage.
Des forums spécifiques sont ouverts ci-dessous pour regrouper les différents sujets.
Je me demandais si ce n'était pas possible d'avoir une gestion d'erreur pour le openURL et d'ignorer ces rares fois où ça déconne? ou ignorer complet les erreurs avec openurl?
Dsl si la question a déjà été posée ^^
Merci bcp.
local status, err = pcall(function()
dz.openURL({
url = "https://digital.iservices.rte-france.com/open_api/ecowatt/v5/signals",
method = 'GET',
headers = { ['Content-Type'] = 'application/soap+xml;charset=UTF-8', ['Authorization'] = 'Bearer '..dz.data.access_token.get(1).data},
callback = callbackData, } )
end)
if not status then
Display_Message('Error opening url rte...')
end
L'idée c'était d'éviter une erreur dans les logs, mais d'avoir plutôt un simple message
Je vois d'ailleurs que today ça fail toutes les 2H.
Si quelqu'un a une idée pour améliorer ce code je suis preneur ^^
Merci.
elseif (item.isHTTPResponse) then
if (item.trigger == callbackAuth) then
...
elseif (item.trigger == callbackData) then
if (item.statusCode == 200) then
...
end
Donc "item.statusCode == 200" c'est pareil que "if item.ok" ?
Mais pour moi l'erreur c'est au moment de la requete (dz.openURL?) qu'il faut la gérer,
ou alors j'ai mal compris le fonctionnement avec dz.openURL et le callback ^^
Je voudrais juste éviter que ça me sorte des erreurs dans les logs pour juste ce script, et les rempalcer par de "l'info".
Merci
Le principe du dz.openURL est de déclencher l'ouverture d'un lien web. Le CallBack est le nom que tu donnes aux données en retour.
Le httpResponses = {"Nom du callback"} permet de relancer le script avec la variable item contenant le retour de l'ouverture du lien web. Et c'est, dans ce deuxième temps, que tu dois pouvoir vérifier les codes erreurs.
elseif (item.trigger == callbackData) then
if (item.statusCode == 200) then
...
elseif (item.statusCode == 429) then
...
elseif (item.statusCode == 500) then
...
else
...
Mais jamais il ne tombe dans le else quand il fail à l'exécution du dz.openURL quand l'url est unreachable:
@Keros, oui j'ai des prints, mais ils ne s'affichent pas car c'est dzvents qui remonte l'erreur comme le confirme Neutrino (merci, je pensais m'être mal exprimé ^^)
Donc comme c'est bien le dz.openURL qui fait remonter une erreur dzvents, d'où l'idée d'utiliser pcall car si j'ai bien compris ça doit pouvoir gérer les erreurs normalement? Je l'utilise très certainement mal ou il y a d'autres solutions?