Queue zwave qui monte après maj zwave ou reboot smart

Tags: #<Tag:0x00007f385a6de518>

Bonjour à tous

J’ai de nouveau eu le problème du zwave qui se bloque avec la queue à plus de 700

Je pense connaître la source du problème de ce jour

Une relance du plugin redonne vie au zwave

Serait il possible d’avoir une alerte et une relance automatique quand le queue dépasse un seuil ?

Salut,
Vérifie tes devices.
J’ai eu ce pb a un moment, finalement c’était un device défectueux. Je l’ai exclu pour le remplacer, depuis tout fonctionne à merveille

Je pense connaître la source du problème, c’est un scénario qui a lancé trop de refesh de module

Mais j’ai mis un peu de temps à comprends que c’était le zwave qui était planté

Une alerte m’aurait aidée

ET une relance automatique aurait en plus évité de bloquer ma domotique

Bonjour,

Je suis dans le même cas que toi, pour mes noeuds secteurs, je test si le noeud est en échec via un script. En moins d’une semaine, le problème de queue bloquée qui augmente est apparu 2 fois déjà (la 2ème fois aujourd’hui. Tout fonctionnait bien depuis des mois avant de mettre en place ce script
(jamais eu problème queue bloquée en 2 ans sur aucune version)

un ps -aux me donne le résultat suivant (on voit bien sur la dernière ligne le daemon Z-Wave qui prend 20% du CPU en permanence)

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.3 158148  5488 ?        Ss   Mar03   1:06 /sbin/init
root         2  0.0  0.0      0     0 ?        S    Mar03   0:00 [kthreadd]
root         3  0.0  0.0      0     0 ?        S    Mar03   0:09 [ksoftirqd/0]
root         5  0.0  0.0      0     0 ?        S<   Mar03   0:00 [kworker/0:0H]
root         7  0.0  0.0      0     0 ?        S    Mar03   0:49 [rcu_preempt]
root         8  0.0  0.0      0     0 ?        S    Mar03   0:00 [rcu_sched]
root         9  0.0  0.0      0     0 ?        S    Mar03   0:00 [rcu_bh]
root        10  0.0  0.0      0     0 ?        S    Mar03   0:01 [migration/0]
root        11  0.0  0.0      0     0 ?        S    Mar03   0:01 [migration/1]
root        12  0.0  0.0      0     0 ?        S    Mar03   0:06 [ksoftirqd/1]
root        14  0.0  0.0      0     0 ?        S<   Mar03   0:00 [kworker/1:0H]
root        15  0.0  0.0      0     0 ?        S    Mar03   0:01 [migration/2]
root        16  0.0  0.0      0     0 ?        S    Mar03   0:06 [ksoftirqd/2]
root        18  0.0  0.0      0     0 ?        S<   Mar03   0:00 [kworker/2:0H]
root        19  0.0  0.0      0     0 ?        S    Mar03   0:01 [migration/3]
root        20  0.0  0.0      0     0 ?        S    Mar03   0:11 [ksoftirqd/3]
root        22  0.0  0.0      0     0 ?        S<   Mar03   0:00 [kworker/3:0H]
root        23  0.0  0.0      0     0 ?        S<   Mar03   0:00 [khelper]
root        24  0.0  0.0      0     0 ?        S    Mar03   0:00 [kdevtmpfs]
root        25  0.0  0.0      0     0 ?        S<   Mar03   0:00 [netns]
root        26  0.0  0.0      0     0 ?        S<   Mar03   0:00 [suspend]
root        28  0.0  0.0      0     0 ?        S<   Mar03   0:00 [writeback]
root        29  0.0  0.0      0     0 ?        SN   Mar03   0:00 [ksmd]
root        30  0.0  0.0      0     0 ?        S<   Mar03   0:00 [bioset]
root        31  0.0  0.0      0     0 ?        S<   Mar03   0:00 [crypto]
root        32  0.0  0.0      0     0 ?        S<   Mar03   0:00 [kblockd]
root        33  0.0  0.0      0     0 ?        S    Mar03   0:00 [khubd]
root        34  0.0  0.0      0     0 ?        S<   Mar03   0:00 [devfreq_wq]
root        35  0.0  0.0      0     0 ?        S    Mar03   0:00 [gp_pll]
root        37  0.0  0.0      0     0 ?        S<   Mar03   0:00 [rpciod]
root        38  0.0  0.0      0     0 ?        S<   Mar03   0:00 [kworker/1:1H]
root        43  0.0  0.0      0     0 ?        S    Mar03   0:00 [kswapd0]
root        44  0.0  0.0      0     0 ?        S    Mar03   0:00 [fsnotify_mark]
root        45  0.0  0.0      0     0 ?        S<   Mar03   0:00 [nfsiod]
root        59  0.0  0.0      0     0 ?        S<   Mar03   0:00 [kthrotld]
root        60  0.0  0.0      0     0 ?        S<   Mar03   0:00 [kworker/u9:0]
root        65  0.0  0.0      0     0 ?        S<   Mar03   0:00 [kpsmoused]
root        66  0.0  0.0      0     0 ?        S    Mar03   0:00 [cfinteractive]
root        67  0.0  0.0      0     0 ?        S    Mar03   0:00 [NULL_task_for_h]
root        68  0.0  0.0      0     0 ?        S    Mar03   0:00 [cpu_hotplug_gdb]
root        69  0.0  0.0      0     0 ?        R    Mar03   0:00 [cpu_idle_gdbs]
root        70  0.0  0.0      0     0 ?        S<   Mar03   0:00 [dwc_otg]
root        72  0.0  0.0      0     0 ?        S<   Mar03   0:00 [dwc_otg]
root        73  0.0  0.0      0     0 ?        S    Mar03   0:21 [kthread_hdcp]
root        74  0.0  0.0      0     0 ?        S    Mar03   0:00 [irq/249-sd_emmc]
root        76  0.0  0.0      0     0 ?        S    Mar03   0:00 [irq/99-sd_emmc_]
root        77  0.0  0.0      0     0 ?        S    Mar03   0:00 [irq/101-sd_emmc]
root        78  0.0  0.0      0     0 ?        S    Mar03   0:03 [irq/250-sd_emmc]
root        79  0.0  0.0      0     0 ?        S    Mar03   0:00 [vmalloc_ion]
root        80  0.0  0.0      0     0 ?        S    Mar03   0:00 [carveout_ion]
root        81  0.0  0.0      0     0 ?        S    Mar03   0:00 [ge2d_monitor]
root        82  0.0  0.0      0     0 ?        S    Mar03   0:00 [encode_monitor]
root        83  0.0  0.0      0     0 ?        S    Mar03   0:00 [kthread_h265]
root        84  0.0  0.0      0     0 ?        S    Mar03   0:46 [kthread_di]
root        85  0.0  0.0      0     0 ?        S<   Mar03   0:00 [cec_work]
root        90  0.0  0.0      0     0 ?        S<   Mar03   0:00 [krfcommd]
root        91  0.0  0.0      0     0 ?        S<   Mar03   0:00 [deferwq]
root       100  0.0  0.0      0     0 ?        S    Mar03   0:08 [mmcqd/0]
root       145  0.0  0.0      0     0 ?        S<   Mar03   0:00 [bioset]
root       172  0.0  0.0      0     0 ?        S    Mar03   0:04 [jbd2/mmcblk0p7-]
root       173  0.0  0.0      0     0 ?        S<   Mar03   0:00 [ext4-rsv-conver]
root       186  0.0  0.0      0     0 ?        S<   Mar03   0:00 [ipv6_addrconf]
root       212  0.0  0.1  25568  3048 ?        Ss   Mar03   1:35 /lib/systemd/systemd-journald
root       215  0.0  0.0      0     0 ?        S    Mar03   0:00 [kauditd]
root       227  0.0  0.1  13456  1820 ?        Ss   Mar03   0:00 /lib/systemd/systemd-udevd
root       288  0.0  0.0      0     0 ?        S    Mar03   0:09 [w1_bus_master1]
root       291  0.0  0.0      0     0 ?        S    Mar03   0:00 [spi0]
message+   324  0.0  0.1   6316  2192 ?        Ss   Mar03   0:07 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation
root       326  0.0  0.2  11104  3676 ?        Ss   Mar03   0:00 /usr/sbin/connmand -n
root       327  0.0  0.1   7052  2468 ?        Ss   Mar03   0:02 /lib/systemd/systemd-logind
daemon     328  0.0  0.0   3592   896 ?        Ss   Mar03   0:00 /usr/sbin/atd -f
root       330  0.0  0.1 217816  2732 ?        Ssl  Mar03   0:23 /usr/sbin/rsyslogd -n
root       332  0.0  0.0   5288  1336 ?        Ss   Mar03   0:04 /usr/sbin/cron -f
root       414  0.0  0.0   7048  1588 ?        Ss   Mar03   0:00 /sbin/dhclient -4 -v -pf /run/dhclient.eth0.pid -lf /var/lib/dhcp/dhclient.eth0.leases -I -df /var/lib/dhcp/dhclient6.eth0.leases eth0
root       449  0.0  1.4 149724 25960 ?        Ss   Mar03   0:09 php-fpm: master process (/etc/php/7.0/fpm/php-fpm.conf)
root       474  0.0  0.0   4140   732 tty1     Ss+  Mar03   0:00 /sbin/agetty --noclear tty1 linux
root       477  0.0  0.0   3916   812 ttyS0    Ss+  Mar03   0:00 /sbin/agetty --keep-baud 115200,38400,9600 ttyS0 vt220
root       487  0.0  0.1  10392  3292 ?        Ss   Mar03   0:00 /usr/sbin/sshd -D
root       491  0.0  1.4 150536 25360 ?        Ss   Mar03   0:06 /usr/sbin/apache2 -k start
www-data   493  0.0  0.3 149724  5932 ?        S    Mar03   0:00 php-fpm: pool www
www-data   495  0.0  0.3 149724  5932 ?        S    Mar03   0:00 php-fpm: pool www
root       700  0.2  0.7 169816 12420 ?        Sl   Mar03   7:05 /usr/bin/python3 /usr/bin/fail2ban-server -s /var/run/fail2ban/fail2ban.sock -p /var/run/fail2ban/fail2ban.pid -x -b
mysql      702  0.3 12.3 707436 217424 ?       Ssl  Mar03   8:55 /usr/sbin/mysqld
ntp        774  0.0  0.1  72832  1984 ?        Ssl  Mar03   0:14 /usr/sbin/ntpd -p /var/run/ntpd.pid -g -u 104:109
root      1256  0.0  0.1   6528  1844 ?        S    Mar03   0:00 sudo openvpn --config /tmp/jeedom/openvpn/openvpn_21.ovpn
root      1263  0.0  0.2   8880  4024 ?        S    Mar03   0:14 openvpn --config /tmp/jeedom/openvpn/openvpn_21.ovpn
root      1648  0.0  0.1   6528  1852 ?        S    Mar03   0:00 sudo /usr/bin/python /var/www/html/plugins/rfplayer2/resources/rfplayer2/rfplayer2d.py --device=auto --loglevel=debug --socketport=55020 --callback=http://127.0.0.1:80/plugins/rfplayer2/core/php/jeeRfplayer2.php --apikey=abjwTQm9tlrTidb0EcbiqmqN7EURF2hW --cycle 0.3 --pid /tmp/jeedom/rfplayer2/deamon.pid
root      1649  0.3  1.1 469084 19964 ?        Sl   Mar03  10:05 /usr/bin/python /var/www/html/plugins/rfplayer2/resources/rfplayer2/rfplayer2d.py --device=auto --loglevel=debug --socketport=55020 --callback=http://127.0.0.1:80/plugins/rfplayer2/core/php/jeeRfplayer2.php --apikey=abjwTQm9tlrTidb0EcbiqmqN7EURF2hW --cycle 0.3 --pid /tmp/jeedom/rfplayer2/deamon.pid
root      2234  0.0  0.0      0     0 ?        S<   Mar03   0:00 [kworker/3:1H]
root      4942  0.0  0.0      0     0 ?        S    20:39   0:00 [kworker/1:0]
root      6013  0.0  0.0      0     0 ?        S    22:39   0:00 [kworker/u8:2]
root      6014  0.1  0.0      0     0 ?        S    22:39   0:01 [kworker/3:0]
root      6015  0.0  0.0      0     0 ?        S    22:39   0:00 [kworker/2:0]
root      8239  0.0  0.0      0     0 ?        S<   Mar03   0:00 [kworker/2:1H]
www-data  8253  0.1  0.8 151232 14756 ?        S    21:44   0:04 /usr/sbin/apache2 -k start
www-data  8496  0.0  0.8 151368 15484 ?        S    21:44   0:03 /usr/sbin/apache2 -k start
root     10608  0.0  0.0      0     0 ?        S    22:47   0:00 [kworker/0:2]
www-data 10901  0.1  0.9 151424 17160 ?        S    Mar03   2:30 /usr/sbin/apache2 -k start
www-data 15797  6.3  1.7 150904 31116 ?        S    22:57   0:00 php /var/www/html/core/class/../php/jeeCron.php cron_id=339
www-data 15825  0.0  0.0   1868   568 ?        S    22:57   0:00 sh -c sudo ping -n -c 1 -t 255 192.168.1.104
root     15826  0.3  0.1   6528  1856 ?        S    22:57   0:00 sudo ping -n -c 1 -t 255 192.168.1.104
root     15827  0.0  0.0   5040   708 ?        S    22:57   0:00 ping -n -c 1 -t 255 192.168.1.104
www-data 15843  0.0  0.0   1868   580 ?        S    22:57   0:00 sh -c ps -aux 2>&1
www-data 15844  0.0  0.0   5864  1476 ?        R    22:57   0:00 ps -aux
root     19063  0.0  0.0      0     0 ?        S    16:09   0:00 [kworker/u8:1]
www-data 19240  0.0  0.9 151412 16580 ?        S    18:07   0:08 /usr/sbin/apache2 -k start
www-data 19249  0.0  1.0 226176 19340 ?        S    18:07   0:04 /usr/sbin/apache2 -k start
root     20135  0.0  0.0      0     0 ?        S<   Mar03   0:00 [kworker/0:1H]
root     20406  0.1  0.0      0     0 ?        S    22:06   0:04 [kworker/0:0]
root     20640  0.0  0.0      0     0 ?        S    19:09   0:00 [kworker/2:1]
root     21011  0.0  0.0      0     0 ?        S    20:09   0:00 [kworker/1:1]
www-data 21063  0.0  0.9 151344 16460 ?        S    18:11   0:05 /usr/sbin/apache2 -k start
root     21465  0.0  0.0      0     0 ?        S    21:09   0:01 [kworker/3:1]
www-data 22084  0.0  0.9 151340 16556 ?        S    18:12   0:08 /usr/sbin/apache2 -k start
www-data 23158  0.0  0.9 151416 15940 ?        S    18:14   0:04 /usr/sbin/apache2 -k start
www-data 23267  0.0  1.1 226172 19732 ?        S    18:15   0:02 /usr/sbin/apache2 -k start
www-data 23740  0.0  0.9 151324 16020 ?        S    18:15   0:01 /usr/sbin/apache2 -k start
www-data 24004  0.0  0.9 151236 16132 ?        S    18:16   0:02 /usr/sbin/apache2 -k start
www-data 24353  0.0  0.8 151228 15420 ?        S    18:16   0:06 /usr/sbin/apache2 -k start
www-data 27462 22.8  2.6 672292 47096 ?        Sl   Mar03 613:04 /usr/bin/python /var/www/html/plugins/openzwave/core/class/../../resources/openzwaved/openzwaved.py --device /dev/ttyS1 --loglevel debug --port 8083 --config_folder /var/www/html/plugins/openzwave/core/class/../../resources/openzwaved/config --data_folder /var/www/html/plugins/openzwave/core/class/../../data --callback http://127.0.0.1:80/plugins/openzwave/core/php/jeeZwave.php --apikey xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx --suppressRefresh 0 --cycle 0.3 --pid /tmp/jeedom/openzwave/deamon.pid

Confirmé par l’écran santé (toujours proche de zéro d’habitude) - vue d’ici on dirait que le processus est rentré dans une boucle infinie (d’où l’un des coeur saturé en permanence) et depuis des heures </u<:
image
Écran Z-Wave :
image

La requête me semble correcte (exécutée toutes les heures seulement, sur Jeedom smart Z-Wave):


$ip = "localhost"; // openzwave server ip
$zwavePort = "8083"; // default value: 8083
$apiKey= [...]
$zwaveNodeFailedURL = "/node?type=action&action=hasNodeFailed&node_id=";
$curl = curl_init();
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

// boucle où $moduleId s'incrémente, en étant récupéré depuis la requete "/network?type=info&info=getHealth" et où $isFlirs et $isListening ont les bonnes valeurs selon les modules]
	$isFlirs = [...]
	$isListening = [...]
	$isMainController = [...]
	$moduleDescription = [...] //human readable description
	
	// Selftest FLiRS and listening modules
	if(($isFlirs || $isListening) && !$isMainController) {
		$urlHasNodeFailed = "http://".$ip.":".$zwavePort.$zwaveNodeFailedURL.$moduleId."&apikey=".$apiKey;
		curl_setopt($curl, CURLOPT_URL, $urlHasNodeFailed);
		// retry mechanism in case controller is busy
		for($result = false,$i = 0; $result == false && $i < 20 ; $i++) {
			// wait a little before retrying
			if ($i > 0) {
				usleep(100000);
			}
			$contentHasNodeFailed = json_decode(curl_exec($curl), true);
			if($contentHasNodeFailed['state'] == 'ok') {
				$result = true;
			}
		}
		echo '<div>';
		echo '[try='.$i.'] '.$moduleDescription.': '.$urlHasNodeFailed.'<br />';
		// echo print_r($contentHasNodeFailed);
		echo '</div>';
	}

Sortie du script à 13h :

[try=1] [4- Porte/Entrée] : http://localhost:8083/node?type=action&action=refreshNodeInfo&node_id=4&apikey=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
[try=1] [7- Fenêtre/Cuisine] : http://localhost:8083/node?type=action&action=refreshNodeInfo&node_id=7&apikey=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
[try=1] [8- Sirène/Entrée] : http://localhost:8083/node?type=action&action=hasNodeFailed&node_id=8&apikey=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
[try=2] [10- Répéteur Z-Wave/Salon] : http://localhost:8083/node?type=action&action=hasNodeFailed&node_id=10&apikey=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
[try=1] [17- Sirène/Garage] : http://localhost:8083/node?type=action&action=hasNodeFailed&node_id=17&apikey=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
[try=2] [29- Volet/Bureau] : http://localhost:8083/node?type=action&action=hasNodeFailed&node_id=29&apikey=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
[try=1] [31- Volet porte/Cuisine] : http://localhost:8083/node?type=action&action=hasNodeFailed&node_id=31&apikey=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
[try=2] [32- Volet fenêtre/Cuisine] : http://localhost:8083/node?type=action&action=hasNodeFailed&node_id=32&apikey=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
[try=1] [33- Echelle/Salon] : http://localhost:8083/node?type=action&action=hasNodeFailed&node_id=33&apikey=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
[try=2] [34- Lumière/Soue à cochon] : http://localhost:8083/node?type=action&action=hasNodeFailed&node_id=34&apikey=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
[try=1] [35- Lumière/Bureau] : http://localhost:8083/node?type=action&action=hasNodeFailed&node_id=35&apikey=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
[try=2] [36- Lumière de la porte/Entrée] : http://localhost:8083/node?type=action&action=hasNodeFailed&node_id=36&apikey=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
[try=1] [37- Lumière/Terrain] : http://localhost:8083/node?type=action&action=hasNodeFailed&node_id=37&apikey=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
[try=2] [38- Lumière du passage/Entrée] : http://localhost:8083/node?type=action&action=hasNodeFailed&node_id=38&apikey=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
[try=2] [42- 42PIR Sensor/aucun] : http://localhost:8083/node?type=action&action=hasNodeFailed&node_id=42&apikey=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Sortie du script à 14h :

[try=1] [8- Sirène/Entrée] : http://localhost:8083/node?type=action&action=hasNodeFailed&node_id=8&apikey=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
[try=2] [10- Répéteur Z-Wave/Salon] : http://localhost:8083/node?type=action&action=hasNodeFailed&node_id=10&apikey=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
[try=1] [17- Sirène/Garage] : http://localhost:8083/node?type=action&action=hasNodeFailed&node_id=17&apikey=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
[try=1] [25- Détecteur de fumée/Salon] : http://localhost:8083/node?type=action&action=refreshNodeInfo&node_id=25&apikey=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
[try=2] [29- Volet/Bureau] : http://localhost:8083/node?type=action&action=hasNodeFailed&node_id=29&apikey=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
[try=1] [31- Volet porte/Cuisine] : http://localhost:8083/node?type=action&action=hasNodeFailed&node_id=31&apikey=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
[try=1] [32- Volet fenêtre/Cuisine] : http://localhost:8083/node?type=action&action=hasNodeFailed&node_id=32&apikey=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
[try=20] [33- Echelle/Salon] : http://localhost:8083/node?type=action&action=hasNodeFailed&node_id=33&apikey=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
[try=20] [34- Lumière/Soue à cochon] : http://localhost:8083/node?type=action&action=hasNodeFailed&node_id=34&apikey=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
[try=2] [35- Lumière/Bureau] : http://localhost:8083/node?type=action&action=hasNodeFailed&node_id=35&apikey=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
[try=1] [36- Lumière de la porte/Entrée] : http://localhost:8083/node?type=action&action=hasNodeFailed&node_id=36&apikey=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
[try=1] [37- Lumière/Terrain] : http://localhost:8083/node?type=action&action=hasNodeFailed&node_id=37&apikey=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
[try=1] [38- Lumière du passage/Entrée] : http://localhost:8083/node?type=action&action=hasNodeFailed&node_id=38&apikey=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
[try=1] [42- 42PIR Sensor/aucun] : http://localhost:8083/node?type=action&action=hasNodeFailed&node_id=42&apikey=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Sortie du script à 15h et chaque heure ensuite :

[try=20] [8- Sirène/Entrée] : http://localhost:8083/node?type=action&action=hasNodeFailed&node_id=8&apikey=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
[try=20] [10- Répéteur Z-Wave/Salon] : http://localhost:8083/node?type=action&action=hasNodeFailed&node_id=10&apikey=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
[try=20] [17- Sirène/Garage] : http://localhost:8083/node?type=action&action=hasNodeFailed&node_id=17&apikey=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
[try=20] [29- Volet/Bureau] : http://localhost:8083/node?type=action&action=hasNodeFailed&node_id=29&apikey=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
[try=20] [31- Volet porte/Cuisine] : http://localhost:8083/node?type=action&action=hasNodeFailed&node_id=31&apikey=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
[try=20] [32- Volet fenêtre/Cuisine] : http://localhost:8083/node?type=action&action=hasNodeFailed&node_id=32&apikey=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
[try=20] [33- Echelle/Salon] : http://localhost:8083/node?type=action&action=hasNodeFailed&node_id=33&apikey=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
[try=20] [34- Lumière/Soue à cochon] : http://localhost:8083/node?type=action&action=hasNodeFailed&node_id=34&apikey=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
[try=20] [35- Lumière/Bureau] : http://localhost:8083/node?type=action&action=hasNodeFailed&node_id=35&apikey=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
[try=20] [36- Lumière de la porte/Entrée] : http://localhost:8083/node?type=action&action=hasNodeFailed&node_id=36&apikey=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
[try=20] [37- Lumière/Terrain] : http://localhost:8083/node?type=action&action=hasNodeFailed&node_id=37&apikey=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
[try=20] [38- Lumière du passage/Entrée] : http://localhost:8083/node?type=action&action=hasNodeFailed&node_id=38&apikey=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
[try=20] [42- 42PIR Sensor/aucun] : http://localhost:8083/node?type=action&action=hasNodeFailed&node_id=42&apikey=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

N’y a t-il pas un bug lors de l’accès au serveur REST, des problèmes de concurrences ?
@Loic @Denis et à l’équipe en général, avez-vous parfois eu ce problème en adressant des requêtes au serveur REST Z-Wave ?

Bonne journée :slight_smile:

edit: un redémarrage du daemon règle le problème…mais jusqu’à la prochaine !
image

A ce jour, je n’ai qu’une Jeedom de prod, je ne peux donc pas lancer de test facilement sans risque à la maison.

Pour confirmer mon analyse, je voudrais créer un script très simple :

while (true) {
  http://localhost:8083/node?type=action&action=hasNodeFailed&node_id=4&apikey=xxxxxxxxxxxxxxxxxxxx// requête « nœud en échec » au nœud « 4 » qui est un nœud secteur ou FLiRS existant dans le réseau et alimenté,
  usleep(100000) // (attendre 0,1s)
}

et le faire tourner quelques heures ou quelques jours pour constater si la queue se bloque à un moment donné.

Hello,
Donc si je résume: tu n’as jamais eu de problème zwave en 2 ans puis tu décides d’implémenter un script et soudainement tu as des problèmes graves à répétition et tu demandes (avec tag des personnes !) si le plugin à un problème ? De plus en avançant une théorie dont on ne sait pas trop d’ou elle sort.

As tu envisagé que ton script pouvait être un problème et que ce n’est pas une bonne idée de faire cela (en plus d’être inutile puisque tu n’avais pas de problème)?

As tu lu le code du plug-in ?

Bonjour @Mips,

Merci pour ton intervention.
En effet, il s’agit d’introduire de la robustesse pour fiabiliser mon installation. Nombreuses sont les fois où des modules a piles ont arrêté de communiquer sans remonter l’information de pile faible. Inversement certains modules ayant remontés l’information pile faible fonctionnent des mois durant encore par la suite. L’implémentation de mon script est donc basée sur les constats suivants :

  • la remonté d’information des piles (algorithme de conversion tension / pourcentage à charge du fabricant du module) n’est pas fiable
  • il devient intéressant de surveiller les réveils de ces modules
  • un module sans wake-up (ex : FLiRS a pile) n’a pas de notion de réveil et ne peut cesser de fonctionner à tout moment (ref point numéro 1)
  • un module FLiRS n’ayant pas de wake-up, je me sers de la méthode « public » officiellement disponible et documentée « hasNodeFailed » pour tester si un noeud est en échec (lorsque j’enlève la pile du module FLiRS, il passe DEAD suite a l’exécution de mon script)
  • j’ai étendu ce principe au noeud secteurs.

Jusque là je t’ai décrit mes raisons de faire appel a cette commande. Ce n’est pas pour implémenter mon script que j’ai demandé de l’aide ici, mais en proposant ce script exemple de 3 lignes, je pense mettre en évidence l’instabilité constatée a la maison.

Je ferai tourner ce code exemple quand j’aurai un peu de temps devant moi pour confirmer ou infirmer mon hypothèse. Dans cette attente, j’ai partagé mon expérience ici avec des personnes qui semblent avoir rencontré des difficultés similaires, en e attaquant également le serveur REST.

En tant que profil expérimenté, as tu déjà rencontré cette difficulté "queue zwave qui s’incrémente et processus du démon Z-Wave utilisant un coeur CPU en permanence ?

Bonne journée a tous,
Pierre (Mav3656) - Helper Officiel Jeedom.

Édit : il est tout a fait normal qu’à ce temps d’intervalle le serveur REST réponde une alternance de OK/KO sur la bonne prise en compte de la requête, la requête étant traitée ensuite de manière asynchrone et prenant un certain temps a s’exécuter. En revanche, planter le démon n’est pas le comportement attendu.

On dirait que ca a eu l’effet inverse, c’est mon point.
De manière général (pas que sur zwave ni que sur jeedom), un des plus sur moyen de faire crasher un système et de l’empêcher de se rétablir c’est de le spam avec des requêtes (pour vérifier si tout va bien), tu te fais juste un DOS à ton système, tout seul.

Je ne comptais absolument pas travailler sur ce script et je pense que tu n’as pas besoin de faire ton test: le système va probablement crash en recevant une requête toute les dixième de seconde.

juste pour info, le plugin aussi utilise le serveur REST du démon; il ne crash pourtant pas chez tout le monde

Oui, j’avais rencontré ce problème après avoir un nombre « important » de modules (jamais au début avec 10-20 modules, seulement plus tard avec 40-50 ou plus) lorsque je tournais sur smart ou sur pi, je n’ai plus jamais eu ce problème depuis que je suis sur une vm (plus de cpu etc).
Cependant je ne peux pas être certain que c’est dû au changement de machine, il y a eu d’autre mise à jour entre temps etc, le contexte a changé et donc on ne peut pas tirer de conclusion.

je me permets de me greffer au sujet.

J’ai tous les 10 jours environs la queue zwave qui monte (quasiment à 10000). J’ai pour l’instant trouvé une solution rapide, je désactive quelques nœuds (je coupe les fusibles) … j’attends que ça revienne à 0 et hop je remets.
Y aurait il une méthode pour savoir facilement si j’ai un nœud qui merdoie et si il faut le remplacer ?
Merci d’avance

Bonjour

faut regarder les logs, ou si tu as du support, faire un ticket jeedom

Merci pour ta réponse

je n’ai pas le support, je regarde ça dans quel log ? je dois chercher une erreur spécifique ?

Merci :wink:

je sais pas trop, j’avais ouvert un ticket
il faut passer le plugin en mode debug et il y a des logs openzwave, il faut regarder si un module revient très souvent, j’avais eu ce problème pour un module qui parlait trop et donc chargeait le zwave qui n’arrivait plus à gérer les demandes, mais il peut y a voir plusieurs type de problème

bonjour à tous

hier, mise à jour du plugin zwave, sans reboot de la Smart et ce matin, domotique non fonctionnelle et queue zwave à plus de 100

Screenshot 2020-06-29 at 06.59.39

dans les logs, j’ai ça

Screenshot 2020-06-29 at 07.00.39

Screenshot 2020-06-29 at 07.00.51

je viens de relancer le démon zwave et je pense que maintenant cela va tourner sans soucis, mais pourquoi suite à une maj ou à un reboot de là smart, il part en cacahuète ?

voici l’état du plugin avec reboot

Screenshot 2020-06-29 at 07.00.02

Pour avoir ce phénomène de queue qui plante sur mon Jeedom hébergé sur une VM d’un NAS QNAP j’ai souvent remarqué avoir très régulièrement le soucis dans les heures qui suivent un reboot du daemon (le soir, ou dans la nuit).

Bizarrement si ça arrive à passer un cap, après je suis tranquille un bon bout de temps.

Bref ça donne pas envie de faire cette MAJ.