Probleme de decouverte d'appareil dans Zigbee2mqtt

Bonsoir a tous
Je viens vers vous pour m’aider à resoudre mon probleme. Apres plusieurs tentatives de redemarrage de Zigbee2mqtt, puis de Gladys, puis suppression du detecteur et reinstallation , j’ai toujours ce message, quand je valide la sauvegarde de ce capteur

Une erreur s'est produite lors de la sauvegarde.

Ce detecteur est Xiaomi comme celui du tuto de @pierre-gilles qui etait bien integré dans Gladys.
Dans la fenetre decouverte zigbee, ce detecteur demandait une mise à jour, mais quand je l’ai validé j’ai eu ce message :

Une erreur s'est produite lors de la sauvegarde.

J’ai supprimé le capteur dans Zigbee2mqtt et dans gladys, je l’ai réappairé, il apparait bien dans Zigbee2mqtt et dans gladys Découverte du réseau Zigbee

, mais quand je veux le sauvegarder, j’ai toujours ce message :

Une erreur s'est produite lors de la sauvegarde.

Par contre, il n’apparait plus dans les logs de Zigbee2mqtt.( je pense que c’est normal).
J’avais un autre appareil qui m’a fait ça , je l’ai donc supprimé des appareils zigbbe de Gladys, et quand je l’ai sauvegardé, c’est passé et je n’ai plus eu ce message.
Est ce que ce detecteur Xiaomi ne serait pas encore dans une BD qui refuse de le mettre à jour ? je ne sais pas comment vérifier ça.
Donc maintenant, je n’arrive plus à l’integré dans Gladys
Est ce que quelqu’un aurait une petite idée, pour m’aider
Merci d’avance

Salut @Psoy, tu es en quelle version de Gladys ? Vérifie que tu es bien en v4.36.0 !

bonjour @pierre-gilles
Oui je suis bien en v4.36
Apparement c’est lié au detecteur xiaomi, car j’ai un relais zigbbee que j’ai supprimé dans les appareils de Gladys et que j’ai reinstallé direct. j’ai testé sur l’application Xiaomi il se connecte bien. je l’ai repassé sur Zigbee2mqtt ca ce connecte bien gladys le reconnait dans la decouverte de nouveau appareil, mais ne veut pas l’installer
Je pense que le capteur est inscrit dans une base et comme Gladys le voit dans sa base il ne veut pas le reinstallé :thinking:. Cest possible ça ?

Possible. Est-ce que tu peux ouvrir la fenêtre de développement (F12 dans ton navigateur) et aller à l’onglet Network/Réseau. Au moment où tu cliques sur Sauvegarder, tu devrais avoir une ligne rouge. C’est le contenu de la réponse qui nous intéresse

bonsoir @cicoub13
Voila ce qui correspond a la ligne rouge.

XHRPOST
http://192.168.1.134/api/v1/device
[HTTP/1.1 409 Conflict 112ms]

	
POST
	http://192.168.1.134/api/v1/device
État
409
Conflict
VersionHTTP/1.1
Transfert653 o (taille 206 o)
Politique de référentstrict-origin-when-cross-origin
Priorité de la requêteHighest
Résolution DNSSystème

	
Access-Control-Allow-Headers
	Origin, X-Requested-With, Content-Type, Accept, Authorization
Access-Control-Allow-Methods
	GET,PUT,PATCH,POST,DELETE
Access-Control-Allow-Origin
	*
Connection
	keep-alive
Content-Length
	206
Content-Type
	application/json; charset=utf-8
Date
	Sat, 17 Feb 2024 19:17:19 GMT
ETag
	W/"ce-TsLI0wKKmlWByipVYxMOxBl3daQ"
Keep-Alive
	timeout=5
Vary
	Accept-Encoding
X-Powered-By
	Express
	
Accept
	application/json, text/plain, */*
Accept-Encoding
	gzip, deflate
Accept-Language
	fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3
authorization
	Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiOTJlZTQ2NjctOTQ1MC00YjU5LWE3NGEtZThlZmExNTc1MTJjIiwic2NvcGUiOlsiZGFzaGJvYXJkOndyaXRlIiwiZGFzaGJvYXJkOnJlYWQiXSwic2Vzc2lvbl9pZCI6IjU2ZmMzMWYzLTI5ZjYtNGI1ZC04MjQ1LWEwM2Q0ZTc5MTc0ZSIsImlhdCI6MTcwODE5MDk3OCwiZXhwIjoxNzA4Mjc3Mzc4LCJhdWQiOiJ1c2VyIiwiaXNzIjoiZ2xhZHlzIn0.4d2tzir56mkN3AlDo0KNGjpCDBC2aiy9wVrjQemFHg8
Connection
	keep-alive
Content-Length
	2306
Content-Type
	application/json;charset=utf-8
Host
	192.168.1.134
Origin
	http://192.168.1.134
Referer
	http://192.168.1.134/dashboard/integration/device/zigbee2mqtt/discover
User-Agent
	Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:122.0) Gecko/20100101 Firefox/122.0

J’ai trouvé ça dans l’onglet reponse :

status	409
code	"CONFLICT"
error	
message	"external_id must be unique"
attribute	"external_id"
value	"zigbee2mqtt:detecteur couloir:light-sensor:decimal:illuminance"
type	"unique violation"

capture d’ecran de l’expose du detecteur :


capture d’ecran de decouverte Zigbbe dans Gladys

c’est le fait qu’il y est deux fonctions identiques ?
luminosité decimale
Ce serait étonnant car ce detecteur est integré dans gladys par zigbee2mqtt de puis 2 ans !

Apparemment, une feature existe déjà. Difficile de dire si une suppression s’est mal passée ou si ça vient de ce device.

Voici les commandes pour le supprimer en base :broom:

:warning: Fais une sauvegarde de ta base de données avant (extinction du docker gladys, copie du fichier /var/lib/gladysassistant/gladys-production.db)


docker exec -it gladys /bin/sh

sqlite3 /var/lib/gladysassistant/gladys-production.db

.mode column

.headers on

SELECT id, name, selector, external_id FROM t_device_feature WHERE external_id = 'zigbee2mqtt:detecteur couloir:light-sensor:decimal:illuminance';

Cela te donne l’id de la feature à supprimer (sous forme d’uuid b0c63f91-3bcd-4989-b740-1850807ecb0d)

Suppression des états
DELETE FROM t_device_feature_state WHERE device_feature_id = '<uuid>';

Suppression des états agrégés
DELETE FROM t_device_feature_state_aggregate WHERE device_feature_id = '<uuid>';

Suppression de la feature
DELETE FROM t_device_feature WHERE id = '<uuid>';

.exit

bonjour @cicoub13
je vais essayer de faire ca merci, je te ferai un retour
merci et bonne journée

Bonsoir @cicoub13
Bon les interrogations commencent , j’ai copié/collé la premiere commande , mais je n’ai pas de retour d’ uuid

pi@gladys:// $ docker exec -it gladys /bin/sh
sqlite3 /var/lib/gladysassistant/gladys-production.db
.mode column
.headers on
SELECT id, name, selector, external_id FROM t_device_feature WHERE external_id = 'zigbee2mqtt:detecteur couloir:light-sensor:decimal:illuminance'
/src/server #

je n’ai pas de retour d’id de la feature à supprimer , je reste sur /src/server #

Chaque ligne est une commande (où il faut appuyer sur Entrée). Tu as bien fait une sauvegarde ?

Oui avec filezilla, j’ai copié le fichier sur mon disque dur

ca donne ça en entrant les lignes une par une et en validant à chaque ligne :

pi@gladys:// $ docker exec -it gladys /bin/sh
/src/server # sqlite3 /var/lib/gladysassistant/gladys-production.db
SQLite version 3.44.2 2023-11-24 11:41:44
Enter ".help" for usage hints.
sqlite> .mode column
sqlite> .headers on
sqlite> SELECT id, name, selector, external_id FROM t_device_feature WHERE external_id = 'zigbee2mqtt:detecteur couloir:light-sensor:decimal:illuminance'
   ...>


Il manquait des ; à la fin des commandes SQL (rajoutées dans mon post original)

toujours pas d’ID

pi@gladys:// $ docker exec -it gladys /bin/sh
/src/server # sqlite3 /var/lib/gladysassistant/gladys-production.db
SQLite version 3.44.2 2023-11-24 11:41:44
Enter « .help » for usage hints.
sqlite> .mode column
sqlite> .headers on
sqlite> SELECT id, name, selector, external_id FROM t_device_feature WHERE external_id = ‹ zigbee2mqtt:detecteur couloir:light-sensor:decimal:illuminance ›;
sqlite>

Bonjour @cicoub13
Est ce que je devrai avoir un affichage du uuid? car la je reste bloque sur l’invite : sqlite> et je n’e sais pas en sortir .exit , ne m’en fait pas sortir
Et pour les suppressions je suis sensé remplacé :

id = '<uuid>';

par :
id = 'mon uuid'; ;enlevant ça : <>
En fait je ne connais pas du tout le Sql
Merci pour ton aide

Ne serais-tu pas plus à l’aise sur un logiciel externe en exportant ta base pour au moins avoir l’uuid ?

Tu peux consulter le post de Pierre-Gilles :

Pour ma part je ne passe quasi que par ça !!

Eteindre Gladys, telecharge la base de donnée sur ton PC/Mac et tu consultes.
Si tu as fais un backup avant, tu peux supprimer dans TablePlus puis réimporter ta base (attention aux droits, moi je suis obligé d’ouvrir les droits à tous puis je remet en etat ensuite)

Bonjour @Terdious
je vais regardé ça, je te remercie pour ta reponse :wink:

1 « J'aime »

Bonjour @Terdious ,@pierre-gilles
Il amene sur quoi ce lien ? car pour le moment, il ne fonctionne plus

Bonjour @Psoy,

Plus rien, c’était les prémices de Gladys V4 à sa conception je crois ^^

Au temps pour moi, j’aurais dû être plus précis, je parlais de ce lien dans le post :

Pas de soucis,
Pour Tabplus c’est bon , il ne me reste plus qu’ apprendre comment ca fonctionne, j’ai deja ouvert la db sur Tabplus, c’est un premier pas :grinning:
merci encore

1 « J'aime »