Aller au contenu

HC2 Waze Calculator multi-itinéraires


Messages recommandés

Posté(e)

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.

Posté(e)

Ce qui fonctionne avec le Waychdog pour l'autostart, on en parle dans le topic de
@Lazer

 c'est Titof je crois, avec un Stop, Start c'est OK. Testé chez moi, ca relance ma scène GEA sans souci

Posté(e) (modifié)

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
Posté(e)

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 ?

Posté(e)

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

Posté(e) (modifié)
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
Posté(e) (modifié)

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
Posté(e)

Regarde page 13 :-) il a mis la fonction et ou mettre le code, fonction restart2. Si tu trouves pas je te mettrai le code de mon watchdog

Posté(e)

Merci, j'ai intégré, je vais laissé tourner pour attendre un prochain plantage.

 

@Sakkhho pourrais-tu m'indiquer si tu as mis ma scène en manuel ou en automatique ?

Posté(e)

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)

 

Posté(e) (modifié)

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
Posté(e)

Laisse tomber le pcall() n'arrive pas traiter cette erreur, mon script, bien que protégé par le pcall, vient de planter.

Posté(e)

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.

Posté(e)

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 ?

Posté(e)

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 !!!!!!

Posté(e) (modifié)

J'ai déjà ajouté le code Stop/Start dans le WatchDog mais rien n'y fait. Ca ne veut pas redémarrer :(

Modifié par MAM78
Posté(e)

Perso, j'utilise GEA qui refresh la scène toutes les 10mn ainsi si ça ce casse la figure, c'est pas grave, ça redémarrera dans 10mn.

Posté(e) (modifié)

via un restartscene ? ou scenario ?

 

genre

    GEA.add(true, 10*60, "", {{"scenario", id["waze"]},{"Repeat"}})

 

tu peux poster ta ligne pour voir ? merci !

Modifié par Sakkhho
×
×
  • Créer...