HttpRemoteEvent / La dernière exécution du scénario ne s'est pas lancée

Bonjour

depuis les dernières mises à jour du core, j’ai de gros soucis de fonctionnement avec les scénarios basés sur HttpRemoteEvent.

J’utilise ce plugin pour pouvoir faire des webhooks.

Je l’utilise pour Volumio et pour Plex, je précise que ces deux cas fonctionnaient parfaitement auparavant.

Quand je regarde les log du plugin, les changements d’états de Plex ou de Volumio sont bien détectés.
Ex :
je lance la lecture d’une radio sur volumio ==> la payload est transmise 1 fois au plugin (visible dans le log)
Mon scénario prend pour déclencheur l’équipement payload correspondant.

et là mes scénario se bloquent complétement

Encore une fois avant les 2 dernières mises à jours tout fonctionnait parfaitement, même lorsque des appel multiples au scénario étaient fait (plusieurs payload en peu de temps)… jamais un soucis.

Pour information mon url de webhook est la suivante :

http://192.168.1.91/core/api/jeeApi.php?apikey=API_HTTPREMOTEEVENT&type=event&plugin=httpRemoteEvent&eqId=195&payload

Quand je regarde les log scenario_execution : c’est le vide sidéral.

Quelqu’un aurait il le même soucis que moi ou saurait d’où vient le problème?

D’avance merci de votre aide

Petite relance pour savoir si quelqu’un aurait une idée?

+1 j’ai le même soucis sur plusieurs scénarios déclenchés pas des events HttpRemote.
Les commandes sont biens mises à jour mais le scénario a l’écoute de ces changements de valeurs de commande sont en erreur avec la même raison … « la dernière exécution du scénario ne s’est pas déclenchée »

Moi égalment cela fonctionnait avant.
Dans mon cas toutes les infos sont sous forme de JSON …
J’ai remarqué une chose …mais il faut que je creuse … mais si dans le JSON y a un espace j’ai l’impression que l’erreur se produit … je vais faire des tests
@chris94440

Bonjour,

@chris94440 , @gormson
à partir de quelle version de Jeedom avez-vous rencontré ce pb?

Ah ça me rassure de pas être le seul.
Dans mon cas j’ai remarqué certaines choses peut être en lien avec ton observation :
Dans le log http.event j’ai ça

0493|[Thu Mar 03 17:27:39.098201 2022] [access_compat:error] [pid 29770] [client 192.168.1.63:57314] AH01797: client denied by server configuration: /var/www/html/plugins/httpRemoteEvent/doc, referer: http://192.168.1.91/index.php?v=d&m=httpRemoteEvent&p=httpRemoteEvent
0494|sh: 1: Syntax error: Unterminated quoted string
0495|sh: 1: Syntax error: Unterminated quoted string

pourtant en regardant la time line la variable arrive bien à un moment ou à un autre

et mon code est est le suivant

// On récupère le payload
$cmd = cmd::byString("#[Salon][Plex Webhooks][payload]#");
$postdata = $cmd->execCmd();

// On le décode
$postdata = utf8_encode($postdata);
$scenario->setLog('PostData :'.$postdata);
$results = json_decode($postdata);

// On récupère l'événement déclencheur: media.play, media.pause, media.stop, ...
$event = $results->event;
$scenario->setLog('Event: :'.$event);
$scenario->setData('PlexEvent', $event);

Sinon pour répondre à la question @chris94440 & @Ralph je pense que ça a commencé à déconner il y a 2 mises à jour, mais c’est dur à dire car il y en a eu pas mal de rapprochées.

Oui c’est à peu prêt cela
Je pense que cela proviens d’une mauvaise interprétation ou mauvais format du flux json…je pense avoir du temps pour regarder semaine pro

Super Merci beaucoup :heart_eyes:

pour aider au besoin, un exemple de payload telle qu’enregistrée dans le virtuel

"{"event":"media.stop","user":true,"owner":true,"Account":{"id":1,"thumb":"https://plex.tv/users/xxxxxxxx/avatar?c=xxxxxxxxx","title":"Gormson"},"Server":{"title":"NewGormBoxPlex","uuid":"wwwwwwwwwwwwwwwwwwwww"},"Player":{"local":false,"publicAddress":"11.111.111.111","title":"Salon","uuid":"920B1E1A-33F6-5050-8F6E-A2546D23AD6E"},"Metadata":{"librarySectionType":"show","ratingKey":"117538","key":"/library/metadata/117538","parentRatingKey":"104773","grandparentRatingKey":"104772","guid":"plex://episode/60464f040a01ff002dc58af8","parentGuid":"plex://season/602e77400f4bde002da4fe2f","grandparentGuid":"plex://show/5d9f410b68e4c8001fb6c916","type":"episode","title":"Coexistence","grandparentKey":"/library/metadata/104772","parentKey":"/library/metadata/104773","librarySectionTitle":"Séries TV - VO(STFR)","librarySectionID":3,"librarySectionKey":"/library/sections/3","grandparentTitle":"Boruto: Naruto Next Generations","parentTitle":"Season 1","originalTitle":"同居","contentRating":"TV-14","summary":"The Five Kage agree to place Kawaki under Naruto’s custody. Naruto takes Kawaki home, but he still refuses to open up to anybody. The atmosphere between Boruto and Kawaki, who fought each other before, turns threatening.","index":193,"parentIndex":1,"audienceRating":10.0,"viewCount":1,"lastViewedAt":1646433205,"year":2021,"thumb":"/library/metadata/117538/thumb/1639994848","art":"/library/metadata/104772/art/1632588224","parentThumb":"/library/metadata/104773/thumb/1636077658","grandparentThumb":"/library/metadata/104772/thumb/1632588224","grandparentArt":"/library/metadata/104772/art/1632588224","grandparentTheme":"/library/metadata/104772/theme/1632588224","duration":1500000,"originallyAvailableAt":"2021-04-04","addedAt":1617675418,"updatedAt":1639994848,"audienceRatingImage":"themoviedb://image.rating","Guid":[{"id":"tmdb://2776976"},{"id":"tvdb://8312805"}]}}"

Pour information, je vois que d’autres payload lancent carrément des tentatives d’exécution.
Ci dessous un extrait du log scenario_execution
ces lignes venant d’une autre payload (Volumio qui est un systeme audio)

0000|sh: 1: kHz,bitdepth:16: not found
0001|sh: 1: kHz,bitdepth:16: not found
0002|sh: 1: kHz,bitdepth:16: not found
0003|sh: 1: kHz,bitdepth:16: not found
0004|sh: 1: sh: 1: kHz,bitdepth:16: not foundkHz,bitdepth:16: not found
0005|sh: 1: kHz,bitdepth:16: not found
0006|sh: 1: kHz,bitdepth:16: not found
0007|sh: 1: kHz,bitdepth:16: not found
0008|sh: 1: kHz,bitdepth:16: not found
0009|sh: 1: kHz,bitdepth:16: not found
0010|sh: 1: kHz,bitdepth:16: not found
0011|sh: 1: kHz,bitdepth:16: not found
0012|sh: 1: kHz,bitdepth:16: not found
0013|sh: 1: kHz,bitdepth:16: not found
0014|sh: 1: sh: 1: kHz,bitdepth:16: not foundkHz,bitdepth:16: not found
0015|sh: 1: kHz,bitdepth:16: not found
0016|sh: 1: kHz,bitdepth:16: not found
0017|sh: 1: kHz,bitdepth:16: not found
0018|sh: 1: kHz,bitdepth:16: not found
0019|sh: 1: kHz,bitdepth:16: not found
0020|sh: 1: kHz,bitdepth:16: not found
0021|sh: 1: kHz,bitdepth:16: not found
0022|sh: 1: kHz,bitdepth:16: not found
0023|sh: 1: kHz,bitdepth:16: not found
0024|sh: 1: kHz,bitdepth:16: not found
0025|sh: 1: kHz,bitdepth:16: not found
0026|sh: 1: kHz,bitdepth:16: not found
0027|sh: 1: kHz,bitdepth:16: not found
0028|kill: (31155): No such process
0029|kill: (2525): No such process

Bonsoir,
suite a la mise a dispo d’un exemple de payload (sur discord) de la part de @gormson, j’ai pu faire quelques simulations (sur 4.3). Et le résultat est sans appel ! le scénario tombe en « demarrage » et ne bouge plus, ce qui créer une erreur lors d’un autre appel (La dernière exécution du scénario ne c’est pas lancée…).

J’ai remonté les fonctions du core et je suis arrivé a cette conclusion :

  • fichier concerné : scenario.class
  • ligne concernées : L305 et 312
    dans celui-ci depuis quelques versions, il est possible de voir la valeur de la commande directement dans le log du scénario :

`[2022-03-05 21:47:43][SCENARIO] – Start : Scenario execute automatiquement sur evenement venant de : [Objet][Eqlogic][Cmd] (valeur)

si la valeur contient ces 3 éléments {"(
qui est contenu par exemple dans un payload :
{"librarySectionTitle":"Séries TV - VO(STFR)"}
le scénario ce met en démarrage et se bloque.

La suppression ou la protection de la variable par double quotte (ligne 305) :
$message .= ' (' . $_value . ')';
comme ceci
$message .= ' ("' . $_value . '")';

résous ce problème, mais je n’est pas investigué plus loin sur une éventuelle « casse » sur autre chose.

Lien PR concerné :

@Loic , je me permet de t’identifier, puisque ce PR est de toi.

Bonne soirée.

2 « J'aime »

Bonjour,
Merci pour le retour j’ai fait la correction demandée (aucune idée de l’impact que ca peut avoir par contre).

Bonjour

Je viens aux nouvelles pour savoir si cette modification sera intégrée prochainement dans une mise à jour?

C’est juste pour savoir car j’ai énormément de scénarios en pause puisqu’ils utilisent des payload.

D’avance merci :slight_smile:

Normalement c’est fait

Ah bon? c’est dans la 4.2.14? j’ai perdu le compte, je pensais que c’était celle que j’avais testé :thinking:

Bonjour, étrangement, une des payloads que j’utilise « fonctionne » désormais, mais celle concernant Plex provoque toujours le même soucis de plantage en démarrage continue
Comme je suis toujours en 4.2.14 depuis un moment, je voulais savoir si j’ai loupé une manipulation ou si la mise à jour n’a pas encore été distribuée avec le correctif.

Merci beaucoup d’avance.

Bonjour @Loic je me permet de relancer car malgré le passage en 4.2.15, mon problème persiste.

Est ce que la modif a été passée?
D’avance merci du retour

Bonjour
Désolé pour le moment je suis sur le problème avec les assistants vocaux tant que ça ne sera pas corrigé je ne prends aucun autre sujet

Aucun soucis :slight_smile: c’était vraiment pour avoir une tendance, merci en tous les cas.
Bon Dimanche

Bonjour,
bug toujours non corrigé dans la version 4.2.18 de jeedom
J’ai du réappliquer la modif dans scenario.class.php donnée par Phpvarious et cela fonctionne à nouveau. Un grand merci à lui :slight_smile:
Ca serait bien de l’inclure dans les futurs versions de jeedom

1 « J'aime »

Hello, lorsque tu fais ce genre de modification, tu procèdes comment? simplement via l’éditeur de fichier de jeedom?
Il faut redémarrer ou un truc du genre pour que cela soit pris en compte?

D’avance merci de ton retour :slight_smile:

Oui juste via l’éditeur de fichier

1 « J'aime »