Check port du controleur Z-Wave

Bonjour, est-il possible checker si ma clé Z-wave est bien mappée dans le pluggin via un bout de code ? car de temps à autre (rare), le port du controleur ZW090 se déco et je dois le re sélectionner dans la liste puis restart le deamon. Je précise que cela doit certainement tenir au fait que j’utilise une VM sous esxi. Mais je précise que là n’est pas le débat et que je souhaite rester dans cette config.

pour le moment, j’arrive à check l’état du démon via le bout de code ci-dessous …
$plugins = plugin::listPlugin();
foreach($plugins as $plugin){
if($plugin->getName()==‹ Z-Wave ›){
$tags[‹ #ETAT_DEAMON_ZWAVE# ›] = $plugin->deamon_info()[‹ state ›];
$scenario->setLog($tags);
$scenario->setTags($tags);
}
}

…mais j’aimerai maintenant check si le port du controleur est bien renseigné avant de restart le deamon. Dans le cas contraire (port non renseigné), le faire. Est-ce possible ?

Bonjour,
Le port est défini dans la config du plugin. Pour le retrouver:

$port = config::byKey('port', 'openzwave','Key port not defined for openzwave plugin',true);
$scenario->setLog('Openzwave Port: ' .$port);

Bizarre que cette information soit perdue.

Pour trouver l’info à partir de la fenêtre de configuration du plugin, il faut utiliser Inspecter qui permet de naviguer dans le code html de la page:

Pour remettre la valeur correcte pour ma config:

config::save('port','Odroid C2','openzwave');
1 « J'aime »

Tiens exemple ce matin, je viens de restart jeedom et voici l’état du plugin z-wave au démarrage…

…merci pour le code, je vais tester ça asap :wink:

Hello,

Réponse intéressante de @jpty pour essayer de palier au problème et merci à lui.

Toutefois je pense qu’il faudrait tenter de fixer le problème à la source car ce n’est pas normal et je pense à une brève déconnexion de la clef coté OS et qui change peux-être de port à la reconnexion.

Essaye peut-être de regarder ce post pour fixer les ports :

Vraiment ? :sweat_smile:

Oui pourquoi tu avais un doute ? :slight_smile:

EDIT : ah flute j’ai même pas vu le mot incorrecte ! Je voulais dire intéressante ! je corrige :rofl:

1 « J'aime »

top !

par contre, malgré le fait que openzwave port ne soit pas mappé correctement, lorsque j’execute la commande…

$port = config::byKey(‹ port ›, ‹ openzwave ›,‹ Port Not defined ›,true);
$scenario->setLog('Openzwave Port: ’ .$port);

… cela me retourne :
image

du coup, si le deamon est nok, alors je force la réassignation du port et je restart le deamon.
ça fonctionne :slight_smile:

Merci jpty !

Avec le dernier parametre de byKey à true, la valeur est recherchée dans la bdd.
Avec false elle le serait dans le cache. Et c’est peut être dans le cache qu’elle est perdue ou pas encore initialisée/récupérée par Jeedom.

Quand il y a la perte, il faudrait vérifier avec false pour voir la valeur en cache.
C’est la valeur en cache qui est utilisée au démarrage du daemon.

	public static function deamon_start($_debug = false) {
		...
		$port = config::byKey('port', 'openzwave');

Hello,
J’avais cru lire qu’il fallait mieux utiliser le plus possible Auto pour les ports.
Info ou intox ?

Oui info.
Mais peut-être pas pour openzwave ou en mode auto, il ne recherche que les clés usb suivantes:

know_sticks = [
{'idVendor': '0658', 'idProduct': '0200', 'name': 'Sigma Designs, Inc'},
{'idVendor': '10c4', 'idProduct': 'ea60', 'name': 'Cygnal Integrated Products, Inc. CP210x UART Bridge'}]

Le code qui recherche au lancement du daemon:

	if globals.device == 'auto':
		for stick in globals.know_sticks:
			globals.device = jeedom_utils.find_tty_usb(stick['idVendor'], stick['idProduct'])
			if globals.device is not None:
				logging.info('USB Z-Wave Stick found : ' + stick['name'] + ' at ' + globals.device)
				break
		if globals.device is None:
			logging.error('No USB Z-Wave Stick detected')
			sys.exit(1)
3 « J'aime »

Merci, j’en apprends des choses avec toi. Non seulement tu réponds mais c’est toujours expliqué et intéressant (je n’ai pas le même correcteur de frappe que Bison) :rofl:

Donc pour Aoetec gen 5 qui est la première recherchée, le mode Auto c’est conseillé quand on peu.