Creation automatique d'ID?

Oui, un PB un sujet. Ton PB était le nb d’ID. La, ton PB est un plantage z2m (même si l’un est une conséquence de l’autre)

Hello,

N’ayant pas le plugin et la repository GitHub étant privée pour le moment, je ne peux pas regarder.
C’est pour ça que je pense qu’un dev du plugin jeeZigbee devrait jeter un oeil.

En fait si, car quand tu insères une nouvelle cmd, la BdD commencer par allouer un nouvel ID à cette cmd (elle incrémente juste un compteur, ce compteur peut aller jusqu’à 4294967295 en UNSIGNED INT 32bits ou 18446744073709551615 en UNSIGNED INT 64bits, on super est large), puis la requête d’insertion a lieu et échoue.
On ne peux pas revenir en arrière sur l’allocation de l’ID, donc il n’est pas utilisé. Fin.

Le souci c’est qu’une requête qui va échouée à coup sûr (contrainte) est lancée, il n’y a aucun problème avec le comportement du Core ici.

Alors c’est possible oui, mais c’est peut-être lié uniquement à certains équipement Zigbee.
Donc pour le moment, il faut trouver dans le code de jeeZigbee :

  • où est la création de cmd en double,
  • ce qui la déclenche,
  • pourquoi cela se fait-il uniquement au redémarrage et
  • comment l’éviter.

Bad

@Bad. Oki

Du coup on cloture ce post ou on le laisse ouvert tant qu’on a pas trouvé de solution ?
Et concernant la relance du plugin mqtt2, j’ouvre un nouveau post dans la bonne rubrique ?

De mon coté je vais essayer de remonter jusqu’au declenchement de la creation de l’ID pour voir si on peut checker la BD et verifie si l’ID n’existe pas deja, ce qui éviterait l’erreur du Duplicate

Merci en tout cas pour tout ca. Je commence a y voir un peu plus clair, et c’est plutot rassurant

Pour moi, c’est pas réglé, donc on laisse ouvert :wink:

Pour plus de visibilité on peut ajouter les tags plugin-mqtt2 et plugin-z2m, quitte à modifier après.

Bonjour,
La beta de demain du plugin contiendra une correction pour la création de commande mais je ne pense pas que le soucis vienne de la. Une commande ne pouvant être crée a cause d’une contrainte n’incremente pas l’id. Le soucis est peut être dans le plugin jeezigbee mais je pense plus a un équipement zigbee qui s’inclu/s’exclu en permamance

Bjr @Loic ,

Comment faire pour determiner la cause probable ? A vrai dire, comme je l’ai expliqué un peu plus haut, c’est au moment où je detecte que je n’ai plus de comm entre Jeedom et LES equipements Zigbee, que j’arrete mqtt2 et que je le relance (via mon scenario ci dessus dans les postes). Il y a bien une erreur « timeout » coté mqqt2 et a partir de là, plus moyen de commander quoique ce soit en Zigbee
L’arret et le redemarrage de mqtt2 résoud le probleme et je retrouve la comm
C’est a ce moment que au moins 500 ID sont crées sans l’etre vraiment puisqu’il y a une erreur « Duplicate »
j’en suis là pour remonter l’info

2024/01/10 16:13:35;INSERT INTO `cmd` SET `id` = :id, `logicalId` = :logicalId, `generic_type` = :generic_type, `eqType` = :eqType, `name` = :name, `order` = :order, `type` = :type, `subType` = :subType, `eqLogic_id` = :eqLogic_id, `isHistorized` = :isHistorized, `unite` = :unite, `configuration` = :configuration, `template` = :template, `display` = :display, `value` = :value, `isVisible` = :isVisible, `alert` = :alert;
Error Code;23000 (1062). Duplicate entry '124-state on' for key 'unique'
Pile 1 : save fichier /var/www/html/core/class/cmd.class.php à la ligne 1014
Pile 2 : save fichier /var/www/html/plugins/z2m/core/class/z2m.class.php à la ligne 838
Pile 3 : createCmd fichier /var/www/html/plugins/z2m/core/class/z2m.class.php à la ligne 583
Pile 4 : handle_bridge fichier /var/www/html/plugins/z2m/core/class/z2m.class.php à la ligne 400

Merci pour votre boulot ! :slight_smile:

Je peux pas te dire sinon tu imagines bien que je serais deja intervenu avec un mode opératoire pour corriger ton soucis au plus vite.

1 « J'aime »

Oui oui j’imagine bien. Je suis moi meme developpeur en milieu industriel (en C, C++, Python principalement), et je vois ce que tu veux dire
Avant de trouver, il faut chercher et parfois, ce n’est vraiment pas simple
J’ai quelques notions en PHP donc je vais creuser aussi un peu de mon coté pour essayer de comprendre et de vous fournir des informations complémentaires
Merci

Attend la correction de demain pour déjà filtrer les erreurs ça permettra d’y voir plus clair

Donc, suite a la mise a jour ce jour avec la version BETA du plugin JeeZigbee, il semble que certaines infos manquaient lors de la création du Zigbee, et qu’il n’etait pas possible de les créer (exception Duplicate) et la numéro des ID continuait a s’incrementer (on arrive a presque 10000 aujourd’hui)
A surveiller, mais peut etre que ce point est résolu… a suivre …

Bjr Loic,

Bon a priori le probleme ne semble pas etre completement réglé :frowning: :frowning:

Je viens de regarder les traces de DB.class et il y a tjrs des exceptions lors de certaines INSERT (avec la pile d’appel)

2024/01/16 07:49:34;INSERT INTO `cmd` SET `id` = :id, `logicalId` = :logicalId, `generic_type` = :generic_type, `eqType` = :eqType, `name` = :name, `order` = :order, `type` = :type, `subType` = :subType, `eqLogic_id` = :eqLogic_id, `isHistorized` = :isHistorized, `unite` = :unite, `configuration` = :configuration, `template` = :template, `display` = :display, `value` = :value, `isVisible` = :isVisible, `alert` = :alert {"id":null,"logicalId":"child_lock::LOCK","generic_type":null,"eqType":"z2m","name":"state on","order":0,"type":"action","subType":"other","eqLogic_id":"124","isHistorized":0,"unite":"","configuration":"[]","template":"{\"dashboard\":\"default\",\"mobile\":\"default\"}","display":"{\"showStatsOnmobile\":0,\"showStatsOndashboard\":0}","value":"97863","isVisible":1,"alert":"[]"}
2024/01/16 07:49:34;INSERT INTO `cmd` SET `id` = :id, `logicalId` = :logicalId, `generic_type` = :generic_type, `eqType` = :eqType, `name` = :name, `order` = :order, `type` = :type, `subType` = :subType, `eqLogic_id` = :eqLogic_id, `isHistorized` = :isHistorized, `unite` = :unite, `configuration` = :configuration, `template` = :template, `display` = :display, `value` = :value, `isVisible` = :isVisible, `alert` = :alert;Error Code;23000 (1062). Duplicate entry '124-state on' for key 'unique'
Pile 1 : save fichier /var/www/html/core/class/cmd.class.php à la ligne 1014
Pile 2 : save fichier /var/www/html/plugins/z2m/core/class/z2m.class.php à la ligne 852
Pile 3 : createCmd fichier /var/www/html/plugins/z2m/core/class/z2m.class.php à la ligne 592
Pile 4 : handle_bridge fichier /var/www/html/plugins/z2m/core/class/z2m.class.php à la ligne 409
Pile 5 : handleMqttMessage fichier /var/www/html/plugins/mqtt2/core/php/jeeMqtt2.php à la ligne 33
2024/01/16 07:49:34;INSERT INTO `cmd` SET `id` = :id, `logicalId` = :logicalId, `generic_type` = :generic_type, `eqType` = :eqType, `name` = :name, `order` = :order, `type` = :type, `subType` = :subType, `eqLogic_id` = :eqLogic_id, `isHistorized` = :isHistorized, `unite` = :unite, `configuration` = :configuration, `template` = :template, `display` = :display, `value` = :value, `isVisible` = :isVisible, `alert` = :alert {"id":null,"logicalId":"child_lock::LOCK","generic_type":null,"eqType":"z2m","name":"child_lock","order":0,"type":"action","subType":"other","eqLogic_id":"124","isHistorized":0,"unite":"","configuration":"[]","template":"{\"dashboard\":\"default\",\"mobile\":\"default\"}","display":"{\"showStatsOnmobile\":0,\"showStatsOndashboard\":0}","value":"97863","isVisible":1,"alert":"[]"}
2024/01/16 07:49:34;INSERT INTO `cmd` SET `id` = :id, `logicalId` = :logicalId, `generic_type` = :generic_type, `eqType` = :eqType, `name` = :name, `order` = :order, `type` = :type, `subType` = :subType, `eqLogic_id` = :eqLogic_id, `isHistorized` = :isHistorized, `unite` = :unite, `configuration` = :configuration, `template` = :template, `display` = :display, `value` = :value, `isVisible` = :isVisible, `alert` = :alert;Error Code;23000 (1062). Duplicate entry '124-child_lock' for key 'unique'
Pile 1 : save fichier /var/www/html/core/class/cmd.class.php à la ligne 1014
Pile 2 : save fichier /var/www/html/plugins/z2m/core/class/z2m.class.php à la ligne 856
Pile 3 : createCmd fichier /var/www/html/plugins/z2m/core/class/z2m.class.php à la ligne 592
Pile 4 : handle_bridge fichier /var/www/html/plugins/z2m/core/class/z2m.class.php à la ligne 409
Pile 5 : handleMqttMessage fichier /var/www/html/plugins/mqtt2/core/php/jeeMqtt2.php à la ligne 33

Je suis bien en BETA sur JeeZigbee

Bonjour,
Ligne 852 c’est normal et prévu dans le code, pour ligne 856 moins, la beta de demain change un truc a voir si ca corrigera le soucis.

Mais du coup pour la ligne 852 qui est normale, ca va tout de meme continuer a incrementer les ID ? meme avec l’exception ?

Oui et non il essaye de l’inserer que si elle existe pas une fois quelle est la plus de soucis.

Bonjour. Me voila de retour … :slight_smile:
Alors qu’il n’y avait plus de probleme , je recommence a en avoir. mqtt2 s’arrete parfois, et mon scenario le relance, et de nouveaux ID sont visiblement crées
Je n’ai pas fait attention depuis quand le probleme est revenu. Sans doute suite a une mise a jour
Je viens de remettre mes traces dans DB.class.php pour avoir quelques infos de plus (ci joint)
Ca s’incremente moins vite maintenant, mais les ID sont incrementés d’env. 1000 apres 5 ou 6 relances

Les logs de DB.class.php
requetes.log (748,6 Ko)

Merci

Bonjour,
Je sais pas trop d’ou ca vient et la je vais pas pouvoir reprendre ce sujet tout de suite car je suis sur d’autre très grosse modification sur le plugin jeezigbee. Je peux malheureusement pas cumuler les deux pour le moment.

Relance moi sur ce sujet après la prochaine sortie en stable du plugin jeezigbee.

Oki. Pas de souci. Je continue a surveiller ca

Merci

Bonsoir Loic
J’ai une demande un peu particulière a faire. Peux tu me joindre en MP stp ? Merci

Bonjour
C’est à dire ? Pour être honnête je suis pas un grand fan des mp j’aime bien que tout soit public