Impossible de modifier le 'min time report' d'un équipement zigbee

Je pense avoir réglé mon problème ; et j’ai des pistes pour en comprendre l’origine.

Résolution du problème

Je me suis apercu que les infos de reporting sont présentes dans le fichier /var/www/html/plugins/z2m/data/database.db
Dans ce fichier, il y a une ligne par équipement zigbee ; et chaque ligne contient les informations relatives à un équipement, en format json

Voici un extrait de ce fichier, pour un équipement sur lequel je constate le problème, et pour une commande en double ; ici activePower (cluster 2820 et attrib 1291) :

...
{
	"endpoints": {
		"1": {
			"configuredReportings": [
				{
					"cluster": 2820,
					"attrId": 1291,
					"minRepIntval": 5,
					"maxRepIntval": 3600,
					"repChange": 1,
					"manufacturerCode": null
				},
				...
				{
					"cluster": 2820,
					"attrId": 1291,
					"minRepIntval": 10,
					"maxRepIntval": 3600,
					"repChange": 1
				},
			...
			],
		},
	},
}

On voit bien que le même attribut est doublonnné. L’un a un champ manufacturerCode à null, l’autre n’a pas ce champ. Celui qui n’a pas ce champs est celui pour lequel j’ai changé une valeur ; ici, c’est minRepIntval, que j’ai passé de 5 à 10.

Pour retrouver un fonctionnement normal, il suffit de supprimer dans le json l’enregistrement en double qui contient le champ manufacturerCode à la valeur nulle.

Voici comment j’ai procédé :

  1. Arret du démon z2m, depuis la configuration du plugin. Vérifier que z2m n’est plus en exécution.
  2. sauvegarde de précaution du fichier database.db . C’est TRES IMPORTANT
  3. rechercher les occurences de "manufacturerCode":null dans le fichier database.db : grep '"manufacturerCode":null' /var/www/html/plugins/z2m/data/database.db
  4. editer le fichier database.db
    . pour chaque ligne comportant au moins une occurence de "manufacturerCode":null :
    si l’attribut est dupliqué dans la ligne, supprimer l’occurence comportant "manufacturerCode":null
    sinon, supprimer uniquement la partie ',"manufacturerCode":null'
  5. redémarrer le démon z2m, et vérifier
    . que tout fonctionne bien
    . qu’on peut maintenant modifier une valeur de reporting sans créer de doublons

La manip n’est pas simple à faire ; il faut être rigoureux. D’ou l’importance de sauvegarder le fichier database.db avant modification, pour revenir en arrière si problème.
Je n’ai pas beaucoup d’équipements zigbee ; une vingtaine. Et la plupart n’ont pas d’attributs en reporting : équipements sans fil genre inter, sondes de température, …
Dans le cas contraire, ca devient vite fastidieux.

J’ai procédé de manière empirique, mais ca fonctionne correctement maintenant.
A savoir que les modifs de reporting que je faisaient étaient bien prises en compte par les équipements (si j’en crois la log) ; c’est la présentation qui montrait des doublons.

Origine du problème
Je me suis demandé pourquoi j’avais ce problème, mon fils également, et pas les personnes qui m’on répondu dans ce fil.
J’ai une piste qui me semble assez sérieuse : dans les 2 cas, j’ai procédé, il y a plus d’un an, à une migration de zigbeeLinker vers jeeZigbee en suivant cette procédure :

C’est la seule chose un peu bidouilleuse que j’ai pu faire sur les 2 installations, concernant z2m …