Alexa-Remote WS-MQTT: Parsed Message

Bonjour,

j’ai commencé à analyser les logs pour voir les erreurs remontées et tenter de les corriger pour plus de stabilité de mon jeedom.

Je vois remonter une erreur récurrente toutes les 3 minutes sur le plugin alexaapi_node

[26/01/2023, 11:19:27][] : Alexa-Remote WS-MQTT: Incoming message Service: FABE
[26/01/2023, 11:19:27][] : Alexa-Remote WS-MQTT: Incoming message Service Channel: 101
[26/01/2023, 11:19:27][] : Alexa-Remote WS-MQTT: Parsed Message: {"service":"FABE","messageType":"MSG","channel":101,"messageId":154314343,"moreFlag":1711276032,"seq":1,"checksum":3663362252,"content":{"messageType":"PON","payloadData":{"type":"Buffer","data":[0,0,0,237,150,228,201,237,150,228,201,0,0,0,7,0,82,0,101,0,103,0,117,0,108,0,97,0,114]}}}

Auriez vous une idée de ce que à quoi cela correspond et comment y remédier?

merci par avance

Bonjour,

Pourquoi pense tu que c’est une erreur ?

Bonjour Sigalou,

tout simplement paracerque j’ai un beau point d’exclamation sur fond rouge dans mon log :slight_smile:
image

et que cela remonte tout le temps…

Bonjour à tous,
Je n’ai pas d’erreur (pas encore ?), mais j’ai un paquet de ces messages dans le log (plus de 5 ou 6 par minute).

d’autant que j’ai une erreur qui s’ajoute:
0496|[26/01/2023, 14:15:09]ERROR : {Remote} ║ Souci, le serveur Amazon est bien disponible ? Erreur sur : [APPLIANCE/AAA_SonarCloudService_ serie de chiffre comme une clé]

moi aussi j’ai des tonnes de logs en permanence en mode defaut, j’ai mis en « aucun » pour arrêter ça:

là je viens de le rallumer, regardez en mode « defaut » le nombre de messages log générés par seconde… c’est pas bon pour le disque et les process ça :wink:

d’autant plus que là je suis certain que personne ne fait rien et ion reçoit des infos sur le niveau de volume et l’égalisation tout le temps c’est étrange.

Le MQTT est un protocole qui dialogue en permanence.
En principe, j’avais filtré mais il se peut qu’il reste une trame qui apparaisse.
Aucun souci à couper le log en mettant Aucun.

oui c’est normal que le mqtt discute, c’est clair.

cependant, ça a du sens de tracer ces transactions en debug, mais en mode info c’est un chouilla trop riche.

c’est exact, j’ai un souci que je n’ai pas encore résolu sur les éléments de debug qui sont bien configurés en debug et qui arrivent dans info voir des éléments que je mets en info et qui n’arrivent pas, je cherche à comprendre. Dans le doute, certains sont en info.

effectivement c’est étrange, mais bon il n’y a rien d’impactant. je regarderai le code si j’ai un moment, on ne sait jamais des secondes paires d’yeux sont quelquefois la bonne solution :slight_smile:

2 « J'aime »

Attends toi à des variables en français super longues :wink: et à peu voir pas d’indentation :slight_smile:

1 « J'aime »

moi aussi je t’aime :kissing_heart:

1 « J'aime »

hello les comiques, purée c’est effectivement étrange … les logs du démon sur la classe php ne remontent pas du tout, j’en ai même ajouté au démarrage et rien. je vais regarder de plus près :wink:

oui, je me casse les dents sur ces logs depuis des années maintenant. Si tu trouves où ils passent, je suis preneur.
Signalé à Loïc il y a longtemps qui m’a répondu osef avec les formes (ce en quoi il a pas tout à fait tors, mais c’est frustrant)

je suis pas de jeedom, c’est juste pour aider :slight_smile:

j’ai comme on dit un gros paquet d’heures de vol sur les développements de backends et du debug. c’est pas pour ça que je vais trouver facilement non plus, mais bon ça aide, car le php/js je le lis couramment un peu comme la musique.

que je trouve ou pas je te ferai un petit rapport en message privé, pas la peine d’encombrer le forum, enfin c’est comme tu voudras, je ne pense pas que les lignes de codes intéressent les utilisateurs.

Même s’il y a beaucoup de commentateurs inutiles :sweat_smile:, il y a des développeurs sur le forum, parfois ce peut etre utile. Tu fais comme tu préfères, un pr même si tu préfères, toi qui fais comme c’est le plus simple pout toi.

et voilà déjà ça:

0456|[1/28/2023, 10:33:43 AM]INFO : {Alexa-Remote} WS-MQTT: Parsed Message: {"service":"TUNE","checksum":933344775,"content":{"protocolName":"A:F","parameters":{"AlphaProtocolHandler.maxFragmentSize":"16000","AlphaProtocolHandler.receiveWindowSize":"16"}}}
0457|[1/28/2023, 10:33:43 AM]INFO : {MQTT}   ║ Incoming message: {"service":"TUNE","checksum":933344775,"content":{"protocolName":"A:F","parameters":{"AlphaProtocolHandler.maxFragmentSize":"16000","AlphaProtocolHandler.receiveWindowSize":"16"}}}
0458|[1/28/2023, 10:33:43 AM]INFO : {MQTT}   ║ Ping MQTT ►►► sur wss://dp-gw-na.amazon.fr/tcomm/
0459|[1/28/2023, 10:33:43 AM]INFO : {MQTT}   ║ Incoming RAW message: 4d534700000065067e378b66000000016ba0e4de0000003d504f4e00000000f7b9bf6df7b9bf6d000000070052006500670075006c0061007246414245
0460|[1/28/2023, 10:33:43 AM]DEBUG : {Alexa-Remote} WS-MQTT: Incoming message Service: FABE
0461|[1/28/2023, 10:33:43 AM]DEBUG : {Alexa-Remote} WS-MQTT: Incoming message Service Channel: 101
0462|[1/28/2023, 10:33:43 AM]INFO : {Alexa-Remote} WS-MQTT: Parsed Message: {"service":"FABE","messageType":"MSG","channel":101,"messageId":108935051,"moreFlag":1711276032,"seq":1,"checksum":1805706462,"content":{"messageType":"PON","payloadData":{"type":"Buffer","data":[0,0,0,247,185,191,109,247,185,191,109,0,0,0,7,0,82,0,101,0,103,0,117,0,108,0,97,0,114]}}}
0463|[1/28/2023, 10:33:43 AM]INFO : {MQTT}   ║ Incoming message: {"service":"FABE","messageType":"MSG","channel":101,"messageId":108935051,"moreFlag":1711276032,"seq":1,"checksum":1805706462,"content":{"messageType":"PON","payloadData":{"type":"Buffer","data":[0,0,0,247,185,191,109,247,185,191,109,0,0,0,7,0,82,0,101,0,103,0,117,0,108,0,97,0,114]}}}
0464|[1/28/2023, 10:33:43 AM]INFO : {MQTT}   ║ ◄◄◄  MQTT Pong
0465|[1/28/2023, 10:33:43 AM]INFO : {MQTT}   ║ Initialisation MQTT OK
0

je te mets le code dans ton github

j’ai trouvé aussi un truc étrange, les fichiers nec.php et nel.php ne sont pas encodés en UTF8, sur mon système ça sort une erreur lorsqu’on les édite :

image

ça peut poser des soucis à certains moments…

en tout cas avec mes modifs sur la stable sur l’ensemble des push que j’ai fait, je pense qu’il y a une très grosse partie des messages qui s’affichent maintenant sur le log principal. il doit rester un souci avec l’utilisation de log complémentaires, du coup j’ai basculé l’essentiel sur le principal.

ha ? je vais regarder ces deux fichiers, suffit de les reposter

voilà j’ai fait tout fonctionner correctement :

  1. mise à jour du code de la classe:
  public static function deamon_info()
    {
        $return = array();
        $return['log'] = __CLASS__;
        $return['state'] = 'nok';
        $return['stateCookies'] = 'non lancé';

        // Regarder si alexaapi.js est lancé
        $pid = trim(shell_exec('ps ax | grep "resources/alexaapi.js" | grep -v "grep" | wc -l'));
        if ($pid != '' && $pid != '0') $return['state'] = 'ok';

        // Regarder si alexaapi.js est lancé
        $pid = trim(shell_exec('ps ax | grep "resources/initCookie.js" | grep -v "grep" | wc -l'));
        if ($pid != '' && $pid != '0') $return['stateCookies'] = 'lancé';

        // Regarder si le cookie existe :alexa-cookie.json
        $request = realpath(dirname(__FILE__) . '/../../resources/data/alexa-cookie.json');
        if (file_exists($request)) $return['launchable'] = 'ok';
        else {
            $return['launchable'] = 'nok';
            $return['launchable_message'] = "Cookie Amazon ABSENT ";
        }
        return $return;
    }

    public static function deamon_start($_debug = false)
    {
        self::deamon_stop();
        $deamon_info = self::deamon_info();
        if ($deamon_info['launchable'] != 'ok') throw new Exception(__('Veuillez vérifier la configuration', __FILE__));
        log::add(__CLASS__, 'info', ' Lancement du démon alexaapi v2');
        $url = network::getNetworkAccess('internal', 'proto:127.0.0.1:port:comp') . '/plugins/alexaapi/core/api/jeealexaapi.php?apikey=' . jeedom::getApiKey('alexaapi');
        $log = $_debug ? '1' : '0';
        $sensor_path = realpath(dirname(__FILE__) . '/../../resources');
        $cmd = 'nice -n 19 node ' . $sensor_path . '/alexaapi.js ' . network::getNetworkAccess('internal') . ' ' . config::byKey('amazonserver', 'alexaapi', 'amazon.fr') . ' ' . config::byKey('alexaserver', 'alexaapi', 'alexa.amazon.fr') . ' ' . jeedom::getApiKey('alexaapi') . ' ' . log::getLogLevel(__CLASS__);
        log::add('alexaapi', 'debug', 'Lancement démon alexaapi : ' . $cmd);
        $result = exec('NODE_ENV=production nohup ' . $cmd . ' >> ' . log::getPathToLog(__CLASS__.'_node') . ' 2>&1 &');
        //$cmdStart='nohup ' . $cmd . ' | tee >(grep "WS-MQTT">>'.log::getPathToLog('alexaapi_mqtt').') >(grep -v "WS-MQTT">>'. log::getPathToLog('alexaapi_node') . ')';
        if (strpos(strtolower($result), 'error') !== false || strpos(strtolower($result), 'traceback') !== false) {
            log::add( __CLASS__, 'error', $result);
            return false;
        }
        $i = 0;
        while ($i < 30) {
            $deamon_info = self::deamon_info();
            if ($deamon_info['state'] == 'ok') break;
            sleep(1);
            $i++;
        }
        if ($i >= 30) {
            log::add('alexaapi', 'error', 'Impossible de lancer le démon alexaapi, vérifiez le port', 'unableStartDeamon');
            return false;
        }
        message::removeAll('alexaapi', 'unableStartDeamon');
        log::add(__CLASS__, 'info', ' Démon alexaapi lancé v2');
        return true;
    }

et résultat :

3 « J'aime »