Aller au contenu

Quick App - DomoCharts - Graphiques sur NAS pour HC3


Lazer

Messages recommandés

Je viens de faire le test sous le navigateur Google Chrome. Idem :(

 

J'obtiens ça comme au niveau du code source :

image.thumb.png.7286ef49f618e89dae57fdbaf97da3c2.png

 

J'obtiens ça comme au niveau de la console :

image.thumb.png.cfa4f88a81d436016386f08cbe817931.png

 

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

  • 3 mois après...

Hello. J'ai une erreur qui est apparue sans que je ne fasse quoi que ce soit.

Est-ce-que quelqu'un a le même problème?

[22.07.2024] [23:01:01] [TRACE] [QA_DOMOCHARTS_1300]: Found 10058 previously stored datas
[22.07.2024] [23:01:01] [ERROR] [QA_DOMOCHARTS_1300]: Too much data already in cache
[22.07.2024] [23:01:10] [ERROR] [QA_DOMOCHARTS_1300]: http://192.168.1.35/domocharts/data.php => Error #8 => PDOStatement::execute(): send of 32768 bytes failed with errno=104 Connection reset by peer
[22.07.2024] [23:01:10] [WARNING] [QA_DOMOCHARTS_1300]: Memorize 10058 sensors data

 

Lien vers le commentaire
Partager sur d’autres sites

Oui, tu dois avoir des messages avant celui là, qui te disent que ça fait un petit moment qu'il n'arrive plus à envoyer les données aux NAS / serveur / base de données.

Du coup les données s'accumulent dans la mémoire cache du QuickApp, et sature (> 10000 mesures, configurable dans les variables du QA)

 

Commence par chercher pourquoi ton serveur SQL ne répond plus.

Lien vers le commentaire
Partager sur d’autres sites

Bon. J'ai une piste mais je n'en suis pas sur du tout. Lors d'une mise à jour de phpMyAdmin sur mon Synology, la version PHP est passé en 8.0828 alors que jusqu'à présent j'était en 7.4.

Qu'est-ce-que vous en pensez?

Lien vers le commentaire
Partager sur d’autres sites

Ouais, ça pourrait bien avoir cassé quelque chose.... là comme ça, il n'y a rien qui me vient à l'esprit, il faudrait chercher des logs, si tu en as, sur le Syno.

En tout cas le log de Domocharts montre que PHP n'arrive pas à se connecter à la base SQL : "Connection reset by peer"

Lien vers le commentaire
Partager sur d’autres sites

Je suis passé en Php 8.1.2 en Novembre 2023 
J'ai souvenir d'avoir rencontré quelques Problèmes lors de cette Maj de Php et voici ce que j'ai modifié :

 

Dans device.php
    //Modif 27/11/2023 pour Php 8.3
    //$type = explode('_', filter_input(INPUT_GET, 'type', FILTER_SANITIZE_STRING)); // explode() removes optional _day suffix
    $type = explode('_', filter_input(INPUT_GET, 'type', FILTER_UNSAFE_RAW)); // explode() removes optional _day suffix

 

Dans data.php
    //*** Get URL parameters
    //Modif 27/11/2023 pour Php 8.3
    //$type   = filter_input(INPUT_GET, 'type',   FILTER_SANITIZE_STRING);
    //$query  = filter_input(INPUT_GET, 'query',  FILTER_SANITIZE_STRING);
    $type   = filter_input(INPUT_GET, 'type',   FILTER_UNSAFE_RAW);
    $query  = filter_input(INPUT_GET, 'query',  FILTER_UNSAFE_RAW);

    //*** Get data
    if ( $query == 'timeseries' ) {
        $device = filter_input(INPUT_GET, 'device', FILTER_SANITIZE_NUMBER_INT);
        //Modif 27/11/2023 pour Php 8.3
        //$value  = filter_input(INPUT_GET, 'value' , FILTER_SANITIZE_STRING);
        $value  = filter_input(INPUT_GET, 'value' , FILTER_UNSAFE_RAW);
        .
        .
        .
    else {

        $device    = filter_input(INPUT_GET, 'device'    , FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_THOUSAND); // Keep only numbers and commas
        //Modif 27/11/2023 pour Php 8.3
        //$aggregate = filter_input(INPUT_GET, 'aggregate' , FILTER_SANITIZE_STRING);
        $aggregate = filter_input(INPUT_GET, 'aggregate' , FILTER_UNSAFE_RAW);
            .
            .
            .
            if (substr($type, -4) == '_day') {
                //Modif 27/11/2023 pour Php 8.3
                //$date      = filter_input(INPUT_GET, 'date'     , FILTER_SANITIZE_STRING);
                //$begindate = filter_input(INPUT_GET, 'begindate', FILTER_SANITIZE_STRING);
                //$enddate   = filter_input(INPUT_GET, 'enddate'  , FILTER_SANITIZE_STRING);
                $date      = filter_input(INPUT_GET, 'date'     , FILTER_UNSAFE_RAW);
                $begindate = filter_input(INPUT_GET, 'begindate', FILTER_UNSAFE_RAW);
                $enddate   = filter_input(INPUT_GET, 'enddate'  , FILTER_UNSAFE_RAW);

 

Je ne sais pas si cela corrigera tes problèmes, mais pour moi Domocharts tourne parfaitement avec cela.

Modifié par henri-allauch
  • Like 2
Lien vers le commentaire
Partager sur d’autres sites

Je me souviens du filtrage des données lors du passage en PHP8, mais là ce n'est certainement pas le problème, car PHP n'arrive pas à se connecter au serveur SQL du tout.


Le serveur SQL n'aurait pas changé de port par hasard ?
Je me souviens qu'on avait eu le problème dans le passé lors d'une mise à jour majeure de MariaDB.

Lien vers le commentaire
Partager sur d’autres sites

en effet, le port est une piste très sérieuse : il y a eu une modification de port (si je me souviens bien) entre de versions de MariaDB.

Mais si tu n'a fait qu'un upgrade de phpMyadmin, j'ai 2 idées (saugrenues) :

  1. Les utilisateurs utilisés par Domochart sont-ils toujours ok ?
  2. la config de ton Webserveur est-elle toujours ok ?
Lien vers le commentaire
Partager sur d’autres sites

Merci pour vos suggestions.

Pour répondre aux questions:

- les utilisateurs Domocharts sont bon.

- la config pour le Webserveur n'ont pas été changé donc sont bon normalement.

- le port de MariaDB est bon soit le 3307.

 

J'ai fait une sauvegarde de la DB et ensuite une restauration. Je me retrouve maintenant avec seulement les données de températures qui sont remontées.

Pour le reste, j'ai une page noir avec "No device found".
Le QA, lui, fonctionne parfaitement sauf qu'il n'arrive pas à se connecter au fichier device.php

Étant une buse dans le domaine, la recherche de l'erreur risque d'être assez longue.

Lien vers le commentaire
Partager sur d’autres sites

Si tu vas sur les pages web des graphs, tu veux dire que le graph de température s'affiche bien, mais pour tous les autres graphs, tu as le message "No device found" ?

Donc ça signifie que la connexion entre les pages web PHP et la base de données fonctionne bien.
Et le QA de son coté ? C'est quoi le message avec le fichier device.php lorsque tu cliques manuellement sur le bouton du QA ?

Et l'envoi des données ne se fait toujours pas ?

Lien vers le commentaire
Partager sur d’autres sites

Hum, en relisant le message d'erreur, ça parle de 32 ko exactement de données qui n'ont pu être envoyées à la base SQL.... dans la nouvelle version de PHP, il n'y aura pas une limite de 32 ko de données manipulables (ce qui est très peu) ???
C'est une piste à creuser... surement un paramètre à modifier quelque part dans le config de PHP 8.

Lien vers le commentaire
Partager sur d’autres sites

Voici les messages d'erreur sur le QA.

[25.07.2024] [22:45:46] [DEBUG] [QA_DOMOCHARTS_1300]: Next loop at 22:46:00 in 14 seconds...
[25.07.2024] [22:45:47] [DEBUG] [QA_DOMOCHARTS_1300]: DomoCharts:postAPI() success() response = {"status":200,"data":"{\"data\":[{\"type\":\"temperature\",\"success\":true,\"rowcount\":1880},{\"type\":\"humidity\",\"success\":true,\"rowcount\":658},{\"type\":\"light\",\"success\":true,\"rowcount\":188},{\"type\":\"gas\",\"success\":true,\"rowcount\":94},{\"type\":\"sound\",\"success\":true,\"rowcount\":94},{\"type\":\"pressure\",\"success\":true,\"rowcount\":94},{\"type\":\"voltage\",\"success\":true,\"rowcount\":376},{\"type\":\"current\",\"success\":true,\"rowcount\":376},{\"type\":\"power\",\"success\":true,\"rowcount\":3196}],\"success\":false,\"rowcount\":6956,\"error\":{\"code\":\"08S01\",\"message\":\"SQLSTATE[08S01]: Communication link failure: 1153 Got a packet bigger than 'max_allowed_packet' bytes\"}}","headers":{"Server":"nginx","Vary":"Accept-Encoding","Content-Type":"application\/json; charset=utf-8","Date":"Thu, 25 Jul 2024 20:45:46 GMT","Connection":"close","Transfer-Encoding":"chunked"}}
[25.07.2024] [22:45:47] [ERROR] [QA_DOMOCHARTS_1300]: DomoCharts:postAPI() Error #08S01 => SQLSTATE[08S01]: Communication link failure: 1153 Got a packet bigger than 'max_allowed_packet' bytes
[25.07.2024] [22:45:47] [ERROR] [QA_DOMOCHARTS_1300]: http://192.168.1.35/domocharts/data.php => Error #08S01 => SQLSTATE[08S01]: Communication link failure: 1153 Got a packet bigger than 'max_allowed_packet' bytes
[25.07.2024] [22:45:47] [WARNING] [QA_DOMOCHARTS_1300]: Memorize 10058 sensors data
[25.07.2024] [22:46:00] [DEBUG] [QA_DOMOCHARTS_1300]: loop()
[25.07.2024] [22:46:01] [DEBUG] [QA_DOMOCHARTS_1300]: Total memory in use by Lua : 10095.36 KB, CPU consumed : 18522.03 ms ( 7.848 % )
[25.07.2024] [22:46:01] [TRACE] [QA_DOMOCHARTS_1300]: Found 10058 previously stored datas
[25.07.2024] [22:46:01] [ERROR] [QA_DOMOCHARTS_1300]: Too much data already in cache

 

Lien vers le commentaire
Partager sur d’autres sites

@Lazer: lorsque j'appui sur le bouton, cela fonctionne mais il me semble que la box tourne au ralenti, voici le log:

[25.07.2024] [22:51:03] [TRACE] [QA_DOMOCHARTS_1300]: UIEvent: {"eventType":"onReleased","values":[],"deviceId":1300,"elementName":"buttonGetDevices"}
[25.07.2024] [22:51:03] [DEBUG] [QA_DOMOCHARTS_1300]: QuickApp:buttonGetDevices_onReleased({"eventType":"onReleased","values":[],"deviceId":1300,"elementName":"buttonGetDevices"})
[25.07.2024] [22:51:03] [TRACE] [QA_DOMOCHARTS_1300]: Get devices

@jojo: oui pdo_mysql est toujours activée.

 

Et encore un nouveau log:

[25.07.2024] [22:54:55] [DEBUG] [QA_DOMOCHARTS_1300]: Next loop at 22:55:00 in 5 seconds...
[25.07.2024] [22:54:55] [ERROR] [QA_DOMOCHARTS_1300]: DomoCharts:postAPI() Connection error to http://192.168.1.35/domocharts/data.php : Bad file descriptor
[25.07.2024] [22:54:56] [ERROR] [QA_DOMOCHARTS_1300]: http://192.168.1.35/domocharts/data.php => Connection error : Bad file descriptor
[25.07.2024] [22:54:56] [TRACE] [QA_DOMOCHARTS_1300]: Update label "LabelStatus" to "Connection error : Bad file descriptor"
[25.07.2024] [22:54:56] [WARNING] [QA_DOMOCHARTS_1300]: Memorize 10058 sensors data
[25.07.2024] [22:54:56] [ERROR] [QA_DOMOCHARTS_1300]: DomoCharts:postAPI() Connection error to http://192.168.1.35/domocharts/data.php : Bad file descriptor
[25.07.2024] [22:54:57] [ERROR] [QA_DOMOCHARTS_1300]: http://192.168.1.35/domocharts/data.php => Connection error : Bad file descriptor
[25.07.2024] [22:54:57] [WARNING] [QA_DOMOCHARTS_1300]: Memorize 10058 sensors data
[25.07.2024] [22:54:57] [ERROR] [QA_DOMOCHARTS_1300]: DomoCharts:postAPI() Connection error to http://192.168.1.35/domocharts/data.php : Bad file descriptor
[25.07.2024] [22:54:57] [ERROR] [QA_DOMOCHARTS_1300]: http://192.168.1.35/domocharts/data.php => Connection error : Bad file descriptor
[25.07.2024] [22:54:57] [WARNING] [QA_DOMOCHARTS_1300]: Memorize 10058 sensors data
[25.07.2024] [22:54:57] [ERROR] [QA_DOMOCHARTS_1300]: http://192.168.1.35/domocharts/data.php => Connection error : Bad file descriptor
[25.07.2024] [22:54:58] [WARNING] [QA_DOMOCHARTS_1300]: Memorize 10058 sensors data
[25.07.2024] [22:54:58] [DEBUG] [QA_DOMOCHARTS_1300]: DomoCharts:postAPI() success() response = {"status":200,"data":"{\"data\":[{\"type\":\"temperature\",\"success\":true,\"rowcount\":1880},{\"type\":\"humidity\",\"success\":true,\"rowcount\":658},{\"type\":\"light\",\"success\":true,\"rowcount\":188},{\"type\":\"gas\",\"success\":true,\"rowcount\":94},{\"type\":\"sound\",\"success\":true,\"rowcount\":94},{\"type\":\"pressure\",\"success\":true,\"rowcount\":94},{\"type\":\"voltage\",\"success\":true,\"rowcount\":376},{\"type\":\"current\",\"success\":true,\"rowcount\":376},{\"type\":\"power\",\"success\":true,\"rowcount\":3196}],\"success\":false,\"rowcount\":6956,\"error\":{\"code\":\"08S01\",\"message\":\"SQLSTATE[08S01]: Communication link failure: 1153 Got a packet bigger than 'max_allowed_packet' bytes\"}}","headers":{"Server":"nginx","Vary":"Accept-Encoding","Content-Type":"application\/json; charset=utf-8","Date":"Thu, 25 Jul 2024 20:54:58 GMT","Connection":"close","Transfer-Encoding":"chunked"}}
[25.07.2024] [22:54:58] [ERROR] [QA_DOMOCHARTS_1300]: DomoCharts:postAPI() Error #08S01 => SQLSTATE[08S01]: Communication link failure: 1153 Got a packet bigger than 'max_allowed_packet' bytes
[25.07.2024] [22:54:58] [ERROR] [QA_DOMOCHARTS_1300]: http://192.168.1.35/domocharts/data.php => Error #08S01 => SQLSTATE[08S01]: Communication link failure: 1153 Got a packet bigger than 'max_allowed_packet' bytes
[25.07.2024] [22:54:58] [TRACE] [QA_DOMOCHARTS_1300]: Update label "LabelStatus" to "Error #08S01 => SQLSTATE[08S01]: Communication link failure: 1153 Got a packet bigger than 'max_allowed_packet' bytes"
[25.07.2024] [22:54:59] [WARNING] [QA_DOMOCHARTS_1300]: Memorize 10058 sensors data
[25.07.2024] [22:55:01] [DEBUG] [QA_DOMOCHARTS_1300]: loop()
[25.07.2024] [22:55:01] [DEBUG] [QA_DOMOCHARTS_1300]: Total memory in use by Lua : 10259.80 KB, CPU consumed : 19515.60 ms ( 9.035 % )
[25.07.2024] [22:55:01] [TRACE] [QA_DOMOCHARTS_1300]: Found 10058 previously stored datas
[25.07.2024] [22:55:01] [ERROR] [QA_DOMOCHARTS_1300]: Too much data already in cache

 

Lien vers le commentaire
Partager sur d’autres sites

Comme indiqué, la box tournait au ralenti. Je l'ai redémarré et là plus d'erreur dans les logs du QA et tout semble remonter correctement.

Les infos sont remontées et affichées correctement.

Je vais attendre pour voir si ça recommence.

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

Bon, j'ai crié victoire trop vite!

L'erreur device.php est revenu après avoir cliqué sur le bouton du QA:

[25.07.2024] [23:34:30] [ERROR] [QA_DOMOCHARTS_1300]: DomoCharts:postAPI() Connection error to http://192.168.1.35/domocharts/device.php : Bad file descriptor
[25.07.2024] [23:34:30] [ERROR] [QA_DOMOCHARTS_1300]: http://192.168.1.35/domocharts/device.php => Connection error : Bad file descriptor
[25.07.2024] [23:34:30] [TRACE] [QA_DOMOCHARTS_1300]: Update label "LabelStatus" to "Connection error : Bad file descriptor"

 

Lien vers le commentaire
Partager sur d’autres sites

Tu as quand même un message assez explicite : "Communication link failure: 1153 Got a packet bigger than 'max_allowed_packet' bytes"

 

Essaye de trouver dans la config de MariaDB comment augmenter la valeur de ce paramètre "max_allowed_packet"

  • Like 1
Lien vers le commentaire
Partager sur d’autres sites

×
×
  • Créer...