Aller au contenu

Messages recommandés

Posté(e) (modifié)

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

C'est bon j'ai trouvé, c'est le répertoire JS qui ne s'était pas chargé. Les erreurs ci-dessus m'ont mis sur la piste ;)

 

 

Posté(e)

Yes, erreur 404, c'est la plus connue :D

 

Comme quoi, regarder les logs et chercher le message d'erreur, c'est toujours le premier réflexe à avoir :)

 

  • Like 2
  • 3 mois après...
Posté(e)

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

 

Posté(e)

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.

Posté(e)

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?

Posté(e)

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"

Posté(e) (modifié)

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

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.

Posté(e)

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

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.

Posté(e)

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 ?

Posté(e)

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.

Posté(e)

suite à l'upgrade vers PHP8.0, l'estension pdo_mysql est-elle toujours activée (cfr doc d'installation, premier topic)

Posté(e)

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

 

Posté(e)

@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

 

Posté(e) (modifié)

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

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"

 

Posté(e)

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

Pour Info ( je suis sous mysql pas Mariadb ) 

 

 

Dans /etc/mysql/conf.d/mysqldump.cnf

[mysqldump]
quick
quote-names
max_allowed_packet    = 16M

  • Like 3
  • 2 mois après...
  • 3 semaines après...
Posté(e) (modifié)

Bonjour Lazer,

 

Depuis 6 mois, j'utilise domochart (vers un NAS Synology) et je trouve cette QA géniale.

J'utilise autre chose que grafana pour la visualisation mais c'est la seule "modification" que j'ai faite.

 

Cela m'a permis de corriger et optimiser certaines QA qui ne l'étaient manifestement pas...

 

A propos de temps CPU je pense avoir repéré un bug :4:dans la fonction tools:garbage(interval) inclue dans le zip

Initialement, je cherchais à diminuer le nombre de débug à la console et je me suis aperçu qu'il y a un désaccord entre la sortie de domochart sur sa consommation de CPU (en%) et la valeur obtenue par l'utilisation de collectgarbage("collect") ou de api.get("/diagnostics"): un facteur 4.

Pour moi, dans print(cpuDelta/elapsedTime*100/self.nbCPUs), la division par le nombre de cœurs n'est pas nécessaire/significative:

Si un CPU à 4 cœurs est occupé à 20% au total (ie la valeur de  cpuDelta/elapsedTime*100)  cela signifie que les 4 cœurs sont aussi chargés à 20% (en moyenne) même s'ils n'ont fait chacun que 1/4 du travail total.

Dit autrement: 4 cœurs à 100% = 1 CPU à 100% ?

 

Modifié par yves.guern
  • Like 1
×
×
  • Créer...