Aller au contenu
MAM78

HC2 Waze Calculator multi-itinéraires

Recommended Posts

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.

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
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

Partager ce message


Lien à poster
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 ?

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
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

Partager ce message


Lien à poster
Partager sur d’autres sites

Non il veut dire qu il y a une autre méthode pour redémarrer une scène

Partager ce message


Lien à poster
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

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres sites

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 ?

Partager ce message


Lien à poster
Partager sur d’autres sites

J avais mis automatique.
Je suis au US la. Je test en rentrant.

Partager ce message


Lien à poster
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)

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Désolé, mais là je suis un peu largué. Tu peux m'explique ce que fait le pcall. Je suis encore junior en LUA ;)

Partager ce message


Lien à poster
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

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
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.

Partager ce message


Lien à poster
Partager sur d’autres sites

Hello

De retour, quelle est la derniere version de la scene ?

ca bug toujours ?

Partager ce message


Lien à poster
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 ?

Partager ce message


Lien à poster
Partager sur d’autres sites

non je mets rarement les betas ... 

@lazer peut peut être aider pour le watchdog ? pour faire un restart de la scene ?

Partager ce message


Lien à poster
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 !!!!!!

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres sites

Moi, j'ai intégrer le code de @Titof_44 indiqué ci-dessous mais ça ne marche pas :(

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

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.

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres sites

×