[ERROR] Model invalide > undefined

Bonjour,

Mon installation Homebridge avec Zigate en fm 3.0f et Abeille ne fonctionne plus depuis une semaine. Voici les différentes étapes réalisées :
Mise a jour du firmware Zigate en 3.1d
Update d’Abeille, tous fonctionne, mais plus d’homebridge.
Désactivation de toute les pièces.
Activation seulement d’une sonde Xiaomi sous Abeille, homebridge démarre.
Activation d’un detecteur d’ouverture Xiaomi sous Abeille, homebridge démarre.
Activation d’une ampoule Ikea sous Abeille, Homebridge ne démarre plus.

Mais depuis ce matin, en désactivant tout, après suppression du plug-in et réinstallation complète j’obtiens toujours l’erreur suivante :

[11/8/2020, 9:28:32 AM] Homebridge is running on port 51826.
[11/8/2020, 9:28:34 AM] [Ban] [ERROR] Model invalide > undefined
[11/8/2020, 9:28:35 AM] [Ban] [ERROR] #2 Erreur de récupération des données Jeedom: Error: Invalid Model
at /var/www/html/plugins/homebridge/resources/node_modules/homebridge-jeedom/index.js:148:12
at processTicksAndRejections (internal/process/task_queues.js:97:5)
Error: Invalid Model
at /var/www/html/plugins/homebridge/resources/node_modules/homebridge-jeedom/index.js:148:12
at processTicksAndRejections (internal/process/task_queues.js:97:5)
e[0;37m[11/8/2020, 9:28:41 AM] e[0me[0;36m[Homebridge UI]e[0m e[0;33mHomebridge Config UI X v4.32.0 is listening on :: port 33221e[0m

Hello, classique avec abeille, c’est un équipement mal créé dans abeille.

Tu as deux solutions :

  1. Cliquer sur « sauvegarder » dans chacun de tes équipements abeille puis relancer homebridge.

  2. Retirer toutes les pièces et les équipements de homebridge sauf 1 puis relancer le demon homebridge, ajouter un équipement à la fois en redemarrant le demon a chaque fois jusqu’à plantage, le dernier est le fautif, tu cliques sur sauvegarder dans abeille et ça devrai foncrionner

Hello Nebz,

Merci pour ta réponse, en effet j’avais oublié de désactiver une pièce.
Après désactivation de toute les pièces, et réactivation progressive, il semble que le problème provienne des Ampoules Ikea par Abeille, y’a t-il un moyen de corriger par nous même ? Ou faut-il ouvrir un ticket Abeille ?

[11/8/2020, 10:30:07 AM] [Ban] [ERROR] Erreur de la fonction getAccessoryValue : TypeError: Cannot read property 'cmds' of undefined
at JeedomClient.getDeviceCmdFromCache (/var/www/html/plugins/homebridge/resources/node_modules/homebridge-jeedom/lib/jeedom-api.js:111:34)
at JeedomPlatform.getAccessoryValue (/var/www/html/plugins/homebridge/resources/node_modules/homebridge-jeedom/index.js:3021:35)
at JeedomPlatform.<anonymous> (/var/www/html/plugins/homebridge/resources/node_modules/homebridge-jeedom/index.js:2682:27)
at Characteristic.emit (events.js:314:20)
at Characteristic.EventEmitter.emit (/var/www/html/plugins/homebridge/resources/node_modules/hap-nodejs/src/lib/EventEmitter.ts:42:22)
at Characteristic._this.getValue (/var/www/html/plugins/homebridge/resources/node_modules/hap-nodejs/src/lib/Characteristic.ts:489:12)
at /var/www/html/plugins/homebridge/resources/node_modules/hap-nodejs/src/lib/Accessory.ts:1217:22
at Array.forEach (<anonymous>)
at Bridge.Accessory._this._handleGetCharacteristics (/var/www/html/plugins/homebridge/resources/node_modules/hap-nodejs/src/lib/Accessory.ts:1145:10)
at HAPServer.emit (events.js:314:20)
TypeError: Cannot read property 'cmds' of undefined
at JeedomClient.getDeviceCmdFromCache (/var/www/html/plugins/homebridge/resources/node_modules/homebridge-jeedom/lib/jeedom-api.js:111:34)
at JeedomPlatform.getAccessoryValue (/var/www/html/plugins/homebridge/resources/node_modules/homebridge-jeedom/index.js:3021:35)
at JeedomPlatform.<anonymous> (/var/www/html/plugins/homebridge/resources/node_modules/homebridge-jeedom/index.js:2682:27)
at Characteristic.emit (events.js:314:20)
at Characteristic.EventEmitter.emit (/var/www/html/plugins/homebridge/resources/node_modules/hap-nodejs/src/lib/EventEmitter.ts:42:22)
at Characteristic._this.getValue (/var/www/html/plugins/homebridge/resources/node_modules/hap-nodejs/src/lib/Characteristic.ts:489:12)
at /var/www/html/plugins/homebridge/resources/node_modules/hap-nodejs/src/lib/Accessory.ts:1217:22
at Array.forEach (<anonymous>)
at Bridge.Accessory._this._handleGetCharacteristics (/var/www/html/plugins/homebridge/resources/node_modules/hap-nodejs/src/lib/Accessory.ts:1145:10)
at HAPServer.emit (events.js:314:20)

As tu tenté ce que je t’ai proposé ? De cliquer sauvegarder à nouveau sur ton ampoule dans le plugin abeille ?

Chaque fois qu’un utilisateur a eu le problème ça le résolvait… le problème c’est qu il faudrait comparer l’entrée en base de donnée avant et après cette sauvegarde pour aider le dev de abeille à résoudre ce problème …

J’ai essayé, mais toujours pareil.
Par contre j’avance dans l’analyse :
Activation 1 pièce avec juste une sonde Xiaomi = OK
Activation 1 pièce avec Sonde et détecteur ouverture Xiaomi = OK
Activation 1 pièce avec 1 ampoule Ikea = OK
Activation 1 pièce avec détecteur et ampoule = KO, la même pièce sans rien = KO invalid model.

Est ce qu’il se peux que ce soit lié a la pièce ?

Non, mais une pièce sans rien forcément le modèle est invalide.

Par contre tu peux m’envoyer en privée un accès à ton jeedom et je peux regarder quel est le problème sur l’ampoule ikea… ça pourrait aider le dev abeille

Résultats des tests suivants avec la pièces Entrée qui est la source des problèmes.
Cette pièce a trois périphérique, un détecteur d’ouverture Porte d’entrée, un ampoule porte d’entrée et une ampoule Hall d’entrée.
Sortie des trois périphériques de la pièce depuis abeille et mis dans aucun, activation de la pièce Entrée dans Homebridge = OK
Placement du détecteur d’ouverture dans la pièce Entrée = KO invalid model
Placement d’une ampoule = KO invalid model

Ce qui est bizarre dans d’autres pièces les détecteur fonctionne et les ampoule aussi.
Pour l’accès au Jeedom je ne sais pas trop comment on fait ca.

Tu ajoutes un utilisateur et tu me donnes ton url externe ou bien si tu me fais pas super confiance (et je ne t’en voudrai pas) via teamviewer sur ton ordi pour contrôler ce que je fais, mais d’ici 1h si tu veux bien, je vais seulement manger

j’ai trouvé :wink:

ton équipement 227 (Lumière Hall ENT), la commande « nom » elle bug…

@kiwihc16 hello, il semble y avoir un problème chez lui… sur la commande nom :

c’est pour une ampoule ikea :
image

mon plugin homebridge utilise la methode du core : $cmd->exportApi() que tu peux consulter ici :

la première partie fonctionne bien (le o2a), par contre ici on a une commande de type info, donc après il fait un execCmd sur la commande, qui est sensé donner la valeur de la commande en cache et là ca plante complet… j’ai pas de log, mais pas de résultat.

ca peut être confirmé directement dans la liste des commandes en appuyant sur « Tester » aucun bandeau qui s’affiche avec la valeur de la commande.

j’arrive à reproduire le même problème chez lui sur tous les éléments abeille… pas moyen de recevoir la valeur dans la liste des commandes.

tu as une idée ?

Salut,
La commande nom est créée par defaut lors de la création de l objet. Elle est initialisée plus tard quand on recoit l’information.
On peut faire plusieurs tests:
1 - Supprimer juste la commande nom et voir si Homebridge est content. (On peut supprimer dans Abeille la commande nom, elle n est la que pour info pour l utilisateur).
2 - Envoyer un nom à la commande et voir ensuite si HomeBridge est ok avec.
3 - Faire la création d’un objet vide et voir comment cela ca se passe (Je vais essayer de faire ce test)

Est ce que Homebridge a besoin de cette commande ? Je suppose qu’elle a un type generique NULL pour qu’elle ne soit pas prise en compte par homebridge. Est ce bien le cas ?

  1. Il a fait le test et ça fonctionne

Non pas besoin, mais lors de la sérialisation des commandes avec exportApi (avant donc de consulter son type générique) ça plante.

Je couvre certains oublis de types génériques avec mon plugin… donc je dois pouvoir sérialiser toutes les commandes.

Il a remarqué aussi un problème de caractère spécial à la fin du nom (je pense qu’il a fait une issue sur github). Si le core ne gère pas bien ce caractère ça pourrait être la cause…

Je pense plutot pour cette option de caractere special (Hex) dans la commande qui fait que la serialisation plante. Il y longtemps on avait eu ce soucis pour une autre commande.

c’est vraiment la ligne execCmd qui plante, tu peux le voir en cliquant sur « tester » dans la liste de commandes. donc meme pas la sérialisation en elle même, plutot l’appel à la valeur dans le cache…

Demain une beta sera dispo donc on pourra essayer.

Hello

J’ai le même soucis mais j’utilise Zigate parcontre sans le plugin Abeille.

Du coup en lisant le topic je ne suis pas sur de ce qu’il faut faire…

Merci

Hello,

Il faut isoler une seule pièce et un seul équipement, puis ajouter les équipements un par un pour détecter le fautif (probablement un zigate). (En relançant le demon entre chaque)

Puis il faut cliquer sur « tester » sur chaque commande de type info de l’équipement fautif, et déterminer la commande fautive (celle qui ne fera pas de bandeau vert avec la valeur de la commande). Ensuite il faut voir avec le dev pourquoi cette commande info ne retourne rien…

Ok oui j’ai recoupé avec Homebridge erreur getAccessoryValue - #3 par olive je suis dessus …

@nebz tu es le dév homebridge c’est ça ?

Oui du plugin homebridge (pas de homebridge en lui même ;-))

Dans une prochaine version j’ajouterai un log pour détecter tout de suite la commande fautive :wink: