Support¶
Si vous rencontrez des problèmes, c’est le chapitre qu’il vous faut.
Important
Pour toute demande de support, merci avant tout
d’être sur d’être en “mode debug”
d’avoir modifié le nombre de lignes de log de 500 à 5000 via la configuration Jeedom
Pensez à redémarrer Abeille après ce genre de changement.
Configuration jeedom pour les logs¶
Pour toute livraison de logs pour besoins de support, il est recommandé de
- Passer le nombre de lignes à AU MOINS 5000 par log (500 par défaut = trop court).
Reglages > Systeme > Configuration > Logs
puis encore “Logs”
« Nombre de lignes maximum dans un fichier de log » >= 5000
Sauvegarder
Relancer Abeille
Faire un drag & drop du package fourni par la page support/télécharger tout.
Forum¶
Liste des sujets en cours de discussions: Forum Jeedom
Liste des sujets en cours d’investigations: GitHub Abeille
Accès à la base de données Jeedom¶
Acceder à la database Jeedom qui stocke les équipement ou commandes peut être utile pour le debug.
L’accès se fait via le menu « Réglages », puis « Système » et « Configuration ».
puis « _OS/DB » et enfin « Administration Base de données »
Affichage des commandes
Le moniteur¶
Ce “moniteur” est un démon optionnel qui permet de capturer les messages envoyés vers et reçus d’un équipement particulier dans le but de suivre les échanges dans l’ordre chronologique. Il a été conçu dans un but informatif et de debug et donc ne gère qu’un seul équipement à la fois.
Exemple sur un équipement actif:
[2021-03-25 11:06:27] >>> Démarrage du démon de monitoring
[2021-03-25 11:06:27] Adresse à surveiller: E4CA-00158D000478E64E
[2021-03-25 11:06:49] <= 8002/Data indication, Status=00, ProfId=0104, ClustId=0006, SrcEP=01, DestEP=01, SrcAddrMode=02, SrcAddr=E4CA, DestAddrMode=02, DestAddr=Ruche
[2021-03-25 11:06:49] <= 8102/Attribut report, SQN=AE, Addr=E4CA, EP=01, ClustId=0006, AttrId=0000, AttrStatus=00, AttrDataType=10, AttrSize=0001
[2021-03-25 11:06:50] <= 8002/Data indication, Status=00, ProfId=0104, ClustId=0006, SrcEP=01, DestEP=01, SrcAddrMode=02, SrcAddr=E4CA, DestAddrMode=02, DestAddr=Ruche
[2021-03-25 11:06:50] <= 8102/Attribut report, SQN=AF, Addr=E4CA, EP=01, ClustId=0006, AttrId=0000, AttrStatus=00, AttrDataType=10, AttrSize=0001
[2021-03-25 11:06:50] <= 8002/Data indication, Status=00, ProfId=0104, ClustId=0006, SrcEP=01, DestEP=01, SrcAddrMode=02, SrcAddr=E4CA, DestAddrMode=02, DestAddr=Ruche
[2021-03-25 11:06:50] <= 8102/Attribut report, SQN=B0, Addr=E4CA, EP=01, ClustId=0006, AttrId=0000, AttrStatus=00, AttrDataType=10, AttrSize=0001
Exemple sur un équipement qui ne répond pas:
[2021-03-24 18:15:52] => 0100-000e-028AB70101000000000000010005
[2021-03-24 18:15:58] <= 8011/APS data ACK, Status=A7, Addr=8AB7, EP=01, ClustId=0000
[2021-03-24 18:15:59] <= 8702/APS data confirm fail, Status=F0/MAC_ENUM_TRANSACTION_EXPIRED, SrcEP=01, DestEP=01, AddrMode=02, Addr=8AB7, SQN=4A
[2021-03-24 18:21:12] <= 8011/APS data ACK, Status=A7, Addr=8AB7, EP=00, ClustId=8006
[2021-03-24 18:30:30] => 0100-000e-028AB70101000000000000010005
[2021-03-24 18:30:36] <= 8011/APS data ACK, Status=A7, Addr=8AB7, EP=01, ClustId=0000
[2021-03-24 18:30:37] <= 8702/APS data confirm fail, Status=F0/MAC_ENUM_TRANSACTION_EXPIRED, SrcEP=01, DestEP=01, Addr
Utilisation¶
Le bouton « surveiller » est visible sur la page de gestion d’Abeille.
Il suffit de selectionner l’équipement à surveiller et cliquer sur « surveiller » pour activer le moniteur sur cet EQ. « AbeilleMonitor.log » devrait alors apparaitre dans l’ensemble des logs de la page de config.
Dans le détail¶
Le moniteur utilise 3 queues de messages pour dialoguer avec AbeilleCmd & AbeilleParser:
reçoit les messages envoyés vers l’equipement (AbeilleCmd -> AbeilleMonitor)
reçoit les messages reçus de l’équipement (AbeilleParser -> AbeilleMonitor)
informe AbeilleCmd que l’adresse à surveiller à changé suite à un « device announce » (AbeilleMonitor -> AbeilleCmd)
Points manquants¶
Pas de possibilité de désactiver le moniteur
Signaler un bug¶
En cas de soucis ou questions n’ayant pas trouvé réponse dans le forum, vous pouvez ici <https://github.com/KiwiHC16/Abeille/issues>
soit compléter un sujet existant correspondant à votre souci
soit réouvrir un sujet déja clos si le problème existe toujours
ou enfin créer un nouveau sujet.
Si vous ouvrez une « issue » merci de fournir le plus d’information possible et en particulier:
- Votre configuration Jeedom:
Le HW sur lequel vous faite tourner le plugin,
la Version de l’OS,
la version de Jeedom
…
- Votre configuration Gateway
Type de Zigate
quel firmware
…
- Les logs, aussi nombreux que possibles surtout
AbeilleParser
AbeilleMQTT
Abeille
…
- Description
ce que vous cherchez à faire
les résultats
captures d’ecrans
…
Demander une amélioration¶
Si vous souhaitez une évolution dans le plugin, merci d ouvrir une « issue » dans GitHub à l’adresse avec un « Labels » « enhancement »: https://github.com/KiwiHC16/Abeille/issues
Divers¶
Configuration¶
Verifier la configuration réseau et en particulier /hostname, /etc/hosts
Vérifier la configuration du plugin. Par exemple le message suivant indique très probablement que l’objet de rattachement de l’équipement Ruche n’est pas défini.
1[MySQL] Error code : 23000 (1452). Cannot add or update a child row: a foreign key constraint fails (`Jeedom`.`eqLogic`, CONSTRAINT `fk_eqLogic_object1` FOREIGN KEY (`object_id`) REFERENCES `object` (`id`) ON DELETE SET NULL ON UPDATE CASCADE)
Connection¶
Premier test¶
Rendez l équipement Ruche Visible (Il est maintenant caché par défaut).
Dans l équipement ruche, appuyez sur le bouton « Version », vous devez récupérer la version logicielle dans le champ SW, la version de dev dans le champ SDK et les dates Last et Lasts Stamps doivent se mettre à jour à chaque fois. Si les dates se mettent à jour c’est que le dialogue Abeille-Zigate fonctionne dans les deux sens.
Deuxième test¶
Vérifiez bien que vous n’avez pas plusieurs Plugins essayant d’utiliser le même port série (/dev/ttyUSBx).
Troisième test¶
Tester la Zigate en ligne de commande (ssh)
On envoie
1stty -F/dev/ttyUSB0 115200 <1>
2echo -ne '\x01\x02\x10\x49\x02\x10\x02\x14\xb0\xff\xfc\xfe\x02\x10\x03' > /dev/ttyUSB0 <2>
<1> On configure le port série
<2> On demande à la zigate de se mettre en inclusion.
(Cela peut être fait alors que le plugin est Zigate fonctionnent).
Cette commande demande à la Zigate de se mettre en Inclusion, vous devriez voir la LED bleu se mettre à clignoter et dans le log AbeilleParser vous devriez voir passer un message comme:
1AbeilleParser 2018-02-28 04:21:32[DEBUG]-------------- 2018-02-28 04:21:32: protocolData size(20) message > 12 char
2AbeilleParser 2018-02-28 04:21:32[DEBUG]Type: 8000 quality: 00
3AbeilleParser 2018-02-28 04:21:32[DEBUG]type: 8000 (Status)(Not Processed)
4AbeilleParser 2018-02-28 04:21:32[DEBUG]Length: 5
5AbeilleParser 2018-02-28 04:21:32[DEBUG]Status: 00-(Success)
6AbeilleParser 2018-02-28 04:21:32[DEBUG]SQN: b8
Si la LED bleue clignote cela confirme que le dialogue Abeille vers Zigate fonctionne.
PS: la configuration du port peu varier d’un système à l’autre donc il peut être nécesaire de jouer avec stty en rajoutant les arguments raw, cs8, -parenb et autres.
Quatrième test¶
Arretez le plugin Abeille. Lancer la commande dans un terminal (Ecoute):
1cat /dev/ttyUSB0 | hexdump -vC
Dans un second terminal envoyez la commande
1stty -F/dev/ttyUSB0 115200
2echo -ne '\x01\x02\x10\x49\x02\x10\x02\x14\xb0\xff\xfc\xfe\x02\x10\x03' > /dev/ttyUSB0
Dans le premier terminal (Ecoute) vous devriez voir passer du traffic comme:
www-data@Abeille:~/html/log$ cat /dev/ttyUSB0 | hexdump -vC
00000000 01 80 02 10 02 10 02 15 77 02 10 bb 02 10 49 02 |........w.....I.|
00000010 10 03 01 80 02 10 02 10 02 15 70 02 10 bc 02 10 |..........p.....|
Cela confirme Zigate vers Jeedom
Equipements ZigBee¶
La ruche possede des commandes pour interroger les objets. Les deux principales sont ActiveEndPoint et SingleDescriptorRequest.
Dans ActiveEndPoint mettre l’adresse de l’équipement dans le titre puis clic sur le bouton ActiveEndPoint.
Regardez dans la log AbeilleParser, vous devez voir passer la réponse. Par exemple pour une ampoule IKEA:
AbeilleParser: 2018-02-06 17:40:16[DEBUG]-------------- 2018-02-06 17:40:16: protocolData
AbeilleParser: 2018-02-06 17:40:16[DEBUG]message > 12 char
AbeilleParser: 2018-02-06 17:40:16[DEBUG]Type: 8045 quality: 93
AbeilleParser: 2018-02-06 17:40:16[DEBUG]type: 8045 (Active Endpoints Response)(Not Processed)
AbeilleParser: 2018-02-06 17:40:16[DEBUG]SQN : da
AbeilleParser: 2018-02-06 17:40:16[DEBUG]Status : 00
AbeilleParser: 2018-02-06 17:40:16[DEBUG]Short Address : 6e1b
AbeilleParser: 2018-02-06 17:40:16[DEBUG]Endpoint Count : 01
AbeilleParser: 2018-02-06 17:40:16[DEBUG]Endpoint List :
AbeilleParser: 2018-02-06 17:40:16[DEBUG]Endpoint : 01
Il y a, dans ce cas, une seul EndPoint à l’adresse « 01 » (Donné par les lignes suivant « Endpoint List »).
Faire de même pour SingleDescriptorRequest en ajoutant le EndPoint voulu dans le champ Message.
AbeilleParser: 2018-02-06 17:42:25[DEBUG]-------------- 2018-02-06 17:42:25: protocolData
AbeilleParser: 2018-02-06 17:42:25[DEBUG]message > 12 char
AbeilleParser: 2018-02-06 17:42:25[DEBUG]Type: 8000 quality: 00
AbeilleParser: 2018-02-06 17:42:25[DEBUG]type: 8000 (Status)(Not Processed)
AbeilleParser: 2018-02-06 17:42:25[DEBUG]Length: 5
AbeilleParser: 2018-02-06 17:42:25[DEBUG]Status: 00-(Success)
AbeilleParser: 2018-02-06 17:42:25[DEBUG]SQN: db
AbeilleParser: 2018-02-06 17:42:25[DEBUG]-------------- 2018-02-06 17:42:25: protocolData
AbeilleParser: 2018-02-06 17:42:25[DEBUG]message > 12 char
AbeilleParser: 2018-02-06 17:42:25[DEBUG]Type: 8043 quality: 93
AbeilleParser: 2018-02-06 17:42:25[DEBUG]Type: 8043 (Simple Descriptor Response)(Not Processed)
AbeilleParser: 2018-02-06 17:42:25[DEBUG]SQN : db
AbeilleParser: 2018-02-06 17:42:25[DEBUG]Status : 00
AbeilleParser: 2018-02-06 17:42:25[DEBUG]Short Address : 6e1b
AbeilleParser: 2018-02-06 17:42:25[DEBUG]Length : 20
AbeilleParser: 2018-02-06 17:42:25[DEBUG]endpoint : 01
AbeilleParser: 2018-02-06 17:42:25[DEBUG]profile : c05e
AbeilleParser: 2018-02-06 17:42:25[DEBUG]deviceId : 0100
AbeilleParser: 2018-02-06 17:42:25[DEBUG]bitField : 02
AbeilleParser: 2018-02-06 17:42:25[DEBUG]InClusterCount : 08
AbeilleParser: 2018-02-06 17:42:25[DEBUG]In cluster: 0000 - General: Basic
AbeilleParser: 2018-02-06 17:42:25[DEBUG]In cluster: 0003 - General: Identify
AbeilleParser: 2018-02-06 17:42:25[DEBUG]In cluster: 0004 - General: Groups
AbeilleParser: 2018-02-06 17:42:25[DEBUG]In cluster: 0005 - General: Scenes
AbeilleParser: 2018-02-06 17:42:25[DEBUG]In cluster: 0006 - General: On/Off
AbeilleParser: 2018-02-06 17:42:25[DEBUG]In cluster: 0008 - General: Level Control
AbeilleParser: 2018-02-06 17:42:25[DEBUG]In cluster: 0B05 - Misc: Diagnostics
AbeilleParser: 2018-02-06 17:42:25[DEBUG]In cluster: 1000 - ZLL: Commissioning
AbeilleParser: 2018-02-06 17:42:25[DEBUG]OutClusterCount : 04
AbeilleParser: 2018-02-06 17:42:25[DEBUG]Out cluster: 0000 - General: Basic
AbeilleParser: 2018-02-06 17:42:25[DEBUG]Out cluster: 0003 - General: Identify
AbeilleParser: 2018-02-06 17:42:25[DEBUG]Out cluster: 0004 - General: Groups
AbeilleParser: 2018-02-06 17:42:25[DEBUG]Out cluster: 0005 - General: Scenes
Nous avons maintenant les clusters supportés par cet objet sur son endpoint 01.
Script¶
Dans Abeille/resources/AbeilleDeamon/Debug, vous trouverez le script verification.sh.
L’execution permet de tester, vérifier et donner des infos qui sont souvent interessantes pour des problème de base. Ce script n’est pas forcement bien maintenu alors les résultats ne sont pas forcement fiables.
Je ne suis pas sûre que ce script soit toujours à jour…
Messages¶
Les different module d’Abeille discutent entre eux par message passing. Ils est possible de voir l’etat avec la commande ipcs (en ssh).
------ Files de messages --------
clef msqid propriétaire perms octets utilisés messages
0x0000007b 0 www-data 666 0 0
0x000000df 32769 www-data 666 0 0
0x00000143 65538 www-data 666 0 0
0x00000141 98307 www-data 666 0 0
0x0000020b 131076 www-data 666 0 0
0x0000026f 163845 www-data 666 0 0
0x000002d3 196614 www-data 666 0 0
0x00000336 229383 www-data 666 0 0
0x00000079 262152 www-data 666 0 0
0x000000dd 294921 www-data 666 0 0
0x000001a5 327690 www-data 666 0 0
0x0000026d 360459 www-data 666 0 0
0x0000007c 393228 www-data 666 0 0
0x000000e1 425997 www-data 666 0 0
Ici on voit dans la derniere colonne qu’il n’y a pas de message en attente, ils ont tous été traités.