Aller au contenu

HC2 Waze Calculator multi-itinéraires


MAM78

Messages recommandés

la seule solution que je connaisse est le reboot de la box.

Pour plus d'infos, regarde le topic du watchdog, on en a parlé pas mal il y a quelques temps. Je crois que @Sebcbien avait fait des tests poussés.

 

EDIT : le bug dont je parle, c'est que quand l'instance d'une scène démarrée automatiquement (AUTOSTART) plante, alors il est impossible de la redémarrer autrement qu'en rebootant la box.

Cela ne concerne pas les autres instances de la scène, démarrées Manuellement ou sur Trigger.

Lien vers le commentaire
Partager sur d’autres sites

J'ai retravaillé le scène en corrigeant la structure de la requête afin qu'elle ressemble à ça :

http:request(query, {

success = function(p)
  -- traitement des données
end,

error = function(err)
    -- traitement des erreurs
end,
options = {
        method = 'GET',
        headers = {["Content-Type"] = "application/json"},
        data = body}
})

et surtout en veillant de bien mettre une virgule après les "end," de chaque sections (success et error) de la requête.

 

Du coup, j'ai beaucoup moins de plantage, mais il y en a encore quand-même :15:

C'est curieux que cela a une influence sur la fréquence des plantage. J'ai l'impression que le problème des ces plantages soit lié à la structure de la requête.

 

Pourriez-vous m'indiquer quelle est la façon de structurer cette requête ?

 

Voici la dernière version de la scène : HC2 Waze Calculator Scene Itinéraire 3 V1.1.4.LUA

Modifié par MAM78
Lien vers le commentaire
Partager sur d’autres sites

Effectivement lorsque la scène est plantée le Stop/Start ou la sauvegarde de la scène fonctionne bien manuellement.

 

Par contre en automatique via Watchdog, il indique bien la détection du plantage et le redémarrage de la scène (voir ci-dessous), sauf qu'il n'y arrive pas malgré que que la scène soit en mode lancement manuel.

 

[DEBUG] 20:27:12: Check : type=Scene id=18
[DEBUG] 20:27:12: Scene(18) 0 running instance
[DEBUG] 20:27:12: Restart Scene(18)
[DEBUG] 20:27:12: Scene(18) successfully restarted
[DEBUG] 20:27:12: Notification : Watchdog : Scene "Waze Calculator Itin" (18) a été redémarré

Est-ce qu'il existe une possibilité de faire Stop/Start via WatchDog lorsqu'il détecte que la scène est plantée ?

Lien vers le commentaire
Partager sur d’autres sites

il y a 8 minutes, pepite a dit :

Oui va voir le topic watchdog. Titof a donne la fonction, dans mes souvenirs c'est function restart2. A rajoute ds le codedu watchdog.
Ce qui est bizarre c'est que j'utilise l'original Waze et aucun plantage

Tu veux dire que chez toi lorsque la scène plante elle est relancée automatiquement par Watchdog ?

En attendant, tu devrais prendre la nouvelle version, elle plante beaucoup moins ;)

Attention de bien ajouter les nouvelles variables dans la partie Users Data

 

Modifié par MAM78
Lien vers le commentaire
Partager sur d’autres sites

J'ai bien trouvé le post de Tito au sujet du Stop/Start

 

https://www.domotique-fibaro.fr/topic/6472-watchdog-pour-scã¨nes-et-modules-virtuels/?do=findComment&comment=138797

httpClient:request("http://127.0.0.1:11111/api/sceneControl?id="..id.."&action=stop")
fibaro:sleep(1000)
httpClient:request("http://127.0.0.1:11111/api/sceneControl?id="..id.."&action=start")

Mais ou dois-je mettre ce bout de code ?

Modifié par MAM78
Lien vers le commentaire
Partager sur d’autres sites

p'tite question, un simple pcall() ne pourrait-il pas ignorer l'erreur jusqu'à la prochaine requête au lieu de planté le tout ?

 

Exemple :

  setTimeout(function()
    pcall(function() GetWazeData(idx) end)
    end, params[idx].pollingMs)

 

Lien vers le commentaire
Partager sur d’autres sites

Si j'ai bien compris la fonction pcall permet d'intercepter une erreur afin que celle-ci ne fasse pas planter la scène.

 

J'ai intégré ta suggestion de la façon suivante. Est-ce que cela te semble correct. @Steven

 

  -- Polling
  setTimeout(function()
    local ok = pcall(function() GetWazeData(idx) end)
    if not(ok) then
        Debug("orange","Erreur dans le pooling de la recherche d'itinéraire")
    end
    end, params[idx].pollingMs)

 

Est-ce qu'il faut faire le pcall sur la fonction GetWazeData ou sur l'instruction qui fait semble faire planter la scène, à savoir :

 

http:request(query, {
      
    success = function(p)
....

 

Modifié par MAM78
Lien vers le commentaire
Partager sur d’autres sites

Idem, j'ai essayé que ce soit de façon globale sur la fonction GetWazeData ou que ce soit sur l'instruction http:request

 

Ca gave vraiment ce bug. D'autant que je n'arrive pas à faire un stop/start automatique de ma scène avec le Wathdog.

Lien vers le commentaire
Partager sur d’autres sites

Salut @Sakkhho,

 

Oui elle plante toujours et je n'arrive toujours pas à la relancer avec Watchdog :(

 

Je n'ai pas essayé la beta 4.111 (j'ose pas pour le moment, certain ont eu des problèmes) notamment avec les nouvelles télécommandes KeyFob.

 

Si tu l'as chargé, tu pourrais essayer STP ?

Lien vers le commentaire
Partager sur d’autres sites

bah non, pour moi c'est un bug de l'API dans la HC2, comme déjà expliqué plein de fois, le watchdog ne peut rien y faire, car il se base sur cette API bugguée.

 

Je n'ai jamais compris les quelques uns pour qui la méthode de contournement fonctionne chez eux, comme toujours avec Fibaro, personne n'a la même box !!!!!!

Lien vers le commentaire
Partager sur d’autres sites

×
×
  • Créer...