Bonjour,
A force d’analyser les erreurs dans les fichiers log d’openzwave pour debugger mon réseau, je me suis rendu compte qu’il existe certaines requêtes qui ne semblent pas ou mal être supportées et qui nous font perdre vraiment du temps lors du redémarrage
4 secondes à chaque fois ! Compter le nombre de modules que vous avez et faites le calcul !
Ces erreurs sont toutes dans la catégorie Nombre de messages jetés ou non délivrés :
Exemple avec la commande AlarmCmd_Get qui est mal supportée avec tous les modules
Pour les Fibaro Dimmer 2 il y a 4 requêtes et à chaque fois la première des 4 n’aboutit pas
2020-04-20 20:54:24.137 Info, Node045, Sending (Send) message (Callback ID=0x92, Expected Reply=0x04) - MultiChannel Encapsulated (instance=1): AlarmCmd_Get (Node=45): 0x01, 0x10, 0x00, 0x13, 0x2d, 0x09, 0x60, 0x0d, 0x01, 0x01, 0x71, 0x04, 0x00, 0x00, 0x01, 0x25, 0x92, 0x76
2020-04-20 20:54:24.168 Info, Node045, Request RTT 30 Average Request RTT 30
2020-04-20 20:54:28.138 Error, Node045, ERROR: Dropping command, expected response not received after 1 attempt(s)
2020-04-20 20:54:28.140 Info, Node045, Sending (Send) message (Callback ID=0x93, Expected Reply=0x04) - MultiChannel Encapsulated (instance=1): AlarmCmd_Get (Node=45): 0x01, 0x10, 0x00, 0x13, 0x2d, 0x09, 0x60, 0x0d, 0x01, 0x01, 0x71, 0x04, 0x00, 0x04, 0x01, 0x25, 0x93, 0x73
2020-04-20 20:54:28.171 Info, Node045, Request RTT 30 Average Request RTT 30
2020-04-20 20:54:28.187 Info, Node045, Response RTT 47 Average Response RTT 46
2020-04-20 20:54:28.188 Info, Node045, Received a MultiChannelEncap from node 45, endpoint 1 for Command Class COMMAND_CLASS_ALARM
2020-04-20 20:54:28.188 Info, Node045, Received Alarm report: type=0, level=0, sensorSrcID=0, type:Heat event:254, status=255
2020-04-20 20:54:28.190 Info, Node045, Sending (Send) message (Callback ID=0x94, Expected Reply=0x04) - MultiChannel Encapsulated (instance=1): AlarmCmd_Get (Node=45): 0x01, 0x10, 0x00, 0x13, 0x2d, 0x09, 0x60, 0x0d, 0x01, 0x01, 0x71, 0x04, 0x00, 0x08, 0x01, 0x25, 0x94, 0x78
2020-04-20 20:54:28.220 Info, Node045, Request RTT 30 Average Request RTT 30
2020-04-20 20:54:28.237 Info, Node045, Response RTT 46 Average Response RTT 46
2020-04-20 20:54:28.237 Info, Node045, Received a MultiChannelEncap from node 45, endpoint 1 for Command Class COMMAND_CLASS_ALARM
2020-04-20 20:54:28.237 Info, Node045, Received Alarm report: type=0, level=0, sensorSrcID=0, type:Power Management event:254, status=255
2020-04-20 20:54:28.240 Info, Node045, Sending (Send) message (Callback ID=0x95, Expected Reply=0x04) - MultiChannel Encapsulated (instance=1): AlarmCmd_Get (Node=45): 0x01, 0x10, 0x00, 0x13, 0x2d, 0x09, 0x60, 0x0d, 0x01, 0x01, 0x71, 0x04, 0x00, 0x09, 0x01, 0x25, 0x95, 0x78
2020-04-20 20:54:28.272 Info, Node045, Request RTT 31 Average Request RTT 30
2020-04-20 20:54:28.287 Info, Node045, Response RTT 47 Average Response RTT 46
2020-04-20 20:54:28.287 Info, Node045, Received a MultiChannelEncap from node 45, endpoint 1 for Command Class COMMAND_CLASS_ALARM
2020-04-20 20:54:28.287 Info, Node045, Received Alarm report: type=0, level=0, sensorSrcID=0, type:System event:1, status=255
Idem avec un autre Dimmer 2, ça plante au même endroit
2020-04-20 20:54:28.603 Info, Node048, Sending (Send) message (Callback ID=0x9b, Expected Reply=0x04) - MultiChannel Encapsulated (instance=1): AlarmCmd_Get (Node=48): 0x01, 0x10, 0x00, 0x13, 0x30, 0x09, 0x60, 0x0d, 0x01, 0x01, 0x71, 0x04, 0x00, 0x00, 0x01, 0x25, 0x9b, 0x62
2020-04-20 20:54:28.629 Info, Node048, Request RTT 25 Average Request RTT 24
2020-04-20 20:54:32.603 Error, Node048, ERROR: Dropping command, expected response not received after 1 attempt(s)
2020-04-20 20:54:32.605 Info, Node048, Sending (Send) message (Callback ID=0x9c, Expected Reply=0x04) - MultiChannel Encapsulated (instance=1): AlarmCmd_Get (Node=48): 0x01, 0x10, 0x00, 0x13, 0x30, 0x09, 0x60, 0x0d, 0x01, 0x01, 0x71, 0x04, 0x00, 0x04, 0x01, 0x25, 0x9c, 0x61
2020-04-20 20:54:32.631 Info, Node048, Request RTT 25 Average Request RTT 24
2020-04-20 20:54:32.644 Info, Node048, Response RTT 38 Average Response RTT 37
2020-04-20 20:54:32.644 Info, Node048, Received a MultiChannelEncap from node 48, endpoint 1 for Command Class COMMAND_CLASS_ALARM
2020-04-20 20:54:32.644 Info, Node048, Received Alarm report: type=0, level=0, sensorSrcID=0, type:Heat event:254, status=255
2020-04-20 20:54:32.647 Info, Node048, Sending (Send) message (Callback ID=0x9d, Expected Reply=0x04) - MultiChannel Encapsulated (instance=1): AlarmCmd_Get (Node=48): 0x01, 0x10, 0x00, 0x13, 0x30, 0x09, 0x60, 0x0d, 0x01, 0x01, 0x71, 0x04, 0x00, 0x08, 0x01, 0x25, 0x9d, 0x6c
2020-04-20 20:54:32.672 Info, Node048, Request RTT 25 Average Request RTT 24
2020-04-20 20:54:32.685 Info, Node048, Response RTT 38 Average Response RTT 37
2020-04-20 20:54:32.685 Info, Node048, Received a MultiChannelEncap from node 48, endpoint 1 for Command Class COMMAND_CLASS_ALARM
2020-04-20 20:54:32.685 Info, Node048, Received Alarm report: type=0, level=0, sensorSrcID=0, type:Power Management event:254, status=255
2020-04-20 20:54:32.688 Info, Node048, Sending (Send) message (Callback ID=0x9e, Expected Reply=0x04) - MultiChannel Encapsulated (instance=1): AlarmCmd_Get (Node=48): 0x01, 0x10, 0x00, 0x13, 0x30, 0x09, 0x60, 0x0d, 0x01, 0x01, 0x71, 0x04, 0x00, 0x09, 0x01, 0x25, 0x9e, 0x6e
2020-04-20 20:54:32.713 Info, Node048, Request RTT 25 Average Request RTT 24
2020-04-20 20:54:32.726 Info, Node048, Response RTT 38 Average Response RTT 37
2020-04-20 20:54:32.726 Info, Node048, Received a MultiChannelEncap from node 48, endpoint 1 for Command Class COMMAND_CLASS_ALARM
2020-04-20 20:54:32.726 Info, Node048, Received Alarm report: type=0, level=0, sensorSrcID=0, type:System event:1, status=255
Pour un Fibaro Wall Plug Gen 5 c’est aussi la première des 2 commandes AlarmCmd_Get qui pose pose souci.
2020-04-20 20:55:41.806 Info, Node120, Sending (Send) message (Callback ID=0x20, Expected Reply=0x04) - AlarmCmd_Get (Node=120): 0x01, 0x0c, 0x00, 0x13, 0x78, 0x05, 0x71, 0x04, 0x00, 0x00, 0x01, 0x25, 0x20, 0xec
2020-04-20 20:55:41.911 Info, Node120, Request RTT 104 Average Request RTT 105
2020-04-20 20:55:45.807 Error, Node120, ERROR: Dropping command, expected response not received after 1 attempt(s)
2020-04-20 20:55:45.810 Info, Node120, Sending (Send) message (Callback ID=0x21, Expected Reply=0x04) - AlarmCmd_Get (Node=120): 0x01, 0x0c, 0x00, 0x13, 0x78, 0x05, 0x71, 0x04, 0x00, 0x08, 0x01, 0x25, 0x21, 0xe5
2020-04-20 20:55:45.862 Info, Node120, Request RTT 51 Average Request RTT 78
2020-04-20 20:55:45.940 Info, Node120, Response RTT 130 Average Response RTT 157
2020-04-20 20:55:45.941 Info, Node120, Received Alarm report: type=0, level=0, sensorSrcID=0, type:Power Management event:254, status=255
Avec des Fibaro Dimmer 2 inclus en sécurisé, c’est pareil après décodage. Je ne le met pas ici pour ne pas alourdir mon post.
Si vous regardiez bien le temps, il se passe 4 secondes (timeout par défaut) à chaque erreur et la queue sortante reste bloquée inutilement
Au cours d’un redémarrage, j’ai toujours 27 erreurs de ce type
2020-04-21 00:12:54.553 Error, Node019, ERROR: Dropping command, expected response not received after 1 attempt(s)
2020-04-21 00:13:01.901 Error, Node045, ERROR: Dropping command, expected response not received after 1 attempt(s)
2020-04-21 00:13:07.375 Error, Node048, ERROR: Dropping command, expected response not received after 1 attempt(s)
2020-04-21 00:13:13.452 Error, Node050, ERROR: Dropping command, expected response not received after 1 attempt(s)
2020-04-21 00:13:19.167 Error, Node076, ERROR: Dropping command, expected response not received after 1 attempt(s)
2020-04-21 00:13:24.619 Error, Node078, ERROR: Dropping command, expected response not received after 1 attempt(s)
2020-04-21 00:13:30.564 Error, Node089, ERROR: Dropping command, expected response not received after 1 attempt(s)
2020-04-21 00:13:36.288 Error, Node092, ERROR: Dropping command, expected response not received after 1 attempt(s)
2020-04-21 00:13:41.967 Error, Node097, ERROR: Dropping command, expected response not received after 1 attempt(s)
2020-04-21 00:13:47.267 Error, Node109, ERROR: Dropping command, expected response not received after 1 attempt(s)
2020-04-21 00:13:52.460 Error, Node109, ERROR: Dropping command, expected response not received after 1 attempt(s)
2020-04-21 00:13:57.502 Error, Node110, ERROR: Dropping command, expected response not received after 1 attempt(s)
2020-04-21 00:14:03.613 Error, Node110, ERROR: Dropping command, expected response not received after 1 attempt(s)
2020-04-21 00:14:11.917 Error, Node111, ERROR: Dropping command, expected response not received after 1 attempt(s)
2020-04-21 00:14:19.283 Error, Node115, ERROR: Dropping command, expected response not received after 1 attempt(s)
2020-04-21 00:14:24.597 Error, Node115, ERROR: Dropping command, expected response not received after 1 attempt(s)
2020-04-21 00:14:29.679 Error, Node120, ERROR: Dropping command, expected response not received after 1 attempt(s)
2020-04-21 00:14:34.876 Error, Node120, ERROR: Dropping command, expected response not received after 1 attempt(s)
2020-04-21 00:14:40.422 Error, Node130, ERROR: Dropping command, expected response not received after 1 attempt(s)
2020-04-21 00:14:48.568 Error, Node131, ERROR: Dropping command, expected response not received after 1 attempt(s)
2020-04-21 00:14:56.785 Error, Node132, ERROR: Dropping command, expected response not received after 1 attempt(s)
2020-04-21 00:15:06.145 Error, Node133, ERROR: Dropping command, expected response not received after 1 attempt(s)
2020-04-21 00:15:13.894 Error, Node138, ERROR: Dropping command, expected response not received after 1 attempt(s)
2020-04-21 00:15:19.358 Error, Node140, ERROR: Dropping command, expected response not received after 1 attempt(s)
2020-04-21 00:15:24.803 Error, Node141, ERROR: Dropping command, expected response not received after 1 attempt(s)
2020-04-21 00:15:30.285 Error, Node142, ERROR: Dropping command, expected response not received after 1 attempt(s)
2020-04-21 00:15:35.731 Error, Node143, ERROR: Dropping command, expected response not received after 1 attempt(s)
Pour vous convaincre des 4 secondes de timeout, il vous suffit de modier le fichier
/var/www/html/plugins/openzwave/resources/openzwaved/config/option.xml
et de mettre 8s comme ceci <Option name="RetryTimeout" value="8000" />
Et bien, vous aller vous prendre 8 secondes, soit 4 secondes de plus à chaque erreur.
2020-04-20 23:14:07.486 Error, Node019, ERROR: Dropping command, expected response not received after 1 attempt(s)
2020-04-20 23:14:16.481 Error, Node045, ERROR: Dropping command, expected response not received after 1 attempt(s)
2020-04-20 23:14:24.958 Error, Node048, ERROR: Dropping command, expected response not received after 1 attempt(s)
2020-04-20 23:14:34.502 Error, Node050, ERROR: Dropping command, expected response not received after 1 attempt(s)
2020-04-20 23:14:43.222 Error, Node076, ERROR: Dropping command, expected response not received after 1 attempt(s)
2020-04-20 23:14:51.654 Error, Node078, ERROR: Dropping command, expected response not received after 1 attempt(s)
2020-04-20 23:15:00.608 Error, Node089, ERROR: Dropping command, expected response not received after 1 attempt(s)
2020-04-20 23:15:09.410 Error, Node092, ERROR: Dropping command, expected response not received after 1 attempt(s)
2020-04-20 23:15:17.855 Error, Node097, ERROR: Dropping command, expected response not received after 1 attempt(s)
2020-04-20 23:15:26.148 Error, Node109, ERROR: Dropping command, expected response not received after 1 attempt(s)
2020-04-20 23:15:34.348 Error, Node109, ERROR: Dropping command, expected response not received after 1 attempt(s)
2020-04-20 23:15:42.390 Error, Node110, ERROR: Dropping command, expected response not received after 1 attempt(s)
2020-04-20 23:15:51.453 Error, Node110, ERROR: Dropping command, expected response not received after 1 attempt(s)
2020-04-20 23:16:02.704 Error, Node111, ERROR: Dropping command, expected response not received after 1 attempt(s)
2020-04-20 23:16:10.706 Error, Node111, ERROR: Dropping command, expected response not received after 1 attempt(s)
2020-04-20 23:16:20.425 Error, Node115, ERROR: Dropping command, expected response not received after 1 attempt(s)
2020-04-20 23:16:28.747 Error, Node115, ERROR: Dropping command, expected response not received after 1 attempt(s)
2020-04-20 23:16:36.839 Error, Node120, ERROR: Dropping command, expected response not received after 1 attempt(s)
2020-04-20 23:16:45.032 Error, Node120, ERROR: Dropping command, expected response not received after 1 attempt(s)
2020-04-20 23:16:54.814 Error, Node130, ERROR: Dropping command, expected response not received after 1 attempt(s)
2020-04-20 23:17:07.198 Error, Node131, ERROR: Dropping command, expected response not received after 1 attempt(s)
2020-04-20 23:17:18.346 Error, Node132, ERROR: Dropping command, expected response not received after 1 attempt(s)
2020-04-20 23:17:30.804 Error, Node133, ERROR: Dropping command, expected response not received after 1 attempt(s)
2020-04-20 23:17:41.046 Error, Node138, ERROR: Dropping command, expected response not received after 1 attempt(s)
2020-04-20 23:17:49.482 Error, Node140, ERROR: Dropping command, expected response not received after 1 attempt(s)
2020-04-20 23:17:57.914 Error, Node141, ERROR: Dropping command, expected response not received after 1 attempt(s)
2020-04-20 23:18:06.378 Error, Node142, ERROR: Dropping command, expected response not received after 1 attempt(s)
2020-04-20 23:18:14.837 Error, Node143, ERROR: Dropping command, expected response not received after 1 attempt(s)
Ainsi :
- Le réseau démarre en 298 secondes avec un timeout de 8s
- Le réseau démarre en 188 secondes avec un timeout de 4s
Alors la différence est de 110 secondes, ce qui correspond à mes 27 erreurs car 27*4=108
Maintenant, si ces commandes étaient bien supportées, ça devrait prendre au max 200ms environ, soit un gain de 3.8s à chaque erreur et mon réseau Z-Wave devrait démarrer en 188-27*3.8 = 85 secondes.
Ensuite, au cours des 6 heures qui suivent, tous les modules sur piles vont se réveiller et avoir des erreurs similaires. J’ai 62 modules et certains ont 1 ou plusieurs commandes (toujours les mêmes) qui ne passent pas. J’ai dressé le tableau suivant : Nombres de commandes non supportées par type de module
En thérorie, j’aurais 105 erreurs et en pratique j’en suis 107 messages jetés ou non délivrés au bout d’une journée.
La liste des commandes non supportées ou partiellement pour chaque module (non sécurisé par défaut)
- Fibaro Motion Sensor 2 : AlarmCmd_Get
- Fibaro Dimmer Sensor 2 (sécurisé ou pas) : AlarmCmd_Get
- Fibaro Door Sensor 2 : SensorBinaryCmd_Get / AlarmCmd_Get
- Fibaro Door Sensor 2 (sécurisé) : BasicCmd_Get / SensorBinaryCmd_Get / AlarmCmd_Get
- Aeotec Door Sensor 7 : BasicCmd_Get / SensorBinaryCmd_Get / AlarmCmd_Get
- Fibaro Double Switch : SwitchAllCmd_Get / AlarmCmd_Get
- Fibaro Wall Plug Gen 5 : SwitchAllCmd_Get / AlarmCmd_Get
- Quibino Smart Plus : SwitchAllCmd_Get / AlarmCmd_Get
- Tous les autres : AlarmCmd_Get
La question pour un expert est :
Comment supprimer ou ignorer ces requêtes mal supportées pour que la queue sortante soit bloquée moins longtemps ?
Faut-il bidouiler les fichiers XML dans /var/www/html/plugins/openzwave/resources/openzwaved/config/<contructeur>/<module>.xml
?
Exemple avec le fichier du module Wall Plug Gen 5 car j’y vois les trucs commentés suivants
<!-- COMMAND_CLASS_ALARM AlarmCmd_Get not supported -->
<!-- CommandClass id="113" action="remove" /> -->
<!-- COMMAND_CLASS_SENSOR_ALARM not supported -->
<!-- CommandClass id="156" action="remove" /> -->
<!-- COMMAND_CLASS_SWITCH_ALL not supported -->
<!-- CommandClass id="39" action="remove" /> -->
EDIT : mise à jour de mon dernier post